diff options
| -rw-r--r-- | API.md | 28 | ||||
| -rw-r--r-- | ReiLua_API.lua | 14 | ||||
| -rw-r--r-- | changelog | 1 | ||||
| -rw-r--r-- | docgen.lua | 6 | ||||
| -rw-r--r-- | include/lua_core.h | 2 | ||||
| -rw-r--r-- | src/core.c | 56 | ||||
| -rw-r--r-- | src/lua_core.c | 2 |
7 files changed, 93 insertions, 16 deletions
@@ -129,9 +129,9 @@ textureData = { RenderTexture, fbo for texture rendering ``` renderTextureData = { - id = unsigned int, --OpenGL texture id - texture = Texture, --Texture base width - depth = Texture, --Texture base height + id = unsigned int, --OpenGL framebuffer object id + texture = Texture, --Color buffer attachment texture + depth = Texture, --Depth buffer attachment texture } ``` @@ -4478,31 +4478,43 @@ C type unsigned int --- -> BUFFER_CHAR = 3 +> BUFFER_UNSIGNED_LONG = 3 + +C type unsigned long + +--- + +> BUFFER_CHAR = 4 C type char --- -> BUFFER_SHORT = 4 +> BUFFER_SHORT = 5 C type short --- -> BUFFER_INT = 5 +> BUFFER_INT = 6 C type int --- -> BUFFER_FLOAT = 6 +> BUFFER_LONG = 7 + +C type long + +--- + +> BUFFER_FLOAT = 8 C type float --- -> BUFFER_DOUBLE = 7 +> BUFFER_DOUBLE = 9 C type double diff --git a/ReiLua_API.lua b/ReiLua_API.lua index d08eae6..a33cc05 100644 --- a/ReiLua_API.lua +++ b/ReiLua_API.lua @@ -1480,16 +1480,20 @@ RL.BUFFER_UNSIGNED_CHAR=0 RL.BUFFER_UNSIGNED_SHORT=1 ---C type unsigned int RL.BUFFER_UNSIGNED_INT=2 +---C type unsigned long +RL.BUFFER_UNSIGNED_LONG=3 ---C type char -RL.BUFFER_CHAR=3 +RL.BUFFER_CHAR=4 ---C type short -RL.BUFFER_SHORT=4 +RL.BUFFER_SHORT=5 ---C type int -RL.BUFFER_INT=5 +RL.BUFFER_INT=6 +---C type long +RL.BUFFER_LONG=7 ---C type float -RL.BUFFER_FLOAT=6 +RL.BUFFER_FLOAT=8 ---C type double -RL.BUFFER_DOUBLE=7 +RL.BUFFER_DOUBLE=9 -- Defines - Keyboard keys (US keyboard layout) @@ -32,6 +32,7 @@ DETAILED CHANGES: - ADDED: Gui Icons enumeration. - ADDED: SwapBufferEndianness. - ADDED: Reference lib. + - ADDED: BUFFER_UNSIGNED_LONG and BUFFER_LONG. ------------------------------------------------------------------------ Release: ReiLua version 0.8.0 Using Raylib 5.0 and Forked Raygui 4.0 @@ -190,9 +190,9 @@ apiFile:write( "\n> RenderTexture = Userdata\n\ RenderTexture, fbo for texture rendering\ ```\ renderTextureData = {\ - id = unsigned int, --OpenGL texture id\ - texture = Texture, --Texture base width\ - depth = Texture, --Texture base height\ + id = unsigned int, --OpenGL framebuffer object id\ + texture = Texture, --Color buffer attachment texture\ + depth = Texture, --Depth buffer attachment texture\ }\ ```\n\n---\n" ) apiFile:write( "\n> Font = Userdata\n\ diff --git a/include/lua_core.h b/include/lua_core.h index 161c39a..e7c45fb 100644 --- a/include/lua_core.h +++ b/include/lua_core.h @@ -26,9 +26,11 @@ enum BufferType { BUFFER_UNSIGNED_CHAR, BUFFER_UNSIGNED_SHORT, BUFFER_UNSIGNED_INT, + BUFFER_UNSIGNED_LONG, BUFFER_CHAR, BUFFER_SHORT, BUFFER_INT, + BUFFER_LONG, BUFFER_FLOAT, BUFFER_DOUBLE }; @@ -9,9 +9,11 @@ static size_t getBufferElementSize( Buffer* buffer ) { case BUFFER_UNSIGNED_CHAR: return sizeof( unsigned char ); case BUFFER_UNSIGNED_SHORT: return sizeof( unsigned short ); case BUFFER_UNSIGNED_INT: return sizeof( unsigned int ); + case BUFFER_UNSIGNED_LONG: return sizeof( unsigned long ); case BUFFER_CHAR: return sizeof( char ); case BUFFER_SHORT: return sizeof( short ); case BUFFER_INT: return sizeof( int ); + case BUFFER_LONG: return sizeof( long ); case BUFFER_FLOAT: return sizeof( float ); case BUFFER_DOUBLE: return sizeof( double ); } @@ -3631,9 +3633,11 @@ int lcoreLoadBuffer( lua_State* L ) { unsigned char* ucp = buffer.data; unsigned short* usp = buffer.data; unsigned int* uip = buffer.data; + unsigned long* ulp = buffer.data; char* cp = buffer.data; short* sp = buffer.data; int* ip = buffer.data; + long* lp = buffer.data; float* fp = buffer.data; double* dp = buffer.data; @@ -3653,6 +3657,10 @@ int lcoreLoadBuffer( lua_State* L ) { *uip = (unsigned int)lua_tointeger( L, -1 ); uip++; break; + case BUFFER_UNSIGNED_LONG: + *ulp = (unsigned long)lua_tointeger( L, -1 ); + ulp++; + break; case BUFFER_CHAR: *cp = (char)lua_tointeger( L, -1 ); cp++; @@ -3665,6 +3673,10 @@ int lcoreLoadBuffer( lua_State* L ) { *ip = (int)lua_tointeger( L, -1 ); ip++; break; + case BUFFER_LONG: + *lp = (long)lua_tointeger( L, -1 ); + lp++; + break; case BUFFER_FLOAT: *fp = (float)lua_tonumber( L, -1 ); fp++; @@ -3828,9 +3840,11 @@ int lcoreSetBufferData( lua_State* L ) { unsigned char* ucp = buffer->data + offset; unsigned short* usp = buffer->data + offset; unsigned int* uip = buffer->data + offset; + unsigned long* ulp = buffer->data + offset; char* cp = buffer->data + offset; short* sp = buffer->data + offset; int* ip = buffer->data + offset; + long* lp = buffer->data + offset; float* fp = buffer->data + offset; double* dp = buffer->data + offset; @@ -3844,6 +3858,9 @@ int lcoreSetBufferData( lua_State* L ) { case BUFFER_UNSIGNED_INT: *uip = (unsigned int)lua_tointeger( L, -1 ); break; + case BUFFER_UNSIGNED_LONG: + *ulp = (unsigned long)lua_tointeger( L, -1 ); + break; case BUFFER_CHAR: *cp = (char)lua_tointeger( L, -1 ); break; @@ -3853,6 +3870,9 @@ int lcoreSetBufferData( lua_State* L ) { case BUFFER_INT: *ip = (int)lua_tointeger( L, -1 ); break; + case BUFFER_LONG: + *lp = (long)lua_tointeger( L, -1 ); + break; case BUFFER_FLOAT: *fp = (float)lua_tonumber( L, -1 ); break; @@ -3893,6 +3913,14 @@ int lcoreSwapBufferEndianness( lua_State* L ) { p++; } } + else if ( buffer->type == BUFFER_UNSIGNED_LONG ) { + unsigned long *p = buffer->data; + + for ( int i = 0; i < bufLen; i++ ) { + *p = swapU64( *p ); + p++; + } + } else if ( buffer->type == BUFFER_SHORT ) { short *p = buffer->data; @@ -3909,6 +3937,14 @@ int lcoreSwapBufferEndianness( lua_State* L ) { p++; } } + else if ( buffer->type == BUFFER_LONG ) { + long *p = buffer->data; + + for ( int i = 0; i < bufLen; i++ ) { + *p = swapS64( *p ); + p++; + } + } else if ( buffer->type == BUFFER_FLOAT ) { float *p = buffer->data; @@ -3974,6 +4010,16 @@ int lcoreGetBufferData( lua_State* L ) { p++; } } + else if ( buffer->type == BUFFER_UNSIGNED_LONG ) { + unsigned long* p = buffer->data + position * sizeof( unsigned long ); + lua_createtable( L, count, 0 ); + + for ( int i = 0; i < count; i++ ) { + lua_pushinteger( L, (unsigned long)*p ); + lua_rawseti( L, -2, i+1 ); + p++; + } + } else if ( buffer->type == BUFFER_CHAR ) { char* p = buffer->data + position * sizeof( char ); lua_createtable( L, count, 0 ); @@ -4004,6 +4050,16 @@ int lcoreGetBufferData( lua_State* L ) { p++; } } + else if ( buffer->type == BUFFER_LONG ) { + long* p = buffer->data + position * sizeof( long ); + lua_createtable( L, count, 0 ); + + for ( int i = 0; i < count; i++ ) { + lua_pushinteger( L, (long)*p ); + lua_rawseti( L, -2, i+1 ); + p++; + } + } else if ( buffer->type == BUFFER_FLOAT ) { float* p = buffer->data + position * sizeof( float ); lua_createtable( L, count, 0 ); diff --git a/src/lua_core.c b/src/lua_core.c index 95f9ff0..8483b16 100644 --- a/src/lua_core.c +++ b/src/lua_core.c @@ -1241,9 +1241,11 @@ static void defineGlobals() { assignGlobalInt( BUFFER_UNSIGNED_CHAR, "BUFFER_UNSIGNED_CHAR" ); // C type unsigned char assignGlobalInt( BUFFER_UNSIGNED_SHORT, "BUFFER_UNSIGNED_SHORT" ); // C type unsigned short assignGlobalInt( BUFFER_UNSIGNED_INT, "BUFFER_UNSIGNED_INT" ); // C type unsigned int + assignGlobalInt( BUFFER_UNSIGNED_LONG, "BUFFER_UNSIGNED_LONG" ); // C type unsigned long assignGlobalInt( BUFFER_CHAR, "BUFFER_CHAR" ); // C type char assignGlobalInt( BUFFER_SHORT, "BUFFER_SHORT" ); // C type short assignGlobalInt( BUFFER_INT, "BUFFER_INT" ); // C type int + assignGlobalInt( BUFFER_LONG, "BUFFER_LONG" ); // C type long assignGlobalInt( BUFFER_FLOAT, "BUFFER_FLOAT" ); // C type float assignGlobalInt( BUFFER_DOUBLE, "BUFFER_DOUBLE" ); // C type double /*DOC_DEFINES_END*/ |
