mirror of https://github.com/bjornbytes/lovr.git
Buffer:setVertex;
This commit is contained in:
parent
eadc31777d
commit
31bd3abf0b
15
src/buffer.c
15
src/buffer.c
|
@ -24,7 +24,22 @@ int lovrBufferDraw(lua_State* L) {
|
|||
return 0;
|
||||
}
|
||||
|
||||
int lovrBufferSetVertex(lua_State* L) {
|
||||
Buffer* buffer = luax_checkbuffer(L, 1);
|
||||
int index = luaL_checkint(L, 2) - 1;
|
||||
float x = luaL_checknumber(L, 3);
|
||||
float y = luaL_checknumber(L, 4);
|
||||
float z = luaL_checknumber(L, 5);
|
||||
|
||||
buffer->data[3 * index + 0] = x;
|
||||
buffer->data[3 * index + 1] = y;
|
||||
buffer->data[3 * index + 2] = z;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
const luaL_Reg lovrBuffer[] = {
|
||||
{ "draw", lovrBufferDraw },
|
||||
{ "setVertex", lovrBufferSetVertex },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
|
|
|
@ -4,13 +4,13 @@
|
|||
#include "glfw.h"
|
||||
|
||||
typedef struct {
|
||||
GLuint vbo;
|
||||
GLuint vao;
|
||||
GLfloat* data;
|
||||
GLenum drawMode;
|
||||
} Buffer;
|
||||
|
||||
void luax_pushbuffer(lua_State* L, Buffer* buffer);
|
||||
Buffer* luax_checkbuffer(lua_State* L, int index);
|
||||
|
||||
int lovrBufferDraw(lua_State* L);
|
||||
int lovrBufferSetVertex(lua_State* L);
|
||||
extern const luaL_Reg lovrBuffer[];
|
||||
|
|
|
@ -44,21 +44,11 @@ int lovrGraphicsNewModel(lua_State* L) {
|
|||
}
|
||||
|
||||
int lovrGraphicsNewBuffer(lua_State* L) {
|
||||
int size = luaL_checkint(L, 1);
|
||||
|
||||
Buffer* buffer = (Buffer*) malloc(sizeof(Buffer));
|
||||
|
||||
buffer->data = (GLfloat*) malloc(9 * sizeof(GLfloat));
|
||||
|
||||
buffer->data[0] = -0.5;
|
||||
buffer->data[1] = -0.5;
|
||||
buffer->data[2] = 0.0;
|
||||
|
||||
buffer->data[3] = 0.5;
|
||||
buffer->data[4] = -0.5;
|
||||
buffer->data[5] = 0.0;
|
||||
|
||||
buffer->data[6] = 0.0;
|
||||
buffer->data[7] = 0.5;
|
||||
buffer->data[8] = 0.0;
|
||||
buffer->data = (GLfloat*) malloc(size * 3 * sizeof(GLfloat));
|
||||
|
||||
luax_pushbuffer(L, buffer);
|
||||
|
||||
|
|
Loading…
Reference in New Issue