mirror of https://github.com/bjornbytes/lovr.git
More graphics transform functions;
lovr.graphics.translate lovr.graphics.rotate lovr.graphics.scale
This commit is contained in:
parent
0786b67f0b
commit
9f254fc783
|
@ -82,6 +82,18 @@ void lovrGraphicsOrigin() {
|
|||
mat4_setIdentity(vec_last(transforms));
|
||||
}
|
||||
|
||||
void lovrGraphicsTranslate(float x, float y, float z) {
|
||||
mat4_translate(vec_last(&graphicsState.transforms), x, y, z);
|
||||
}
|
||||
|
||||
void lovrGraphicsRotate(float w, float x, float y, float z) {
|
||||
mat4_rotate(vec_last(&graphicsState.transforms), w, x, y, z);
|
||||
}
|
||||
|
||||
void lovrGraphicsScale(float x, float y, float z) {
|
||||
mat4_scale(vec_last(&graphicsState.transforms), x, y, z);
|
||||
}
|
||||
|
||||
Buffer* lovrGraphicsNewBuffer(int size, BufferDrawMode drawMode, BufferUsage usage) {
|
||||
Buffer* buffer = malloc(sizeof(Buffer));
|
||||
|
||||
|
|
|
@ -18,6 +18,9 @@ void lovrGraphicsSetShader(Shader* shader);
|
|||
int lovrGraphicsPush();
|
||||
int lovrGraphicsPop();
|
||||
void lovrGraphicsOrigin();
|
||||
void lovrGraphicsTranslate(float x, float y, float z);
|
||||
void lovrGraphicsRotate(float w, float x, float y, float z);
|
||||
void lovrGraphicsScale(float x, float y, float z);
|
||||
Buffer* lovrGraphicsNewBuffer(int size, BufferDrawMode drawMode, BufferUsage usage);
|
||||
Model* lovrGraphicsNewModel(const char* path);
|
||||
Shader* lovrGraphicsNewShader(const char* vertexSource, const char* fragmentSource);
|
||||
|
|
|
@ -14,6 +14,9 @@ const luaL_Reg lovrGraphics[] = {
|
|||
{ "push", l_lovrGraphicsPush },
|
||||
{ "pop", l_lovrGraphicsPop },
|
||||
{ "origin", l_lovrGraphicsOrigin },
|
||||
{ "translate", l_lovrGraphicsTranslate },
|
||||
{ "rotate", l_lovrGraphicsRotate },
|
||||
{ "scale", l_lovrGraphicsScale },
|
||||
{ "newModel", l_lovrGraphicsNewModel },
|
||||
{ "newBuffer", l_lovrGraphicsNewBuffer },
|
||||
{ "newShader", l_lovrGraphicsNewShader },
|
||||
|
@ -108,6 +111,31 @@ int l_lovrGraphicsOrigin(lua_State* L) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int l_lovrGraphicsTranslate(lua_State* L) {
|
||||
float x = luaL_checknumber(L, 1);
|
||||
float y = luaL_checknumber(L, 2);
|
||||
float z = luaL_checknumber(L, 3);
|
||||
lovrGraphicsTranslate(x, y, z);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int l_lovrGraphicsRotate(lua_State* L) {
|
||||
float w = luaL_checknumber(L, 1);
|
||||
float x = luaL_checknumber(L, 2);
|
||||
float y = luaL_checknumber(L, 3);
|
||||
float z = luaL_checknumber(L, 4);
|
||||
lovrGraphicsRotate(w, x, y, z);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int l_lovrGraphicsScale(lua_State* L) {
|
||||
float x = luaL_checknumber(L, 1);
|
||||
float y = luaL_checknumber(L, 2);
|
||||
float z = luaL_checknumber(L, 3);
|
||||
lovrGraphicsScale(x, y, z);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int l_lovrGraphicsNewBuffer(lua_State* L) {
|
||||
const char* userDrawMode = luaL_optstring(L, 2, "fan");
|
||||
BufferDrawMode* drawMode = (BufferDrawMode*) map_get(&BufferDrawModes, userDrawMode);
|
||||
|
|
|
@ -17,6 +17,9 @@ int l_lovrGraphicsSetShader(lua_State* L);
|
|||
int l_lovrGraphicsPush(lua_State* L);
|
||||
int l_lovrGraphicsPop(lua_State* L);
|
||||
int l_lovrGraphicsOrigin(lua_State* L);
|
||||
int l_lovrGraphicsTranslate(lua_State* L);
|
||||
int l_lovrGraphicsRotate(lua_State* L);
|
||||
int l_lovrGraphicsScale(lua_State* L);
|
||||
int l_lovrGraphicsNewBuffer(lua_State* L);
|
||||
int l_lovrGraphicsNewModel(lua_State* L);
|
||||
int l_lovrGraphicsNewShader(lua_State* L);
|
||||
|
|
Loading…
Reference in New Issue