summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjussi2024-02-10 21:06:09 +0200
committerjussi2024-02-10 21:06:09 +0200
commit6557a2ebca62c6670736b4ec2914a2aca60dbdba (patch)
tree03a839d7eb4b9bddf3a694a163724ca8d59c819e
parenteda4eacfce4f62ca09fb4f6559f9b7aeabe3cc31 (diff)
downloadreilua-enhanced-6557a2ebca62c6670736b4ec2914a2aca60dbdba.tar.gz
reilua-enhanced-6557a2ebca62c6670736b4ec2914a2aca60dbdba.tar.bz2
reilua-enhanced-6557a2ebca62c6670736b4ec2914a2aca60dbdba.zip
Build option for Lua events that is off by default.
-rw-r--r--CMakeLists.txt9
-rw-r--r--changelog1
-rw-r--r--devnotes4
-rw-r--r--examples/resources/lib/color.lua4
-rw-r--r--examples/resources/lib/quaternion.lua4
-rw-r--r--examples/resources/lib/rune.lua4
-rw-r--r--examples/resources/lib/vector2.lua4
-rw-r--r--examples/resources/lib/vector3.lua4
-rw-r--r--src/lua_core.c2
-rw-r--r--src/platforms/core_desktop.c2
-rw-r--r--src/platforms/core_desktop_sdl.c4
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" )
diff --git a/changelog b/changelog
index bb7ef67..9b2e855 100644
--- a/changelog
+++ b/changelog
@@ -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.
diff --git a/devnotes b/devnotes
index c5fbe71..73b1b3d 100644
--- a/devnotes
+++ b/devnotes
@@ -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
}