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"
|
"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",
|
"name": "Debug",
|
||||||
"includePath": [
|
"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
|
Debug_O = src/debug/debug.o src/debug/registers.o
|
||||||
Version_O = src/version/coreversion.o src/version/version_type.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)
|
syscalls.dll: $(ALL_O)
|
||||||
$(LD) -shared -T dll.lds --entry _DllStartup $(LDFLAGS) -o $@ $(ALL_O) $(LIBS)
|
$(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/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/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/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
|
## headers
|
||||||
|
|
||||||
@@ -71,3 +72,4 @@ src/debug/debug.h: src/syscalls.h
|
|||||||
src/debug/registers.h: src/syscalls.h
|
src/debug/registers.h: src/syscalls.h
|
||||||
src/version/coreversion.h: src/version/version_type.h
|
src/version/coreversion.h: src/version/version_type.h
|
||||||
src/version/version_type.h: src/syscalls.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 "graphic.h"
|
||||||
#include "version/coreversion.h"
|
#include "version/coreversion.h"
|
||||||
#include "version/library_version.h"
|
#include "version/library_version.h"
|
||||||
|
#include "background/background.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Режим ввода с клавиатуры
|
Режим ввода с клавиатуры
|
||||||
@@ -107,7 +108,7 @@ static int syscalls_SetSkin(lua_State* L)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int syscalls_GetSkinTilteArea(lua_State* L)
|
static int syscalls_GetSkinTitleArea(lua_State* L)
|
||||||
{
|
{
|
||||||
ksys_pos_t leftRight, topBottom;
|
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)
|
static int syscalls_getCPUClock(lua_State* L)
|
||||||
{
|
{
|
||||||
lua_pushinteger(L, _ksys_get_cpu_clock());
|
lua_pushinteger(L, _ksys_get_cpu_clock());
|
||||||
@@ -1495,7 +1465,7 @@ static const luaL_Reg syscallsLib[] = {
|
|||||||
{"SetWindowTitle", syscalls_setWindowTitle},
|
{"SetWindowTitle", syscalls_setWindowTitle},
|
||||||
{"GetSkinHeight", syscalls_getSkinHeight},
|
{"GetSkinHeight", syscalls_getSkinHeight},
|
||||||
{"SetSkin", syscalls_SetSkin},
|
{"SetSkin", syscalls_SetSkin},
|
||||||
{"GetSkinTitleArea", syscalls_GetSkinTilteArea},
|
{"GetSkinTitleArea", syscalls_GetSkinTitleArea},
|
||||||
/* Buttons funcs*/
|
/* Buttons funcs*/
|
||||||
{"DefineButton", syscalls_defineButton},
|
{"DefineButton", syscalls_defineButton},
|
||||||
{"DeleteButton", syscalls_deleteButton},
|
{"DeleteButton", syscalls_deleteButton},
|
||||||
@@ -1510,6 +1480,11 @@ static const luaL_Reg syscallsLib[] = {
|
|||||||
{ "BackgroundSetSize", syscalls_backgroundSetSize },
|
{ "BackgroundSetSize", syscalls_backgroundSetSize },
|
||||||
{ "BackgroundPutPixel", syscalls_backgroundPutPixel },
|
{ "BackgroundPutPixel", syscalls_backgroundPutPixel },
|
||||||
{ "BackgroundRedraw", syscalls_backgroundRedraw },
|
{ "BackgroundRedraw", syscalls_backgroundRedraw },
|
||||||
|
{ "BackgroundSetDrawMode", syscalls_backgroundSetDrawMode },
|
||||||
|
{ "BackgroundGetDrawMode", syscalls_backgroundGetDrawMode },
|
||||||
|
{ "BackgroundOpenMap", syscalls_backgroundOpenMap },
|
||||||
|
{ "BackgroundCloseMap", syscalls_backgroundCloseMap },
|
||||||
|
{ "BackgroundRedrawArea", syscalls_backgroundRedrawArea },
|
||||||
/* system funcs */
|
/* system funcs */
|
||||||
{ "GetRamSize", syscalls_getRamSize },
|
{ "GetRamSize", syscalls_getRamSize },
|
||||||
{"GetFreeRam", syscalls_getFreeRam},
|
{"GetFreeRam", syscalls_getFreeRam},
|
||||||
|
@@ -4,8 +4,9 @@
|
|||||||
#include <lua.h>
|
#include <lua.h>
|
||||||
#include <lualib.h>
|
#include <lualib.h>
|
||||||
#include <lauxlib.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)
|
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)
|
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)
|
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)
|
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_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);
|
#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__
|
#endif // __SYSCALLS_H__
|
||||||
|
Reference in New Issue
Block a user