LoadTextureFromData and LoadRenderTextureFromData. Documentation updates.

This commit is contained in:
jussi
2023-10-29 18:36:23 +02:00
parent 0df40e2ac0
commit fcd2d2d8b5
11 changed files with 513 additions and 377 deletions

View File

@@ -544,7 +544,7 @@ int lcoreOpenURL( lua_State *L ) {
/*
> buffer = RL.LoadBuffer( data{} buffer, int type )
Creates buffer as userdata. Type should be one of the Buffer types
Load Buffer. Type should be one of the Buffer types
- Success return Buffer
*/

View File

@@ -1791,7 +1791,9 @@ void luaRegister() {
assingGlobalFunction( "LoadTexture", ltexturesLoadTexture );
assingGlobalFunction( "LoadTextureFromImage", ltexturesLoadTextureFromImage );
assingGlobalFunction( "LoadTextureCubemap", ltexturesLoadTextureCubemap );
assingGlobalFunction( "LoadTextureFromData", ltexturesLoadTextureFromData );
assingGlobalFunction( "LoadRenderTexture", ltexturesLoadRenderTexture );
assingGlobalFunction( "LoadRenderTextureFromData", ltexturesLoadRenderTextureFromData );
assingGlobalFunction( "IsTextureReady", ltexturesIsTextureReady );
assingGlobalFunction( "UpdateTexture", ltexturesUpdateTexture );
assingGlobalFunction( "UpdateTextureRec", ltexturesUpdateTextureRec );

View File

@@ -939,6 +939,44 @@ int ltexturesLoadTextureCubemap( lua_State *L ) {
return 1;
}
/*
> 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 )
@@ -954,6 +992,41 @@ int ltexturesLoadRenderTexture( lua_State *L ) {
return 1;
}
/*
> 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 )