mirror of https://github.com/bjornbytes/lovr.git
lovr.graphics.reset;
This commit is contained in:
parent
e4ecf2452f
commit
ad0e014c5a
|
@ -16,18 +16,10 @@ static GraphicsState state;
|
|||
|
||||
void lovrGraphicsInit() {
|
||||
vec_init(&state.transforms);
|
||||
vec_push(&state.transforms, mat4_init());
|
||||
|
||||
state.projection = mat4_init();
|
||||
state.lastTransform = mat4_init();
|
||||
state.lastProjection = mat4_init();
|
||||
|
||||
memset(state.lastTransform, 0, 16);
|
||||
memset(state.lastProjection, 0, 16);
|
||||
|
||||
// TODO customize via lovr.conf
|
||||
lovrGraphicsSetProjection(.1f, 100.f, 67 * M_PI / 180);
|
||||
|
||||
char vertexShaderSource[128];
|
||||
snprintf(vertexShaderSource, sizeof(vertexShaderSource), "%s",
|
||||
"void main() { \n"
|
||||
|
@ -43,6 +35,27 @@ void lovrGraphicsInit() {
|
|||
);
|
||||
|
||||
state.defaultShader = lovrGraphicsNewShader(vertexShaderSource, fragmentShaderSource);
|
||||
|
||||
lovrGraphicsReset();
|
||||
}
|
||||
|
||||
void lovrGraphicsReset() {
|
||||
int i;
|
||||
mat4 matrix;
|
||||
|
||||
vec_foreach(&state.transforms, matrix, i) {
|
||||
mat4_deinit(matrix);
|
||||
}
|
||||
|
||||
vec_clear(&state.transforms);
|
||||
vec_push(&state.transforms, mat4_init());
|
||||
|
||||
memset(state.lastTransform, 0, 16);
|
||||
memset(state.lastProjection, 0, 16);
|
||||
|
||||
// TODO customize via lovr.conf
|
||||
lovrGraphicsSetProjection(.1f, 100.f, 67 * M_PI / 180);
|
||||
|
||||
lovrGraphicsSetShader(state.defaultShader);
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ typedef struct {
|
|||
#endif
|
||||
|
||||
void lovrGraphicsInit();
|
||||
void lovrGraphicsReset();
|
||||
void lovrGraphicsClear(int color, int depth);
|
||||
void lovrGraphicsPresent();
|
||||
void lovrGraphicsPrepare();
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
#include "../util.h"
|
||||
|
||||
const luaL_Reg lovrGraphics[] = {
|
||||
{ "reset", l_lovrGraphicsReset },
|
||||
{ "clear", l_lovrGraphicsClear },
|
||||
{ "present", l_lovrGraphicsPresent },
|
||||
{ "getClearColor", l_lovrGraphicsGetClearColor },
|
||||
|
@ -47,6 +48,11 @@ int l_lovrGraphicsInit(lua_State* L) {
|
|||
return 1;
|
||||
}
|
||||
|
||||
int l_lovrGraphicsReset(lua_State* L) {
|
||||
lovrGraphicsReset();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int l_lovrGraphicsClear(lua_State* L) {
|
||||
int color = lua_gettop(L) < 1 || lua_toboolean(L, 1);
|
||||
int depth = lua_gettop(L) < 2 || lua_toboolean(L, 2);
|
||||
|
|
|
@ -8,6 +8,7 @@ map_int_t BufferUsages;
|
|||
|
||||
extern const luaL_Reg lovrGraphics[];
|
||||
int l_lovrGraphicsInit(lua_State* L);
|
||||
int l_lovrGraphicsReset(lua_State* L);
|
||||
int l_lovrGraphicsClear(lua_State* L);
|
||||
int l_lovrGraphicsPresent(lua_State* L);
|
||||
int l_lovrGraphicsGetClearColor(lua_State* L);
|
||||
|
|
|
@ -15,6 +15,10 @@ mat4 mat4_init() {
|
|||
return mat4_setIdentity(matrix);
|
||||
}
|
||||
|
||||
void mat4_deinit(mat4 matrix) {
|
||||
free(matrix);
|
||||
}
|
||||
|
||||
mat4 mat4_copy(mat4 source) {
|
||||
mat4 matrix = mat4_init();
|
||||
memcpy(matrix, source, 16 * sizeof(float));
|
||||
|
@ -61,10 +65,6 @@ mat4 mat4_fromMat44(mat4 matrix, float (*source)[4]) {
|
|||
return matrix;
|
||||
}
|
||||
|
||||
void mat4_deinit(mat4 matrix) {
|
||||
free(matrix);
|
||||
}
|
||||
|
||||
mat4 mat4_setIdentity(mat4 matrix) {
|
||||
memset(matrix, 0, 16 * sizeof(float));
|
||||
matrix[0] = matrix[5] = matrix[10] = matrix[15] = 1.f;
|
||||
|
|
Loading…
Reference in New Issue