summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjussi2023-12-14 23:08:19 +0200
committerjussi2023-12-14 23:08:19 +0200
commitba4595305fe426f81233ebbb20fc94cd86d07af9 (patch)
tree13692707cd3c1dcd5aa885e8d50dade2feba25e9 /src
parent5ebdba6af0d55269980a64ce190ec29ccd9faaf3 (diff)
downloadreilua-enhanced-ba4595305fe426f81233ebbb20fc94cd86d07af9.tar.gz
reilua-enhanced-ba4595305fe426f81233ebbb20fc94cd86d07af9.tar.bz2
reilua-enhanced-ba4595305fe426f81233ebbb20fc94cd86d07af9.zip
RLGL Hello triangle example.
Diffstat (limited to 'src')
-rw-r--r--src/core.c15
-rw-r--r--src/lua_core.c2
-rw-r--r--src/rlgl.c4
-rw-r--r--src/textures.c22
4 files changed, 41 insertions, 2 deletions
diff --git a/src/core.c b/src/core.c
index 2513649..9dfbe01 100644
--- a/src/core.c
+++ b/src/core.c
@@ -885,6 +885,21 @@ int lcoreIsShaderReady( lua_State *L ) {
}
/*
+> shaderId = RL.GetShaderId( Shader shader )
+
+Get shader program id
+
+- Success return int
+*/
+int lcoreGetShaderId( lua_State *L ) {
+ Shader *shader = uluaGetShader( L, 1 );
+
+ lua_pushinteger( L, shader->id );
+
+ return 1;
+}
+
+/*
> location = RL.GetShaderLocation( Shader shader, string uniformName )
Get shader uniform location
diff --git a/src/lua_core.c b/src/lua_core.c
index 6195c9f..68fb05b 100644
--- a/src/lua_core.c
+++ b/src/lua_core.c
@@ -1225,6 +1225,7 @@ void luaRegister() {
assingGlobalFunction( "LoadShader", lcoreLoadShader );
assingGlobalFunction( "LoadShaderFromMemory", lcoreLoadShaderFromMemory );
assingGlobalFunction( "IsShaderReady", lcoreIsShaderReady );
+ assingGlobalFunction( "GetShaderId", lcoreGetShaderId );
assingGlobalFunction( "GetShaderLocation", lcoreGetShaderLocation );
assingGlobalFunction( "GetShaderLocationAttrib", lcoreGetShaderLocationAttrib );
assingGlobalFunction( "SetShaderLocationIndex", lcoreSetShaderLocationIndex );
@@ -1497,6 +1498,7 @@ void luaRegister() {
assingGlobalFunction( "GetImageAlphaBorder", ltexturesGetImageAlphaBorder );
assingGlobalFunction( "GetImageColor", ltexturesGetImageColor );
/* Image configuration functions. */
+ assingGlobalFunction( "GetImageData", ltexturesGetImageData );
assingGlobalFunction( "GetImageSize", ltexturesGetImageSize );
assingGlobalFunction( "GetImageMipmaps", ltexturesGetImageMipmaps );
assingGlobalFunction( "GetImageFormat", ltexturesGetImageFormat );
diff --git a/src/rlgl.c b/src/rlgl.c
index 65a57a1..a71aa61 100644
--- a/src/rlgl.c
+++ b/src/rlgl.c
@@ -1105,7 +1105,7 @@ int lrlglUnloadVertexBuffer( lua_State *L ) {
/*
> RL.rlSetVertexAttribute( int index, int compSize, int type, bool normalized, int stride, int pointer )
-Set vertex attribute
+Set vertex attribute. Note! Pointer should be given in size of bytes
*/
int lrlglSetVertexAttribute( lua_State *L ) {
int index = luaL_checkinteger( L, 1 );
@@ -1115,7 +1115,7 @@ int lrlglSetVertexAttribute( lua_State *L ) {
int stride = luaL_checkinteger( L, 5 );
int pointer = luaL_checkinteger( L, 6 );
- rlSetVertexAttribute( index, compSize, type, normalized, stride, &pointer );
+ rlSetVertexAttribute( index, compSize, type, normalized, stride, (void*)( pointer * sizeof( char ) ) );
return 0;
}
diff --git a/src/textures.c b/src/textures.c
index 717db91..8a99b34 100644
--- a/src/textures.c
+++ b/src/textures.c
@@ -840,6 +840,28 @@ int ltexturesGetImageColor( lua_State *L ) {
*/
/*
+> imageData = RL.GetImageData( Image image )
+
+Get image data as Buffer
+
+- Success return Buffer
+*/
+int ltexturesGetImageData( lua_State *L ) {
+ Image *image = uluaGetImage( L, 1 );
+
+ Buffer buffer = (Buffer){
+ .type = BUFFER_UNSIGNED_CHAR,
+ .size = GetPixelDataSize( image->width, image->height, image->format ),
+ };
+ buffer.data = malloc( buffer.size * sizeof( unsigned char ) );
+ memcpy( buffer.data, image->data, buffer.size );
+
+ uluaPushBuffer( L, buffer );
+
+ return 1;
+}
+
+/*
> size = RL.GetImageSize( Image image )
Get image size