summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--API.md17
-rw-r--r--ReiLua_API.lua15
-rw-r--r--changelog1
-rw-r--r--devnotes3
-rw-r--r--include/lua_core.h1
-rw-r--r--include/text.h1
-rw-r--r--src/lua_core.c15
-rw-r--r--src/text.c31
-rw-r--r--src/textures.c2
9 files changed, 72 insertions, 14 deletions
diff --git a/API.md b/API.md
index 564daec..dcf5d62 100644
--- a/API.md
+++ b/API.md
@@ -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
diff --git a/changelog b/changelog
index e7002a0..bdaad06 100644
--- a/changelog
+++ b/changelog
@@ -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
diff --git a/devnotes b/devnotes
index b490ccf..314427e 100644
--- a/devnotes
+++ b/devnotes
@@ -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 ) );
}
diff --git a/src/text.c b/src/text.c
index bc14828..0339aa6 100644
--- a/src/text.c
+++ b/src/text.c
@@ -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