diff options
| -rw-r--r-- | CMakeLists.txt | 9 | ||||
| -rw-r--r-- | changelog | 1 | ||||
| -rw-r--r-- | devnotes | 4 | ||||
| -rw-r--r-- | examples/resources/lib/color.lua | 4 | ||||
| -rw-r--r-- | examples/resources/lib/quaternion.lua | 4 | ||||
| -rw-r--r-- | examples/resources/lib/rune.lua | 4 | ||||
| -rw-r--r-- | examples/resources/lib/vector2.lua | 4 | ||||
| -rw-r--r-- | examples/resources/lib/vector3.lua | 4 | ||||
| -rw-r--r-- | src/lua_core.c | 2 | ||||
| -rw-r--r-- | src/platforms/core_desktop.c | 2 | ||||
| -rw-r--r-- | src/platforms/core_desktop_sdl.c | 4 |
11 files changed, 29 insertions, 13 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 92a6026..094dd67 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,7 @@ set( CMAKE_C_STANDARD 99 ) # Requires C99 standard option( SHARED "Build using dynamic libraries." off ) option( LUAJIT "Use LuaJIT." off ) +option( LUA_EVENTS "Enable Lua event callbacks (RL.event)." off ) enum_option( PLATFORM "Desktop;Desktop_SDL;Web" "Platform to build for." ) @@ -33,6 +34,10 @@ elseif( PLATFORM STREQUAL "Web" ) set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DPLATFORM_WEB" ) endif() +if( LUA_EVENTS ) + set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DLUA_EVENTS" ) +endif() + if( PLATFORM STREQUAL "Web" ) target_link_libraries( ${PROJECT_NAME} ${CMAKE_SOURCE_DIR}/lib/web/libraylib.a ) target_link_libraries( ${PROJECT_NAME} ${CMAKE_SOURCE_DIR}/lib/web/liblua.a ) @@ -77,7 +82,7 @@ else() # Desktop target_link_libraries( ${PROJECT_NAME} ${SDL2_LIBRARIES} ) endif() - if( DRM ) # Mainly for Raspberry Pi + if( DRM ) # For Raspberry Pi # target_link_libraries( ${PROJECT_NAME} GLESv2 EGL drm gbm rt bcm_host m dl pthread ) # target_link_libraries( ${PROJECT_NAME} GLESv2 EGL drm gbm pthread rt m dl ) target_link_libraries( ${PROJECT_NAME} raylib GLESv2 EGL pthread rt m gbm drm dl atomic ) @@ -87,6 +92,8 @@ else() # Desktop elseif( APPLE ) set( CMAKE_C_COMPILER "clang" ) + # TODO Linking to sdl2. + target_link_libraries( ${PROJECT_NAME} "-framework IOKit" ) target_link_libraries( ${PROJECT_NAME} "-framework Cocoa" ) target_link_libraries( ${PROJECT_NAME} "-framework OpenGL" ) @@ -36,6 +36,7 @@ KEY CHANGES: - ADDED: Text codepoints management functions. - ADDED: Rune, UTF8 lib. - CHANGE: Raygui styles include properties, texture and font. + - ADDED: Build option for Lua events that is off by default. DETAILED CHANGES: - REMOVED: DrawLineBezierQuad, DrawLineBezierCubic. @@ -2,6 +2,9 @@ Current { } Backlog { + * Godot scene importer lib. + * Script to find unimplemented raylib functions. Should have list for fuctions that will not + be implemented. * Raygui lib * Check if could remove flickering from changing draw order by making queue for order changing and only change them after everything is drawn. @@ -22,6 +25,7 @@ Backlog { } Bugs { + * glfwSet*Callback functions segfault on Windows. Should keep Lua events off. } Needs Testing { diff --git a/examples/resources/lib/color.lua b/examples/resources/lib/color.lua index 1344dba..9369a34 100644 --- a/examples/resources/lib/color.lua +++ b/examples/resources/lib/color.lua @@ -6,7 +6,7 @@ end local Vector3 = require( "vector3" ) local Color = {} -Color.meta = { +local metatable = { __index = Color, __tostring = function( c ) return "{"..math.floor( c.r )..", "..math.floor( c.g )..", "..math.floor( c.b )..", "..math.floor( c.a ).."}" @@ -57,7 +57,7 @@ function Color:new( r, g, b, a ) a = 255 end - local object = setmetatable( {}, Color.meta ) + local object = setmetatable( {}, metatable ) object.r = r object.g = g diff --git a/examples/resources/lib/quaternion.lua b/examples/resources/lib/quaternion.lua index e85415c..56b5c49 100644 --- a/examples/resources/lib/quaternion.lua +++ b/examples/resources/lib/quaternion.lua @@ -7,7 +7,7 @@ local Vector3 = require( "vector3" ) local Matrix = require( "matrix" ) local Quaternion = {} -Quaternion.meta = { +local metatable = { __index = Quaternion, __tostring = function( q ) return "{"..tostring( q.x )..", "..tostring( q.y )..", "..tostring( q.z )..", "..tostring( q.w ).."}" @@ -45,7 +45,7 @@ function Quaternion:new( x, y, z, w ) x, y, z, w = 0, 0, 0, 1 -- QuaternionIdentity. end - local object = setmetatable( {}, Quaternion.meta ) + local object = setmetatable( {}, metatable ) object.x = x object.y = y diff --git a/examples/resources/lib/rune.lua b/examples/resources/lib/rune.lua index 5809da3..fa9f59d 100644 --- a/examples/resources/lib/rune.lua +++ b/examples/resources/lib/rune.lua @@ -4,7 +4,7 @@ if table.unpack == nil then end local Rune = {} -Rune.meta = { +local metatable = { __index = Rune, __tostring = function( r ) return r.string @@ -27,7 +27,7 @@ function Rune:new( string ) string = "" end - local object = setmetatable( {}, Rune.meta ) + local object = setmetatable( {}, metatable ) object.string = string diff --git a/examples/resources/lib/vector2.lua b/examples/resources/lib/vector2.lua index 065e556..d66cd07 100644 --- a/examples/resources/lib/vector2.lua +++ b/examples/resources/lib/vector2.lua @@ -4,7 +4,7 @@ if table.unpack == nil then end local Vector2 = {} -Vector2.meta = { +local metatable = { __index = Vector2, __tostring = function( v ) return "{"..tostring( v.x )..", "..tostring( v.y ).."}" @@ -48,7 +48,7 @@ function Vector2:new( x, y ) x, y = 0, 0 end - local object = setmetatable( {}, Vector2.meta ) + local object = setmetatable( {}, metatable ) object.x = x object.y = y diff --git a/examples/resources/lib/vector3.lua b/examples/resources/lib/vector3.lua index 9b77881..037e440 100644 --- a/examples/resources/lib/vector3.lua +++ b/examples/resources/lib/vector3.lua @@ -6,7 +6,7 @@ end local Vector2 = require( "vector2" ) local Vector3 = {} -Vector3.meta = { +local metatable = { __index = Vector3, __tostring = function( v ) return "{"..tostring( v.x )..", "..tostring( v.y )..", "..tostring( v.z ).."}" @@ -50,7 +50,7 @@ function Vector3:new( x, y, z ) x, y, z = 0, 0, 0 end - local object = setmetatable( {}, Vector3.meta ) + local object = setmetatable( {}, metatable ) object.x = x object.y = y diff --git a/src/lua_core.c b/src/lua_core.c index 970a2ba..3ce5474 100644 --- a/src/lua_core.c +++ b/src/lua_core.c @@ -1129,7 +1129,7 @@ bool luaCallMain() { void luaCallProcess() { -#ifdef PLATFORM_DESKTOP_SDL +#if defined PLATFORM_DESKTOP_SDL && defined LUA_EVENTS platformSendEvents(); #endif lua_State *L = state->luaState; diff --git a/src/platforms/core_desktop.c b/src/platforms/core_desktop.c index a9c9527..3d62f53 100644 --- a/src/platforms/core_desktop.c +++ b/src/platforms/core_desktop.c @@ -649,5 +649,7 @@ void luaPlatformRegister() { lua_pop( L, -1 ); +#ifdef LUA_EVENTS platformRegisterEvents(); +#endif } diff --git a/src/platforms/core_desktop_sdl.c b/src/platforms/core_desktop_sdl.c index 9ad1c58..4ef7705 100644 --- a/src/platforms/core_desktop_sdl.c +++ b/src/platforms/core_desktop_sdl.c @@ -555,5 +555,7 @@ void luaPlatformRegister() { lua_pop( L, -1 ); - platformRegisterEvents() +#ifdef LUA_EVENTS + platformRegisterEvents(); +#endif } |
