Rest of rlRenderBatch functions.
This commit is contained in:
26
API.md
26
API.md
@@ -9515,6 +9515,32 @@ Get default shader locations
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
> renderBatch = RL.rlLoadRenderBatch( int numBuffers, int bufferElements )
|
||||||
|
|
||||||
|
Load a render batch system
|
||||||
|
|
||||||
|
- Success return rlRenderBatch
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> RL.rlUnloadRenderBatch( rlRenderBatch renderBatch )
|
||||||
|
|
||||||
|
Unload render batch system
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> RL.rlDrawRenderBatch( rlRenderBatch renderBatch )
|
||||||
|
|
||||||
|
Draw render batch data (Update->Draw->Reset)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
> RL.rlSetRenderBatchActive( rlRenderBatch renderBatch )
|
||||||
|
|
||||||
|
Set the active render batch for rlgl (nil for default internal)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
> RL.rlDrawRenderBatchActive()
|
> RL.rlDrawRenderBatchActive()
|
||||||
|
|
||||||
Update and draw internal render batch
|
Update and draw internal render batch
|
||||||
|
|||||||
@@ -6567,6 +6567,28 @@ function RL.rlGetShaderLocsDefault() end
|
|||||||
|
|
||||||
-- RLGL - Render batch management
|
-- RLGL - Render batch management
|
||||||
|
|
||||||
|
---Load a render batch system
|
||||||
|
---- Success return rlRenderBatch
|
||||||
|
---@param numBuffers integer
|
||||||
|
---@param bufferElements integer
|
||||||
|
---@return any renderBatch
|
||||||
|
function RL.rlLoadRenderBatch( numBuffers, bufferElements ) end
|
||||||
|
|
||||||
|
---Unload render batch system
|
||||||
|
---@param renderBatch any
|
||||||
|
---@return any RL.rlUnloadRenderBatch
|
||||||
|
function RL.rlUnloadRenderBatch( renderBatch ) end
|
||||||
|
|
||||||
|
---Draw render batch data (Update->Draw->Reset)
|
||||||
|
---@param renderBatch any
|
||||||
|
---@return any RL.rlDrawRenderBatch
|
||||||
|
function RL.rlDrawRenderBatch( renderBatch ) end
|
||||||
|
|
||||||
|
---Set the active render batch for rlgl (nil for default internal)
|
||||||
|
---@param renderBatch any
|
||||||
|
---@return any RL.rlSetRenderBatchActive
|
||||||
|
function RL.rlSetRenderBatchActive( renderBatch ) end
|
||||||
|
|
||||||
---Update and draw internal render batch
|
---Update and draw internal render batch
|
||||||
---@return any RL.rlDrawRenderBatchActive
|
---@return any RL.rlDrawRenderBatchActive
|
||||||
function RL.rlDrawRenderBatchActive() end
|
function RL.rlDrawRenderBatchActive() end
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ KEY CHANGES:
|
|||||||
- ADDED: More Model animations management functions.
|
- ADDED: More Model animations management functions.
|
||||||
- ADDED: 2D lightmap example.
|
- ADDED: 2D lightmap example.
|
||||||
- ADDED: RLGL Hello triangle example.
|
- ADDED: RLGL Hello triangle example.
|
||||||
|
- ADDED: Rest of rlRenderBatch functions.
|
||||||
|
|
||||||
DETAILED CHANGES:
|
DETAILED CHANGES:
|
||||||
- REMOVED: DrawLineBezierQuad, DrawLineBezierCubic.
|
- REMOVED: DrawLineBezierQuad, DrawLineBezierCubic.
|
||||||
|
|||||||
@@ -84,6 +84,10 @@ int lrlglGetTextureIdDefault( lua_State *L );
|
|||||||
int lrlglGetShaderIdDefault( lua_State *L );
|
int lrlglGetShaderIdDefault( lua_State *L );
|
||||||
int lrlglGetShaderLocsDefault( lua_State *L );
|
int lrlglGetShaderLocsDefault( lua_State *L );
|
||||||
/* Render batch management */
|
/* Render batch management */
|
||||||
|
int lrlglLoadRenderBatch( lua_State *L );
|
||||||
|
int lrlglUnloadRenderBatch( lua_State *L );
|
||||||
|
int lrlglDrawRenderBatch( lua_State *L );
|
||||||
|
int lrlglSetRenderBatchActive( lua_State *L );
|
||||||
int lrlglDrawRenderBatchActive( lua_State *L );
|
int lrlglDrawRenderBatchActive( lua_State *L );
|
||||||
int lrlglCheckRenderBatchLimit( lua_State *L );
|
int lrlglCheckRenderBatchLimit( lua_State *L );
|
||||||
int lrlglSetTexture( lua_State *L );
|
int lrlglSetTexture( lua_State *L );
|
||||||
|
|||||||
@@ -64,6 +64,7 @@ Light* uluaGetLight( lua_State *L, int index );
|
|||||||
Material* uluaGetMaterial( lua_State *L, int index );
|
Material* uluaGetMaterial( lua_State *L, int index );
|
||||||
Model* uluaGetModel( lua_State *L, int index );
|
Model* uluaGetModel( lua_State *L, int index );
|
||||||
ModelAnimation* uluaGetModelAnimation( lua_State *L, int index );
|
ModelAnimation* uluaGetModelAnimation( lua_State *L, int index );
|
||||||
|
rlRenderBatch* uluaGetRLRenderBatch( lua_State *L, int index );
|
||||||
/* Lua push types. */
|
/* Lua push types. */
|
||||||
void uluaPushColor( lua_State *L, Color color );
|
void uluaPushColor( lua_State *L, Color color );
|
||||||
void uluaPushVector2( lua_State *L, Vector2 vector );
|
void uluaPushVector2( lua_State *L, Vector2 vector );
|
||||||
@@ -94,5 +95,6 @@ void uluaPushMaterial( lua_State *L, Material material );
|
|||||||
void uluaPushMesh( lua_State *L, Mesh mesh );
|
void uluaPushMesh( lua_State *L, Mesh mesh );
|
||||||
void uluaPushModel( lua_State *L, Model model );
|
void uluaPushModel( lua_State *L, Model model );
|
||||||
void uluaPushModelAnimation( lua_State *L, ModelAnimation modelAnimation );
|
void uluaPushModelAnimation( lua_State *L, ModelAnimation modelAnimation );
|
||||||
|
void uluaPushRLRenderBatch( lua_State *L, rlRenderBatch renderBatch );
|
||||||
/* Utils. */
|
/* Utils. */
|
||||||
int uluaGetTableLen( lua_State *L, int index );
|
int uluaGetTableLen( lua_State *L, int index );
|
||||||
|
|||||||
@@ -299,6 +299,25 @@ static void defineModelAnimation() {
|
|||||||
lua_setfield( L, -2, "__gc" );
|
lua_setfield( L, -2, "__gc" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* rlRenderBatch. */
|
||||||
|
static int gcRLRenderBatch( lua_State *L ) {
|
||||||
|
if ( state->gcUnload ) {
|
||||||
|
rlRenderBatch *renderBatch = luaL_checkudata( L, 1, "rlRenderBatch" );
|
||||||
|
rlUnloadRenderBatch( *renderBatch );
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void defineRLRenderBatch() {
|
||||||
|
lua_State *L = state->luaState;
|
||||||
|
|
||||||
|
luaL_newmetatable( L, "rlRenderBatch" );
|
||||||
|
lua_pushvalue( L, -1 );
|
||||||
|
lua_setfield( L, -2, "__index" );
|
||||||
|
lua_pushcfunction( L, gcRLRenderBatch );
|
||||||
|
lua_setfield( L, -2, "__gc" );
|
||||||
|
}
|
||||||
|
|
||||||
/* Assing globals. */
|
/* Assing globals. */
|
||||||
|
|
||||||
void assignGlobalInt( int value, const char *name ) {
|
void assignGlobalInt( int value, const char *name ) {
|
||||||
@@ -993,6 +1012,7 @@ bool luaInit( int argn, const char **argc ) {
|
|||||||
defineMesh();
|
defineMesh();
|
||||||
defineModel();
|
defineModel();
|
||||||
defineModelAnimation();
|
defineModelAnimation();
|
||||||
|
defineRLRenderBatch();
|
||||||
/* Define globals. */
|
/* Define globals. */
|
||||||
defineGlobals();
|
defineGlobals();
|
||||||
platformDefineGlobals();
|
platformDefineGlobals();
|
||||||
@@ -2031,6 +2051,10 @@ void luaRegister() {
|
|||||||
assingGlobalFunction( "rlGetShaderIdDefault", lrlglGetShaderIdDefault );
|
assingGlobalFunction( "rlGetShaderIdDefault", lrlglGetShaderIdDefault );
|
||||||
assingGlobalFunction( "rlGetShaderLocsDefault", lrlglGetShaderLocsDefault );
|
assingGlobalFunction( "rlGetShaderLocsDefault", lrlglGetShaderLocsDefault );
|
||||||
/* Render batch management. */
|
/* Render batch management. */
|
||||||
|
assingGlobalFunction( "rlLoadRenderBatch", lrlglLoadRenderBatch );
|
||||||
|
assingGlobalFunction( "rlUnloadRenderBatch", lrlglUnloadRenderBatch );
|
||||||
|
assingGlobalFunction( "rlDrawRenderBatch", lrlglDrawRenderBatch );
|
||||||
|
assingGlobalFunction( "rlSetRenderBatchActive", lrlglSetRenderBatchActive );
|
||||||
assingGlobalFunction( "rlDrawRenderBatchActive", lrlglDrawRenderBatchActive );
|
assingGlobalFunction( "rlDrawRenderBatchActive", lrlglDrawRenderBatchActive );
|
||||||
assingGlobalFunction( "rlCheckRenderBatchLimit", lrlglCheckRenderBatchLimit );
|
assingGlobalFunction( "rlCheckRenderBatchLimit", lrlglCheckRenderBatchLimit );
|
||||||
assingGlobalFunction( "rlSetTexture", lrlglSetTexture );
|
assingGlobalFunction( "rlSetTexture", lrlglSetTexture );
|
||||||
@@ -2842,6 +2866,13 @@ ModelAnimation* uluaGetModelAnimation( lua_State *L, int index ) {
|
|||||||
return luaL_checkudata( L, index, "ModelAnimation" );
|
return luaL_checkudata( L, index, "ModelAnimation" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
rlRenderBatch* uluaGetRLRenderBatch( lua_State *L, int index ) {
|
||||||
|
if ( lua_islightuserdata( L, index ) ) {
|
||||||
|
return (rlRenderBatch*)lua_touserdata( L, index );
|
||||||
|
}
|
||||||
|
return luaL_checkudata( L, index, "rlRenderBatch" );
|
||||||
|
}
|
||||||
|
|
||||||
/* Push types. */
|
/* Push types. */
|
||||||
|
|
||||||
void uluaPushColor( lua_State *L, Color color ) {
|
void uluaPushColor( lua_State *L, Color color ) {
|
||||||
@@ -3145,6 +3176,12 @@ void uluaPushModelAnimation( lua_State *L, ModelAnimation modelAnimation ) {
|
|||||||
luaL_setmetatable( L, "ModelAnimation" );
|
luaL_setmetatable( L, "ModelAnimation" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void uluaPushRLRenderBatch( lua_State *L, rlRenderBatch renderBatch ) {
|
||||||
|
rlRenderBatch *renderBatchP = lua_newuserdata( L, sizeof( rlRenderBatch ) );
|
||||||
|
*renderBatchP = renderBatch;
|
||||||
|
luaL_setmetatable( L, "rlRenderBatch" );
|
||||||
|
}
|
||||||
|
|
||||||
int uluaGetTableLen( lua_State *L, int index ) {
|
int uluaGetTableLen( lua_State *L, int index ) {
|
||||||
luaL_checktype( L, index, LUA_TTABLE );
|
luaL_checktype( L, index, LUA_TTABLE );
|
||||||
int t = index, i = 0;
|
int t = index, i = 0;
|
||||||
|
|||||||
58
src/rlgl.c
58
src/rlgl.c
@@ -966,6 +966,64 @@ int lrlglGetShaderLocsDefault( lua_State *L ) {
|
|||||||
## RLGL - Render batch management
|
## RLGL - Render batch management
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
> renderBatch = RL.rlLoadRenderBatch( int numBuffers, int bufferElements )
|
||||||
|
|
||||||
|
Load a render batch system
|
||||||
|
|
||||||
|
- Success return rlRenderBatch
|
||||||
|
*/
|
||||||
|
int lrlglLoadRenderBatch( lua_State *L ) {
|
||||||
|
int numBuffers = luaL_checkinteger( L, 1 );
|
||||||
|
int bufferElements = luaL_checkinteger( L, 2 );
|
||||||
|
|
||||||
|
uluaPushRLRenderBatch( L, rlLoadRenderBatch( numBuffers, bufferElements ) );
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
> RL.rlUnloadRenderBatch( rlRenderBatch renderBatch )
|
||||||
|
|
||||||
|
Unload render batch system
|
||||||
|
*/
|
||||||
|
int lrlglUnloadRenderBatch( lua_State *L ) {
|
||||||
|
rlRenderBatch *renderBatch = uluaGetRLRenderBatch( L, 1 );
|
||||||
|
|
||||||
|
rlUnloadRenderBatch( *renderBatch );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
> RL.rlDrawRenderBatch( rlRenderBatch renderBatch )
|
||||||
|
|
||||||
|
Draw render batch data (Update->Draw->Reset)
|
||||||
|
*/
|
||||||
|
int lrlglDrawRenderBatch( lua_State *L ) {
|
||||||
|
rlRenderBatch *renderBatch = uluaGetRLRenderBatch( L, 1 );
|
||||||
|
|
||||||
|
rlDrawRenderBatch( renderBatch );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
> RL.rlSetRenderBatchActive( rlRenderBatch renderBatch )
|
||||||
|
|
||||||
|
Set the active render batch for rlgl (nil for default internal)
|
||||||
|
*/
|
||||||
|
int lrlglSetRenderBatchActive( lua_State *L ) {
|
||||||
|
rlRenderBatch *renderBatch = NULL;
|
||||||
|
|
||||||
|
if ( !lua_isnil( L, 1 ) ) {
|
||||||
|
renderBatch = uluaGetRLRenderBatch( L, 1 );
|
||||||
|
}
|
||||||
|
rlSetRenderBatchActive( renderBatch );
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
> RL.rlDrawRenderBatchActive()
|
> RL.rlDrawRenderBatchActive()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user