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
```
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

View File

@@ -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)

View File

@@ -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

View File

@@ -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\

View File

@@ -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
};

View File

@@ -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 );

View File

@@ -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*/