summaryrefslogtreecommitdiff
path: root/src/text.c
diff options
context:
space:
mode:
authorIndrajith K L2025-11-05 02:24:08 +0530
committerGitHub2025-11-05 02:24:08 +0530
commit8c4b587a2347a911d165f0b4afcce116970ad7e5 (patch)
tree9116d4b6e0e0063e6b509c78f81354cb5faf3d74 /src/text.c
parent10c22d35678f96e722f25a12badca98febb2921e (diff)
parent7f014770c0ad7f20c70cca1b81b71751d9fbc7c5 (diff)
downloadreilua-enhanced-8c4b587a2347a911d165f0b4afcce116970ad7e5.tar.gz
reilua-enhanced-8c4b587a2347a911d165f0b4afcce116970ad7e5.tar.bz2
reilua-enhanced-8c4b587a2347a911d165f0b4afcce116970ad7e5.zip
Merge pull request #8 from cooljith91112/feature/font-rendering
Fix font antialiasing and improve UX
Diffstat (limited to 'src/text.c')
-rw-r--r--src/text.c32
1 files changed, 21 insertions, 11 deletions
diff --git a/src/text.c b/src/text.c
index 5f2a91a..1417397 100644
--- a/src/text.c
+++ b/src/text.c
@@ -185,7 +185,9 @@ Load font from file into GPU memory (VRAM)
*/
int ltextLoadFont( lua_State* L ) {
if ( FileExists( luaL_checkstring( L, 1 ) ) ) {
- uluaPushFont( L, LoadFont( lua_tostring( L, 1 ) ) );
+ Font font = LoadFont( lua_tostring( L, 1 ) );
+ SetTextureFilter( font.texture, TEXTURE_FILTER_POINT );
+ uluaPushFont( L, font );
return 1;
}
@@ -207,16 +209,19 @@ int ltextLoadFontEx( lua_State* L ) {
int fontSize = luaL_checkinteger( L, 2 );
if ( FileExists( luaL_checkstring( L, 1 ) ) ) {
+ Font font;
if ( lua_istable( L, 3 ) ) {
int codepointCount = uluaGetTableLen( L, 3 );
int codepoints[ codepointCount ];
getCodepoints( L, codepoints, 3 );
- uluaPushFont( L, LoadFontEx( lua_tostring( L, 1 ), fontSize, codepoints, codepointCount ) );
-
- return 1;
+ font = LoadFontEx( lua_tostring( L, 1 ), fontSize, codepoints, codepointCount );
+ }
+ else {
+ font = LoadFontEx( lua_tostring( L, 1 ), fontSize, NULL, 0 );
}
- uluaPushFont( L, LoadFontEx( lua_tostring( L, 1 ), fontSize, NULL, 0 ) );
+ SetTextureFilter( font.texture, TEXTURE_FILTER_POINT );
+ uluaPushFont( L, font );
return 1;
}
@@ -238,7 +243,9 @@ int ltextLoadFontFromImage( lua_State* L ) {
Color key = uluaGetColor( L, 2 );
int firstChar = luaL_checkinteger( L, 3 );
- uluaPushFont( L, LoadFontFromImage( *image, key, firstChar ) );
+ Font font = LoadFontFromImage( *image, key, firstChar );
+ SetTextureFilter( font.texture, TEXTURE_FILTER_POINT );
+ uluaPushFont( L, font );
return 1;
}
@@ -255,17 +262,20 @@ int ltextLoadFontFromMemory( lua_State* L ) {
Buffer* fileData = uluaGetBuffer( L, 2 );
int fontSize = luaL_checkinteger( L, 3 );
+ Font font;
if ( lua_istable( L, 4 ) ) {
int codepointCount = uluaGetTableLen( L, 4 );
int codepoints[ codepointCount ];
getCodepoints( L, codepoints, 4 );
- uluaPushFont( L, LoadFontFromMemory( fileType, fileData->data, fileData->size, fontSize, codepoints, codepointCount ) );
-
- return 1;
+ font = LoadFontFromMemory( fileType, fileData->data, fileData->size, fontSize, codepoints, codepointCount );
}
- /* If no codepoints provided. */
- uluaPushFont( L, LoadFontFromMemory( fileType, fileData->data, fileData->size, fontSize, NULL, 0 ) );
+ else {
+ /* If no codepoints provided. */
+ font = LoadFontFromMemory( fileType, fileData->data, fileData->size, fontSize, NULL, 0 );
+ }
+ SetTextureFilter( font.texture, TEXTURE_FILTER_POINT );
+ uluaPushFont( L, font );
return 1;
}