summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjussi2023-06-05 20:51:09 +0300
committerjussi2023-06-05 20:51:09 +0300
commit0e77452a1b4f894e342dae5583f8b02f915e8f6d (patch)
tree79e0f2697a1ee80138431734c42dfa4b3210e04d
parent8ade9eeb436f1bc8090df698ccf24595cd21b5e3 (diff)
downloadreilua-enhanced-0e77452a1b4f894e342dae5583f8b02f915e8f6d.tar.gz
reilua-enhanced-0e77452a1b4f894e342dae5583f8b02f915e8f6d.tar.bz2
reilua-enhanced-0e77452a1b4f894e342dae5583f8b02f915e8f6d.zip
Rest of rlgl General render state functions.
-rw-r--r--API.md101
-rw-r--r--ReiLua_API.lua79
-rw-r--r--changelog2
-rw-r--r--devnotes2
-rw-r--r--include/lrlgl.h14
-rw-r--r--src/lua_core.c14
-rw-r--r--src/rlgl.c218
7 files changed, 428 insertions, 2 deletions
diff --git a/API.md b/API.md
index 45fa871..e8eef6e 100644
--- a/API.md
+++ b/API.md
@@ -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
diff --git a/changelog b/changelog
index e84ed83..c3f0347 100644
--- a/changelog
+++ b/changelog
@@ -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
diff --git a/devnotes b/devnotes
index 84f5b73..291cf4a 100644
--- a/devnotes
+++ b/devnotes
@@ -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. */
diff --git a/src/rlgl.c b/src/rlgl.c
index a4ddd36..205d314 100644
--- a/src/rlgl.c
+++ b/src/rlgl.c
@@ -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
*/