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));
|
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* lovrGraphicsNewBuffer(int size, BufferDrawMode drawMode, BufferUsage usage) {
|
||||||
Buffer* buffer = malloc(sizeof(Buffer));
|
Buffer* buffer = malloc(sizeof(Buffer));
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,9 @@ void lovrGraphicsSetShader(Shader* shader);
|
||||||
int lovrGraphicsPush();
|
int lovrGraphicsPush();
|
||||||
int lovrGraphicsPop();
|
int lovrGraphicsPop();
|
||||||
void lovrGraphicsOrigin();
|
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);
|
Buffer* lovrGraphicsNewBuffer(int size, BufferDrawMode drawMode, BufferUsage usage);
|
||||||
Model* lovrGraphicsNewModel(const char* path);
|
Model* lovrGraphicsNewModel(const char* path);
|
||||||
Shader* lovrGraphicsNewShader(const char* vertexSource, const char* fragmentSource);
|
Shader* lovrGraphicsNewShader(const char* vertexSource, const char* fragmentSource);
|
||||||
|
|
|
@ -14,6 +14,9 @@ const luaL_Reg lovrGraphics[] = {
|
||||||
{ "push", l_lovrGraphicsPush },
|
{ "push", l_lovrGraphicsPush },
|
||||||
{ "pop", l_lovrGraphicsPop },
|
{ "pop", l_lovrGraphicsPop },
|
||||||
{ "origin", l_lovrGraphicsOrigin },
|
{ "origin", l_lovrGraphicsOrigin },
|
||||||
|
{ "translate", l_lovrGraphicsTranslate },
|
||||||
|
{ "rotate", l_lovrGraphicsRotate },
|
||||||
|
{ "scale", l_lovrGraphicsScale },
|
||||||
{ "newModel", l_lovrGraphicsNewModel },
|
{ "newModel", l_lovrGraphicsNewModel },
|
||||||
{ "newBuffer", l_lovrGraphicsNewBuffer },
|
{ "newBuffer", l_lovrGraphicsNewBuffer },
|
||||||
{ "newShader", l_lovrGraphicsNewShader },
|
{ "newShader", l_lovrGraphicsNewShader },
|
||||||
|
@ -108,6 +111,31 @@ int l_lovrGraphicsOrigin(lua_State* L) {
|
||||||
return 0;
|
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) {
|
int l_lovrGraphicsNewBuffer(lua_State* L) {
|
||||||
const char* userDrawMode = luaL_optstring(L, 2, "fan");
|
const char* userDrawMode = luaL_optstring(L, 2, "fan");
|
||||||
BufferDrawMode* drawMode = (BufferDrawMode*) map_get(&BufferDrawModes, userDrawMode);
|
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_lovrGraphicsPush(lua_State* L);
|
||||||
int l_lovrGraphicsPop(lua_State* L);
|
int l_lovrGraphicsPop(lua_State* L);
|
||||||
int l_lovrGraphicsOrigin(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_lovrGraphicsNewBuffer(lua_State* L);
|
||||||
int l_lovrGraphicsNewModel(lua_State* L);
|
int l_lovrGraphicsNewModel(lua_State* L);
|
||||||
int l_lovrGraphicsNewShader(lua_State* L);
|
int l_lovrGraphicsNewShader(lua_State* L);
|
||||||
|
|
Loading…
Reference in New Issue