From aa03fffcb32e4a04589d74273c81316b39afacd9 Mon Sep 17 00:00:00 2001 From: jussi Date: Thu, 30 Nov 2023 02:50:00 +0200 Subject: [PATCH] Raygui textures with SetShapesTexture. --- API.md | 12 +- ReiLua_API.lua | 10 +- changelog | 2 + examples/gui/main.lua | 2 +- examples/raygui_lib/main.lua | 37 ++- examples/resources/images/LICENCE | 1 + examples/resources/images/gradient.png | Bin 0 -> 21760 bytes examples/resources/lib/raygui.lua | 322 +++++++++++++++++++------ examples/window/main.lua | 2 + include/state.h | 1 + include/textures.h | 1 + src/lua_core.c | 3 +- src/state.c | 1 + src/text.c | 4 +- src/textures.c | 13 + 15 files changed, 329 insertions(+), 82 deletions(-) create mode 100644 examples/resources/images/gradient.png diff --git a/API.md b/API.md index 7bb138c..1bbb8b9 100644 --- a/API.md +++ b/API.md @@ -5880,6 +5880,14 @@ Draw text (Custom sprite font) within an image (Destination) --- +> texture = RL.GetTextureDefault() + +Get default texture. Return as lightuserdata + +- Success return Texture + +--- + > texture = RL.LoadTexture( string fileName ) Load texture from file into GPU memory ( VRAM ) @@ -6201,10 +6209,12 @@ Get pixel data size in bytes for certain format --- -> RL.GetFontDefault() +> font = RL.GetFontDefault() Get the default Font. Return as lightuserdata +- Success return Font + --- > font = RL.LoadFont( string fileName ) diff --git a/ReiLua_API.lua b/ReiLua_API.lua index b1b6500..baccf5e 100644 --- a/ReiLua_API.lua +++ b/ReiLua_API.lua @@ -3314,6 +3314,11 @@ function RL.ImageDrawTextEx( dst, font, text, position, fontSize, spacing, tint -- Textures - Texture loading functions +---Get default texture. Return as lightuserdata +---- Success return Texture +---@return any texture +function RL.GetTextureDefault() end + ---Load texture from file into GPU memory ( VRAM ) ---- Failure return nil ---- Success return Texture @@ -3590,8 +3595,9 @@ function RL.GetPixelDataSize( width, height, format ) end -- Text - Font loading/unloading functions ---Get the default Font. Return as lightuserdata ----@return any RL.GetFontDefault -function RL.GetFontDefault() end +---- Success return Font +---@return any font +function RL.GetFontDefault() end ---Load font from file into GPU memory (VRAM) ---- Failure return nil diff --git a/changelog b/changelog index 03b60d8..582c5d7 100644 --- a/changelog +++ b/changelog @@ -16,6 +16,7 @@ KEY CHANGES: - ADDED: Experimental GLFW Pen Touch events. Needs glfw PR https://github.com/glfw/glfw/pull/1445. - ADDED: Platform specific API documentation generation. - ADDED: Platform web. + - ADDED: Raygui textures with SetShapesTexture. DETAILED CHANGES: - REMOVED: DrawLineBezierQuad, DrawLineBezierCubic. @@ -32,6 +33,7 @@ DETAILED CHANGES: - CHANGE: Term globals changed to defines in documentation. - CHANGE: Event documentation is now described in c files. - ADDED: ExportBufferAsCode. + - ADDED: GetTextureDefault. ------------------------------------------------------------------------ Release: ReiLua version 0.6.0 Using Raylib 4.5 diff --git a/examples/gui/main.lua b/examples/gui/main.lua index 676b562..5a178dc 100644 --- a/examples/gui/main.lua +++ b/examples/gui/main.lua @@ -51,7 +51,7 @@ function RL.draw() if windowOpen and RL.GuiWindowBox( { 300, 16, 200, 320 }, "Window" ) == 1 then windowOpen = false end - + RL.GuiPanel( { 60, 260, 100, 100 }, "Panel" ) _, toggled = RL.GuiToggle( { 200, 260, 64, 32 }, "Toggle", toggled ) diff --git a/examples/raygui_lib/main.lua b/examples/raygui_lib/main.lua index 5bd187a..b031b49 100644 --- a/examples/raygui_lib/main.lua +++ b/examples/raygui_lib/main.lua @@ -9,6 +9,8 @@ Raygui = require( "raygui" ) local grid = {} local windowbox = {} local tabBar = {} +local texture = RL.LoadTexture( RL.GetBasePath().."../resources/images/gradient.png" ) +local textureRect = Rect:new( 0, 0, RL.GetTextureSize( texture )[1], RL.GetTextureSize( texture )[2] ) local function closeTab( self, id ) local splits = Util.split( tabBar.text, ";" ) @@ -44,6 +46,10 @@ function RL.init() RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_SPACING, 4 ) RL.GuiSetStyle( RL.SPINNER, RL.TEXT_ALIGNMENT, RL.TEXT_ALIGN_RIGHT ) + RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_COLOR_NORMAL, RL.ColorToInt( RL.RED ) ) + RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_COLOR_FOCUSED, RL.ColorToInt( RL.ORANGE ) ) + RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_COLOR_PRESSED, RL.ColorToInt( RL.GREEN ) ) + local label = Raygui.Label:new( Rect:new( 16, 16, 64, 32 ), "Cat" @@ -57,12 +63,17 @@ function RL.init() local button = Raygui.Button:new( Rect:new( 245, 188, 64, 32 ), "Dog", - function() toggleGroup:setText( "Dog;Cat\nEagle" ) end + function() toggleGroup:setText( "Dog;Cat\nEagle" ) end, + texture, + textureRect ) local checkbox = Raygui.CheckBox:new( Rect:new( 64, 128, 20, 20 ), "Dog", - false + false, + nil, + texture, + textureRect ) local combobox = Raygui.ComboBox:new( Rect:new( 64, 256, 128, 32 ), @@ -115,7 +126,9 @@ function RL.init() 0, 0, 100, - function( self ) print( "Changed value "..self.value ) end + function( self ) print( "Changed value "..self.value ) end, + texture, + textureRect ) local sliderbar = Raygui.SliderBar:new( Rect:new( 50, 550, 256, 32 ), @@ -125,6 +138,7 @@ function RL.init() 0, 100, function( self ) print( "Changed value "..self.value ) end + ) local progressbar = Raygui.ProgressBar:new( Rect:new( 50, 600, 256, 32 ), @@ -155,7 +169,10 @@ function RL.init() -- Close callback. function( self ) self.visible = false end, -- Grab callback. - function( self ) Raygui.set2Top( self ) end + function( self ) Raygui.set2Top( self ) end, + nil, + texture, + textureRect ) local groupbox = Raygui.GroupBox:new( Rect:new( 400, 700, 256, 256 ), @@ -177,7 +194,9 @@ function RL.init() 0, -- function( self ) Raygui.set2Top( self ) end nil, - closeTab + closeTab, + texture, + textureRect ) local scrollpanel = Raygui.ScrollPanel:new( Rect:new( 800, 64, 256, 256 ), @@ -194,7 +213,9 @@ function RL.init() "Cat;Dog;Horse;Cow;Pig;Eagle;Lion", 0, 0, - function( self ) print( self:getItem( self.active ) ) end + function( self ) print( self:getItem( self.active ) ) end, + texture, + textureRect ) local listviewex = Raygui.ListViewEx:new( Rect:new( 1300, 64, 128, 80 ), @@ -202,7 +223,9 @@ function RL.init() 0, 0, 0, - function( self ) print( self:getItem( self.active ) ) end + function( self ) print( self:getItem( self.active ) ) end, + texture, + textureRect ) local messagebox = Raygui.MessageBox:new( Rect:new( 1100, 150, 300, 128 ), diff --git a/examples/resources/images/LICENCE b/examples/resources/images/LICENCE index 3cf6909..0f9b22d 100644 --- a/examples/resources/images/LICENCE +++ b/examples/resources/images/LICENCE @@ -6,6 +6,7 @@ grass.png Jussi Viitala CC0 snake.png Jussi Viitala CC0 ui_border.png Jussi Viitala CC0 ui_bgr.png Jussi Viitala CC0 +gradient.png Jussi Viitala CC0 check-mark.png Delapouite Creative Commons 3.0 https://game-icons.net Resized circle.png Delapouite Creative Commons 3.0 https://game-icons.net Resized plain-circle.png Delapouite Creative Commons 3.0 https://game-icons.net Resized diff --git a/examples/resources/images/gradient.png b/examples/resources/images/gradient.png new file mode 100644 index 0000000000000000000000000000000000000000..e18b1b07d9f0724b312133305cbeabaf562b44db GIT binary patch literal 21760 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 ze#defaultFont = GetFontDefault(); state->defaultMaterial = LoadMaterialDefault(); + state->defaultTexture = (Texture){ 1, 1, 1, 1, 7 }; state->RLGLcurrentShaderLocs = malloc( RL_MAX_SHADER_LOCATIONS * sizeof( int ) ); int *defaultShaderLocs = rlGetShaderLocsDefault(); diff --git a/src/text.c b/src/text.c index a6e0241..4c20966 100644 --- a/src/text.c +++ b/src/text.c @@ -162,9 +162,11 @@ bool wordWrap, Color *tints, int tintCount, Color *backTints, int backTintCount */ /* -> RL.GetFontDefault() +> font = RL.GetFontDefault() Get the default Font. Return as lightuserdata + +- Success return Font */ int ltextGetFontDefault( lua_State *L ) { lua_pushlightuserdata( L, &state->defaultFont ); diff --git a/src/textures.c b/src/textures.c index ef1e76e..717db91 100644 --- a/src/textures.c +++ b/src/textures.c @@ -1035,6 +1035,19 @@ int ltexturesImageDrawTextEx( lua_State *L ) { ## Textures - Texture loading functions */ +/* +> texture = RL.GetTextureDefault() + +Get default texture. Return as lightuserdata + +- Success return Texture +*/ +int ltexturesGetTextureDefault( lua_State *L ) { + lua_pushlightuserdata( L, &state->defaultTexture ); + + return 1; +} + /* > texture = RL.LoadTexture( string fileName )