GlyphInfo type. Some new text and core functions.
This commit is contained in:
77
API.md
77
API.md
@@ -211,6 +211,12 @@ BoundingBox
|
||||
|
||||
---
|
||||
|
||||
> GlyphInfo = { value = int, offsetX = int, offsetY = int, advanceX = int, image = Image }
|
||||
|
||||
GlyphInfo, font characters glyphs info
|
||||
|
||||
---
|
||||
|
||||
> Wave = Userdata
|
||||
|
||||
Wave, audio wave data
|
||||
@@ -1556,6 +1562,20 @@ Set window dimensions
|
||||
|
||||
---
|
||||
|
||||
> RL.SetWindowOpacity( float opacity )
|
||||
|
||||
Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP)
|
||||
|
||||
---
|
||||
|
||||
> windowHandle = RL.GetWindowHandle()
|
||||
|
||||
Get native window handle. Return as lightuserdata
|
||||
|
||||
- Success return lightuserdata
|
||||
|
||||
---
|
||||
|
||||
> RL.SetWindowMinSize( Vector2 size )
|
||||
|
||||
Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)
|
||||
@@ -1630,6 +1650,12 @@ Set icon for window (Only PLATFORM_DESKTOP)
|
||||
|
||||
---
|
||||
|
||||
> RL.SetWindowIcons( Image{} images )
|
||||
|
||||
Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP)
|
||||
|
||||
---
|
||||
|
||||
> RL.SetWindowTitle( string title )
|
||||
|
||||
Set title for window (Only PLATFORM_DESKTOP)
|
||||
@@ -3868,7 +3894,7 @@ Load font from file into GPU memory (VRAM)
|
||||
|
||||
> font = RL.LoadFontEx( string fileName, int fontSize, int{} fontChars )
|
||||
|
||||
Load font from file with extended parameters. Loading the default character set
|
||||
Load font from file with extended parameters, use NULL for fontChars to load the default character set
|
||||
|
||||
- Failure return nil
|
||||
- Success return Font
|
||||
@@ -3907,7 +3933,13 @@ Draw current FPS
|
||||
|
||||
---
|
||||
|
||||
> RL.DrawText( Font font, string text, Vector2 position, float fontSize, float spacing, Color tint )
|
||||
> RL.DrawText( string text, Vector2 position, float fontSize, Color tint )
|
||||
|
||||
Draw text (using default font)
|
||||
|
||||
---
|
||||
|
||||
> RL.DrawTextEx( Font font, string text, Vector2 position, float fontSize, float spacing, Color tint )
|
||||
|
||||
Draw text using font and additional parameters
|
||||
|
||||
@@ -3919,7 +3951,19 @@ Draw text using Font and pro parameters (rotation)
|
||||
|
||||
---
|
||||
|
||||
## Text - Misc
|
||||
> RL.DrawTextCodepoint( Font font, int codepoint, Vector2 position, float fontSize, Color tint )
|
||||
|
||||
Draw one character (codepoint)
|
||||
|
||||
---
|
||||
|
||||
> RL.DrawTextCodepoints( Font font, int{} codepoints, Vector2 position, float fontSize, float spacing, Color tint )
|
||||
|
||||
Draw multiple character (codepoint)
|
||||
|
||||
---
|
||||
|
||||
## Text - Font info functions
|
||||
|
||||
---
|
||||
|
||||
@@ -3931,6 +3975,31 @@ Measure string size for Font
|
||||
|
||||
---
|
||||
|
||||
> index = RL.GetGlyphIndex( Font font, int codepoint )
|
||||
|
||||
Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found
|
||||
|
||||
- Success return int
|
||||
|
||||
---
|
||||
|
||||
> glyphInfo = RL.GetGlyphInfo( Font font, int codepoint )
|
||||
|
||||
Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found.
|
||||
Return Image as lightuserdata
|
||||
|
||||
- Success return GlyphInfo
|
||||
|
||||
---
|
||||
|
||||
> rect = RL.GetGlyphAtlasRec( Font font, int codepoint )
|
||||
|
||||
Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found
|
||||
|
||||
- Success return Rectangle
|
||||
|
||||
---
|
||||
|
||||
> baseSize = RL.GetFontBaseSize( Font font )
|
||||
|
||||
Get font base size (default chars height)
|
||||
@@ -3957,7 +4026,7 @@ Get font padding around the glyph characters
|
||||
|
||||
> texture = RL.GetFontTexture( Font font )
|
||||
|
||||
Get font texture atlas containing the glyphs. Returns as lightuserdata
|
||||
Get font texture atlas containing the glyphs. Return as lightuserdata
|
||||
|
||||
- Success return Texture
|
||||
|
||||
|
||||
@@ -772,6 +772,16 @@ function RL.SetWindowPosition( pos ) end
|
||||
---@return any RL.SetWindowSize
|
||||
function RL.SetWindowSize( size ) end
|
||||
|
||||
---Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP)
|
||||
---@param opacity number
|
||||
---@return any RL.SetWindowOpacity
|
||||
function RL.SetWindowOpacity( opacity ) end
|
||||
|
||||
---Get native window handle. Return as lightuserdata
|
||||
---- Success return lightuserdata
|
||||
---@return any windowHandle
|
||||
function RL.GetWindowHandle() end
|
||||
|
||||
---Set window minimum dimensions (for FLAG_WINDOW_RESIZABLE)
|
||||
---@param size table
|
||||
---@return any RL.SetWindowMinSize
|
||||
@@ -826,6 +836,11 @@ function RL.IsWindowResized() end
|
||||
---@return any RL.SetWindowIcon
|
||||
function RL.SetWindowIcon( image ) end
|
||||
|
||||
---Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP)
|
||||
---@param images any
|
||||
---@return any RL.SetWindowIcons
|
||||
function RL.SetWindowIcons( images ) end
|
||||
|
||||
---Set title for window (Only PLATFORM_DESKTOP)
|
||||
---@param title string
|
||||
---@return any RL.SetWindowTitle
|
||||
@@ -2790,7 +2805,7 @@ function RL.GetFontDefault() end
|
||||
---@return any font
|
||||
function RL.LoadFont( fileName ) end
|
||||
|
||||
---Load font from file with extended parameters. Loading the default character set
|
||||
---Load font from file with extended parameters, use NULL for fontChars to load the default character set
|
||||
---- Failure return nil
|
||||
---- Success return Font
|
||||
---@param fileName string
|
||||
@@ -2825,6 +2840,14 @@ function RL.UnloadFont( font ) end
|
||||
---@return any RL.DrawFPS
|
||||
function RL.DrawFPS( pos ) end
|
||||
|
||||
---Draw text (using default font)
|
||||
---@param text string
|
||||
---@param position table
|
||||
---@param fontSize number
|
||||
---@param tint table
|
||||
---@return any RL.DrawText
|
||||
function RL.DrawText( text, position, fontSize, tint ) end
|
||||
|
||||
---Draw text using font and additional parameters
|
||||
---@param font any
|
||||
---@param text string
|
||||
@@ -2832,8 +2855,8 @@ function RL.DrawFPS( pos ) end
|
||||
---@param fontSize number
|
||||
---@param spacing number
|
||||
---@param tint table
|
||||
---@return any RL.DrawText
|
||||
function RL.DrawText( font, text, position, fontSize, spacing, tint ) end
|
||||
---@return any RL.DrawTextEx
|
||||
function RL.DrawTextEx( font, text, position, fontSize, spacing, tint ) end
|
||||
|
||||
---Draw text using Font and pro parameters (rotation)
|
||||
---@param font any
|
||||
@@ -2847,7 +2870,26 @@ function RL.DrawText( font, text, position, fontSize, spacing, tint ) end
|
||||
---@return any RL.DrawTextPro
|
||||
function RL.DrawTextPro( font, text, position, origin, rotation, fontSize, spacing, tint ) end
|
||||
|
||||
-- Text - Misc
|
||||
---Draw one character (codepoint)
|
||||
---@param font any
|
||||
---@param codepoint integer
|
||||
---@param position table
|
||||
---@param fontSize number
|
||||
---@param tint table
|
||||
---@return any RL.DrawTextCodepoint
|
||||
function RL.DrawTextCodepoint( font, codepoint, position, fontSize, tint ) end
|
||||
|
||||
---Draw multiple character (codepoint)
|
||||
---@param font any
|
||||
---@param codepoints any
|
||||
---@param position table
|
||||
---@param fontSize number
|
||||
---@param spacing number
|
||||
---@param tint table
|
||||
---@return any RL.DrawTextCodepoints
|
||||
function RL.DrawTextCodepoints( font, codepoints, position, fontSize, spacing, tint ) end
|
||||
|
||||
-- Text - Font info functions
|
||||
|
||||
---Measure string size for Font
|
||||
---- Success return Vector2
|
||||
@@ -2858,6 +2900,28 @@ function RL.DrawTextPro( font, text, position, origin, rotation, fontSize, spac
|
||||
---@return any size
|
||||
function RL.MeasureText( font, text, fontSize, spacing ) end
|
||||
|
||||
---Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found
|
||||
---- Success return int
|
||||
---@param font any
|
||||
---@param codepoint integer
|
||||
---@return any index
|
||||
function RL.GetGlyphIndex( font, codepoint ) end
|
||||
|
||||
---Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found.
|
||||
---Return Image as lightuserdata
|
||||
---- Success return GlyphInfo
|
||||
---@param font any
|
||||
---@param codepoint integer
|
||||
---@return any glyphInfo
|
||||
function RL.GetGlyphInfo( font, codepoint ) end
|
||||
|
||||
---Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found
|
||||
---- Success return Rectangle
|
||||
---@param font any
|
||||
---@param codepoint integer
|
||||
---@return any rect
|
||||
function RL.GetGlyphAtlasRec( font, codepoint ) end
|
||||
|
||||
---Get font base size (default chars height)
|
||||
---- Success return int
|
||||
---@param font any
|
||||
@@ -2876,7 +2940,7 @@ function RL.GetFontGlyphCount( font ) end
|
||||
---@return any glyphPadding
|
||||
function RL.GetFontGlyphPadding( font ) end
|
||||
|
||||
---Get font texture atlas containing the glyphs. Returns as lightuserdata
|
||||
---Get font texture atlas containing the glyphs. Return as lightuserdata
|
||||
---- Success return Texture
|
||||
---@param font any
|
||||
---@return any texture
|
||||
|
||||
@@ -12,6 +12,9 @@ KEY CHANGES:
|
||||
- ADDED: Shaders management functions.
|
||||
- ADDED: Compute shader management and Buffer management.
|
||||
- ADDED: More RLGL Initialization functions.
|
||||
- ADDED: GlyphInfo type.
|
||||
- ADDED: DrawTextEx.
|
||||
- CHANGED: DrawText is now DrawTextEx like in Raylib.
|
||||
|
||||
DETAILED CHANGES:
|
||||
- CHANGED: GenImageColor now takes Vector2 as size.
|
||||
@@ -26,6 +29,9 @@ DETAILED CHANGES:
|
||||
- ADDED: UnloadBuffer.
|
||||
- ADDED: GetMaterialDefault returns lightuserdata reference to default material.
|
||||
- REMOVED: Some examples.
|
||||
- ADDED: DrawTextCodepoint and DrawTextCodepoints.
|
||||
- ADDED: GetGlyphIndex, GetGlyphInfo and GetGlyphAtlasRec.
|
||||
- ADDED: SetWindowIcons, SetWindowOpacity and GetWindowHandle.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
Release: ReiLua version 0.5.0 Using Raylib 4.5
|
||||
|
||||
4
devnotes
4
devnotes
@@ -3,12 +3,12 @@ Current {
|
||||
|
||||
Backlog {
|
||||
* Text
|
||||
* Codepoints?
|
||||
* Text codepoints management functions (unicode characters)?
|
||||
* Some of the Text strings management functions could be easier to use than the Lua ones.
|
||||
* Audio
|
||||
* AudioStream.
|
||||
* Core.
|
||||
* Compression/Encoding functionality.
|
||||
* SetWindowIcons.
|
||||
* Models
|
||||
* LoadMaterials (Load materials from model file).
|
||||
* LoadMaterialsFromModel (Could then for example edit and set back to model).
|
||||
|
||||
@@ -212,6 +212,8 @@ apiFile:write( "\n> RayCollision = { hit = true, distance = 1.0, point = { 0.0,
|
||||
RayCollision, ray hit information\n\n---\n" )
|
||||
apiFile:write( "\n> BoundingBox = { { 0.0, 0.0, 0.0 }, { 1.0, 1.0, 1.0 } } or { min = { 0.0, 0.0, 0.0 }, max = { 1.0, 1.0, 1.0 } }\n\
|
||||
BoundingBox\n\n---\n" )
|
||||
apiFile:write( "\n> GlyphInfo = { value = int, offsetX = int, offsetY = int, advanceX = int, image = Image }\n\
|
||||
GlyphInfo, font characters glyphs info\n\n---\n" )
|
||||
apiFile:write( "\n> Wave = Userdata\n\
|
||||
Wave, audio wave data\n\n---\n" )
|
||||
apiFile:write( "\n> Sound = Userdata\n\
|
||||
|
||||
@@ -136,5 +136,5 @@ function RL.draw()
|
||||
|
||||
camera:endMode3D()
|
||||
|
||||
RL.DrawText( RL.GetFontDefault(), "Use keys [Y][R][G][B] to toggle lights", { 10, 10 }, 20, 4, RL.DARKGRAY )
|
||||
RL.DrawText( "Use keys [Y][R][G][B] to toggle lights", { 10, 10 }, 20, RL.DARKGRAY )
|
||||
end
|
||||
|
||||
@@ -83,7 +83,7 @@ function RL.draw()
|
||||
end
|
||||
|
||||
RL.DrawRectangle( { 0, 0, screenWidth, 40 }, RL.BLACK)
|
||||
RL.DrawText( RL.GetFontDefault(), "bunnies: " .. #bunnies, { 120, 10 }, 20, 2, RL.GREEN )
|
||||
RL.DrawText( RL.GetFontDefault(), "batched draw calls: " .. math.ceil( 1 + #bunnies / MAX_BATCH_ELEMENTS ), { 320, 10 }, 20, 2, RL.RED )
|
||||
RL.DrawText( "bunnies: " .. #bunnies, { 120, 10 }, 20, RL.GREEN )
|
||||
RL.DrawText( "batched draw calls: " .. math.ceil( 1 + #bunnies / MAX_BATCH_ELEMENTS ), { 320, 10 }, 20, RL.RED )
|
||||
RL.DrawFPS( { 10, 10 } )
|
||||
end
|
||||
|
||||
@@ -100,5 +100,5 @@ function RL.draw()
|
||||
RL.ClearBackground( RL.RED )
|
||||
end
|
||||
|
||||
RL.DrawText( RL.GetFontDefault(), text, textPos, 20, 2, RL.BLACK )
|
||||
RL.DrawText( text, textPos, 20, RL.BLACK )
|
||||
end
|
||||
|
||||
@@ -69,5 +69,5 @@ function RL.draw()
|
||||
text = text.."\nPress T to toggle target visible.\nVisible: "..tostring( targetVisible )
|
||||
|
||||
-- RL.DrawText( RL.defaultFont, text, { 16, 16 }, 30, 4, RL.WHITE )
|
||||
RL.DrawText( RL.GetFontDefault(), text, { 16, 16 }, 30, 4, RL.WHITE )
|
||||
RL.DrawText( text, { 16, 16 }, 30, RL.WHITE )
|
||||
end
|
||||
|
||||
@@ -80,10 +80,10 @@ function RL.draw()
|
||||
RL.DrawModelEx( model, { 0, 0, 0 }, { 1.0, 0.0, 0.0 }, -90.0, { 1.0, 1.0, 1.0 }, RL.WHITE )
|
||||
RL.EndMode3D()
|
||||
|
||||
RL.DrawText( RL.GetFontDefault(),
|
||||
RL.DrawText(
|
||||
"Enter: Change animation\
|
||||
Space: Play animation\
|
||||
Up arrow: Inreace animation speed\
|
||||
Down arrow: Decreace animation speed",
|
||||
{ 10, 10 }, 30, 5, RL.WHITE )
|
||||
{ 10, 10 }, 30, RL.WHITE )
|
||||
end
|
||||
|
||||
@@ -126,7 +126,7 @@ function RL.draw()
|
||||
RL.DrawCircle( ball.pos, ball.radius, RL.WHITE )
|
||||
|
||||
-- Draw score.
|
||||
RL.DrawText( RL.GetFontDefault(), tostring( playerLeft.score ), { 50, 10 }, 40, 2, RL.WHITE )
|
||||
RL.DrawText( tostring( playerLeft.score ), { 50, 10 }, 40, RL.WHITE )
|
||||
local rightTextSize = Vec2:new( RL.MeasureText( RL.GetFontDefault(), tostring( playerRight.score ), 40, 2 ) )
|
||||
RL.DrawText( RL.GetFontDefault(), tostring( playerRight.score ), { winSize.x - 50 - rightTextSize.x, 10 }, 40, 2, RL.WHITE )
|
||||
RL.DrawText( tostring( playerRight.score ), { winSize.x - 50 - rightTextSize.x, 10 }, 40, RL.WHITE )
|
||||
end
|
||||
|
||||
@@ -131,7 +131,7 @@ function utillib.toBoolean( v )
|
||||
return false
|
||||
end
|
||||
|
||||
function utillib.boo2Number( bool )
|
||||
function utillib.bool2Number( bool )
|
||||
return bool and 1 or 0
|
||||
end
|
||||
|
||||
|
||||
@@ -213,7 +213,7 @@ function RL.draw()
|
||||
drawApple()
|
||||
|
||||
if gameState == STATE.OVER then
|
||||
RL.DrawText( RL.GetFontDefault(), "Press Enter to\nrestart", { 10, 10 }, 10, 2, RL.WHITE )
|
||||
RL.DrawText( "Press Enter to\nrestart", { 10, 10 }, 10, RL.WHITE )
|
||||
end
|
||||
RL.EndTextureMode()
|
||||
|
||||
|
||||
@@ -24,5 +24,5 @@ end
|
||||
|
||||
function RL.draw()
|
||||
RL.ClearBackground( RL.RAYWHITE )
|
||||
RL.DrawText( RL.GetFontDefault(), text, textPos, 20, 2, textColor )
|
||||
RL.DrawText( text, textPos, 20, textColor )
|
||||
end
|
||||
|
||||
@@ -10,6 +10,8 @@ int lcoreIsWindowFocused( lua_State *L );
|
||||
int lcoreSetWindowMonitor( lua_State *L );
|
||||
int lcoreSetWindowPosition( lua_State *L );
|
||||
int lcoreSetWindowSize( lua_State *L );
|
||||
int lcoreSetWindowOpacity( lua_State *L );
|
||||
int lcoreGetWindowHandle( lua_State *L );
|
||||
int lcoreSetWindowMinSize( lua_State *L );
|
||||
int lcoreGetMonitorPosition( lua_State *L );
|
||||
int lcoreGetMonitorSize( lua_State *L );
|
||||
@@ -20,6 +22,7 @@ int lcoreIsWindowState( lua_State *L );
|
||||
int lcoreClearWindowState( lua_State *L );
|
||||
int lcoreIsWindowResized( lua_State *L );
|
||||
int lcoreSetWindowIcon( lua_State *L );
|
||||
int lcoreSetWindowIcons( lua_State *L );
|
||||
int lcoreSetWindowTitle( lua_State *L );
|
||||
int lcoreGetMonitorCount( lua_State *L );
|
||||
int lcoreGetCurrentMonitor( lua_State *L );
|
||||
|
||||
@@ -84,6 +84,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 uluaPushGlyphInfo( lua_State *L, GlyphInfo glyphInfo, Image *image );
|
||||
void uluaPushBuffer( lua_State *L, Buffer buffer );
|
||||
void uluaPushImage( lua_State *L, Image image );
|
||||
void uluaPushTexture( lua_State *L, Texture texture );
|
||||
|
||||
@@ -10,9 +10,15 @@ int ltextUnloadFont( lua_State *L );
|
||||
/* Drawing. */
|
||||
int ltextDrawFPS( lua_State *L );
|
||||
int ltextDrawText( lua_State *L );
|
||||
int ltextDrawTextEx( lua_State *L );
|
||||
int ltextDrawTextPro( lua_State *L );
|
||||
/* Misc. */
|
||||
int ltextDrawTextCodepoint( lua_State *L );
|
||||
int ltextDrawTextCodepoints( lua_State *L );
|
||||
/* Font info functions. */
|
||||
int ltextMeasureText( lua_State *L );
|
||||
int ltextGetGlyphIndex( lua_State *L );
|
||||
int ltextGetGlyphInfo( lua_State *L );
|
||||
int ltextGetGlyphAtlasRec( lua_State *L );
|
||||
int ltextGetFontBaseSize( lua_State *L );
|
||||
int ltextGetFontGlyphCount( lua_State *L );
|
||||
int ltextGetFontGlyphPadding( lua_State *L );
|
||||
|
||||
50
src/core.c
50
src/core.c
@@ -125,6 +125,32 @@ int lcoreSetWindowSize( lua_State *L ) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
> RL.SetWindowOpacity( float opacity )
|
||||
|
||||
Set window opacity [0.0f..1.0f] (only PLATFORM_DESKTOP)
|
||||
*/
|
||||
int lcoreSetWindowOpacity( lua_State *L ) {
|
||||
float opacity = luaL_checknumber( L, 1 );
|
||||
|
||||
SetWindowOpacity( opacity );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
> windowHandle = RL.GetWindowHandle()
|
||||
|
||||
Get native window handle. Return as lightuserdata
|
||||
|
||||
- Success return lightuserdata
|
||||
*/
|
||||
int lcoreGetWindowHandle( lua_State *L ) {
|
||||
lua_pushlightuserdata( L, GetWindowHandle() );
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
> RL.SetWindowMinSize( Vector2 size )
|
||||
|
||||
@@ -265,6 +291,30 @@ int lcoreSetWindowIcon( lua_State *L ) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
> RL.SetWindowIcons( Image{} images )
|
||||
|
||||
Set icon for window (multiple images, RGBA 32bit, only PLATFORM_DESKTOP)
|
||||
*/
|
||||
int lcoreSetWindowIcons( lua_State *L ) {
|
||||
int count = uluaGetTableLenIndex( L, 1 );
|
||||
Image images[ count ];
|
||||
|
||||
int t = 1;
|
||||
int i = 0;
|
||||
lua_pushnil( L );
|
||||
|
||||
while ( lua_next( L, t ) != 0 ) {
|
||||
images[i] = *uluaGetImage( L, lua_gettop( L ) );
|
||||
|
||||
i++;
|
||||
lua_pop( L, 1 );
|
||||
}
|
||||
SetWindowIcons( images, count );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
> RL.SetWindowTitle( string title )
|
||||
|
||||
|
||||
@@ -1504,6 +1504,8 @@ void luaRegister() {
|
||||
assingGlobalFunction( "SetWindowMonitor", lcoreSetWindowMonitor );
|
||||
assingGlobalFunction( "SetWindowPosition", lcoreSetWindowPosition );
|
||||
assingGlobalFunction( "SetWindowSize", lcoreSetWindowSize );
|
||||
assingGlobalFunction( "SetWindowOpacity", lcoreSetWindowOpacity );
|
||||
assingGlobalFunction( "GetWindowHandle", lcoreGetWindowHandle );
|
||||
assingGlobalFunction( "SetWindowMinSize", lcoreSetWindowMinSize );
|
||||
assingGlobalFunction( "GetMonitorPosition", lcoreGetMonitorPosition );
|
||||
assingGlobalFunction( "GetMonitorSize", lcoreGetMonitorSize );
|
||||
@@ -1514,6 +1516,7 @@ void luaRegister() {
|
||||
assingGlobalFunction( "ClearWindowState", lcoreClearWindowState );
|
||||
assingGlobalFunction( "IsWindowResized", lcoreIsWindowResized );
|
||||
assingGlobalFunction( "SetWindowIcon", lcoreSetWindowIcon );
|
||||
assingGlobalFunction( "SetWindowIcons", lcoreSetWindowIcons );
|
||||
assingGlobalFunction( "SetWindowTitle", lcoreSetWindowTitle );
|
||||
assingGlobalFunction( "GetMonitorCount", lcoreGetMonitorCount );
|
||||
assingGlobalFunction( "GetCurrentMonitor", lcoreGetCurrentMonitor );
|
||||
@@ -1936,9 +1939,15 @@ void luaRegister() {
|
||||
/* Drawing. */
|
||||
assingGlobalFunction( "DrawFPS", ltextDrawFPS );
|
||||
assingGlobalFunction( "DrawText", ltextDrawText );
|
||||
assingGlobalFunction( "DrawTextEx", ltextDrawTextEx );
|
||||
assingGlobalFunction( "DrawTextPro", ltextDrawTextPro );
|
||||
/* Misc. */
|
||||
assingGlobalFunction( "DrawTextCodepoint", ltextDrawTextCodepoint );
|
||||
assingGlobalFunction( "DrawTextCodepoints", ltextDrawTextCodepoints );
|
||||
/* Font info functions. */
|
||||
assingGlobalFunction( "MeasureText", ltextMeasureText );
|
||||
assingGlobalFunction( "GetGlyphIndex", ltextGetGlyphIndex );
|
||||
assingGlobalFunction( "GetGlyphInfo", ltextGetGlyphInfo );
|
||||
assingGlobalFunction( "GetGlyphAtlasRec", ltextGetGlyphAtlasRec );
|
||||
assingGlobalFunction( "GetFontBaseSize", ltextGetFontBaseSize );
|
||||
assingGlobalFunction( "GetFontGlyphCount", ltextGetFontGlyphCount );
|
||||
assingGlobalFunction( "GetFontGlyphPadding", ltextGetFontGlyphPadding );
|
||||
@@ -3129,6 +3138,20 @@ void uluaPushBoundingBox( lua_State *L, BoundingBox box ) {
|
||||
lua_rawseti( L, -2, 2 );
|
||||
}
|
||||
|
||||
void uluaPushGlyphInfo( lua_State *L, GlyphInfo glyphInfo, Image *image ) {
|
||||
lua_createtable( L, 4, 0 );
|
||||
lua_pushinteger( L, glyphInfo.value );
|
||||
lua_setfield( L, -2, "value" );
|
||||
lua_pushinteger( L, glyphInfo.offsetX );
|
||||
lua_setfield( L, -2, "offsetX" );
|
||||
lua_pushinteger( L, glyphInfo.offsetY );
|
||||
lua_setfield( L, -2, "offsetY" );
|
||||
lua_pushinteger( L, glyphInfo.advanceX );
|
||||
lua_setfield( L, -2, "advanceX" );
|
||||
lua_pushlightuserdata( L, image );
|
||||
lua_setfield( L, -2, "image" );
|
||||
}
|
||||
|
||||
void uluaPushBuffer( lua_State *L, Buffer buffer ) {
|
||||
Buffer *bufferP = lua_newuserdata( L, sizeof( Buffer ) );
|
||||
*bufferP = buffer;
|
||||
|
||||
@@ -41,7 +41,6 @@ bool stateInit( int argn, const char **argc, const char *exePath ) {
|
||||
|
||||
for ( int i = 0; i < RL_MAX_SHADER_LOCATIONS; i++ ) {
|
||||
state->RLGLcurrentShaderLocs[i] = defaultShaderLocs[i];
|
||||
printf( "defaultShaderLocs[%d] %d\n", i, defaultShaderLocs[i] );
|
||||
}
|
||||
|
||||
return state->run;
|
||||
|
||||
124
src/text.c
124
src/text.c
@@ -42,7 +42,7 @@ int ltextLoadFont( lua_State *L ) {
|
||||
/*
|
||||
> font = RL.LoadFontEx( string fileName, int fontSize, int{} fontChars )
|
||||
|
||||
Load font from file with extended parameters. Loading the default character set
|
||||
Load font from file with extended parameters, use NULL for fontChars to load the default character set
|
||||
|
||||
- Failure return nil
|
||||
- Success return Font
|
||||
@@ -67,7 +67,7 @@ int ltextLoadFontEx( lua_State *L ) {
|
||||
}
|
||||
uluaPushFont( L, LoadFontEx( lua_tostring( L, 1 ), fontSize, fontChars, glyphCount ) );
|
||||
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
uluaPushFont( L, LoadFontEx( lua_tostring( L, 1 ), fontSize, NULL, 0 ) );
|
||||
|
||||
@@ -142,11 +142,26 @@ int ltextDrawFPS( lua_State *L ) {
|
||||
}
|
||||
|
||||
/*
|
||||
> RL.DrawText( Font font, string text, Vector2 position, float fontSize, float spacing, Color tint )
|
||||
> RL.DrawText( string text, Vector2 position, float fontSize, Color tint )
|
||||
|
||||
Draw text (using default font)
|
||||
*/
|
||||
int ltextDrawText( lua_State *L ) {
|
||||
Vector2 position = uluaGetVector2Index( L, 2 );
|
||||
float fontSize = luaL_checknumber( L, 3 );
|
||||
Color tint = uluaGetColorIndex( L, 4 );
|
||||
|
||||
DrawText( luaL_checkstring( L, 1 ), position.x, position.y, fontSize, tint );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
> RL.DrawTextEx( Font font, string text, Vector2 position, float fontSize, float spacing, Color tint )
|
||||
|
||||
Draw text using font and additional parameters
|
||||
*/
|
||||
int ltextDrawText( lua_State *L ) {
|
||||
int ltextDrawTextEx( lua_State *L ) {
|
||||
Font *font = uluaGetFont( L, 1 );
|
||||
Vector2 position = uluaGetVector2Index( L, 3 );
|
||||
float fontSize = luaL_checknumber( L, 4 );
|
||||
@@ -178,7 +193,54 @@ int ltextDrawTextPro( lua_State *L ) {
|
||||
}
|
||||
|
||||
/*
|
||||
## Text - Misc
|
||||
> RL.DrawTextCodepoint( Font font, int codepoint, Vector2 position, float fontSize, Color tint )
|
||||
|
||||
Draw one character (codepoint)
|
||||
*/
|
||||
int ltextDrawTextCodepoint( lua_State *L ) {
|
||||
Font *font = uluaGetFont( L, 1 );
|
||||
int codepoint = luaL_checkinteger( L, 2 );
|
||||
Vector2 position = uluaGetVector2Index( L, 3 );
|
||||
float fontSize = luaL_checknumber( L, 4 );
|
||||
Color tint = uluaGetColorIndex( L, 5 );
|
||||
|
||||
DrawTextCodepoint( *font, codepoint, position, fontSize, tint );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
> RL.DrawTextCodepoints( Font font, int{} codepoints, Vector2 position, float fontSize, float spacing, Color tint )
|
||||
|
||||
Draw multiple character (codepoint)
|
||||
*/
|
||||
int ltextDrawTextCodepoints( lua_State *L ) {
|
||||
Font *font = uluaGetFont( L, 1 );
|
||||
Vector2 position = uluaGetVector2Index( L, 3 );
|
||||
float fontSize = luaL_checknumber( L, 4 );
|
||||
float spacing = luaL_checknumber( L, 5 );
|
||||
Color tint = uluaGetColorIndex( L, 6 );
|
||||
|
||||
int count = uluaGetTableLenIndex( L, 2 );
|
||||
int codepoints[ count ];
|
||||
|
||||
int t = 2;
|
||||
int i = 0;
|
||||
lua_pushnil( L );
|
||||
|
||||
while ( lua_next( L, t ) != 0 ) {
|
||||
codepoints[i] = lua_tointeger( L, -1 );
|
||||
|
||||
i++;
|
||||
lua_pop( L, 1 );
|
||||
}
|
||||
DrawTextCodepoints( *font, codepoints, count, position, fontSize, spacing, tint );
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
## Text - Font info functions
|
||||
*/
|
||||
|
||||
/*
|
||||
@@ -198,6 +260,56 @@ int ltextMeasureText( lua_State *L ) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
> index = RL.GetGlyphIndex( Font font, int codepoint )
|
||||
|
||||
Get glyph index position in font for a codepoint (unicode character), fallback to '?' if not found
|
||||
|
||||
- Success return int
|
||||
*/
|
||||
int ltextGetGlyphIndex( lua_State *L ) {
|
||||
Font *font = uluaGetFont( L, 1 );
|
||||
int codepoint = luaL_checkinteger( L, 2 );
|
||||
|
||||
lua_pushinteger( L, GetGlyphIndex( *font, codepoint ) );
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
> glyphInfo = RL.GetGlyphInfo( Font font, int codepoint )
|
||||
|
||||
Get glyph font info data for a codepoint (unicode character), fallback to '?' if not found.
|
||||
Return Image as lightuserdata
|
||||
|
||||
- Success return GlyphInfo
|
||||
*/
|
||||
int ltextGetGlyphInfo( lua_State *L ) {
|
||||
Font *font = uluaGetFont( L, 1 );
|
||||
int codepoint = luaL_checkinteger( L, 2 );
|
||||
|
||||
int id = GetGlyphIndex( *font, codepoint );
|
||||
uluaPushGlyphInfo( L, font->glyphs[id], &font->glyphs[id].image );
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
> rect = RL.GetGlyphAtlasRec( Font font, int codepoint )
|
||||
|
||||
Get glyph rectangle in font atlas for a codepoint (unicode character), fallback to '?' if not found
|
||||
|
||||
- Success return Rectangle
|
||||
*/
|
||||
int ltextGetGlyphAtlasRec( lua_State *L ) {
|
||||
Font *font = uluaGetFont( L, 1 );
|
||||
int codepoint = luaL_checkinteger( L, 2 );
|
||||
|
||||
uluaPushRectangle( L, GetGlyphAtlasRec( *font, codepoint ) );
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
> baseSize = RL.GetFontBaseSize( Font font )
|
||||
|
||||
@@ -246,7 +358,7 @@ int ltextGetFontGlyphPadding( lua_State *L ) {
|
||||
/*
|
||||
> texture = RL.GetFontTexture( Font font )
|
||||
|
||||
Get font texture atlas containing the glyphs. Returns as lightuserdata
|
||||
Get font texture atlas containing the glyphs. Return as lightuserdata
|
||||
|
||||
- Success return Texture
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user