From 6317547502e547de399b6d391be1947567a16a0a Mon Sep 17 00:00:00 2001 From: jussi Date: Thu, 21 Nov 2024 13:28:14 +0200 Subject: New raylib 5.5 rlgl functions. --- src/rlgl.c | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) (limited to 'src/rlgl.c') diff --git a/src/rlgl.c b/src/rlgl.c index 995a93a..d94a72d 100644 --- a/src/rlgl.c +++ b/src/rlgl.c @@ -160,6 +160,46 @@ int lrlglViewport( lua_State* L ) { return 0; } +/* +> 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 */ @@ -544,6 +584,19 @@ int lrlglDisableFramebuffer( lua_State* L ) { return 0; } +/* +> 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 ) @@ -570,6 +623,20 @@ int lrlglBlitFramebuffer( lua_State* L ) { return 0; } +/* +> 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 */ @@ -662,6 +729,22 @@ int lrlglDisableBackfaceCulling( lua_State* L ) { return 0; } +/* +> 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 ) @@ -1702,6 +1785,30 @@ int lrlglSetUniformMatrix( lua_State* L ) { return 0; } +/* +> 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 ) -- cgit v1.2.3