iup-stack/iup/srclua5/ctrl/iuplua_glcanvas.c

77 lines
1.7 KiB
C
Executable File

/** \file
* \brief iupgl binding for Lua 5.
*
* See Copyright Notice in "iup.h"
*/
#include <lua.h>
#include <lauxlib.h>
#include "iup.h"
#include "iupgl.h"
#include "iuplua.h"
#include "iupluagl.h"
#include "il.h"
static int GLIsCurrent(lua_State *L)
{
lua_pushboolean(L, IupGLIsCurrent(iuplua_checkihandle(L,1)));
return 1;
}
static int GLMakeCurrent(lua_State *L)
{
IupGLMakeCurrent(iuplua_checkihandle(L,1));
iuplua_get_env(L);
iuplua_regstring(L, IupGetGlobal("GL_VENDOR"), "GL_VENDOR");
iuplua_regstring(L, IupGetGlobal("GL_RENDERER"), "GL_RENDERER");
iuplua_regstring(L, IupGetGlobal("GL_VERSION"), "GL_VERSION");
return 0;
}
static int GLSwapBuffers(lua_State *L)
{
IupGLSwapBuffers(iuplua_checkihandle(L,1));
return 0;
}
static int GLPalette(lua_State *L)
{
Ihandle *self = iuplua_checkihandle(L,1);
int index = luaL_checkinteger(L,2);
float r = (float)luaL_checknumber(L,3);
float g = (float)luaL_checknumber(L,4);
float b = (float)luaL_checknumber(L,5);
IupGLPalette(self, index, r, g, b);
return 0;
}
static int GLUseFont(lua_State *L)
{
Ihandle *self = iuplua_checkihandle(L,1);
int first = luaL_checkinteger(L,2);
int count = luaL_checkinteger(L,3);
int list_base = luaL_checkinteger(L,4);
IupGLUseFont(self, first, count, list_base);
return 0;
}
static int GLWait(lua_State *L)
{
IupGLWait(luaL_checkinteger(L,1));
return 0;
}
void iuplua_glcanvasfuncs_open (lua_State *L)
{
iuplua_register(L, GLSwapBuffers, "GLSwapBuffers");
iuplua_register(L, GLIsCurrent, "GLIsCurrent");
iuplua_register(L, GLMakeCurrent, "GLMakeCurrent");
iuplua_register(L, GLPalette, "GLPalette");
iuplua_register(L, GLUseFont, "GLUseFont");
iuplua_register(L, GLWait, "GLWait");
}