lovr/src/api/types/canvas.c

48 lines
1.4 KiB
C
Raw Normal View History

2017-12-10 20:40:37 +00:00
#include "api.h"
2017-12-07 07:50:52 +00:00
#include "graphics/canvas.h"
static int luax_checkattachment(lua_State* L, int index, Attachment* attachment) {
attachment->texture = luax_checktype(L, index++, Texture);
attachment->slice = lua_type(L, index) == LUA_TNUMBER ? lua_tointeger(L, index++) - 1 : 0;
attachment->level = lua_type(L, index) == LUA_TNUMBER ? lua_tointeger(L, index++) - 1 : 0;
return index;
}
int l_lovrCanvasGetTexture(lua_State* L) {
return 0;
}
int l_lovrCanvasSetTexture(lua_State* L) {
Canvas* canvas = luax_checktype(L, 1, Canvas);
int index = 2;
AttachmentType type = ATTACHMENT_COLOR;
if (lua_type(L, index) == LUA_TSTRING) {
type = luaL_checkoption(L, index++, NULL, AttachmentTypes);
}
if (type == ATTACHMENT_COLOR) {
Attachment attachments[MAX_COLOR_ATTACHMENTS];
int top = lua_gettop(L);
int count;
for (count = 0; count < MAX_COLOR_ATTACHMENTS && index <= top; count++) {
index = luax_checkattachment(L, index, attachments + count);
}
//lovrCanvasSetAttachments(type, attachments, count);
} else if (type == ATTACHMENT_DEPTH) {
Attachment attachment;
luax_checkattachment(L, index, &attachment);
//lovrCanvasSetAttachments(type, &attachment, 1);
}
return 0;
}
2017-12-07 07:50:52 +00:00
const luaL_Reg lovrCanvas[] = {
{ "getTexture", l_lovrCanvasGetTexture },
{ "setTexture", l_lovrCanvasSetTexture },
2017-12-07 07:50:52 +00:00
{ NULL, NULL }
};