diff options
| author | jussi | 2024-07-02 14:59:38 +0300 |
|---|---|---|
| committer | jussi | 2024-07-02 14:59:38 +0300 |
| commit | fd18b5526e0c2b058f175ba140258549fec09098 (patch) | |
| tree | ea357ac9cbe9c24a3e009092da99896f38561a3c /src/rgui.c | |
| parent | e45564ea3f0f27c32264f98da80c6d3556256de0 (diff) | |
| download | reilua-enhanced-fd18b5526e0c2b058f175ba140258549fec09098.tar.gz reilua-enhanced-fd18b5526e0c2b058f175ba140258549fec09098.tar.bz2 reilua-enhanced-fd18b5526e0c2b058f175ba140258549fec09098.zip | |
GuiGetIcons fix and added GuiSetIcons.
Diffstat (limited to 'src/rgui.c')
| -rw-r--r-- | src/rgui.c | 43 |
1 files changed, 39 insertions, 4 deletions
@@ -2,6 +2,7 @@ #include "state.h" #include "rgui.h" #include "lua_core.h" +#include "rmath.h" #define RAYGUI_IMPLEMENTATION #include "raygui.h" @@ -286,14 +287,48 @@ int lguiGuiSetIconScale( lua_State* L ) { } /* -> icons = RL.GuiGetIcons() +> iconsBuffer = RL.GuiGetIcons() -Get raygui icons data pointer +Get raygui icons data in buffer. guiIcons size is by default: 256*(16*16/32) = 2048*4 = 8192 bytes = 8 KB -- Success return int +- Success return Buffer */ int lguiGuiGetIcons( lua_State* L ) { - lua_pushinteger( L, *GuiGetIcons() ); + const unsigned int dataSize = RAYGUI_ICON_MAX_ICONS * RAYGUI_ICON_DATA_ELEMENTS * sizeof( unsigned int ); + + Buffer buffer = { + .type = BUFFER_UNSIGNED_INT, + .size = dataSize * sizeof( unsigned int ), + .data = malloc( dataSize * sizeof( unsigned int ) ) + }; + memcpy( buffer.data, GuiGetIcons(), dataSize ); + + uluaPushBuffer( L, buffer ); + + return 1; +} + +/* +> success = RL.GuiSetIcons( Buffer iconBuffer ) + +Set raygui icons data in buffer. guiIcons size is by default: 256*(16*16/32) = 2048*4 = 8192 bytes = 8 KB + +- Failure return false +- Success return true +*/ +int lguiGuiSetIcons( lua_State* L ) { + Buffer* buffer = uluaGetBuffer( L, 1 ); + + if ( buffer->type != BUFFER_UNSIGNED_INT ) { + TraceLog( state->logLevelInvalid, "Buffer type must be BUFFER_UNSIGNED_INT" ); + lua_pushboolean( L, false ); + + return 1; + } + const unsigned int dataSize = RAYGUI_ICON_MAX_ICONS * RAYGUI_ICON_DATA_ELEMENTS * sizeof( unsigned int ); + memcpy( GuiGetIcons(), buffer->data, imin( dataSize, buffer->size ) ); + + lua_pushboolean( L, true ); return 1; } |
