From e84be852546aecf3e151fd8bb92db88a068c1ea1 Mon Sep 17 00:00:00 2001 From: jussi Date: Fri, 10 May 2024 11:13:32 +0300 Subject: Indentation fix. --- src/core.c | 24 ++--- src/models.c | 236 +++++++++++++++++++++--------------------- src/platforms/core_desktop.c | 120 +++++++++++----------- src/rlgl.c | 12 +-- src/rmath.c | 4 +- src/state.c | 2 +- src/text.c | 240 +++++++++++++++++++++---------------------- src/textures.c | 12 +-- 8 files changed, 325 insertions(+), 325 deletions(-) (limited to 'src') diff --git a/src/core.c b/src/core.c index 459a5be..a687b2a 100644 --- a/src/core.c +++ b/src/core.c @@ -1073,16 +1073,16 @@ int lcoreSetShaderValueV( lua_State* L ) { /* t = values index. */ int t = 3, i = 0; - lua_pushnil( L ); + lua_pushnil( L ); while ( lua_next( L, t ) != 0 ) { - if ( lua_isnumber( L, -1 ) ) { + if ( lua_isnumber( L, -1 ) ) { floats[i] = lua_tonumber( L, -1 ); ints[i] = lua_tointeger( L, -1 ); - } - i++; - lua_pop( L, 1 ); - } + } + i++; + lua_pop( L, 1 ); + } lua_pop( L, 1 ); /* Read values end. */ @@ -1370,7 +1370,7 @@ int lcoreLoadRandomSequence( lua_State* L ) { for ( int i = 0; i < count; i++ ) { lua_pushinteger( L, sequence[i] ); - lua_rawseti( L, -2, i + 1 ); + lua_rawseti( L, -2, i + 1 ); } UnloadRandomSequence( sequence ); @@ -1753,7 +1753,7 @@ int lcoreLoadDirectoryFiles( lua_State* L ) { for ( int i = 0; i < files.count; ++i ) { lua_pushstring( L, files.paths[i] ); - lua_rawseti( L, -2, i+1 ); + lua_rawseti( L, -2, i+1 ); } UnloadDirectoryFiles( files ); @@ -1781,7 +1781,7 @@ int lcoreLoadDirectoryFilesEx( lua_State* L ) { for ( int i = 0; i < files.count; ++i ) { lua_pushstring( L, files.paths[i] ); - lua_rawseti( L, -2, i+1 ); + lua_rawseti( L, -2, i+1 ); } UnloadDirectoryFiles( files ); @@ -3204,9 +3204,9 @@ int lcoreCamera3DYaw( lua_State* L ) { > RL.Camera3DPitch( camera3D camera, float angle, bool lockView, bool rotateAroundTarget, bool rotateUp ) Rotates the camera around it's right vector, pitch is "looking up and down" - - lockView prevents camera overrotation (aka "somersaults") - - rotateAroundTarget defines if rotation is around target or around it's position - - rotateUp rotates the up direction as well (typically only usefull in CAMERA_FREE) +- lockView prevents camera overrotation (aka "somersaults") +- rotateAroundTarget defines if rotation is around target or around it's position +- rotateUp rotates the up direction as well (typically only usefull in CAMERA_FREE) NOTE: angle must be provided in radians */ int lcoreCamera3DPitch( lua_State* L ) { diff --git a/src/models.c b/src/models.c index 1fb1163..193fcb7 100644 --- a/src/models.c +++ b/src/models.c @@ -11,99 +11,99 @@ void unloadMaterial( Material* material ) { } void DrawBillboardProNoRatio( Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector3 up, Vector2 size, Vector2 origin, float rotation, Color tint ) { - // NOTE: Billboard size will maintain source rectangle aspect ratio, size will represent billboard width - // Vector2 sizeRatio = { size.x*(float)source.width/source.height, size.y }; - Vector2 sizeRatio = { size.x, size.y }; - - Matrix matView = MatrixLookAt(camera.position, camera.target, camera.up); - - Vector3 right = { matView.m0, matView.m4, matView.m8 }; - //Vector3 up = { matView.m1, matView.m5, matView.m9 }; - - Vector3 rightScaled = Vector3Scale(right, sizeRatio.x/2); - Vector3 upScaled = Vector3Scale(up, sizeRatio.y/2); - - Vector3 p1 = Vector3Add(rightScaled, upScaled); - Vector3 p2 = Vector3Subtract(rightScaled, upScaled); - - Vector3 topLeft = Vector3Scale(p2, -1); - Vector3 topRight = p1; - Vector3 bottomRight = p2; - Vector3 bottomLeft = Vector3Scale(p1, -1); - - if (rotation != 0.0f) - { - float sinRotation = sinf(rotation*DEG2RAD); - float cosRotation = cosf(rotation*DEG2RAD); - - // NOTE: (-1, 1) is the range where origin.x, origin.y is inside the texture - float rotateAboutX = sizeRatio.x*origin.x/2; - float rotateAboutY = sizeRatio.y*origin.y/2; - - float xtvalue, ytvalue; - float rotatedX, rotatedY; - - xtvalue = Vector3DotProduct(right, topLeft) - rotateAboutX; // Project points to x and y coordinates on the billboard plane - ytvalue = Vector3DotProduct(up, topLeft) - rotateAboutY; - rotatedX = xtvalue*cosRotation - ytvalue*sinRotation + rotateAboutX; // Rotate about the point origin - rotatedY = xtvalue*sinRotation + ytvalue*cosRotation + rotateAboutY; - topLeft = Vector3Add(Vector3Scale(up, rotatedY), Vector3Scale(right, rotatedX)); // Translate back to cartesian coordinates - - xtvalue = Vector3DotProduct(right, topRight) - rotateAboutX; - ytvalue = Vector3DotProduct(up, topRight) - rotateAboutY; - rotatedX = xtvalue*cosRotation - ytvalue*sinRotation + rotateAboutX; - rotatedY = xtvalue*sinRotation + ytvalue*cosRotation + rotateAboutY; - topRight = Vector3Add(Vector3Scale(up, rotatedY), Vector3Scale(right, rotatedX)); - - xtvalue = Vector3DotProduct(right, bottomRight) - rotateAboutX; - ytvalue = Vector3DotProduct(up, bottomRight) - rotateAboutY; - rotatedX = xtvalue*cosRotation - ytvalue*sinRotation + rotateAboutX; - rotatedY = xtvalue*sinRotation + ytvalue*cosRotation + rotateAboutY; - bottomRight = Vector3Add(Vector3Scale(up, rotatedY), Vector3Scale(right, rotatedX)); - - xtvalue = Vector3DotProduct(right, bottomLeft)-rotateAboutX; - ytvalue = Vector3DotProduct(up, bottomLeft)-rotateAboutY; - rotatedX = xtvalue*cosRotation - ytvalue*sinRotation + rotateAboutX; - rotatedY = xtvalue*sinRotation + ytvalue*cosRotation + rotateAboutY; - bottomLeft = Vector3Add(Vector3Scale(up, rotatedY), Vector3Scale(right, rotatedX)); - } + // NOTE: Billboard size will maintain source rectangle aspect ratio, size will represent billboard width + // Vector2 sizeRatio = { size.x*(float)source.width/source.height, size.y }; + Vector2 sizeRatio = { size.x, size.y }; + + Matrix matView = MatrixLookAt(camera.position, camera.target, camera.up); + + Vector3 right = { matView.m0, matView.m4, matView.m8 }; + //Vector3 up = { matView.m1, matView.m5, matView.m9 }; + + Vector3 rightScaled = Vector3Scale(right, sizeRatio.x/2); + Vector3 upScaled = Vector3Scale(up, sizeRatio.y/2); + + Vector3 p1 = Vector3Add(rightScaled, upScaled); + Vector3 p2 = Vector3Subtract(rightScaled, upScaled); + + Vector3 topLeft = Vector3Scale(p2, -1); + Vector3 topRight = p1; + Vector3 bottomRight = p2; + Vector3 bottomLeft = Vector3Scale(p1, -1); + + if (rotation != 0.0f) + { + float sinRotation = sinf(rotation*DEG2RAD); + float cosRotation = cosf(rotation*DEG2RAD); + + // NOTE: (-1, 1) is the range where origin.x, origin.y is inside the texture + float rotateAboutX = sizeRatio.x*origin.x/2; + float rotateAboutY = sizeRatio.y*origin.y/2; + + float xtvalue, ytvalue; + float rotatedX, rotatedY; + + xtvalue = Vector3DotProduct(right, topLeft) - rotateAboutX; // Project points to x and y coordinates on the billboard plane + ytvalue = Vector3DotProduct(up, topLeft) - rotateAboutY; + rotatedX = xtvalue*cosRotation - ytvalue*sinRotation + rotateAboutX; // Rotate about the point origin + rotatedY = xtvalue*sinRotation + ytvalue*cosRotation + rotateAboutY; + topLeft = Vector3Add(Vector3Scale(up, rotatedY), Vector3Scale(right, rotatedX)); // Translate back to cartesian coordinates + + xtvalue = Vector3DotProduct(right, topRight) - rotateAboutX; + ytvalue = Vector3DotProduct(up, topRight) - rotateAboutY; + rotatedX = xtvalue*cosRotation - ytvalue*sinRotation + rotateAboutX; + rotatedY = xtvalue*sinRotation + ytvalue*cosRotation + rotateAboutY; + topRight = Vector3Add(Vector3Scale(up, rotatedY), Vector3Scale(right, rotatedX)); + + xtvalue = Vector3DotProduct(right, bottomRight) - rotateAboutX; + ytvalue = Vector3DotProduct(up, bottomRight) - rotateAboutY; + rotatedX = xtvalue*cosRotation - ytvalue*sinRotation + rotateAboutX; + rotatedY = xtvalue*sinRotation + ytvalue*cosRotation + rotateAboutY; + bottomRight = Vector3Add(Vector3Scale(up, rotatedY), Vector3Scale(right, rotatedX)); + + xtvalue = Vector3DotProduct(right, bottomLeft)-rotateAboutX; + ytvalue = Vector3DotProduct(up, bottomLeft)-rotateAboutY; + rotatedX = xtvalue*cosRotation - ytvalue*sinRotation + rotateAboutX; + rotatedY = xtvalue*sinRotation + ytvalue*cosRotation + rotateAboutY; + bottomLeft = Vector3Add(Vector3Scale(up, rotatedY), Vector3Scale(right, rotatedX)); + } - // Translate points to the draw center (position) - topLeft = Vector3Add(topLeft, position); - topRight = Vector3Add(topRight, position); - bottomRight = Vector3Add(bottomRight, position); - bottomLeft = Vector3Add(bottomLeft, position); + // Translate points to the draw center (position) + topLeft = Vector3Add(topLeft, position); + topRight = Vector3Add(topRight, position); + bottomRight = Vector3Add(bottomRight, position); + bottomLeft = Vector3Add(bottomLeft, position); - rlSetTexture(texture.id); + rlSetTexture(texture.id); - rlBegin(RL_QUADS); - rlColor4ub(tint.r, tint.g, tint.b, tint.a); + rlBegin(RL_QUADS); + rlColor4ub(tint.r, tint.g, tint.b, tint.a); - // Bottom-left corner for texture and quad - rlTexCoord2f((float)source.x/texture.width, (float)source.y/texture.height); - rlVertex3f(topLeft.x, topLeft.y, topLeft.z); + // Bottom-left corner for texture and quad + rlTexCoord2f((float)source.x/texture.width, (float)source.y/texture.height); + rlVertex3f(topLeft.x, topLeft.y, topLeft.z); - // Top-left corner for texture and quad - rlTexCoord2f((float)source.x/texture.width, (float)(source.y + source.height)/texture.height); - rlVertex3f(bottomLeft.x, bottomLeft.y, bottomLeft.z); + // Top-left corner for texture and quad + rlTexCoord2f((float)source.x/texture.width, (float)(source.y + source.height)/texture.height); + rlVertex3f(bottomLeft.x, bottomLeft.y, bottomLeft.z); - // Top-right corner for texture and quad - rlTexCoord2f((float)(source.x + source.width)/texture.width, (float)(source.y + source.height)/texture.height); - rlVertex3f(bottomRight.x, bottomRight.y, bottomRight.z); + // Top-right corner for texture and quad + rlTexCoord2f((float)(source.x + source.width)/texture.width, (float)(source.y + source.height)/texture.height); + rlVertex3f(bottomRight.x, bottomRight.y, bottomRight.z); - // Bottom-right corner for texture and quad - rlTexCoord2f((float)(source.x + source.width)/texture.width, (float)source.y/texture.height); - rlVertex3f(topRight.x, topRight.y, topRight.z); - rlEnd(); + // Bottom-right corner for texture and quad + rlTexCoord2f((float)(source.x + source.width)/texture.width, (float)source.y/texture.height); + rlVertex3f(topRight.x, topRight.y, topRight.z); + rlEnd(); - rlSetTexture(0); + rlSetTexture(0); } void DrawBillboardRecNoRatio( Camera camera, Texture2D texture, Rectangle source, Vector3 position, Vector2 size, Color tint ) { - // NOTE: Billboard locked on axis-Y - Vector3 up = { 0.0f, 1.0f, 0.0f }; + // NOTE: Billboard locked on axis-Y + Vector3 up = { 0.0f, 1.0f, 0.0f }; - DrawBillboardProNoRatio(camera, texture, source, position, up, size, Vector2Zero(), 0.0f, tint); + DrawBillboardProNoRatio(camera, texture, source, position, up, size, Vector2Zero(), 0.0f, tint); } /* @@ -184,15 +184,15 @@ int lmodelsDrawTriangleStrip3D( lua_State* L ) { Vector3 points[ pointCount ]; int t = 1, i = 0; - lua_pushnil( L ); + lua_pushnil( L ); while ( lua_next( L, t ) != 0 ) { - if ( lua_istable( L, -1 ) ) { + if ( lua_istable( L, -1 ) ) { points[i] = uluaGetVector3( L, lua_gettop( L ) ); - } - i++; - lua_pop( L, 1 ); - } + } + i++; + lua_pop( L, 1 ); + } DrawTriangleStrip3D( points, pointCount, color ); return 0; @@ -412,43 +412,43 @@ int lmodelDrawQuad3DTexture( lua_State* L ) { Vector3 vertices[4] = { 0 }; int t = 2, i = 0; - lua_pushnil( L ); + lua_pushnil( L ); while ( lua_next( L, t ) != 0 ) { - if ( lua_istable( L, -1 ) && i < 4 ) { + if ( lua_istable( L, -1 ) && i < 4 ) { vertices[i] = uluaGetVector3( L, lua_gettop( L ) ); - } - i++; - lua_pop( L, 1 ); - } + } + i++; + lua_pop( L, 1 ); + } /* TexCoords. */ Vector2 texcoords[4] = { 0 }; t = 3, i = 0; - lua_pushnil( L ); + lua_pushnil( L ); while ( lua_next( L, t ) != 0 ) { - if ( lua_istable( L, -1 ) && i < 4 ) { + if ( lua_istable( L, -1 ) && i < 4 ) { texcoords[i] = uluaGetVector2( L, lua_gettop( L ) ); - } - i++; - lua_pop( L, 1 ); - } + } + i++; + lua_pop( L, 1 ); + } /* Colors. */ Color colors[4] = { 0 }; t = 4, i = 0; - lua_pushnil( L ); + lua_pushnil( L ); while ( lua_next( L, t ) != 0 ) { - if ( lua_istable( L, -1 ) && i < 4 ) { + if ( lua_istable( L, -1 ) && i < 4 ) { colors[i] = uluaGetColor( L, lua_gettop( L ) ); - } - i++; - lua_pop( L, 1 ); - } + } + i++; + lua_pop( L, 1 ); + } //TODO Normals. maybe something like Vector3Normalize(Vector3CrossProduct(Vector3Subtract(vB, vA), Vector3Subtract(vC, vA))); @@ -459,7 +459,7 @@ int lmodelDrawQuad3DTexture( lua_State* L ) { rlBegin( RL_QUADS ); 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 ); + rlColor4ub( colors[i].r, colors[i].g, colors[i].b, colors[i].a ); rlVertex3f( vertices[i].x, vertices[i].y, vertices[i].z ); } rlEnd(); @@ -1170,15 +1170,15 @@ int lmodelsDrawMeshInstanced( lua_State* L ) { Matrix transforms[ instances ]; int t = 3, i = 0; - lua_pushnil( L ); + lua_pushnil( L ); while ( lua_next( L, t ) != 0 ) { - if ( lua_istable( L, -1 ) ) { + if ( lua_istable( L, -1 ) ) { transforms[i] = uluaGetMatrix( L, lua_gettop( L ) ); - } - i++; - lua_pop( L, 1 ); - } + } + i++; + lua_pop( L, 1 ); + } DrawMeshInstanced( *mesh, *material, transforms, instances ); return 0; @@ -2151,16 +2151,16 @@ Unload animation table data */ int lmodelsUnloadModelAnimations( lua_State* L ) { int t = 1, i = 0; - lua_pushnil( L ); + lua_pushnil( L ); while ( lua_next( L, t ) != 0 ) { - if ( lua_isuserdata( L, -1 ) ) { + if ( lua_isuserdata( L, -1 ) ) { ModelAnimation* animation = uluaGetModelAnimation( L, lua_gettop( L ) ); UnloadModelAnimation( *animation ); - } - i++; - lua_pop( L, 1 ); - } + } + i++; + lua_pop( L, 1 ); + } return 0; } diff --git a/src/platforms/core_desktop.c b/src/platforms/core_desktop.c index 368d27d..6d774ee 100644 --- a/src/platforms/core_desktop.c +++ b/src/platforms/core_desktop.c @@ -110,7 +110,7 @@ static void windowSizeEvent( GLFWwindow* window, int width, int height ) { lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 3, 0 ); lua_pushinteger( L, GLFW_WINDOW_SIZE_EVENT ); lua_setfield( L, -2, "type" ); @@ -119,11 +119,11 @@ static void windowSizeEvent( GLFWwindow* window, int width, int height ) { lua_pushinteger( L, height ); lua_setfield( L, -2, "height" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } @@ -146,18 +146,18 @@ static void windowMaximizeEvent( GLFWwindow* window, int maximized ) { lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 2, 0 ); lua_pushinteger( L, GLFW_WINDOW_MAXIMIZE_EVENT ); lua_setfield( L, -2, "type" ); lua_pushinteger( L, maximized ); lua_setfield( L, -2, "maximized" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } @@ -180,18 +180,18 @@ static void windowIconyfyEvent( GLFWwindow* window, int iconified ) { lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 2, 0 ); lua_pushinteger( L, GLFW_WINDOW_ICONYFY_EVENT ); lua_setfield( L, -2, "type" ); lua_pushinteger( L, iconified ); lua_setfield( L, -2, "iconified" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } @@ -212,18 +212,18 @@ static void windowFocusEvent( GLFWwindow* window, int focused ) { lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 2, 0 ); lua_pushinteger( L, GLFW_WINDOW_FOCUS_EVENT ); lua_setfield( L, -2, "type" ); lua_pushinteger( L, focused ); lua_setfield( L, -2, "focused" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } @@ -244,7 +244,7 @@ static void windowDropEvent( GLFWwindow* window, int count, const char** paths ) lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 3, 0 ); lua_pushinteger( L, GLFW_WINDOW_DROP_EVENT ); lua_setfield( L, -2, "type" ); @@ -259,11 +259,11 @@ static void windowDropEvent( GLFWwindow* window, int count, const char** paths ) } lua_setfield( L, -2, "paths" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } @@ -288,7 +288,7 @@ static void keyInputEvent( GLFWwindow* window, int key, int scancode, int action lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 5, 0 ); lua_pushinteger( L, GLFW_KEY_EVENT ); lua_setfield( L, -2, "type" ); @@ -301,11 +301,11 @@ static void keyInputEvent( GLFWwindow* window, int key, int scancode, int action lua_pushinteger( L, mods ); lua_setfield( L, -2, "mods" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } @@ -326,18 +326,18 @@ static void charInputEvent( GLFWwindow* window, unsigned int key ) { lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 2, 0 ); lua_pushinteger( L, GLFW_CHAR_EVENT ); lua_setfield( L, -2, "type" ); lua_pushinteger( L, key ); lua_setfield( L, -2, "key" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } @@ -358,7 +358,7 @@ static void mouseButtonInputEvent( GLFWwindow* window, int button, int action, i lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 4, 0 ); lua_pushinteger( L, GLFW_MOUSE_BUTTON_EVENT ); lua_setfield( L, -2, "type" ); @@ -369,11 +369,11 @@ static void mouseButtonInputEvent( GLFWwindow* window, int button, int action, i lua_pushinteger( L, mods ); lua_setfield( L, -2, "mods" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } @@ -394,7 +394,7 @@ static void mouseCursorPosInputEvent( GLFWwindow* window, double x, double y ) { lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 3, 0 ); lua_pushinteger( L, GLFW_MOUSE_CURSOR_POS_EVENT ); lua_setfield( L, -2, "type" ); @@ -403,11 +403,11 @@ static void mouseCursorPosInputEvent( GLFWwindow* window, double x, double y ) { lua_pushnumber( L, y ); lua_setfield( L, -2, "y" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } @@ -428,7 +428,7 @@ static void mouseScrollInputEvent( GLFWwindow* window, double xoffset, double yo lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 3, 0 ); lua_pushinteger( L, GLFW_MOUSE_SCROLL_EVENT ); lua_setfield( L, -2, "type" ); @@ -437,11 +437,11 @@ static void mouseScrollInputEvent( GLFWwindow* window, double xoffset, double yo lua_pushnumber( L, yoffset ); lua_setfield( L, -2, "yoffset" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } @@ -462,18 +462,18 @@ static void cursorEnterInputEvent( GLFWwindow* window, int enter ) { lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 2, 0 ); lua_pushinteger( L, GLFW_CURSOR_ENTER_EVENT ); lua_setfield( L, -2, "type" ); lua_pushinteger( L, enter ); lua_setfield( L, -2, "enter" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } @@ -496,7 +496,7 @@ static void joystickEvent( int jid, int event ) { lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 3, 0 ); lua_pushinteger( L, GLFW_JOYSTICK_EVENT ); lua_setfield( L, -2, "type" ); @@ -505,11 +505,11 @@ static void joystickEvent( int jid, int event ) { lua_pushinteger( L, event ); lua_setfield( L, -2, "event" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } @@ -528,7 +528,7 @@ static void penTabletDataEvent( double x, double y, double z, double pressure, d lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 8, 0 ); lua_pushinteger( L, GLFW_PEN_TABLET_DATA_EVENT ); lua_setfield( L, -2, "type" ); @@ -547,11 +547,11 @@ static void penTabletDataEvent( double x, double y, double z, double pressure, d lua_pushnumber( L, roll ); lua_setfield( L, -2, "roll" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } @@ -570,18 +570,18 @@ static void penTabletCursorEvent( unsigned int identifier ) { lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 2, 0 ); lua_pushinteger( L, GLFW_PEN_TABLET_CURSOR_EVENT ); lua_setfield( L, -2, "type" ); lua_pushinteger( L, identifier ); lua_setfield( L, -2, "identifier" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } @@ -600,18 +600,18 @@ static void penTabletProximityEvent( int proxState ) { lua_getglobal( L, "RL" ); lua_getfield( L, -1, "event" ); - if ( lua_isfunction( L, -1 ) ) { + if ( lua_isfunction( L, -1 ) ) { lua_createtable( L, 2, 0 ); lua_pushinteger( L, GLFW_PEN_TABLET_PROXIMITY_EVENT ); lua_setfield( L, -2, "type" ); lua_pushinteger( L, proxState ); lua_setfield( L, -2, "state" ); - if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { + if ( lua_pcall( L, 1, 0, tracebackidx ) != 0 ) { TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) ); state->run = false; - } - } + } + } lua_pop( L, -1 ); } diff --git a/src/rlgl.c b/src/rlgl.c index 71f91c7..c18a171 100644 --- a/src/rlgl.c +++ b/src/rlgl.c @@ -1726,17 +1726,17 @@ int lrlglSetShader( lua_State* L ) { unsigned int id = (unsigned int)luaL_checkinteger( L, 1 ); int t = 2, i = 0; - lua_pushnil( L ); + lua_pushnil( L ); while ( lua_next( L, t ) != 0 ) { - if ( lua_isnumber( L, -1 ) ) { + if ( lua_isnumber( L, -1 ) ) { if ( i < RL_MAX_SHADER_LOCATIONS ) { state->RLGLcurrentShaderLocs[i] = lua_tointeger( L, -1 ); } - } - i++; - lua_pop( L, 1 ); - } + } + i++; + lua_pop( L, 1 ); + } rlSetShader( id, state->RLGLcurrentShaderLocs ); return 0; diff --git a/src/rmath.c b/src/rmath.c index 7287d66..9048b49 100644 --- a/src/rmath.c +++ b/src/rmath.c @@ -4,11 +4,11 @@ #include "lua_core.h" inline int imin( int a, int b ) { - return a < b ? a : b; + return a < b ? a : b; } inline int imax( int a, int b ) { - return a > b ? a : b; + return a > b ? a : b; } /* diff --git a/src/state.c b/src/state.c index 9df5d94..ea737d4 100644 --- a/src/state.c +++ b/src/state.c @@ -19,7 +19,7 @@ bool stateInit( int argn, const char** argc, const char* exePath ) { state->logLevelInvalid = LOG_ERROR; state->gcUnload = true; - InitWindow( state->resolution.x, state->resolution.y, "ReiLua" ); + InitWindow( state->resolution.x, state->resolution.y, "ReiLua" ); if ( !IsWindowReady() ) { state->hasWindow = false; diff --git a/src/text.c b/src/text.c index 4d781dd..3a4d54d 100644 --- a/src/text.c +++ b/src/text.c @@ -14,117 +14,117 @@ void unloadGlyphInfo( GlyphInfo* glyph ) { static int DrawTextBoxed( Font font, const char* text, Rectangle rec, float fontSize, float spacing, bool wordWrap, Color* tints, int tintCount, Color* backTints, int backTintCount ) { - int length = TextLength(text); // Total length in bytes of the text, scanned by codepoints in loop + int length = TextLength(text); // Total length in bytes of the text, scanned by codepoints in loop - float textOffsetY = 0; // Offset between lines (on line break '\n') - float textOffsetX = 0.0f; // Offset X to next character to draw + float textOffsetY = 0; // Offset between lines (on line break '\n') + float textOffsetX = 0.0f; // Offset X to next character to draw - float scaleFactor = fontSize/(float)font.baseSize; // Character rectangle scaling factor + float scaleFactor = fontSize/(float)font.baseSize; // Character rectangle scaling factor - // Word/character wrapping mechanism variables - enum { MEASURE_STATE = 0, DRAW_STATE = 1 }; - int state = wordWrap ? MEASURE_STATE : DRAW_STATE; + // Word/character wrapping mechanism variables + enum { MEASURE_STATE = 0, DRAW_STATE = 1 }; + int state = wordWrap ? MEASURE_STATE : DRAW_STATE; - int startLine = -1; // Index where to begin drawing (where a line begins) - int endLine = -1; // Index where to stop drawing (where a line ends) - int lastk = -1; // Holds last value of the character position + int startLine = -1; // Index where to begin drawing (where a line begins) + int endLine = -1; // Index where to stop drawing (where a line ends) + int lastk = -1; // Holds last value of the character position Color tint = BLACK; Color backTint = BLANK; Vector2 mousePos = GetMousePosition(); int mouseChar = -1; - for ( int i = 0, k = 0; i < length; i++, k++) - { + for ( int i = 0, k = 0; i < length; i++, k++) + { if ( i < tintCount ) { tint = tints[i]; } if ( i < backTintCount ) { backTint = backTints[i]; } - // Get next codepoint from byte string and glyph index in font - int codepointByteCount = 0; - int codepoint = GetCodepoint(&text[i], &codepointByteCount); - int index = GetGlyphIndex(font, codepoint); - - // NOTE: Normally we exit the decoding sequence as soon as a bad byte is found (and return 0x3f) - // but we need to draw all of the bad bytes using the '?' symbol moving one byte - if (codepoint == 0x3f) codepointByteCount = 1; - i += (codepointByteCount - 1); - - float glyphWidth = 0; - if (codepoint != '\n') - { - glyphWidth = (font.glyphs[index].advanceX == 0) ? font.recs[index].width*scaleFactor : font.glyphs[index].advanceX*scaleFactor; - - if (i + 1 < length) glyphWidth = glyphWidth + spacing; - } - - // NOTE: When wordWrap is ON we first measure how much of the text we can draw before going outside of the rec container - // We store this info in startLine and endLine, then we change states, draw the text between those two variables - // and change states again and again recursively until the end of the text (or until we get outside of the container). - // When wordWrap is OFF we don't need the measure state so we go to the drawing state immediately - // and begin drawing on the next line before we can get outside the container. - if (state == MEASURE_STATE) - { - // TODO: There are multiple types of spaces in UNICODE, maybe it's a good idea to add support for more - // Ref: http://jkorpela.fi/chars/spaces.html - if ((codepoint == ' ') || (codepoint == '\t') || (codepoint == '\n')) endLine = i; - - if ((textOffsetX + glyphWidth) > rec.width) - { - endLine = (endLine < 1)? i : endLine; - if (i == endLine) endLine -= codepointByteCount; - if ((startLine + codepointByteCount) == endLine) endLine = (i - codepointByteCount); - - state = !state; - } - else if ((i + 1) == length) - { - endLine = i; - state = !state; - } - else if (codepoint == '\n') state = !state; - - if (state == DRAW_STATE) - { - textOffsetX = 0; - i = startLine; - glyphWidth = 0; - - // Save character position when we switch states - int tmp = lastk; - lastk = k - 1; - k = tmp; - } - } - else - { - if (codepoint == '\n') - { - if (!wordWrap) - { - textOffsetY += (font.baseSize + font.baseSize/2)*scaleFactor; - textOffsetX = 0; - } - } - else - { - if (!wordWrap && ((textOffsetX + glyphWidth) > rec.width)) - { - textOffsetY += (font.baseSize + font.baseSize/2)*scaleFactor; - textOffsetX = 0; - } - - // When text overflows rectangle height limit, just stop drawing - if ((textOffsetY + font.baseSize*scaleFactor) > rec.height) break; - - // Draw selection background - // bool isGlyphSelected = false; - // if ((selectStart >= 0) && (k >= selectStart) && (k < (selectStart + selectLength))) - // { - // DrawRectangleRec((Rectangle){ rec.x + textOffsetX - 1, rec.y + textOffsetY, glyphWidth, (float)font.baseSize*scaleFactor }, selectBackTint); - // isGlyphSelected = true; - // } + // Get next codepoint from byte string and glyph index in font + int codepointByteCount = 0; + int codepoint = GetCodepoint(&text[i], &codepointByteCount); + int index = GetGlyphIndex(font, codepoint); + + // NOTE: Normally we exit the decoding sequence as soon as a bad byte is found (and return 0x3f) + // but we need to draw all of the bad bytes using the '?' symbol moving one byte + if (codepoint == 0x3f) codepointByteCount = 1; + i += (codepointByteCount - 1); + + float glyphWidth = 0; + if (codepoint != '\n') + { + glyphWidth = (font.glyphs[index].advanceX == 0) ? font.recs[index].width*scaleFactor : font.glyphs[index].advanceX*scaleFactor; + + if (i + 1 < length) glyphWidth = glyphWidth + spacing; + } + + // NOTE: When wordWrap is ON we first measure how much of the text we can draw before going outside of the rec container + // We store this info in startLine and endLine, then we change states, draw the text between those two variables + // and change states again and again recursively until the end of the text (or until we get outside of the container). + // When wordWrap is OFF we don't need the measure state so we go to the drawing state immediately + // and begin drawing on the next line before we can get outside the container. + if (state == MEASURE_STATE) + { + // TODO: There are multiple types of spaces in UNICODE, maybe it's a good idea to add support for more + // Ref: http://jkorpela.fi/chars/spaces.html + if ((codepoint == ' ') || (codepoint == '\t') || (codepoint == '\n')) endLine = i; + + if ((textOffsetX + glyphWidth) > rec.width) + { + endLine = (endLine < 1)? i : endLine; + if (i == endLine) endLine -= codepointByteCount; + if ((startLine + codepointByteCount) == endLine) endLine = (i - codepointByteCount); + + state = !state; + } + else if ((i + 1) == length) + { + endLine = i; + state = !state; + } + else if (codepoint == '\n') state = !state; + + if (state == DRAW_STATE) + { + textOffsetX = 0; + i = startLine; + glyphWidth = 0; + + // Save character position when we switch states + int tmp = lastk; + lastk = k - 1; + k = tmp; + } + } + else + { + if (codepoint == '\n') + { + if (!wordWrap) + { + textOffsetY += (font.baseSize + font.baseSize/2)*scaleFactor; + textOffsetX = 0; + } + } + else + { + if (!wordWrap && ((textOffsetX + glyphWidth) > rec.width)) + { + textOffsetY += (font.baseSize + font.baseSize/2)*scaleFactor; + textOffsetX = 0; + } + + // When text overflows rectangle height limit, just stop drawing + if ((textOffsetY + font.baseSize*scaleFactor) > rec.height) break; + + // Draw selection background + // bool isGlyphSelected = false; + // if ((selectStart >= 0) && (k >= selectStart) && (k < (selectStart + selectLength))) + // { + // DrawRectangleRec((Rectangle){ rec.x + textOffsetX - 1, rec.y + textOffsetY, glyphWidth, (float)font.baseSize*scaleFactor }, selectBackTint); + // isGlyphSelected = true; + // } if ( CheckCollisionPointRec( mousePos, (Rectangle){ rec.x + textOffsetX - 1, rec.y + textOffsetY, glyphWidth, (float)font.baseSize*scaleFactor } ) ) { mouseChar = i; @@ -134,30 +134,30 @@ bool wordWrap, Color* tints, int tintCount, Color* backTints, int backTintCount DrawRectangleRec((Rectangle){ rec.x + textOffsetX - 1, rec.y + textOffsetY, glyphWidth, (float)font.baseSize*scaleFactor }, backTint); } - // Draw current character glyph - if ((codepoint != ' ') && (codepoint != '\t')) - { - // DrawTextCodepoint(font, codepoint, (Vector2){ rec.x + textOffsetX, rec.y + textOffsetY }, fontSize, isGlyphSelected? selectTint : tint); - DrawTextCodepoint( font, codepoint, (Vector2){ rec.x + textOffsetX, rec.y + textOffsetY }, fontSize, tint ); - } - } - - if (wordWrap && (i == endLine)) - { - textOffsetY += (font.baseSize + font.baseSize/2)*scaleFactor; - textOffsetX = 0; - startLine = endLine; - endLine = -1; - glyphWidth = 0; - // selectStart += lastk - k; - k = lastk; - - state = !state; - } - } - - if ((textOffsetX != 0) || (codepoint != ' ')) textOffsetX += glyphWidth; // avoid leading spaces - } + // Draw current character glyph + if ((codepoint != ' ') && (codepoint != '\t')) + { + // DrawTextCodepoint(font, codepoint, (Vector2){ rec.x + textOffsetX, rec.y + textOffsetY }, fontSize, isGlyphSelected? selectTint : tint); + DrawTextCodepoint( font, codepoint, (Vector2){ rec.x + textOffsetX, rec.y + textOffsetY }, fontSize, tint ); + } + } + + if (wordWrap && (i == endLine)) + { + textOffsetY += (font.baseSize + font.baseSize/2)*scaleFactor; + textOffsetX = 0; + startLine = endLine; + endLine = -1; + glyphWidth = 0; + // selectStart += lastk - k; + k = lastk; + + state = !state; + } + } + + if ((textOffsetX != 0) || (codepoint != ' ')) textOffsetX += glyphWidth; // avoid leading spaces + } return mouseChar; } diff --git a/src/textures.c b/src/textures.c index 6eff7bb..6f6148c 100644 --- a/src/textures.c +++ b/src/textures.c @@ -817,7 +817,7 @@ int ltexturesLoadImageColors( lua_State* L ) { for ( int i = 0; i < colorCount; ++i ) { uluaPushColor( L, colors[i] ); - lua_rawseti( L, -2, i + 1 ); + lua_rawseti( L, -2, i + 1 ); } UnloadImageColors( colors ); @@ -842,7 +842,7 @@ int ltexturesLoadImagePalette( lua_State* L ) { for ( int i = 0; i < colorCount; ++i ) { uluaPushColor( L, colors[i] ); - lua_rawseti( L, -2, i + 1 ); + lua_rawseti( L, -2, i + 1 ); } UnloadImagePalette( colors ); @@ -1251,9 +1251,9 @@ int ltexturesLoadRenderTextureFromData( lua_State* L ) { RenderTexture renTexture = { 0 }; int t = 1; - lua_pushnil( L ); + lua_pushnil( L ); - while ( lua_next( L, t ) != 0 ) { + while ( lua_next( L, t ) != 0 ) { if ( strcmp( "id", (char*)lua_tostring( L, -2 ) ) == 0 ) { renTexture.id = (unsigned int)luaL_checkinteger( L, -1 ); } @@ -1265,8 +1265,8 @@ int ltexturesLoadRenderTextureFromData( lua_State* L ) { Texture* depth = uluaGetTexture( L, -1 ); renTexture.depth = *depth; } - lua_pop( L, 1 ); - } + lua_pop( L, 1 ); + } uluaPushRenderTexture( L, renTexture ); return 1; -- cgit v1.2.3