summaryrefslogtreecommitdiff
path: root/src/rlgl.c
diff options
context:
space:
mode:
authorjussi2023-10-31 11:52:36 +0200
committerjussi2023-10-31 11:52:36 +0200
commitf8b4b709e62c0fe25e4483925bac4abea5d8cafe (patch)
tree47903b7fb7ac42a8ca5a49b67f48f056900a9f10 /src/rlgl.c
parent65fababd8d36b47c85e7d6b43f649ed88c7e8bcf (diff)
downloadreilua-enhanced-f8b4b709e62c0fe25e4483925bac4abea5d8cafe.tar.gz
reilua-enhanced-f8b4b709e62c0fe25e4483925bac4abea5d8cafe.tar.bz2
reilua-enhanced-f8b4b709e62c0fe25e4483925bac4abea5d8cafe.zip
Compute shader management and Buffer management.
Diffstat (limited to 'src/rlgl.c')
-rw-r--r--src/rlgl.c54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/rlgl.c b/src/rlgl.c
index 4a13c81..5855f60 100644
--- a/src/rlgl.c
+++ b/src/rlgl.c
@@ -1394,6 +1394,60 @@ int lrlglSetShader( lua_State *L ) {
}
/*
+## RLGL - Compute shader management
+*/
+
+/*
+> programId = RL.rlLoadComputeShaderProgram( int shaderId )
+
+Load compute shader program
+
+- Success return int
+*/
+int lrlglLoadComputeShaderProgram( lua_State *L ) {
+ unsigned int shaderId = (unsigned int)luaL_checkinteger( L, 1 );
+
+ lua_pushinteger( L, rlLoadComputeShaderProgram( shaderId ) );
+
+ return 1;
+}
+
+/*
+> RL.rlComputeShaderDispatch( int groupX, int groupY, int groupZ )
+
+Dispatch compute shader (equivalent to *draw* for graphics pipeline)
+*/
+int lrlglComputeShaderDispatch( lua_State *L ) {
+ unsigned int groupX = (unsigned int)luaL_checkinteger( L, 1 );
+ unsigned int groupY = (unsigned int)luaL_checkinteger( L, 2 );
+ unsigned int groupZ = (unsigned int)luaL_checkinteger( L, 3 );
+
+ rlComputeShaderDispatch( groupX, groupY, groupZ );
+
+ return 0;
+}
+
+/*
+## RLGL - Buffer management
+*/
+
+/*
+> RL.rlBindImageTexture( int id, int index, int format, bool readonly )
+
+Bind image texture
+*/
+int lrlglBindImageTexture( lua_State *L ) {
+ unsigned int id = (unsigned int)luaL_checkinteger( L, 1 );
+ unsigned int index = (unsigned int)luaL_checkinteger( L, 2 );
+ int format = luaL_checkinteger( L, 3 );
+ bool readonly = uluaGetBoolean( L, 4 );
+
+ rlBindImageTexture( id, index, format, readonly );
+
+ return 0;
+}
+
+/*
## RLGL - Matrix state management
*/