diff options
| -rw-r--r-- | API.md | 101 | ||||
| -rw-r--r-- | ReiLua_API.lua | 79 | ||||
| -rw-r--r-- | changelog | 2 | ||||
| -rw-r--r-- | devnotes | 2 | ||||
| -rw-r--r-- | include/lrlgl.h | 14 | ||||
| -rw-r--r-- | src/lua_core.c | 14 | ||||
| -rw-r--r-- | src/rlgl.c | 218 |
7 files changed, 428 insertions, 2 deletions
@@ -7160,6 +7160,39 @@ Set face culling mode --- +> RL.rlEnableScissorTest() + +Enable scissor test + +--- + +> RL.rlDisableScissorTest() + +Disable scissor test + +--- + +> success = RL.rlScissor( Rectangle area ) + +Scissor test + +- Failure return false +- Success return true + +--- + +> RL.rlEnableWireMode() + +Enable wire mode + +--- + +> RL.rlDisableWireMode() + +Disable wire mode + +--- + > success = RL.rlSetLineWidth( float width ) Set the line drawing width @@ -7189,6 +7222,74 @@ Disable line aliasing --- +> RL.rlEnableStereoRender() + +Enable stereo rendering + +--- + +> RL.rlDisableStereoRender() + +Enable stereo rendering + +--- + +> enabled = RL.rlIsStereoRenderEnabled() + +Check if stereo render is enabled + +- Success return bool + +--- + +> success = RL.rlClearColor( Color color ) + +Clear color buffer with color + +- Failure return false +- Success return true + +--- + +> RL.rlClearScreenBuffers() + +Clear used screen buffers ( color and depth ) + +--- + +> RL.rlCheckErrors() + +Check and log OpenGL error codes + +--- + +> success = RL.rlSetBlendMode( int mode ) + +Set blending mode + +- Failure return false +- Success return true + +--- + +> success = RL.rlSetBlendFactors( int glSrcFactor, int glDstFactor, int glEquation ) + +Set blending mode factor and equation ( using OpenGL factors ) + +- Failure return false +- Success return true + +--- + +> success = RL.rlSetBlendFactorsSeparate( int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha ) + +Set blending mode factors and equations separately ( using OpenGL factors ) + +- Failure return false +- Success return true + +--- + ## RLGL - Initialization functions --- diff --git a/ReiLua_API.lua b/ReiLua_API.lua index 13751ff..9ed8aa6 100644 --- a/ReiLua_API.lua +++ b/ReiLua_API.lua @@ -5803,6 +5803,29 @@ function RL.rlDisableBackfaceCulling() end ---@return any success function RL.rlSetCullFace( mode ) end +---Enable scissor test +---@return any RL.rlEnableScissorTest +function RL.rlEnableScissorTest() end + +---Disable scissor test +---@return any RL.rlDisableScissorTest +function RL.rlDisableScissorTest() end + +---Scissor test +---- Failure return false +---- Success return true +---@param area table +---@return any success +function RL.rlScissor( area ) end + +---Enable wire mode +---@return any RL.rlEnableWireMode +function RL.rlEnableWireMode() end + +---Disable wire mode +---@return any RL.rlDisableWireMode +function RL.rlDisableWireMode() end + ---Set the line drawing width ---- Failure return false ---- Success return true @@ -5823,6 +5846,62 @@ function RL.rlEnableSmoothLines() end ---@return any RL.rlDisableSmoothLines function RL.rlDisableSmoothLines() end +---Enable stereo rendering +---@return any RL.rlEnableStereoRender +function RL.rlEnableStereoRender() end + +---Enable stereo rendering +---@return any RL.rlDisableStereoRender +function RL.rlDisableStereoRender() end + +---Check if stereo render is enabled +---- Success return bool +---@return any enabled +function RL.rlIsStereoRenderEnabled() end + +---Clear color buffer with color +---- Failure return false +---- Success return true +---@param color table +---@return any success +function RL.rlClearColor( color ) end + +---Clear used screen buffers ( color and depth ) +---@return any RL.rlClearScreenBuffers +function RL.rlClearScreenBuffers() end + +---Check and log OpenGL error codes +---@return any RL.rlCheckErrors +function RL.rlCheckErrors() end + +---Set blending mode +---- Failure return false +---- Success return true +---@param mode integer +---@return any success +function RL.rlSetBlendMode( mode ) end + +---Set blending mode factor and equation ( using OpenGL factors ) +---- Failure return false +---- Success return true +---@param glSrcFactor integer +---@param glDstFactor integer +---@param glEquation integer +---@return any success +function RL.rlSetBlendFactors( glSrcFactor, glDstFactor, glEquation ) end + +---Set blending mode factors and equations separately ( using OpenGL factors ) +---- Failure return false +---- Success return true +---@param glSrcRGB integer +---@param glDstRGB integer +---@param glSrcAlpha integer +---@param glDstAlpha integer +---@param glEqRGB integer +---@param glEqAlpha integer +---@return any success +function RL.rlSetBlendFactorsSeparate( glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha ) end + -- RLGL - Initialization functions ---Get current OpenGL version @@ -26,6 +26,7 @@ KEY CHANGES: - ADDED: rlgl Matrix operations functions - ADDED: rlgl Vertex level operations - ADDED: Draw Textured Polygon Example + - ADDED: rlgl General render state functions Detailed changes: - FIXED: uluaGetRay was looking for integers instead of tables @@ -84,7 +85,6 @@ Detailed changes: - FIXED: UnloadTexture did not set texture id to NULL. - ADDED: DrawBillboardPro - ADDED: rlGetVersion - - ADDED: More rlgl General render state functions. - ADDED: GetMaterialTexture, GetMaterialColor, GetMaterialValue and GetMaterialShader - ADDED: SetMaterialParams and GetMaterialParams - ADDED: GetTextureId @@ -5,10 +5,10 @@ Current { * Shaders management * Matrix state management * Compute shader management - * New type validators. } Backlog { + * New type validators. * Platformer example physics process for true framerate independence. * Extend color lib functionality. diff --git a/include/lrlgl.h b/include/lrlgl.h index c56e664..e638dc6 100644 --- a/include/lrlgl.h +++ b/include/lrlgl.h @@ -44,10 +44,24 @@ int lrlglDisableDepthMask( lua_State *L ); int lrlglEnableBackfaceCulling( lua_State *L ); int lrlglDisableBackfaceCulling( lua_State *L ); int lrlglSetCullFace( lua_State *L ); +int lrlglEnableScissorTest( lua_State *L ); +int lrlglDisableScissorTest( lua_State *L ); +int lrlglScissor( lua_State *L ); +int lrlglEnableWireMode( lua_State *L ); +int lrlglDisableWireMode( lua_State *L ); int lrlglSetLineWidth( lua_State *L ); int lrlglGetLineWidth( lua_State *L ); int lrlglEnableSmoothLines( lua_State *L ); int lrlglDisableSmoothLines( lua_State *L ); +int lrlglEnableStereoRender( lua_State *L ); +int lrlglDisableStereoRender( lua_State *L ); +int lrlglIsStereoRenderEnabled( lua_State *L ); +int lrlglClearColor( lua_State *L ); +int lrlglClearScreenBuffers( lua_State *L ); +int lrlglCheckErrors( lua_State *L ); +int lrlglSetBlendMode( lua_State *L ); +int lrlglSetBlendFactors( lua_State *L ); +int lrlglSetBlendFactorsSeparate( lua_State *L ); /* Initialization functions */ int lrlglGetVersion( lua_State *L ); /* Render batch management */ diff --git a/src/lua_core.c b/src/lua_core.c index 74c1d9e..7e0ead3 100644 --- a/src/lua_core.c +++ b/src/lua_core.c @@ -1519,10 +1519,24 @@ void luaRegister() { assingGlobalFunction( "rlEnableBackfaceCulling", lrlglEnableBackfaceCulling ); assingGlobalFunction( "rlDisableBackfaceCulling", lrlglDisableBackfaceCulling ); assingGlobalFunction( "rlSetCullFace", lrlglSetCullFace ); + assingGlobalFunction( "rlEnableScissorTest", lrlglEnableScissorTest ); + assingGlobalFunction( "rlDisableScissorTest", lrlglDisableScissorTest ); + assingGlobalFunction( "rlScissor", lrlglScissor ); + assingGlobalFunction( "rlEnableWireMode", lrlglEnableWireMode ); + assingGlobalFunction( "rlDisableWireMode", lrlglDisableWireMode ); assingGlobalFunction( "rlSetLineWidth", lrlglSetLineWidth ); assingGlobalFunction( "rlGetLineWidth", lrlglGetLineWidth ); assingGlobalFunction( "rlEnableSmoothLines", lrlglEnableSmoothLines ); assingGlobalFunction( "rlDisableSmoothLines", lrlglDisableSmoothLines ); + assingGlobalFunction( "rlEnableStereoRender", lrlglEnableStereoRender ); + assingGlobalFunction( "rlDisableStereoRender", lrlglDisableStereoRender ); + assingGlobalFunction( "rlIsStereoRenderEnabled", lrlglIsStereoRenderEnabled ); + assingGlobalFunction( "rlClearColor", lrlglClearColor ); + assingGlobalFunction( "rlClearScreenBuffers", lrlglClearScreenBuffers ); + assingGlobalFunction( "rlCheckErrors", lrlglCheckErrors ); + assingGlobalFunction( "rlSetBlendMode", lrlglSetBlendMode ); + assingGlobalFunction( "rlSetBlendFactors", lrlglSetBlendFactors ); + assingGlobalFunction( "rlSetBlendFactorsSeparate", lrlglSetBlendFactorsSeparate ); /* Initialization functions. */ assingGlobalFunction( "rlGetVersion", lrlglGetVersion ); /* Render batch management. */ @@ -724,6 +724,72 @@ int lrlglSetCullFace( lua_State *L ) { } /* +> RL.rlEnableScissorTest() + +Enable scissor test +*/ +int lrlglEnableScissorTest( lua_State *L ) { + rlEnableScissorTest(); + + return 0; +} + +/* +> RL.rlDisableScissorTest() + +Disable scissor test +*/ +int lrlglDisableScissorTest( lua_State *L ) { + rlDisableScissorTest(); + + return 0; +} + +/* +> success = RL.rlScissor( Rectangle area ) + +Scissor test + +- Failure return false +- Success return true +*/ +int lrlglScissor( lua_State *L ) { + if ( !lua_istable( L, 1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.rlScissor( Rectangle area )" ); + lua_pushboolean( L, false ); + return 1; + } + Rectangle area = uluaGetRectangleIndex( L, 1 ); + + rlScissor( area.x, area.y, area.width, area.height ); + lua_pushboolean( L, true ); + + return 1; +} + +/* +> RL.rlEnableWireMode() + +Enable wire mode +*/ +int lrlglEnableWireMode( lua_State *L ) { + rlEnableWireMode(); + + return 0; +} + +/* +> RL.rlDisableWireMode() + +Disable wire mode +*/ +int lrlglDisableWireMode( lua_State *L ) { + rlDisableWireMode(); + + return 0; +} + +/* > success = RL.rlSetLineWidth( float width ) Set the line drawing width @@ -779,6 +845,158 @@ int lrlglDisableSmoothLines( lua_State *L ) { } /* +> RL.rlEnableStereoRender() + +Enable stereo rendering +*/ +int lrlglEnableStereoRender( lua_State *L ) { + rlEnableStereoRender(); + + return 0; +} + +/* +> RL.rlDisableStereoRender() + +Enable stereo rendering +*/ +int lrlglDisableStereoRender( lua_State *L ) { + rlDisableStereoRender(); + + return 0; +} + +/* +> enabled = RL.rlIsStereoRenderEnabled() + +Check if stereo render is enabled + +- Success return bool +*/ +int lrlglIsStereoRenderEnabled( lua_State *L ) { + lua_pushboolean( L, rlIsStereoRenderEnabled() ); + + return 1; +} + +/* +> success = RL.rlClearColor( Color color ) + +Clear color buffer with color + +- Failure return false +- Success return true +*/ +int lrlglClearColor( lua_State *L ) { + if ( !lua_istable( L, 1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.rlClearColor( Color color )" ); + lua_pushboolean( L, false ); + return 1; + } + Color color = uluaGetColorIndex( L, 1 ); + + rlClearColor( color.r, color.g, color.b, color.a ); + lua_pushboolean( L, true ); + + return 1; +} + +/* +> RL.rlClearScreenBuffers() + +Clear used screen buffers ( color and depth ) +*/ +int lrlglClearScreenBuffers( lua_State *L ) { + rlClearScreenBuffers(); + + return 0; +} + +/* +> RL.rlCheckErrors() + +Check and log OpenGL error codes +*/ +int lrlglCheckErrors( lua_State *L ) { + rlCheckErrors(); + + return 0; +} + +/* +> success = RL.rlSetBlendMode( int mode ) + +Set blending mode + +- Failure return false +- Success return true +*/ +int lrlglSetBlendMode( lua_State *L ) { + if ( !lua_isnumber( L, 1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.rlSetBlendMode( int mode )" ); + lua_pushboolean( L, false ); + return 1; + } + rlSetBlendMode( lua_tointeger( L, 1 ) ); + lua_pushboolean( L, true ); + + return 1; +} + +/* +> success = RL.rlSetBlendFactors( int glSrcFactor, int glDstFactor, int glEquation ) + +Set blending mode factor and equation ( using OpenGL factors ) + +- Failure return false +- Success return true +*/ +int lrlglSetBlendFactors( lua_State *L ) { + if ( !lua_isnumber( L, 1 ) || !lua_isnumber( L, 2 ) || !lua_isnumber( L, 3 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.rlSetBlendFactors( int glSrcFactor, int glDstFactor, int glEquation )" ); + lua_pushboolean( L, false ); + return 1; + } + int glSrcFactor = lua_tointeger( L, 1 ); + int glDstFactor = lua_tointeger( L, 2 ); + int glEquation = lua_tointeger( L, 3 ); + + rlSetBlendFactors( glSrcFactor, glDstFactor, glEquation ); + lua_pushboolean( L, true ); + + return 1; +} + +/* +> success = RL.rlSetBlendFactorsSeparate( int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha ) + +Set blending mode factors and equations separately ( using OpenGL factors ) + +- Failure return false +- Success return true +*/ +int lrlglSetBlendFactorsSeparate( lua_State *L ) { + if ( !lua_isnumber( L, 1 ) || !lua_isnumber( L, 2 ) || !lua_isnumber( L, 3 ) + || !lua_isnumber( L, 4 ) || !lua_isnumber( L, 5 ) || !lua_isnumber( L, 6 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.rlSetBlendFactorsSeparate( int glSrcRGB, int glDstRGB, int glSrcAlpha, int glDstAlpha, int glEqRGB, int glEqAlpha )" ); + lua_pushboolean( L, false ); + return 1; + } + int glSrcRGB = lua_tointeger( L, 1 ); + int glDstRGB = lua_tointeger( L, 2 ); + int glSrcAlpha = lua_tointeger( L, 3 ); + int glDstAlpha = lua_tointeger( L, 4 ); + int glEqRGB = lua_tointeger( L, 5 ); + int glEqAlpha = lua_tointeger( L, 6 ); + + rlSetBlendFactorsSeparate( glSrcRGB, glDstRGB, glSrcAlpha, glDstAlpha, glEqRGB, glEqAlpha ); + lua_pushboolean( L, true ); + + return 1; +} + + +/* ## RLGL - Initialization functions */ |
