summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changelog1
-rw-r--r--examples/gui/main.lua6
-rw-r--r--examples/rlgl/main.lua62
-rw-r--r--include/lua_core.h3
-rw-r--r--include/main.h6
-rw-r--r--src/lua_core.c50
-rw-r--r--src/state.c6
-rw-r--r--src/textures.c13
8 files changed, 72 insertions, 75 deletions
diff --git a/changelog b/changelog
index f9b4bc9..76cf18a 100644
--- a/changelog
+++ b/changelog
@@ -100,6 +100,7 @@ Detailed changes:
- ADDED: Values for API.md
- ADDED: GetFontTexture
- CHANGED: Renamed doc_parser.lua to docgen.lua
+ - FIXED: isValidRenderTexture checks that it is TEXTURE_TYPE_RENDER_TEXTURE
------------------------------------------------------------------------
Release: ReiLua version 0.4.0 Using Raylib 4.2
diff --git a/examples/gui/main.lua b/examples/gui/main.lua
index 25c4ed6..18d8b41 100644
--- a/examples/gui/main.lua
+++ b/examples/gui/main.lua
@@ -36,10 +36,16 @@ end
function RL.draw()
RL.ClearBackground( { 50, 20, 75 } )
+ -- RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_SIZE, 10 )
+
if RL.GuiButton( { 112, 16, 96, 32 }, RL.GuiIconText( 113, "Exit" ) ) then
RL.CloseWindow()
end
+ -- RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_SIZE, 20 )
+ RL.GuiButton( { 112, 64, 96, 32 }, RL.GuiIconText( 113, "Kissa" ) )
+ -- RL.GuiSetStyle( RL.DEFAULT, RL.TEXT_SIZE, 10 )
+
if windowOpen and RL.GuiWindowBox( { 300, 16, 200, 320 }, "Window" ) then
windowOpen = false
end
diff --git a/examples/rlgl/main.lua b/examples/rlgl/main.lua
index 7792f75..ac6bf53 100644
--- a/examples/rlgl/main.lua
+++ b/examples/rlgl/main.lua
@@ -2,8 +2,6 @@
local monitor = 0
local texture = -1
-local vaoId = -1
-local vboId = -1
local triSize = 32.0
local vertices = {
0.0, 0.0, 0.0,
@@ -16,6 +14,39 @@ local colors = {
RL.BLUE, RL.BLUE, RL.BLUE
}
+local VBO_VERTEX_POS = 0
+local VBO_COLOR_POS = 1
+
+local mesh = {
+ vaoId = -1,
+ vboIds = {
+ vertices = -1,
+ colors = -1,
+ }
+}
+
+function uploadMesh()
+ mesh.vaoId = RL.rlLoadVertexArray()
+
+ RL.rlEnableVertexArray( mesh.vaoId )
+
+ -- Vertices.
+ mesh.vboIds.vertices = RL.rlLoadVertexBuffer( vertices, RL.RL_FLOAT, false )
+ RL.rlSetVertexAttribute( VBO_VERTEX_POS, 3, RL.RL_FLOAT, false, 0, 0 )
+ RL.rlEnableVertexAttribute( VBO_VERTEX_POS )
+ -- Colors.
+ mesh.vboIds.colors = RL.rlLoadVertexBuffer( vertices, RL.RL_UNSIGNED_BYTE, false )
+ RL.rlSetVertexAttribute( VBO_COLOR_POS, 4, RL.RL_UNSIGNED_BYTE, false, 0, 0 )
+ RL.rlEnableVertexAttribute( VBO_COLOR_POS )
+
+ RL.rlDisableVertexArray()
+
+ print( "Mesh:" )
+ print( "\tvaoId: "..mesh.vaoId )
+ print( "\tvboIds.vertices: "..mesh.vboIds.vertices )
+ print( "\tvboIds.colors: "..mesh.vboIds.colors )
+end
+
function RL.init()
local mPos = RL.GetMonitorPosition( monitor )
local mSize = RL.GetMonitorSize( monitor )
@@ -25,32 +56,25 @@ function RL.init()
RL.SetWindowState( RL.FLAG_VSYNC_HINT )
RL.SetWindowPosition( { mPos[1] + mSize[1] / 2 - winSize[1] / 2, mPos[2] + mSize[2] / 2 - winSize[2] / 2 } )
- vaoId = RL.rlLoadVertexArray()
-
- RL.rlEnableVertexArray( vaoId )
- -- vboId = RL.rlLoadVertexBuffer( vertexBuffer, RL.RL_UNSIGNED_BYTE, false )
- vboId = RL.rlLoadVertexBuffer( vertices, RL.RL_FLOAT, false )
- RL.rlSetVertexAttribute( 0, 3, RL.RL_FLOAT, false, 0, 0 )
- RL.rlEnableVertexAttribute( 0 )
-
- RL.rlDisableVertexArray()
-
- -- RL.DrawMesh( )
+ uploadMesh()
+end
- -- print( "vaoId", vaoId )
- -- print( "vboId", vboId )
+function drawMesh()
end
function RL.draw()
RL.ClearBackground( { 100, 150, 100 } )
end
+-- You need to manually free resources.
function RL.exit()
- if 0 <= vaoId then
- RL.rlUnloadVertexArray( vaoId )
+ if 0 <= mesh.vaoId then
+ RL.rlUnloadVertexArray( mesh.vaoId )
end
- if 0 <= vboId then
- RL.rlUnloadVertexBuffer( vboId )
+ for _, vboId in pairs( mesh.vboIds ) do
+ if 0 <= vboId then
+ RL.rlUnloadVertexBuffer( vboId )
+ end
end
end \ No newline at end of file
diff --git a/include/lua_core.h b/include/lua_core.h
index ed354b8..2285ca4 100644
--- a/include/lua_core.h
+++ b/include/lua_core.h
@@ -14,9 +14,6 @@ enum EventType {
EVENT_CURSOR_ENTER
};
-void defineGlobals();
-void logCustom( int logLevel, const char *text, va_list args );
-
bool luaInit();
int luaTraceback( lua_State *L );
bool luaCallMain();
diff --git a/include/main.h b/include/main.h
index 10ec25d..342714f 100644
--- a/include/main.h
+++ b/include/main.h
@@ -46,9 +46,9 @@
#endif
#else
#ifdef SHARED
- #include <lua/lua.h>
- #include <lua/lualib.h>
- #include <lua/lauxlib.h>
+ #include <lua.h>
+ #include <lualib.h>
+ #include <lauxlib.h>
#else
#include "lua/lua.h"
#include "lua/lualib.h"
diff --git a/src/lua_core.c b/src/lua_core.c
index 77564ee..15dfe70 100644
--- a/src/lua_core.c
+++ b/src/lua_core.c
@@ -44,10 +44,10 @@ static void assingGlobalFunction( const char *name, int ( *functionPtr )( lua_St
lua_setfield( L, -2, name );
}
-void defineGlobals() {
+static void defineGlobals() {
lua_State *L = state->luaState;
- lua_newtable( state->luaState );
+ lua_newtable( L );
lua_setglobal( L, "RL" );
lua_getglobal( L, "RL" );
@@ -637,7 +637,7 @@ void defineGlobals() {
}
// Custom logging funtion.
-void logCustom( int logLevel, const char *text, va_list args ) {
+static void logCustom( int logLevel, const char *text, va_list args ) {
char string[ STRING_LEN ] = {'\0'};
char msg[ STRING_LEN ] = {'\0'};
@@ -1993,60 +1993,46 @@ bool isValidTexture( lua_State *L, int index, bool allowTable ) {
if ( lua_isnumber( L, index ) ) {
int id = lua_tointeger( L, index );
- if ( ( 0 <= id && id < state->textureCount && state->textures[ id ] != NULL ) ) {
+ if ( 0 <= id && id < state->textureCount && state->textures[ id ] != NULL ) {
return true;
}
- else {
- return false;
- }
}
else if ( allowTable && lua_istable( L, index ) ) {
return true;
}
- else {
- TraceLog( state->logLevelInvalid, "%s", "Error. Invalid Texture." );
- return false;
- }
+ TraceLog( state->logLevelInvalid, "%s", "Error. Invalid Texture." );
+ return false;
}
bool isValidRenderTexture( lua_State *L, int index, bool allowTable ) {
if ( lua_isnumber( L, index ) ) {
int id = lua_tointeger( L, index );
- if ( ( 0 <= id && id < state->textureCount && state->textures[ id ] != NULL ) ) {
+ if ( 0 <= id && id < state->textureCount && state->textures[ id ] != NULL
+ && state->textures[ id ]->type == TEXTURE_TYPE_RENDER_TEXTURE ) {
return true;
}
- else {
- return false;
- }
}
else if ( allowTable && lua_istable( L, index ) ) {
return true;
}
- else {
- TraceLog( state->logLevelInvalid, "%s", "Error. Invalid RenderTexture." );
- return false;
- }
+ TraceLog( state->logLevelInvalid, "%s", "Error. Invalid RenderTexture." );
+ return false;
}
bool isValidCamera2D( lua_State *L, int index, bool allowTable ) {
if ( lua_isnumber( L, index ) ) {
int id = lua_tointeger( L, index );
- if ( ( 0 <= id && id < state->camera2DCount && state->camera2Ds[ id ] != NULL ) ) {
+ if ( 0 <= id && id < state->camera2DCount && state->camera2Ds[ id ] != NULL ) {
return true;
}
- else {
- return false;
- }
}
else if ( allowTable && lua_istable( L, index ) ) {
return true;
}
- else {
- TraceLog( state->logLevelInvalid, "%s", "Error. Invalid Camera2D." );
- return false;
- }
+ TraceLog( state->logLevelInvalid, "%s", "Error. Invalid Camera2D." );
+ return false;
}
bool isValidCamera3D( lua_State *L, int index, bool allowTable ) {
@@ -2056,17 +2042,12 @@ bool isValidCamera3D( lua_State *L, int index, bool allowTable ) {
if ( ( 0 <= id && id < state->camera3DCount && state->camera3Ds[ id ] != NULL ) ) {
return true;
}
- else {
- return false;
- }
}
else if ( allowTable && lua_istable( L, index ) ) {
return true;
}
- else {
- TraceLog( state->logLevelInvalid, "%s", "Error. Invalid Camera3D." );
- return false;
- }
+ TraceLog( state->logLevelInvalid, "%s", "Error. Invalid Camera3D." );
+ return false;
}
/* Lua util functions. */
@@ -2082,7 +2063,6 @@ Color uluaGetColorIndex( lua_State *L, int index ) {
TraceLog( state->logLevelInvalid, "%s", "Error. Wrong color value. Returning { 0, 0, 0, 255 }" );
return color;
}
- // int t = lua_gettop( L ), i = 0;
int t = index, i = 0;
lua_pushnil( L );
diff --git a/src/state.c b/src/state.c
index 79812e9..2e1a50f 100644
--- a/src/state.c
+++ b/src/state.c
@@ -94,7 +94,6 @@ bool stateInit( const char *exePath ) {
state->materials[i] = NULL;
}
}
-
InitWindow( state->resolution.x, state->resolution.y, "ReiLua" );
/* Has to be after InitWindod where opengl context is created. */
state->materials[0] = malloc( sizeof( Material ) );
@@ -123,13 +122,13 @@ void stateFree() {
for ( int i = 0; i < state->imageCount; ++i ) {
if ( state->images[i] != NULL ) {
UnloadImage( *state->images[i] );
- // free( state->images[i] );
+ free( state->images[i] );
}
}
for ( int i = 0; i < state->textureCount; ++i ) {
if ( state->textures[i] != NULL ) {
texturesFreeTexture(i);
- // free( state->textures[i] );
+ free( state->textures[i] );
}
}
for ( int i = 0; i < state->fontCount; ++i ) {
@@ -209,7 +208,6 @@ void stateFree() {
}
}
#endif
-
if ( IsAudioDeviceReady() ) {
CloseAudioDevice();
}
diff --git a/src/textures.c b/src/textures.c
index 9fff0d1..29c8476 100644
--- a/src/textures.c
+++ b/src/textures.c
@@ -102,6 +102,7 @@ void texturesFreeTexture( size_t id ) {
state->textures[id] = NULL;
}
}
+
/*
## Textures - Image Loading
*/
@@ -1329,7 +1330,6 @@ int ltexturesImageClearBackground( lua_State *L ) {
lua_pushboolean( L, false );
return 1;
}
-
ImageClearBackground( state->images[ imageId ], color );
lua_pushboolean( L, true );
@@ -1358,7 +1358,6 @@ int ltexturesImageDrawPixel( lua_State *L ) {
lua_pushboolean( L, false );
return 1;
}
-
ImageDrawPixelV( state->images[ imageId ], position, color );
lua_pushboolean( L, true );
@@ -1388,7 +1387,6 @@ int ltexturesImageDrawLine( lua_State *L ) {
lua_pushboolean( L, false );
return 1;
}
-
ImageDrawLineV( state->images[ imageId ], start, end, color );
lua_pushboolean( L, true );
@@ -1418,7 +1416,6 @@ int ltexturesImageDrawCircle( lua_State *L ) {
lua_pushboolean( L, false );
return 1;
}
-
ImageDrawCircleV( state->images[ imageId ], center, radius, color );
lua_pushboolean( L, true );
@@ -1448,7 +1445,6 @@ int ltexturesImageDrawCircleLines( lua_State *L ) {
lua_pushboolean( L, false );
return 1;
}
-
ImageDrawCircleLinesV( state->images[ imageId ], center, radius, color );
lua_pushboolean( L, true );
@@ -1477,7 +1473,6 @@ int ltexturesImageDrawRectangle( lua_State *L ) {
lua_pushboolean( L, false );
return 1;
}
-
ImageDrawRectangleRec( state->images[ imageId ], rec, color );
lua_pushboolean( L, true );
@@ -1507,7 +1502,6 @@ int ltexturesImageDrawRectangleLines( lua_State *L ) {
lua_pushboolean( L, false );
return 1;
}
-
ImageDrawRectangleLines( state->images[ imageId ], rec, thick, color );
lua_pushboolean( L, true );
@@ -1530,7 +1524,7 @@ int ltexturesImageDraw( lua_State *L ) {
return 1;
}
size_t imageDstId = lua_tointeger( L, 1 );
- size_t imageSrcId = lua_tointeger( L, 2);
+ size_t imageSrcId = lua_tointeger( L, 2 );
Rectangle srcRec = uluaGetRectangleIndex( L, 3 );
Rectangle dstRec = uluaGetRectangleIndex( L, 4 );
Color tint = uluaGetColorIndex( L, 5 );
@@ -1539,7 +1533,6 @@ int ltexturesImageDraw( lua_State *L ) {
lua_pushboolean( L, false );
return 1;
}
-
ImageDraw( state->images[ imageDstId ], *state->images[ imageSrcId ], srcRec, dstRec, tint );
lua_pushboolean( L, true );
@@ -1572,7 +1565,6 @@ int ltexturesImageDrawTextEx( lua_State *L ) {
lua_pushboolean( L, false );
return 1;
}
-
ImageDrawTextEx( state->images[ imageId ], *state->fonts[ fontId ], lua_tostring( L, 3 ), position, fontSize, spacing, tint );
lua_pushboolean( L, true );
@@ -1603,7 +1595,6 @@ int ltexturesGetImageSize( lua_State *L ) {
lua_pushnil( L );
return 1;
}
-
Image *image = state->images[ imageId ];
uluaPushVector2( L, (Vector2){ image->width, image->height } );