|
|
@ -126,7 +126,7 @@ RLUADEF void CloseLuaDevice(void); // De-initialize Lua system |
|
|
|
#define LuaPush_SpriteFont(L, sf) LuaPushOpaqueTypeWithMetatable(L, sf, SpriteFont) |
|
|
|
#define LuaPush_Mesh(L, vd) LuaPushOpaqueType(L, vd) |
|
|
|
#define LuaPush_Shader(L, s) LuaPushOpaqueType(L, s) |
|
|
|
#define LuaPush_Light(L, light) LuaPushOpaqueType(L, light) |
|
|
|
#define LuaPush_Light(L, light) LuaPushOpaqueTypeWithMetatable(L, light, Light) |
|
|
|
#define LuaPush_Sound(L, snd) LuaPushOpaqueType(L, snd) |
|
|
|
#define LuaPush_Wave(L, wav) LuaPushOpaqueType(L, wav) |
|
|
|
#define LuaPush_Music(L, mus) LuaPushOpaqueType(L, mus) |
|
|
@ -263,6 +263,8 @@ static int LuaIndexTexture2D(lua_State* L) |
|
|
|
lua_pushinteger(L, img.mipmaps); |
|
|
|
else if (!strcmp(key, "format")) |
|
|
|
lua_pushinteger(L, img.format); |
|
|
|
else if (!strcmp(key, "id")) |
|
|
|
lua_pushinteger(L, img.id); |
|
|
|
else |
|
|
|
return 0; |
|
|
|
return 1; |
|
|
@ -296,6 +298,58 @@ static int LuaIndexSpriteFont(lua_State* L) |
|
|
|
return 1; |
|
|
|
} |
|
|
|
|
|
|
|
static int LuaIndexLight(lua_State* L) |
|
|
|
{ |
|
|
|
Light light = LuaGetArgument_Light(L, 1); |
|
|
|
const char *key = luaL_checkstring(L, 2); |
|
|
|
if (!strcmp(key, "id")) |
|
|
|
lua_pushinteger(L, light->id); |
|
|
|
else if (!strcmp(key, "enabled")) |
|
|
|
lua_pushboolean(L, light->enabled); |
|
|
|
else if (!strcmp(key, "type")) |
|
|
|
lua_pushinteger(L, light->type); |
|
|
|
else if (!strcmp(key, "position")) |
|
|
|
LuaPush_Vector3(L, light->position); |
|
|
|
else if (!strcmp(key, "target")) |
|
|
|
LuaPush_Vector3(L, light->target); |
|
|
|
else if (!strcmp(key, "radius")) |
|
|
|
lua_pushnumber(L, light->radius); |
|
|
|
else if (!strcmp(key, "diffuse")) |
|
|
|
LuaPush_Color(L, light->diffuse); |
|
|
|
else if (!strcmp(key, "intensity")) |
|
|
|
lua_pushnumber(L, light->intensity); |
|
|
|
else if (!strcmp(key, "coneAngle")) |
|
|
|
lua_pushnumber(L, light->coneAngle); |
|
|
|
else |
|
|
|
return 0; |
|
|
|
return 1; |
|
|
|
} |
|
|
|
|
|
|
|
static int LuaNewIndexLight(lua_State* L) |
|
|
|
{ |
|
|
|
Light light = LuaGetArgument_Light(L, 1); |
|
|
|
const char *key = luaL_checkstring(L, 2); |
|
|
|
if (!strcmp(key, "id")) |
|
|
|
light->id = LuaGetArgument_int(L, 3); |
|
|
|
else if (!strcmp(key, "enabled")) |
|
|
|
light->enabled = lua_toboolean(L, 3); |
|
|
|
else if (!strcmp(key, "type")) |
|
|
|
light->type = LuaGetArgument_int(L, 3); |
|
|
|
else if (!strcmp(key, "position")) |
|
|
|
light->position = LuaGetArgument_Vector3(L, 3); |
|
|
|
else if (!strcmp(key, "target")) |
|
|
|
light->target = LuaGetArgument_Vector3(L, 3); |
|
|
|
else if (!strcmp(key, "radius")) |
|
|
|
light->radius = LuaGetArgument_float(L, 3); |
|
|
|
else if (!strcmp(key, "diffuse")) |
|
|
|
light->diffuse = LuaGetArgument_Color(L, 3); |
|
|
|
else if (!strcmp(key, "intensity")) |
|
|
|
light->intensity = LuaGetArgument_float(L, 3); |
|
|
|
else if (!strcmp(key, "coneAngle")) |
|
|
|
light->coneAngle = LuaGetArgument_float(L, 3); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
static void LuaBuildOpaqueMetatables(void) |
|
|
|
{ |
|
|
|
luaL_newmetatable(L, "Image"); |
|
|
@ -313,10 +367,17 @@ static void LuaBuildOpaqueMetatables(void) |
|
|
|
lua_setfield(L, -2, "__index"); |
|
|
|
lua_pop(L, 1); |
|
|
|
|
|
|
|
luaL_newmetatable(L, "SpriteFont"); |
|
|
|
lua_pushcfunction(L, &LuaIndexSpriteFont); |
|
|
|
lua_setfield(L, -2, "__index"); |
|
|
|
lua_pop(L, 1); |
|
|
|
luaL_newmetatable(L, "SpriteFont"); |
|
|
|
lua_pushcfunction(L, &LuaIndexSpriteFont); |
|
|
|
lua_setfield(L, -2, "__index"); |
|
|
|
lua_pop(L, 1); |
|
|
|
|
|
|
|
luaL_newmetatable(L, "Light"); |
|
|
|
lua_pushcfunction(L, &LuaIndexLight); |
|
|
|
lua_setfield(L, -2, "__index"); |
|
|
|
lua_pushcfunction(L, &LuaNewIndexLight); |
|
|
|
lua_setfield(L, -2, "__newindex"); |
|
|
|
lua_pop(L, 1); |
|
|
|
} |
|
|
|
|
|
|
|
//---------------------------------------------------------------------------------- |
|
|
@ -1057,15 +1118,20 @@ int lua_IsFileDropped(lua_State* L) |
|
|
|
lua_pushboolean(L, result); |
|
|
|
return 1; |
|
|
|
} |
|
|
|
/* |
|
|
|
int lua_*GetDroppedFiles(lua_State* L) |
|
|
|
|
|
|
|
int lua_GetDroppedFiles(lua_State* L) |
|
|
|
{ |
|
|
|
int * arg1 = LuaGetArgument_int *(L, 1); |
|
|
|
//char * result = *GetDroppedFiles(arg1); |
|
|
|
LuaPush_//char *(L, result); |
|
|
|
return 1; |
|
|
|
int count = 0; |
|
|
|
char ** result = GetDroppedFiles(&count); |
|
|
|
lua_createtable(L, count, 0); |
|
|
|
for (int i = 0; i < count; i++) |
|
|
|
{ |
|
|
|
lua_pushstring(L, result[i]); |
|
|
|
lua_rawseti(L, -2, i + 1); |
|
|
|
} |
|
|
|
return 1; |
|
|
|
} |
|
|
|
*/ |
|
|
|
|
|
|
|
int lua_ClearDroppedFiles(lua_State* L) |
|
|
|
{ |
|
|
|
ClearDroppedFiles(); |
|
|
@ -1638,7 +1704,6 @@ int lua_DrawPoly(lua_State* L) |
|
|
|
sz++; \ |
|
|
|
lua_pop(L, 1); \ |
|
|
|
} \ |
|
|
|
lua_pop(L, 1); \ |
|
|
|
name = calloc(sz, sizeof(type)); \ |
|
|
|
sz = 0; \ |
|
|
|
lua_pushnil(L); \ |
|
|
@ -2334,7 +2399,12 @@ int lua_DrawGizmo(lua_State* L) |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
// TODO: DrawLight(Light light); |
|
|
|
int lua_DrawLight(lua_State* L) |
|
|
|
{ |
|
|
|
Light arg1 = LuaGetArgument_Light(L, 1); |
|
|
|
DrawLight(arg1); |
|
|
|
return 0; |
|
|
|
} |
|
|
|
|
|
|
|
int lua_Draw3DLine(lua_State* L) |
|
|
|
{ |
|
|
@ -3544,7 +3614,7 @@ static luaL_Reg raylib_functions[] = { |
|
|
|
REG(ShowLogo) |
|
|
|
|
|
|
|
REG(IsFileDropped) |
|
|
|
o">//REG(*GetDroppedFiles) |
|
|
|
REG(GetDroppedFiles) |
|
|
|
REG(ClearDroppedFiles) |
|
|
|
REG(StorageSaveValue) |
|
|
|
REG(StorageLoadValue) |
|
|
@ -3698,6 +3768,8 @@ static luaL_Reg raylib_functions[] = { |
|
|
|
REG(DrawRay) |
|
|
|
REG(DrawGrid) |
|
|
|
REG(DrawGizmo) |
|
|
|
|
|
|
|
REG(DrawLight) |
|
|
|
|
|
|
|
REG(LoadModel) |
|
|
|
REG(LoadModelEx) |
|
|
|