summaryrefslogtreecommitdiff
path: root/src/models.c
diff options
context:
space:
mode:
authorjussi2025-08-30 16:41:05 +0300
committerjussi2025-08-30 16:41:05 +0300
commitde672a85d2778c47fce0d412cea787405388330c (patch)
treefcae06a78397f52bc819c99cdbeaa417c48cf57b /src/models.c
parent15deeccc4bcbe5b68f002f8cc91ee4ed8ced68fb (diff)
downloadreilua-enhanced-de672a85d2778c47fce0d412cea787405388330c.tar.gz
reilua-enhanced-de672a85d2778c47fce0d412cea787405388330c.tar.bz2
reilua-enhanced-de672a85d2778c47fce0d412cea787405388330c.zip
DrawMeshInstanced takes transforms as Buffer.
Diffstat (limited to 'src/models.c')
-rw-r--r--src/models.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/src/models.c b/src/models.c
index cee92bc..8040388 100644
--- a/src/models.c
+++ b/src/models.c
@@ -1145,29 +1145,17 @@ int lmodelsDrawMesh( lua_State* L ) {
}
/*
-> RL.DrawMeshInstanced( Mesh mesh, Material material, Matrix{} transforms, int instances )
+> RL.DrawMeshInstanced( Mesh mesh, Material material, Buffer transforms, int instances )
Draw multiple mesh instances with material and different transforms
*/
int lmodelsDrawMeshInstanced( lua_State* L ) {
Mesh* mesh = uluaGetMesh( L, 1 );
Material* material = uluaGetMaterial( L, 2 );
- luaL_checktype( L, 3, LUA_TTABLE );
+ Buffer* transforms = uluaGetBuffer( L, 3 );
int instances = luaL_checkinteger( L, 4 );
- Matrix transforms[ instances ];
-
- int t = 3, i = 0;
- lua_pushnil( L );
-
- while ( lua_next( L, t ) != 0 ) {
- if ( lua_istable( L, -1 ) ) {
- transforms[i] = uluaGetMatrix( L, lua_gettop( L ) );
- }
- i++;
- lua_pop( L, 1 );
- }
- DrawMeshInstanced( *mesh, *material, transforms, instances );
+ DrawMeshInstanced( *mesh, *material, (Matrix*)transforms->data, instances );
return 0;
}