summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.vscode/launch.json2
-rw-r--r--API.md14
-rw-r--r--changelog2
-rw-r--r--examples/dungeon_crawler/main.lua19
-rw-r--r--examples/resources/images/ui_border.pngbin1170 -> 6014 bytes
-rw-r--r--include/text.h1
-rw-r--r--src/core.c2
-rw-r--r--src/lua_core.c1
-rw-r--r--src/models.c27
-rw-r--r--src/text.c29
10 files changed, 75 insertions, 22 deletions
diff --git a/.vscode/launch.json b/.vscode/launch.json
index fd73ad6..9e453e5 100644
--- a/.vscode/launch.json
+++ b/.vscode/launch.json
@@ -9,7 +9,7 @@
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/ReiLua",
- "args": ["/examples/image_draw/"],
+ "args": ["/examples/instancing/"],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
diff --git a/API.md b/API.md
index 81e365f..514c5cb 100644
--- a/API.md
+++ b/API.md
@@ -3698,6 +3698,15 @@ Load font from file into GPU memory ( VRAM )
---
+> font = RL_LoadFontEx( string fileName, int fontSize )
+
+Load font from file with extended parameters. Loading the default character set
+
+- Failure return -1
+- Success return int
+
+---
+
> font = RL_LoadFontFromImage( Image image, Color key, int firstChar )
Load font from Image ( XNA style )
@@ -3926,10 +3935,9 @@ Draw a plane XZ
---
-> success = RL_DrawQuad3DTexture( texture, Vector3{} vertices, Vector2{} texCoords, Color color )
+> success = RL_DrawQuad3DTexture( texture, Vector3{} vertices, Vector2{} texCoords, Color{} colors )
-Draw 3D quad texture using vertices and texture coordinates. Texture coordinates opengl style 0.0 - 1.0.
-Note! Could be replaced something like "DrawPlaneTextureRec"
+Draw 3D textured quad. ( Texture coordinates opengl style 0.0 - 1.0 ).
- Failure return false
- Success return true
diff --git a/changelog b/changelog
index e6798c9..6084c4d 100644
--- a/changelog
+++ b/changelog
@@ -11,6 +11,7 @@ KEY CHANGES:
- ADDED: ReiLuaGui.
- ADDED: ReiLuaGui Examples.
- ADDED: Draw Mesh Instanced Example.
+ - CHANGED: RL_DrawQuad3DTexture now takes vertex colors instead of just single color.
Detailed changes:
ADDED: Help argument.
@@ -24,3 +25,4 @@ FIXED: RL_DrawEllipse and RL_DrawEllipseLines expecting wrong arguments.
ADDED: RL_IsPathFile.
ADDED: RL_SetMaterialShader.
ADDED: RL_GetFileLength.
+ADDED: RL_LoadFontEx.
diff --git a/examples/dungeon_crawler/main.lua b/examples/dungeon_crawler/main.lua
index 546c8ef..bfc98e1 100644
--- a/examples/dungeon_crawler/main.lua
+++ b/examples/dungeon_crawler/main.lua
@@ -9,6 +9,7 @@ local winScale = 4
local framebuffer = -1
local TILE_SIZE = 32
+local TILE_VERTEX_COLORS = { WHITE, WHITE, WHITE, WHITE }
local FLOOR = 1
local CEILING = 2
@@ -105,22 +106,22 @@ function draw()
-- Floor and ceiling.
for x = 0, 3 do
for y = 0, 10 do
- RL_DrawQuad3DTexture( texture, getTileVer( x, y, FLOOR ), getTexCoords( 1, 0 ), WHITE )
- RL_DrawQuad3DTexture( texture, getTileVer( x, y, CEILING ), getTexCoords( 2, 0 ), WHITE )
+ RL_DrawQuad3DTexture( texture, getTileVer( x, y, FLOOR ), getTexCoords( 1, 0 ), TILE_VERTEX_COLORS )
+ RL_DrawQuad3DTexture( texture, getTileVer( x, y, CEILING ), getTexCoords( 2, 0 ), TILE_VERTEX_COLORS )
end
end
-- Walls.
- RL_DrawQuad3DTexture( texture, getTileVer( 0, 0, WALL_N ), getTexCoords( 0, 0 ), WHITE )
- RL_DrawQuad3DTexture( texture, getTileVer( 1, 0, WALL_N ), getTexCoords( 0, 2 ), WHITE )
- RL_DrawQuad3DTexture( texture, getTileVer( 2, 0, WALL_N ), getTexCoords( 2, 2 ), WHITE )
- RL_DrawQuad3DTexture( texture, getTileVer( 3, 0, WALL_N ), getTexCoords( 0, 0 ), WHITE )
+ RL_DrawQuad3DTexture( texture, getTileVer( 0, 0, WALL_N ), getTexCoords( 0, 0 ), TILE_VERTEX_COLORS )
+ RL_DrawQuad3DTexture( texture, getTileVer( 1, 0, WALL_N ), getTexCoords( 0, 2 ), TILE_VERTEX_COLORS )
+ RL_DrawQuad3DTexture( texture, getTileVer( 2, 0, WALL_N ), getTexCoords( 2, 2 ), TILE_VERTEX_COLORS )
+ RL_DrawQuad3DTexture( texture, getTileVer( 3, 0, WALL_N ), getTexCoords( 0, 0 ), TILE_VERTEX_COLORS )
for x = 0, 3 do
- RL_DrawQuad3DTexture( texture, getTileVer( x, 10, WALL_S ), getTexCoords( 0, 0 ), WHITE )
+ RL_DrawQuad3DTexture( texture, getTileVer( x, 10, WALL_S ), getTexCoords( 0, 0 ), TILE_VERTEX_COLORS )
end
for y = 0, 10 do
- RL_DrawQuad3DTexture( texture, getTileVer( 0, y, WALL_W ), getTexCoords( 0, 0 ), WHITE )
- RL_DrawQuad3DTexture( texture, getTileVer( 3, y, WALL_E ), getTexCoords( 0, 0 ), WHITE )
+ RL_DrawQuad3DTexture( texture, getTileVer( 0, y, WALL_W ), getTexCoords( 0, 0 ), TILE_VERTEX_COLORS )
+ RL_DrawQuad3DTexture( texture, getTileVer( 3, y, WALL_E ), getTexCoords( 0, 0 ), TILE_VERTEX_COLORS )
end
drawSprites()
diff --git a/examples/resources/images/ui_border.png b/examples/resources/images/ui_border.png
index 85936fc..785a8f5 100644
--- a/examples/resources/images/ui_border.png
+++ b/examples/resources/images/ui_border.png
Binary files differ
diff --git a/include/text.h b/include/text.h
index 523d9d0..3754a33 100644
--- a/include/text.h
+++ b/include/text.h
@@ -4,6 +4,7 @@
bool validFont( size_t id );
/* Loading. */
int ltextLoadFont( lua_State *L );
+int ltextLoadFontEx( lua_State *L );
int ltextLoadFontFromImage( lua_State *L );
int ltextUnloadFont( lua_State *L );
/* Drawing. */
diff --git a/src/core.c b/src/core.c
index a4bff1a..1cd9b80 100644
--- a/src/core.c
+++ b/src/core.c
@@ -1247,7 +1247,7 @@ int lcoreSetShaderValue( lua_State *L ) {
}
int uniformType = lua_tointeger( L, -1 );
lua_pop( L, 1 );
-
+
/* Read values. */
size_t valueCount = uluaGetTableLen( L );
float floats[ valueCount ];
diff --git a/src/lua_core.c b/src/lua_core.c
index 1033c74..7056f40 100644
--- a/src/lua_core.c
+++ b/src/lua_core.c
@@ -1062,6 +1062,7 @@ void luaRegister() {
/* Text. */
/* Loading. */
lua_register( L, "RL_LoadFont", ltextLoadFont );
+ lua_register( L, "RL_LoadFontEx", ltextLoadFontEx );
lua_register( L, "RL_LoadFontFromImage", ltextLoadFontFromImage );
lua_register( L, "RL_UnloadFont", ltextUnloadFont );
/* Drawing. */
diff --git a/src/models.c b/src/models.c
index f2f7f2e..6258f81 100644
--- a/src/models.c
+++ b/src/models.c
@@ -558,27 +558,39 @@ int lmodelsDrawPlane( lua_State *L ) {
}
/*
-> success = RL_DrawQuad3DTexture( texture, Vector3{} vertices, Vector2{} texCoords, Color color )
+> success = RL_DrawQuad3DTexture( texture, Vector3{} vertices, Vector2{} texCoords, Color{} colors )
-Draw 3D quad texture using vertices and texture coordinates. Texture coordinates opengl style 0.0 - 1.0.
-Note! Could be replaced something like "DrawPlaneTextureRec"
+Draw 3D textured quad. ( Texture coordinates opengl style 0.0 - 1.0 ).
- Failure return false
- Success return true
*/
int lmodelDrawQuad3DTexture( lua_State *L ) {
if ( !lua_isnumber( L, -4 ) || !lua_istable( L, -3 ) || !lua_istable( L, -2 ) || !lua_istable( L, -1 ) ) {
- TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_DrawQuad3DTexture( texture, Vector3{} vertices, Vector2{} texCoords, Color color )" );
+ TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_DrawQuad3DTexture( texture, Vector3{} vertices, Vector2{} texCoords, Color{} colors )" );
lua_pushboolean( L, false );
return 1;
}
- Color color = uluaGetColor( L );
+
+ /* Colors. */
+ Color colors[4] = { 0 };
+
+ int t = lua_gettop( L ), i = 0;
+ lua_pushnil( L );
+
+ while ( lua_next( L, t ) != 0 ) {
+ if ( lua_istable( L, -1 ) && i < 4 ) {
+ colors[i] = uluaGetColor( L );
+ }
+ i++;
+ lua_pop( L, 1 );
+ }
lua_pop( L, 1 );
/* TexCoords. */
Vector2 texcoords[4] = { 0 };
- int t = lua_gettop( L ), i = 0;
+ t = lua_gettop( L ), i = 0;
lua_pushnil( L );
while ( lua_next( L, t ) != 0 ) {
@@ -621,10 +633,9 @@ int lmodelDrawQuad3DTexture( lua_State *L ) {
rlSetTexture( texturesGetSourceTexture( texId )->id );
rlBegin( RL_QUADS );
- rlColor4ub( color.r, color.g, color.b, color.a );
-
for ( i = 0; i < 4; ++i ) {
rlTexCoord2f( texcoords[i].x, texcoords[i].y );
+ rlColor4ub( colors[i].r, colors[i].g, colors[i].b, colors[i].a );
rlVertex3f( vertices[i].x, vertices[i].y, vertices[i].z );
}
rlEnd();
diff --git a/src/text.c b/src/text.c
index 564204d..50a12b4 100644
--- a/src/text.c
+++ b/src/text.c
@@ -63,6 +63,35 @@ int ltextLoadFont( lua_State *L ) {
}
/*
+> font = RL_LoadFontEx( string fileName, int fontSize )
+
+Load font from file with extended parameters. Loading the default character set
+
+- Failure return -1
+- Success return int
+*/
+int ltextLoadFontEx( lua_State *L ) {
+ if ( !lua_isstring( L, -2 ) || !lua_isnumber( L, -1 ) ) {
+ TraceLog( LOG_WARNING, "%s", "Bad call of function. RL_LoadFontEx( string fileName, int fontSize )" );
+ lua_pushinteger( L, -1 );
+ return 1;
+ }
+ int i = 0;
+
+ for ( i = 0; i < state->fontCount; i++ ) {
+ if ( state->fonts[i] == NULL ) {
+ break;
+ }
+ }
+ state->fonts[i] = malloc( sizeof( Font ) );
+ *state->fonts[i] = LoadFontEx( lua_tostring( L, -2 ), lua_tointeger( L, - 1 ), NULL, 0 );
+ lua_pushinteger( L, i );
+ checkFontRealloc( i );
+
+ return 1;
+}
+
+/*
> font = RL_LoadFontFromImage( Image image, Color key, int firstChar )
Load font from Image ( XNA style )