diff options
| author | jussi | 2023-08-24 20:19:13 +0300 |
|---|---|---|
| committer | jussi | 2023-08-24 20:19:13 +0300 |
| commit | 6e17282197320bfc3af6a225fb3d9e13194022fa (patch) | |
| tree | e0be6b9033481c99dd76f3791927a5e9080989b2 | |
| parent | 3fc07a02d5213a88ebb555d3133af2746600cf61 (diff) | |
| download | reilua-enhanced-6e17282197320bfc3af6a225fb3d9e13194022fa.tar.gz reilua-enhanced-6e17282197320bfc3af6a225fb3d9e13194022fa.tar.bz2 reilua-enhanced-6e17282197320bfc3af6a225fb3d9e13194022fa.zip | |
GetFontTexture.
| -rw-r--r-- | API.md | 17 | ||||
| -rw-r--r-- | ReiLua_API.lua | 15 | ||||
| -rw-r--r-- | changelog | 1 | ||||
| -rw-r--r-- | devnotes | 3 | ||||
| -rw-r--r-- | include/lua_core.h | 1 | ||||
| -rw-r--r-- | include/text.h | 1 | ||||
| -rw-r--r-- | src/lua_core.c | 15 | ||||
| -rw-r--r-- | src/text.c | 31 | ||||
| -rw-r--r-- | src/textures.c | 2 |
9 files changed, 72 insertions, 14 deletions
@@ -3579,7 +3579,7 @@ Get texture mipmaps. Mipmap levels, 1 by default > 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 @@ -3802,7 +3802,7 @@ Measure string size for Font > baseSize = RL.GetFontBaseSize( Font font ) -Get font baseSize +Get font base size ( default chars height ) - Failure return false - Success return int @@ -3811,7 +3811,7 @@ Get font baseSize > glyphCount = RL.GetFontGlyphCount( Font font ) -Get font glyphCount +Get font number of glyph characters - Failure return false - Success return int @@ -3820,13 +3820,22 @@ Get font glyphCount > glyphPadding = RL.GetFontGlyphPadding( Font font ) -Get font glyphPadding +Get font padding around the glyph characters - Failure return false - Success return int --- +> textureTable = RL.GetFontTexture( Font font ) + +Get font texture atlas containing the glyphs. NOTE! Texture in table form. + +- Failure return false +- Success return table + +--- + ## Models - Basic --- diff --git a/ReiLua_API.lua b/ReiLua_API.lua index f5505ea..7a19f28 100644 --- a/ReiLua_API.lua +++ b/ReiLua_API.lua @@ -2975,7 +2975,7 @@ function RL.GetTextureSize( texture ) end ---@return any mipmaps function RL.GetTextureMipmaps( texture ) end ----Get texture mipmaps. Mipmap levels, 1 by default +---Get texture data format ( PixelFormat type ) ---- Failure return false ---- Success return int ---@param texture any @@ -3174,27 +3174,34 @@ function RL.DrawTextPro( font, text, position, origin, rotation, fontSize, spaci ---@return any size function RL.MeasureText( font, text, fontSize, spacing ) end ----Get font baseSize +---Get font base size ( default chars height ) ---- Failure return false ---- Success return int ---@param font any ---@return any baseSize function RL.GetFontBaseSize( font ) end ----Get font glyphCount +---Get font number of glyph characters ---- Failure return false ---- Success return int ---@param font any ---@return any glyphCount function RL.GetFontGlyphCount( font ) end ----Get font glyphPadding +---Get font padding around the glyph characters ---- Failure return false ---- Success return int ---@param font any ---@return any glyphPadding function RL.GetFontGlyphPadding( font ) end +---Get font texture atlas containing the glyphs. NOTE! Texture in table form. +---- Failure return false +---- Success return table +---@param font any +---@return any textureTable +function RL.GetFontTexture( font ) end + -- Models - Basic ---Draw a line in 3D world space @@ -98,6 +98,7 @@ Detailed changes: - ADDED: ImageDrawCircleLines - ADDED: ImageBlurGaussian - ADDED: Values for API.md + - ADDED: GetFontTexture ------------------------------------------------------------------------ Release: ReiLua version 0.4.0 Using Raylib 4.2 @@ -10,11 +10,10 @@ Backlog { * New type validators. * Platformer example physics process for true framerate independence. * Extend color lib functionality. - * Global descriptions for API. + * Global variable descriptions for API. * IsWaveReady and other Is* ready functions. * Text - * Ability to set font texture filtering. * Codepoints? * Audio * AudioStream. diff --git a/include/lua_core.h b/include/lua_core.h index 45ad1f5..ed354b8 100644 --- a/include/lua_core.h +++ b/include/lua_core.h @@ -65,6 +65,7 @@ void uluaPushMatrix( lua_State *L, Matrix matrix ); void uluaPushRay( lua_State *L, Ray ray ); void uluaPushRayCollision( lua_State *L, RayCollision rayCol ); void uluaPushBoundingBox( lua_State *L, BoundingBox box ); +void uluaPushTexture( lua_State *L, Texture texture ); int uluaGetTableLen( lua_State *L ); int uluaGetTableLenIndex( lua_State *L, int index ); diff --git a/include/text.h b/include/text.h index 3754a33..943cbca 100644 --- a/include/text.h +++ b/include/text.h @@ -16,3 +16,4 @@ int ltextMeasureText( lua_State *L ); int ltextGetFontBaseSize( lua_State *L ); int ltextGetFontGlyphCount( lua_State *L ); int ltextGetFontGlyphPadding( lua_State *L ); +int ltextGetFontTexture( lua_State *L ); 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 |
