Release v0.5.
This commit is contained in:
@@ -981,7 +981,6 @@ int lcoreLoadShader( lua_State *L ) {
|
||||
lua_pushinteger( L, -1 );
|
||||
return 1;
|
||||
}
|
||||
|
||||
char *vsFileName = NULL;
|
||||
char *fsFileName = NULL;
|
||||
|
||||
|
||||
@@ -641,21 +641,39 @@ static void defineGlobals() {
|
||||
lua_pop( L, -1 );
|
||||
}
|
||||
|
||||
static int freeBuffer( lua_State *L ) {
|
||||
static int gcBuffer( lua_State *L ) {
|
||||
Buffer *buffer = luaL_checkudata ( L, 1, "Buffer" );
|
||||
free( buffer->data );
|
||||
}
|
||||
|
||||
static void defineCBuffer() {
|
||||
static void defineBuffer() {
|
||||
lua_State *L = state->luaState;
|
||||
|
||||
luaL_newmetatable( L, "Buffer" );
|
||||
lua_pushvalue( L, -1 );
|
||||
lua_setfield( L, -2, "__index" );
|
||||
lua_pushcfunction( L, freeBuffer );
|
||||
lua_pushcfunction( L, gcBuffer );
|
||||
lua_setfield( L, -2, "__gc" );
|
||||
}
|
||||
|
||||
// static int gcTexture( lua_State *L ) {
|
||||
// Texture *texture = luaL_checkudata ( L, 1, "Texture" );
|
||||
// printf( "gcTexture\n" );
|
||||
// printf( "\ttexture->id = %d\n", texture->id );
|
||||
|
||||
// UnloadTexture( *texture );
|
||||
// }
|
||||
|
||||
// static void defineTexture() {
|
||||
// lua_State *L = state->luaState;
|
||||
|
||||
// luaL_newmetatable( L, "Texture" );
|
||||
// lua_pushvalue( L, -1 );
|
||||
// lua_setfield( L, -2, "__index" );
|
||||
// lua_pushcfunction( L, gcTexture );
|
||||
// lua_setfield( L, -2, "__gc" );
|
||||
// }
|
||||
|
||||
// Custom logging funtion.
|
||||
static void logCustom( int logLevel, const char *text, va_list args ) {
|
||||
char string[ STRING_LEN ] = {'\0'};
|
||||
@@ -678,24 +696,27 @@ static void logCustom( int logLevel, const char *text, va_list args ) {
|
||||
/* Call Lua log function if exists. */
|
||||
lua_State *L = state->luaState;
|
||||
|
||||
lua_pushcfunction( L, luaTraceback );
|
||||
int tracebackidx = lua_gettop( L );
|
||||
/* Prevent calling lua log function when lua is already shutdown. */
|
||||
if ( L != NULL ) {
|
||||
lua_pushcfunction( L, luaTraceback );
|
||||
int tracebackidx = lua_gettop( L );
|
||||
|
||||
lua_getglobal( L, "RL" );
|
||||
lua_getfield( L, -1, "log" );
|
||||
lua_getglobal( L, "RL" );
|
||||
lua_getfield( L, -1, "log" );
|
||||
|
||||
if ( lua_isfunction( L, -1 ) ) {
|
||||
lua_pushinteger( L, logLevel );
|
||||
lua_pushstring( L, msg );
|
||||
if ( lua_isfunction( L, -1 ) ) {
|
||||
lua_pushinteger( L, logLevel );
|
||||
lua_pushstring( L, msg );
|
||||
|
||||
if ( lua_pcall( L, 2, 0, tracebackidx ) != 0 ) {
|
||||
TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) );
|
||||
state->run = false;
|
||||
lua_pop( L, -1 );
|
||||
return;
|
||||
}
|
||||
}
|
||||
lua_pop( L, -1 );
|
||||
if ( lua_pcall( L, 2, 0, tracebackidx ) != 0 ) {
|
||||
TraceLog( LOG_ERROR, "Lua error: %s", lua_tostring( L, -1 ) );
|
||||
state->run = false;
|
||||
lua_pop( L, -1 );
|
||||
return;
|
||||
}
|
||||
}
|
||||
lua_pop( L, -1 );
|
||||
}
|
||||
}
|
||||
|
||||
/* Window events. */
|
||||
@@ -1039,7 +1060,8 @@ bool luaInit( int argn, const char **argc ) {
|
||||
return false;
|
||||
}
|
||||
defineGlobals();
|
||||
defineCBuffer();
|
||||
defineBuffer();
|
||||
// defineTexture();
|
||||
|
||||
/* Set arguments. */
|
||||
lua_getglobal( L, "RL" );
|
||||
@@ -2166,6 +2188,7 @@ Vector2 uluaGetVector2( lua_State *L ) {
|
||||
}
|
||||
|
||||
Vector2 uluaGetVector2Index( lua_State *L, int index ) {
|
||||
// luaL_checktype( L, index, LUA_TTABLE );
|
||||
Vector2 vector = { 0.0f, 0.0f };
|
||||
|
||||
if ( !lua_istable( L, index ) ) {
|
||||
|
||||
23
src/rlgl.c
23
src/rlgl.c
@@ -1732,6 +1732,29 @@ int lrlglUnloadFramebuffer( lua_State *L ) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
/*
|
||||
## RLGL - Shaders management
|
||||
*/
|
||||
|
||||
/*
|
||||
> success = RL.rlLoadShaderCode( string vsCode, string fsCode )
|
||||
|
||||
Load shader from code strings
|
||||
|
||||
- Failure return nil
|
||||
- Success return int
|
||||
*/
|
||||
// int lrlglUnloadFramebuffer( lua_State *L ) {
|
||||
// if ( !lua_isstring( L, 1 ) || !lua_isstring( L, 2 ) ) {
|
||||
// TraceLog( state->logLevelInvalid, "%s", "Bad call of function. RL.rlLoadShaderCode( string vsCode, string fsCode )" );
|
||||
// lua_pushnil( L );
|
||||
// return 1;
|
||||
// }
|
||||
// lua_pushinteger( L, rlLoadShaderCode( luaL_checkstring( L, 1 ), luaL_checkstring( L, 2 ) ) );
|
||||
|
||||
// return 1;
|
||||
// }
|
||||
|
||||
/*
|
||||
## RLGL - Matrix state management
|
||||
*/
|
||||
|
||||
@@ -211,11 +211,12 @@ void stateFree() {
|
||||
if ( IsAudioDeviceReady() ) {
|
||||
CloseAudioDevice();
|
||||
}
|
||||
if ( state->hasWindow ) {
|
||||
CloseWindow();
|
||||
}
|
||||
if ( state->luaState != NULL ) {
|
||||
lua_close( state->luaState );
|
||||
state->luaState = NULL;
|
||||
}
|
||||
if ( state->hasWindow ) {
|
||||
CloseWindow();
|
||||
}
|
||||
free( state->images );
|
||||
free( state->textures );
|
||||
|
||||
@@ -1673,6 +1673,12 @@ int ltexturesLoadTexture( lua_State *L ) {
|
||||
int i = newTexture( TEXTURE_TYPE_TEXTURE );
|
||||
state->textures[i]->texture = LoadTexture( lua_tostring( L, 1 ) );
|
||||
lua_pushinteger( L, i );
|
||||
|
||||
// Texture loadedTex = LoadTexture( lua_tostring( L, 1 ) );
|
||||
// Texture *texture = lua_newuserdata( L, sizeof( Texture ) );
|
||||
// *texture = loadedTex;
|
||||
// luaL_setmetatable( L, "Texture" );
|
||||
|
||||
return 1;
|
||||
}
|
||||
else {
|
||||
@@ -1921,10 +1927,12 @@ int ltexturesDrawTexture( lua_State *L ) {
|
||||
return 1;
|
||||
}
|
||||
Texture texture = uluaGetTexture( L, 1 );
|
||||
// Texture *texture = luaL_checkudata( L, 1, "Texture" );
|
||||
Vector2 pos = uluaGetVector2Index( L, 2 );
|
||||
Color color = uluaGetColorIndex( L, 3 );
|
||||
|
||||
DrawTexture( texture, pos.x, pos.y, color );
|
||||
// DrawTexture( *texture, pos.x, pos.y, color );
|
||||
lua_pushboolean( L, true );
|
||||
|
||||
return 1;
|
||||
@@ -2174,6 +2182,9 @@ int ltexturesGetTextureSize( lua_State *L ) {
|
||||
Texture texture = uluaGetTexture( L, 1 );
|
||||
uluaPushVector2( L, (Vector2){ texture.width, texture.height } );
|
||||
|
||||
// Texture *texture = luaL_checkudata( L, 1, "Texture" );
|
||||
// uluaPushVector2( L, (Vector2){ texture->width, texture->height } );
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user