BUFFER_UNSIGNED_LONG and BUFFER_LONG.

This commit is contained in:
jussi
2025-01-16 19:58:28 +02:00
parent 5d70906aaf
commit 6ddaea56a5
7 changed files with 93 additions and 16 deletions

28
API.md
View File

@@ -129,9 +129,9 @@ textureData = {
RenderTexture, fbo for texture rendering RenderTexture, fbo for texture rendering
``` ```
renderTextureData = { renderTextureData = {
id = unsigned int, --OpenGL texture id id = unsigned int, --OpenGL framebuffer object id
texture = Texture, --Texture base width texture = Texture, --Color buffer attachment texture
depth = Texture, --Texture base height 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 C type char
--- ---
> BUFFER_SHORT = 4 > BUFFER_SHORT = 5
C type short C type short
--- ---
> BUFFER_INT = 5 > BUFFER_INT = 6
C type int C type int
--- ---
> BUFFER_FLOAT = 6 > BUFFER_LONG = 7
C type long
---
> BUFFER_FLOAT = 8
C type float C type float
--- ---
> BUFFER_DOUBLE = 7 > BUFFER_DOUBLE = 9
C type double C type double

View File

@@ -1480,16 +1480,20 @@ RL.BUFFER_UNSIGNED_CHAR=0
RL.BUFFER_UNSIGNED_SHORT=1 RL.BUFFER_UNSIGNED_SHORT=1
---C type unsigned int ---C type unsigned int
RL.BUFFER_UNSIGNED_INT=2 RL.BUFFER_UNSIGNED_INT=2
---C type unsigned long
RL.BUFFER_UNSIGNED_LONG=3
---C type char ---C type char
RL.BUFFER_CHAR=3 RL.BUFFER_CHAR=4
---C type short ---C type short
RL.BUFFER_SHORT=4 RL.BUFFER_SHORT=5
---C type int ---C type int
RL.BUFFER_INT=5 RL.BUFFER_INT=6
---C type long
RL.BUFFER_LONG=7
---C type float ---C type float
RL.BUFFER_FLOAT=6 RL.BUFFER_FLOAT=8
---C type double ---C type double
RL.BUFFER_DOUBLE=7 RL.BUFFER_DOUBLE=9
-- Defines - Keyboard keys (US keyboard layout) -- Defines - Keyboard keys (US keyboard layout)

View File

@@ -32,6 +32,7 @@ DETAILED CHANGES:
- ADDED: Gui Icons enumeration. - ADDED: Gui Icons enumeration.
- ADDED: SwapBufferEndianness. - ADDED: SwapBufferEndianness.
- ADDED: Reference lib. - 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 Release: ReiLua version 0.8.0 Using Raylib 5.0 and Forked Raygui 4.0

View File

@@ -190,9 +190,9 @@ apiFile:write( "\n> RenderTexture = Userdata\n\
RenderTexture, fbo for texture rendering\ RenderTexture, fbo for texture rendering\
```\ ```\
renderTextureData = {\ renderTextureData = {\
id = unsigned int, --OpenGL texture id\ id = unsigned int, --OpenGL framebuffer object id\
texture = Texture, --Texture base width\ texture = Texture, --Color buffer attachment texture\
depth = Texture, --Texture base height\ depth = Texture, --Depth buffer attachment texture\
}\ }\
```\n\n---\n" ) ```\n\n---\n" )
apiFile:write( "\n> Font = Userdata\n\ apiFile:write( "\n> Font = Userdata\n\

View File

@@ -26,9 +26,11 @@ enum BufferType {
BUFFER_UNSIGNED_CHAR, BUFFER_UNSIGNED_CHAR,
BUFFER_UNSIGNED_SHORT, BUFFER_UNSIGNED_SHORT,
BUFFER_UNSIGNED_INT, BUFFER_UNSIGNED_INT,
BUFFER_UNSIGNED_LONG,
BUFFER_CHAR, BUFFER_CHAR,
BUFFER_SHORT, BUFFER_SHORT,
BUFFER_INT, BUFFER_INT,
BUFFER_LONG,
BUFFER_FLOAT, BUFFER_FLOAT,
BUFFER_DOUBLE BUFFER_DOUBLE
}; };

View File

@@ -9,9 +9,11 @@ static size_t getBufferElementSize( Buffer* buffer ) {
case BUFFER_UNSIGNED_CHAR: return sizeof( unsigned char ); case BUFFER_UNSIGNED_CHAR: return sizeof( unsigned char );
case BUFFER_UNSIGNED_SHORT: return sizeof( unsigned short ); case BUFFER_UNSIGNED_SHORT: return sizeof( unsigned short );
case BUFFER_UNSIGNED_INT: return sizeof( unsigned int ); case BUFFER_UNSIGNED_INT: return sizeof( unsigned int );
case BUFFER_UNSIGNED_LONG: return sizeof( unsigned long );
case BUFFER_CHAR: return sizeof( char ); case BUFFER_CHAR: return sizeof( char );
case BUFFER_SHORT: return sizeof( short ); case BUFFER_SHORT: return sizeof( short );
case BUFFER_INT: return sizeof( int ); case BUFFER_INT: return sizeof( int );
case BUFFER_LONG: return sizeof( long );
case BUFFER_FLOAT: return sizeof( float ); case BUFFER_FLOAT: return sizeof( float );
case BUFFER_DOUBLE: return sizeof( double ); case BUFFER_DOUBLE: return sizeof( double );
} }
@@ -3631,9 +3633,11 @@ int lcoreLoadBuffer( lua_State* L ) {
unsigned char* ucp = buffer.data; unsigned char* ucp = buffer.data;
unsigned short* usp = buffer.data; unsigned short* usp = buffer.data;
unsigned int* uip = buffer.data; unsigned int* uip = buffer.data;
unsigned long* ulp = buffer.data;
char* cp = buffer.data; char* cp = buffer.data;
short* sp = buffer.data; short* sp = buffer.data;
int* ip = buffer.data; int* ip = buffer.data;
long* lp = buffer.data;
float* fp = buffer.data; float* fp = buffer.data;
double* dp = buffer.data; double* dp = buffer.data;
@@ -3653,6 +3657,10 @@ int lcoreLoadBuffer( lua_State* L ) {
*uip = (unsigned int)lua_tointeger( L, -1 ); *uip = (unsigned int)lua_tointeger( L, -1 );
uip++; uip++;
break; break;
case BUFFER_UNSIGNED_LONG:
*ulp = (unsigned long)lua_tointeger( L, -1 );
ulp++;
break;
case BUFFER_CHAR: case BUFFER_CHAR:
*cp = (char)lua_tointeger( L, -1 ); *cp = (char)lua_tointeger( L, -1 );
cp++; cp++;
@@ -3665,6 +3673,10 @@ int lcoreLoadBuffer( lua_State* L ) {
*ip = (int)lua_tointeger( L, -1 ); *ip = (int)lua_tointeger( L, -1 );
ip++; ip++;
break; break;
case BUFFER_LONG:
*lp = (long)lua_tointeger( L, -1 );
lp++;
break;
case BUFFER_FLOAT: case BUFFER_FLOAT:
*fp = (float)lua_tonumber( L, -1 ); *fp = (float)lua_tonumber( L, -1 );
fp++; fp++;
@@ -3828,9 +3840,11 @@ int lcoreSetBufferData( lua_State* L ) {
unsigned char* ucp = buffer->data + offset; unsigned char* ucp = buffer->data + offset;
unsigned short* usp = buffer->data + offset; unsigned short* usp = buffer->data + offset;
unsigned int* uip = buffer->data + offset; unsigned int* uip = buffer->data + offset;
unsigned long* ulp = buffer->data + offset;
char* cp = buffer->data + offset; char* cp = buffer->data + offset;
short* sp = buffer->data + offset; short* sp = buffer->data + offset;
int* ip = buffer->data + offset; int* ip = buffer->data + offset;
long* lp = buffer->data + offset;
float* fp = buffer->data + offset; float* fp = buffer->data + offset;
double* dp = buffer->data + offset; double* dp = buffer->data + offset;
@@ -3844,6 +3858,9 @@ int lcoreSetBufferData( lua_State* L ) {
case BUFFER_UNSIGNED_INT: case BUFFER_UNSIGNED_INT:
*uip = (unsigned int)lua_tointeger( L, -1 ); *uip = (unsigned int)lua_tointeger( L, -1 );
break; break;
case BUFFER_UNSIGNED_LONG:
*ulp = (unsigned long)lua_tointeger( L, -1 );
break;
case BUFFER_CHAR: case BUFFER_CHAR:
*cp = (char)lua_tointeger( L, -1 ); *cp = (char)lua_tointeger( L, -1 );
break; break;
@@ -3853,6 +3870,9 @@ int lcoreSetBufferData( lua_State* L ) {
case BUFFER_INT: case BUFFER_INT:
*ip = (int)lua_tointeger( L, -1 ); *ip = (int)lua_tointeger( L, -1 );
break; break;
case BUFFER_LONG:
*lp = (long)lua_tointeger( L, -1 );
break;
case BUFFER_FLOAT: case BUFFER_FLOAT:
*fp = (float)lua_tonumber( L, -1 ); *fp = (float)lua_tonumber( L, -1 );
break; break;
@@ -3893,6 +3913,14 @@ int lcoreSwapBufferEndianness( lua_State* L ) {
p++; 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 ) { else if ( buffer->type == BUFFER_SHORT ) {
short *p = buffer->data; short *p = buffer->data;
@@ -3909,6 +3937,14 @@ int lcoreSwapBufferEndianness( lua_State* L ) {
p++; 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 ) { else if ( buffer->type == BUFFER_FLOAT ) {
float *p = buffer->data; float *p = buffer->data;
@@ -3974,6 +4010,16 @@ int lcoreGetBufferData( lua_State* L ) {
p++; 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 ) { else if ( buffer->type == BUFFER_CHAR ) {
char* p = buffer->data + position * sizeof( char ); char* p = buffer->data + position * sizeof( char );
lua_createtable( L, count, 0 ); lua_createtable( L, count, 0 );
@@ -4004,6 +4050,16 @@ int lcoreGetBufferData( lua_State* L ) {
p++; 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 ) { else if ( buffer->type == BUFFER_FLOAT ) {
float* p = buffer->data + position * sizeof( float ); float* p = buffer->data + position * sizeof( float );
lua_createtable( L, count, 0 ); lua_createtable( L, count, 0 );

View File

@@ -1241,9 +1241,11 @@ static void defineGlobals() {
assignGlobalInt( BUFFER_UNSIGNED_CHAR, "BUFFER_UNSIGNED_CHAR" ); // C type unsigned char 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_SHORT, "BUFFER_UNSIGNED_SHORT" ); // C type unsigned short
assignGlobalInt( BUFFER_UNSIGNED_INT, "BUFFER_UNSIGNED_INT" ); // C type unsigned int 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_CHAR, "BUFFER_CHAR" ); // C type char
assignGlobalInt( BUFFER_SHORT, "BUFFER_SHORT" ); // C type short assignGlobalInt( BUFFER_SHORT, "BUFFER_SHORT" ); // C type short
assignGlobalInt( BUFFER_INT, "BUFFER_INT" ); // C type int 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_FLOAT, "BUFFER_FLOAT" ); // C type float
assignGlobalInt( BUFFER_DOUBLE, "BUFFER_DOUBLE" ); // C type double assignGlobalInt( BUFFER_DOUBLE, "BUFFER_DOUBLE" ); // C type double
/*DOC_DEFINES_END*/ /*DOC_DEFINES_END*/