summaryrefslogtreecommitdiff
path: root/src/textures.c
diff options
context:
space:
mode:
authorjussi2023-10-29 18:36:23 +0200
committerjussi2023-10-29 18:36:23 +0200
commitfcd2d2d8b583f6a11a9ce32a75da8e18c8c88d32 (patch)
tree026920ed99483731ba7ea07b8c211754a059485d /src/textures.c
parent0df40e2ac080364bcebd4fe0445b814230545477 (diff)
downloadreilua-enhanced-fcd2d2d8b583f6a11a9ce32a75da8e18c8c88d32.tar.gz
reilua-enhanced-fcd2d2d8b583f6a11a9ce32a75da8e18c8c88d32.tar.bz2
reilua-enhanced-fcd2d2d8b583f6a11a9ce32a75da8e18c8c88d32.zip
LoadTextureFromData and LoadRenderTextureFromData. Documentation updates.
Diffstat (limited to 'src/textures.c')
-rw-r--r--src/textures.c73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/textures.c b/src/textures.c
index aa78ce8..94c88aa 100644
--- a/src/textures.c
+++ b/src/textures.c
@@ -940,6 +940,44 @@ int ltexturesLoadTextureCubemap( lua_State *L ) {
}
/*
+> texture = RL.LoadTextureFromData( Texture{} textureData )
+
+Load Texture from data
+
+- Success return Texture
+*/
+int ltexturesLoadTextureFromData( lua_State *L ) {
+ luaL_checktype( L, 1, LUA_TTABLE );
+
+ Texture2D texture = { 0 };
+
+ int t = 1;
+ lua_pushnil( L );
+
+ while ( lua_next( L, t ) != 0 ) {
+ if ( strcmp( "id", (char*)lua_tostring( L, -2 ) ) == 0 ) {
+ texture.id = (unsigned int)luaL_checkinteger( L, -1 );
+ }
+ else if ( strcmp( "width", (char*)lua_tostring( L, -2 ) ) == 0 ) {
+ texture.width = luaL_checkinteger( L, -1 );
+ }
+ else if ( strcmp( "height", (char*)lua_tostring( L, -2 ) ) == 0 ) {
+ texture.height = luaL_checkinteger( L, -1 );
+ }
+ else if ( strcmp( "mipmaps", (char*)lua_tostring( L, -2 ) ) == 0 ) {
+ texture.mipmaps = luaL_checkinteger( L, -1 );
+ }
+ else if ( strcmp( "format", (char*)lua_tostring( L, -2 ) ) == 0 ) {
+ texture.format = luaL_checkinteger( L, -1 );
+ }
+ lua_pop( L, 1 );
+ }
+ uluaPushTexture( L, texture );
+
+ return 1;
+}
+
+/*
> renderTexture = RL.LoadRenderTexture( Vector2 size )
Load texture for rendering (framebuffer)
@@ -955,6 +993,41 @@ int ltexturesLoadRenderTexture( lua_State *L ) {
}
/*
+> renderTexture = RL.LoadRenderTextureFromData( Texture{} renderTextureData )
+
+Load RenderTexture from data (framebuffer)
+
+- Success return RenderTexture
+*/
+int ltexturesLoadRenderTextureFromData( lua_State *L ) {
+ luaL_checktype( L, 1, LUA_TTABLE );
+
+ RenderTexture renTexture = { 0 };
+
+ int t = 1;
+ lua_pushnil( L );
+
+ while ( lua_next( L, t ) != 0 ) {
+ if ( strcmp( "id", (char*)lua_tostring( L, -2 ) ) == 0 ) {
+ renTexture.id = (unsigned int)luaL_checkinteger( L, -1 );
+ }
+ else if ( strcmp( "texture", (char*)lua_tostring( L, -2 ) ) == 0 ) {
+ Texture *texture = luaL_checkudata( L, -1, "Texture" );
+ renTexture.texture = *texture;
+ }
+ else if ( strcmp( "depth", (char*)lua_tostring( L, -2 ) ) == 0 ) {
+ Texture *depth = luaL_checkudata( L, -1, "Texture" );
+ renTexture.depth = *depth;
+ }
+ lua_pop( L, 1 );
+ }
+ uluaPushRenderTexture( L, renTexture );
+
+ return 1;
+}
+
+
+/*
> isReady = RL.IsTextureReady( Texture texture )
Check if a texture is ready