summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjussi2025-01-16 19:58:28 +0200
committerjussi2025-01-16 19:58:28 +0200
commit6ddaea56a5b2181880da194f28d10c4710979c71 (patch)
treed416597f2236149e6fba69fbbad1663f87cd7484
parent5d70906aaf6f4336adcf1d96100b2150db4df904 (diff)
downloadreilua-enhanced-6ddaea56a5b2181880da194f28d10c4710979c71.tar.gz
reilua-enhanced-6ddaea56a5b2181880da194f28d10c4710979c71.tar.bz2
reilua-enhanced-6ddaea56a5b2181880da194f28d10c4710979c71.zip
BUFFER_UNSIGNED_LONG and BUFFER_LONG.
-rw-r--r--API.md28
-rw-r--r--ReiLua_API.lua14
-rw-r--r--changelog1
-rw-r--r--docgen.lua6
-rw-r--r--include/lua_core.h2
-rw-r--r--src/core.c56
-rw-r--r--src/lua_core.c2
7 files changed, 93 insertions, 16 deletions
diff --git a/API.md b/API.md
index b4d51e0..1c3feba 100644
--- a/API.md
+++ b/API.md
@@ -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)
diff --git a/changelog b/changelog
index 0517469..f02a02c 100644
--- a/changelog
+++ b/changelog
@@ -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
diff --git a/docgen.lua b/docgen.lua
index bb9560e..c1951b2 100644
--- a/docgen.lua
+++ b/docgen.lua
@@ -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
};
diff --git a/src/core.c b/src/core.c
index a84f7b2..3353ae0 100644
--- a/src/core.c
+++ b/src/core.c
@@ -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*/