diff options
| author | jussi | 2025-08-30 16:41:05 +0300 |
|---|---|---|
| committer | jussi | 2025-08-30 16:41:05 +0300 |
| commit | de672a85d2778c47fce0d412cea787405388330c (patch) | |
| tree | fcae06a78397f52bc819c99cdbeaa417c48cf57b /src/models.c | |
| parent | 15deeccc4bcbe5b68f002f8cc91ee4ed8ced68fb (diff) | |
| download | reilua-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.c | 18 |
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; } |
