diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/lua_core.c | 15 | ||||
| -rw-r--r-- | src/text.c | 31 | ||||
| -rw-r--r-- | src/textures.c | 2 |
3 files changed, 44 insertions, 4 deletions
diff --git a/src/lua_core.c b/src/lua_core.c index c831694..77564ee 100644 --- a/src/lua_core.c +++ b/src/lua_core.c @@ -1612,6 +1612,7 @@ void luaRegister() { assingGlobalFunction( "GetFontBaseSize", ltextGetFontBaseSize ); assingGlobalFunction( "GetFontGlyphCount", ltextGetFontGlyphCount ); assingGlobalFunction( "GetFontGlyphPadding", ltextGetFontGlyphPadding ); + assingGlobalFunction( "GetFontTexture", ltextGetFontTexture ); /* Audio. */ /* Audio device management. */ @@ -2959,6 +2960,20 @@ void uluaPushBoundingBox( lua_State *L, BoundingBox box ) { lua_rawseti( L, -2, 2 ); } +void uluaPushTexture( lua_State *L, Texture texture ) { + lua_createtable( L, 5, 0 ); + lua_pushinteger( L, texture.id ); + lua_setfield( L, -2, "id" ); + lua_pushinteger( L, texture.width ); + lua_setfield( L, -2, "width" ); + lua_pushinteger( L, texture.height ); + lua_setfield( L, -2, "height" ); + lua_pushinteger( L, texture.mipmaps ); + lua_setfield( L, -2, "mipmaps" ); + lua_pushinteger( L, texture.format ); + lua_setfield( L, -2, "format" ); +} + int uluaGetTableLen( lua_State *L ) { return uluaGetTableLenIndex( L, lua_gettop( L ) ); } @@ -286,7 +286,7 @@ int ltextMeasureText( lua_State *L ) { /* > baseSize = RL.GetFontBaseSize( Font font ) -Get font baseSize +Get font base size ( default chars height ) - Failure return false - Success return int @@ -311,7 +311,7 @@ int ltextGetFontBaseSize( lua_State *L ) { /* > glyphCount = RL.GetFontGlyphCount( Font font ) -Get font glyphCount +Get font number of glyph characters - Failure return false - Success return int @@ -336,7 +336,7 @@ int ltextGetFontGlyphCount( lua_State *L ) { /* > glyphPadding = RL.GetFontGlyphPadding( Font font ) -Get font glyphPadding +Get font padding around the glyph characters - Failure return false - Success return int @@ -357,3 +357,28 @@ int ltextGetFontGlyphPadding( lua_State *L ) { return 1; } + +/* +> textureTable = RL.GetFontTexture( Font font ) + +Get font texture atlas containing the glyphs. NOTE! Texture in table form. + +- Failure return false +- Success return table +*/ +int ltextGetFontTexture( lua_State *L ) { + if ( !lua_isnumber( L, 1 ) ) { + TraceLog( state->logLevelInvalid, "%s", "Bad call of function. RL.GetFontTexture( Font font )" ); + lua_pushboolean( L, false ); + return 1; + } + size_t fontId = lua_tointeger( L, 1 ); + + if ( !validFont( fontId ) ) { + lua_pushboolean( L, false ); + return 1; + } + uluaPushTexture( L, state->fonts[ fontId ]->texture ); + + return 1; +} diff --git a/src/textures.c b/src/textures.c index c04179d..9fff0d1 100644 --- a/src/textures.c +++ b/src/textures.c @@ -2209,7 +2209,7 @@ int ltexturesGetTextureMipmaps( lua_State *L ) { /* > format = RL.GetTextureFormat( Texture2D texture ) -Get texture mipmaps. Mipmap levels, 1 by default +Get texture data format ( PixelFormat type ) - Failure return false - Success return int |
