summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorjussi2024-11-21 13:28:14 +0200
committerjussi2024-11-21 13:28:14 +0200
commit6317547502e547de399b6d391be1947567a16a0a (patch)
treecbc6856782b1356ecd0ac2daa79a70d9e482c93d /src
parent4c0eb17a9c234bfee73af408faa38e38f2e450d9 (diff)
downloadreilua-enhanced-6317547502e547de399b6d391be1947567a16a0a.tar.gz
reilua-enhanced-6317547502e547de399b6d391be1947567a16a0a.tar.bz2
reilua-enhanced-6317547502e547de399b6d391be1947567a16a0a.zip
New raylib 5.5 rlgl functions.
Diffstat (limited to 'src')
-rw-r--r--src/lua_core.c7
-rw-r--r--src/rlgl.c107
2 files changed, 114 insertions, 0 deletions
diff --git a/src/lua_core.c b/src/lua_core.c
index 8a6a8f9..cdaa4d0 100644
--- a/src/lua_core.c
+++ b/src/lua_core.c
@@ -2195,6 +2195,9 @@ void luaRegister() {
assingGlobalFunction( "rlFrustum", lrlglFrustum );
assingGlobalFunction( "rlOrtho", lrlglOrtho );
assingGlobalFunction( "rlViewport", lrlglViewport );
+ assingGlobalFunction( "rlSetClipPlanes", lrlglSetClipPlanes );
+ assingGlobalFunction( "rlGetCullDistanceNear", lrlglGetCullDistanceNear );
+ assingGlobalFunction( "rlGetCullDistanceFar", lrlglGetCullDistanceFar );
/* Vertex level operations. */
assingGlobalFunction( "rlBegin", lrlglBegin );
assingGlobalFunction( "rlEnd", lrlglEnd );
@@ -2232,8 +2235,10 @@ void luaRegister() {
/* Framebuffer state. */
assingGlobalFunction( "rlEnableFramebuffer", lrlglEnableFramebuffer );
assingGlobalFunction( "rlDisableFramebuffer", lrlglDisableFramebuffer );
+ assingGlobalFunction( "rlGetActiveFramebuffer", lrlglGetActiveFramebuffer );
assingGlobalFunction( "rlActiveDrawBuffers", lrlglActiveDrawBuffers );
assingGlobalFunction( "rlBlitFramebuffer", lrlglBlitFramebuffer );
+ assingGlobalFunction( "rlBindFramebuffer", lrlglBindFramebuffer );
/* General render state. */
assingGlobalFunction( "rlEnableColorBlend", lrlglEnableColorBlend );
assingGlobalFunction( "rlDisableColorBlend", lrlglDisableColorBlend );
@@ -2243,6 +2248,7 @@ void luaRegister() {
assingGlobalFunction( "rlDisableDepthMask", lrlglDisableDepthMask );
assingGlobalFunction( "rlEnableBackfaceCulling", lrlglEnableBackfaceCulling );
assingGlobalFunction( "rlDisableBackfaceCulling", lrlglDisableBackfaceCulling );
+ assingGlobalFunction( "rlColorMask", lrlglColorMask );
assingGlobalFunction( "rlSetCullFace", lrlglSetCullFace );
assingGlobalFunction( "rlEnableScissorTest", lrlglEnableScissorTest );
assingGlobalFunction( "rlDisableScissorTest", lrlglDisableScissorTest );
@@ -2320,6 +2326,7 @@ void luaRegister() {
assingGlobalFunction( "rlGetLocationAttrib", lrlglGetLocationAttrib );
assingGlobalFunction( "rlSetUniform", lrlglSetUniform );
assingGlobalFunction( "rlSetUniformMatrix", lrlglSetUniformMatrix );
+ assingGlobalFunction( "rlSetUniformMatrices", lrlglSetUniformMatrices );
assingGlobalFunction( "rlSetUniformSampler", lrlglSetUniformSampler );
assingGlobalFunction( "rlSetShader", lrlglSetShader );
/* Compute shader management */
diff --git a/src/rlgl.c b/src/rlgl.c
index 995a93a..d94a72d 100644
--- a/src/rlgl.c
+++ b/src/rlgl.c
@@ -161,6 +161,46 @@ int lrlglViewport( lua_State* L ) {
}
/*
+> RL.rlSetClipPlanes( float nearPlane, float farPlane )
+
+Set clip planes distances
+*/
+int lrlglSetClipPlanes( lua_State* L ) {
+ float nearPlane = luaL_checknumber( L, 1 );
+ float farPlane = luaL_checknumber( L, 2 );
+
+ rlSetClipPlanes( nearPlane, farPlane );
+
+ return 0;
+}
+
+/*
+> distance = RL.rlGetCullDistanceNear()
+
+Get cull plane distance near
+
+- Success return float
+*/
+int lrlglGetCullDistanceNear( lua_State* L ) {
+ lua_pushnumber( L, rlGetCullDistanceNear() );
+
+ return 1;
+}
+
+/*
+> distance = RL.rlGetCullDistanceFar()
+
+Get cull plane distance far
+
+- Success return float
+*/
+int lrlglGetCullDistanceFar( lua_State* L ) {
+ lua_pushnumber( L, rlGetCullDistanceFar() );
+
+ return 1;
+}
+
+/*
## RLGL - Vertex level operations
*/
@@ -545,6 +585,19 @@ int lrlglDisableFramebuffer( lua_State* L ) {
}
/*
+> framebuffer = RL.rlGetActiveFramebuffer()
+
+Get the currently active render texture (fbo), 0 for default framebuffer
+
+- Success return int
+*/
+int lrlglGetActiveFramebuffer( lua_State* L ) {
+ lua_pushnumber( L, rlGetActiveFramebuffer() );
+
+ return 1;
+}
+
+/*
> RL.rlActiveDrawBuffers( int count )
Activate multiple draw color buffers
@@ -571,6 +624,20 @@ int lrlglBlitFramebuffer( lua_State* L ) {
}
/*
+> RL.rlBindFramebuffer( int target, int framebuffer )
+
+Bind framebuffer (FBO)
+*/
+int lrlglBindFramebuffer( lua_State* L ) {
+ int target = luaL_checkinteger( L, 1 );
+ int framebuffer = luaL_checkinteger( L, 1 );
+
+ rlBindFramebuffer( target, framebuffer );
+
+ return 0;
+}
+
+/*
## RLGL - General render state
*/
@@ -663,6 +730,22 @@ int lrlglDisableBackfaceCulling( lua_State* L ) {
}
/*
+> RL.rlColorMask( bool r, bool g, bool b, bool a )
+
+Color mask control
+*/
+int lrlglColorMask( lua_State* L ) {
+ bool r = uluaGetBoolean( L, 1 );
+ bool g = uluaGetBoolean( L, 1 );
+ bool b = uluaGetBoolean( L, 1 );
+ bool a = uluaGetBoolean( L, 1 );
+
+ rlColorMask( r, g, b, a );
+
+ return 0;
+}
+
+/*
> RL.rlSetCullFace( int mode )
Set face culling mode
@@ -1703,6 +1786,30 @@ int lrlglSetUniformMatrix( lua_State* L ) {
}
/*
+> RL.rlSetUniformMatrices( int locIndex, Matrix{} mat )
+
+Set shader value matrices
+*/
+int lrlglSetUniformMatrices( lua_State* L ) {
+ int locIndex = luaL_checkinteger( L, 1 );
+
+ int count = uluaGetTableLen( L, 2 );
+ Matrix mat[ count ];
+
+ int t = 2, i = 0;
+ lua_pushnil( L );
+
+ while ( lua_next( L, t ) != 0 ) {
+ mat[i] = uluaGetMatrix( L, lua_gettop( L ) );
+ i++;
+ lua_pop( L, 1 );
+ }
+ rlSetUniformMatrices( locIndex, mat, count );
+
+ return 0;
+}
+
+/*
> RL.rlSetUniformSampler( int locIndex, int textureId )
Set shader value sampler