delete lua && add background funcs
This commit is contained in:
13
.vscode/c_cpp_properties.json
vendored
13
.vscode/c_cpp_properties.json
vendored
@@ -13,6 +13,19 @@
|
||||
"SYSCALLS_VERSION_C"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Windows Lua5.3",
|
||||
"includePath": [
|
||||
"C:/MinGW/msys/1.0/home/autobuild/tools/win32/include",
|
||||
"C:/MinGW/msys/1.0/home/autobuild/tools/win32/include/lua5.3",
|
||||
"${workspaceFolder}/../kolibrios/contrib/sdk/sources/newlib/libc/include"
|
||||
],
|
||||
"defines": [
|
||||
"SYSCALLS_VERSION_A",
|
||||
"SYSCALLS_VERSION_B",
|
||||
"SYSCALLS_VERSION_C"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Debug",
|
||||
"includePath": [
|
||||
|
4
Makefile
4
Makefile
@@ -38,7 +38,7 @@ Socket_O = src/sockets/socket.o src/sockets/socket_lua.o src/sockets/sockaddr.o
|
||||
Debug_O = src/debug/debug.o src/debug/registers.o
|
||||
Version_O = src/version/coreversion.o src/version/version_type.o
|
||||
|
||||
ALL_O = src/syscalls.o src/ARP_entry.o src/systemColors.o src/graphic.o $(Socket_O) $(Debug_O) $(Version_O)
|
||||
ALL_O = src/syscalls.o src/ARP_entry.o src/systemColors.o src/graphic.o $(Socket_O) $(Debug_O) $(Version_O) src/background/background.o
|
||||
|
||||
syscalls.dll: $(ALL_O)
|
||||
$(LD) -shared -T dll.lds --entry _DllStartup $(LDFLAGS) -o $@ $(ALL_O) $(LIBS)
|
||||
@@ -61,6 +61,7 @@ src/debug/debug.o: src/debug/debug.c src/debug/debug.h src/debug/registers.h
|
||||
src/debug/registers.o: src/debug/registers.c src/debug/registers.h src/syscalls.h src/debug.h
|
||||
src/version/coreversion.o: src/version/coreversion.c src/version/coreversion.h
|
||||
src/version/version_type.o: src/version/version_type.c src/version/version_type.h src/debug.h
|
||||
src/background/background.o: src/background/background.c src/background/background.h
|
||||
|
||||
## headers
|
||||
|
||||
@@ -71,3 +72,4 @@ src/debug/debug.h: src/syscalls.h
|
||||
src/debug/registers.h: src/syscalls.h
|
||||
src/version/coreversion.h: src/version/version_type.h
|
||||
src/version/version_type.h: src/syscalls.h
|
||||
src/background/background.h: src/syscalls.h
|
||||
|
1
lua
1
lua
repo.diff.submodule_deleted%!(EXTRA template.HTML=lua, template.HTML=eae2ea0aaa)
129
src/background/background.c
Normal file
129
src/background/background.c
Normal file
@@ -0,0 +1,129 @@
|
||||
#include "background.h"
|
||||
|
||||
static ksys_pos_t sizes;
|
||||
|
||||
int syscalls_backgroundGetSize(lua_State* L)
|
||||
{
|
||||
asm_inline(
|
||||
"int $0x40"
|
||||
:"=a"(sizes)
|
||||
: "a"(39), "b"(1)
|
||||
);
|
||||
|
||||
syscalls_push_pos_t(L, sizes);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int syscalls_backgroundSetSize(lua_State* L)
|
||||
{
|
||||
sizes = syscalls_check_pos_t(L, 1);
|
||||
|
||||
_ksys_bg_set_size(
|
||||
sizes.x,
|
||||
sizes.y
|
||||
);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int syscalls_backgroundPutPixel(lua_State* L)
|
||||
{
|
||||
uint32_t x = luaL_checkinteger(L, 1);
|
||||
uint32_t y = luaL_checkinteger(L, 2);
|
||||
|
||||
_ksys_bg_put_pixel(
|
||||
x,
|
||||
y,
|
||||
sizes.x,
|
||||
luaL_checkinteger(L, 3)
|
||||
);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
ksys_color_t background_read_point(ksys_pos_t pos, uint16_t w)
|
||||
{
|
||||
ksys_color_t color;
|
||||
|
||||
asm_inline(
|
||||
"int $0x40"
|
||||
:"=a"(color)
|
||||
: "a"(39), "b"(2), "c"((pos.x + pos.y * w) * 3)
|
||||
);
|
||||
|
||||
return color;
|
||||
}
|
||||
|
||||
int syscalls_backgroundReadPoint(lua_State* L)
|
||||
{
|
||||
lua_pushinteger(
|
||||
L,
|
||||
background_read_point(syscalls_check_pos_t(L, 1), sizes.x)
|
||||
);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int syscalls_backgroundRedraw(lua_State* L)
|
||||
{
|
||||
_ksys_bg_redraw();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int syscalls_backgroundSetDrawMode(lua_State* L)
|
||||
{
|
||||
_ksys_bg_set_mode(luaL_checkinteger(L, 1));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int syscalls_backgroundGetDrawMode(lua_State* L)
|
||||
{
|
||||
enum KSYS_BG_MODES mode;
|
||||
|
||||
asm_inline(
|
||||
"int $0x40"
|
||||
:"=a"(mode)
|
||||
: "a"(39), "b"(4)
|
||||
);
|
||||
|
||||
lua_pushinteger(L, mode);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int syscalls_backgroundOpenMap(lua_State* L)
|
||||
{
|
||||
lua_pushinteger(
|
||||
L,
|
||||
_ksys_bg_get_map()
|
||||
);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int syscalls_backgroundCloseMap(lua_State* L)
|
||||
{
|
||||
if (_ksys_bg_close_map(luaL_checkinteger(L, 1)) == 0)
|
||||
{
|
||||
lua_pushnil(L);
|
||||
}
|
||||
else
|
||||
{
|
||||
lua_pushboolean(L, true);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int syscalls_backgroundRedrawArea(lua_State* L)
|
||||
{
|
||||
_ksys_bg_redraw_bar(
|
||||
syscalls_check_pos_t(L, 1),
|
||||
syscalls_check_pos_t(L, 3)
|
||||
);
|
||||
|
||||
return 0;
|
||||
}
|
33
src/background/background.h
Normal file
33
src/background/background.h
Normal file
@@ -0,0 +1,33 @@
|
||||
#ifndef __BACKGROUND_H__
|
||||
#define __BACKGROUND_H__
|
||||
|
||||
#include "../syscalls.h"
|
||||
|
||||
int syscalls_backgroundSetSize(lua_State* L);
|
||||
|
||||
int syscalls_backgroundPutPixel(lua_State* L);
|
||||
|
||||
int syscalls_backgroundRedraw(lua_State* L);
|
||||
|
||||
int syscalls_backgroundSetDrawMode(lua_State* L);
|
||||
|
||||
int syscalls_backgroundGetDrawMode(lua_State* L);
|
||||
|
||||
int syscalls_backgroundOpenMap(lua_State* L);
|
||||
|
||||
int syscalls_backgroundCloseMap(lua_State* L);
|
||||
|
||||
int syscalls_backgroundRedrawArea(lua_State* L);
|
||||
|
||||
inline syscalls_push_BackgroundDrawMode(lua_State* L)
|
||||
{
|
||||
lua_createtable(L, 0, 2);
|
||||
|
||||
LUA_PUSH_INTEGER_FIELD(L, KSYS_BG_MODE_PAVE, "Pave");
|
||||
|
||||
LUA_PUSH_INTEGER_FIELD(L, KSYS_BG_MODE_STRETCH, "Stretch");
|
||||
|
||||
lua_setfield(L, -2, "DrawMode");
|
||||
}
|
||||
|
||||
#endif // __BACKGROUND_H__
|
@@ -17,6 +17,7 @@
|
||||
#include "graphic.h"
|
||||
#include "version/coreversion.h"
|
||||
#include "version/library_version.h"
|
||||
#include "background/background.h"
|
||||
|
||||
/*
|
||||
Режим ввода с клавиатуры
|
||||
@@ -107,7 +108,7 @@ static int syscalls_SetSkin(lua_State* L)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int syscalls_GetSkinTilteArea(lua_State* L)
|
||||
static int syscalls_GetSkinTitleArea(lua_State* L)
|
||||
{
|
||||
ksys_pos_t leftRight, topBottom;
|
||||
|
||||
@@ -408,37 +409,6 @@ static int syscalls_getButton(lua_State* L)
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
Backgound
|
||||
*/
|
||||
|
||||
static int syscalls_backgroundSetSize(lua_State* L)
|
||||
{
|
||||
_ksys_bg_set_size(
|
||||
luaL_checkinteger(L, 1),
|
||||
luaL_checkinteger(L, 2));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int syscalls_backgroundPutPixel(lua_State* L)
|
||||
{
|
||||
_ksys_bg_put_pixel(
|
||||
luaL_checkinteger(L, 1),
|
||||
luaL_checkinteger(L, 2),
|
||||
luaL_checkinteger(L, 3),
|
||||
luaL_checkinteger(L, 4));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int syscalls_backgroundRedraw(lua_State* L)
|
||||
{
|
||||
_ksys_bg_redraw();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int syscalls_getCPUClock(lua_State* L)
|
||||
{
|
||||
lua_pushinteger(L, _ksys_get_cpu_clock());
|
||||
@@ -1495,7 +1465,7 @@ static const luaL_Reg syscallsLib[] = {
|
||||
{"SetWindowTitle", syscalls_setWindowTitle},
|
||||
{"GetSkinHeight", syscalls_getSkinHeight},
|
||||
{"SetSkin", syscalls_SetSkin},
|
||||
{"GetSkinTitleArea", syscalls_GetSkinTilteArea},
|
||||
{"GetSkinTitleArea", syscalls_GetSkinTitleArea},
|
||||
/* Buttons funcs*/
|
||||
{"DefineButton", syscalls_defineButton},
|
||||
{"DeleteButton", syscalls_deleteButton},
|
||||
@@ -1507,11 +1477,16 @@ static const luaL_Reg syscallsLib[] = {
|
||||
{"CheckEvent", syscalls_checkEvent},
|
||||
{"WaitEventTimeout", syscalls_waitEventTimeout},
|
||||
/* Background funcs */
|
||||
{"BackgroundSetSize", syscalls_backgroundSetSize},
|
||||
{"BackgroundPutPixel", syscalls_backgroundPutPixel},
|
||||
{"BackgroundRedraw", syscalls_backgroundRedraw},
|
||||
{ "BackgroundSetSize", syscalls_backgroundSetSize },
|
||||
{ "BackgroundPutPixel", syscalls_backgroundPutPixel },
|
||||
{ "BackgroundRedraw", syscalls_backgroundRedraw },
|
||||
{ "BackgroundSetDrawMode", syscalls_backgroundSetDrawMode },
|
||||
{ "BackgroundGetDrawMode", syscalls_backgroundGetDrawMode },
|
||||
{ "BackgroundOpenMap", syscalls_backgroundOpenMap },
|
||||
{ "BackgroundCloseMap", syscalls_backgroundCloseMap },
|
||||
{ "BackgroundRedrawArea", syscalls_backgroundRedrawArea },
|
||||
/* system funcs */
|
||||
{"GetRamSize", syscalls_getRamSize},
|
||||
{ "GetRamSize", syscalls_getRamSize },
|
||||
{"GetFreeRam", syscalls_getFreeRam},
|
||||
{"GetCPUClock", syscalls_getCPUClock},
|
||||
{"ShutdownPowerOff", syscalls_shutdownPowerOff},
|
||||
|
@@ -4,8 +4,9 @@
|
||||
#include <lua.h>
|
||||
#include <lualib.h>
|
||||
#include <lauxlib.h>
|
||||
#include <sys/ksys.h>
|
||||
|
||||
inline void syscalls_ReturnIntegerOrNil(LUA_INTEGER value, lua_State* L)
|
||||
static inline void syscalls_ReturnIntegerOrNil(LUA_INTEGER value, lua_State* L)
|
||||
{
|
||||
if (value == -1)
|
||||
{
|
||||
@@ -17,7 +18,7 @@ inline void syscalls_ReturnIntegerOrNil(LUA_INTEGER value, lua_State* L)
|
||||
}
|
||||
}
|
||||
|
||||
inline void syscalls_ReturnIntegerValueOrNil(LUA_INTEGER cond, LUA_INTEGER value, lua_State* L)
|
||||
static inline void syscalls_ReturnIntegerValueOrNil(LUA_INTEGER cond, LUA_INTEGER value, lua_State* L)
|
||||
{
|
||||
if (cond == -1)
|
||||
{
|
||||
@@ -29,7 +30,7 @@ inline void syscalls_ReturnIntegerValueOrNil(LUA_INTEGER cond, LUA_INTEGER value
|
||||
}
|
||||
}
|
||||
|
||||
inline void syscalls_ReturnTrueOrNil(LUA_INTEGER value, lua_State* L)
|
||||
static inline void syscalls_ReturnTrueOrNil(LUA_INTEGER value, lua_State* L)
|
||||
{
|
||||
if (value == -1)
|
||||
{
|
||||
@@ -41,7 +42,7 @@ inline void syscalls_ReturnTrueOrNil(LUA_INTEGER value, lua_State* L)
|
||||
}
|
||||
}
|
||||
|
||||
inline void syscalls_ReturnStringOrNil(LUA_INTEGER cond, const char* value, lua_State* L)
|
||||
static inline void syscalls_ReturnStringOrNil(LUA_INTEGER cond, const char* value, lua_State* L)
|
||||
{
|
||||
if (cond == -1)
|
||||
{
|
||||
@@ -57,4 +58,23 @@ inline void syscalls_ReturnStringOrNil(LUA_INTEGER cond, const char* value, lua_
|
||||
#define LUA_PUSH_STRING_FIELD(L, val, name) lua_pushstring(L, val); lua_setfield(L, -2, name);
|
||||
#define LUA_PUSH_NUMBER_FIELD(L, val, name) lua_pushnumber(L, val); lua_setfield(L, -2, name);
|
||||
|
||||
static inline ksys_pos_t syscalls_check_pos_t(lua_State* L, int index)
|
||||
{
|
||||
ksys_pos_t pos;
|
||||
|
||||
pos.x = luaL_checkinteger(L, index);
|
||||
pos.y = luaL_checkinteger(L, index + 1);
|
||||
|
||||
return pos;
|
||||
}
|
||||
|
||||
static inline void syscalls_push_pos_t(lua_State* L, ksys_pos_t pos)
|
||||
{
|
||||
lua_createtable(L, 0, 2);
|
||||
|
||||
LUA_PUSH_INTEGER_FIELD(L, pos.x, "x");
|
||||
|
||||
LUA_PUSH_INTEGER_FIELD(L, pos.y, "y");
|
||||
}
|
||||
|
||||
#endif // __SYSCALLS_H__
|
||||
|
Reference in New Issue
Block a user