diff options
| author | Pixel <pixel@nobis-crew.org> | 2009-11-04 11:56:41 -0800 | 
|---|---|---|
| committer | Pixel <pixel@nobis-crew.org> | 2009-11-04 11:59:33 -0800 | 
| commit | d577d991b97ae2b5ee1af23641bcffc3f83af5b2 (patch) | |
| tree | 590639d50205d1bcfaff2a7d2dc6ebf3f373c7ed /iup/srclua5/iuplua_glcanvas.c | |
Initial import. Contains the im, cd and iup librairies, and a "working" Makefile for them under linux.
Diffstat (limited to 'iup/srclua5/iuplua_glcanvas.c')
| -rwxr-xr-x | iup/srclua5/iuplua_glcanvas.c | 82 | 
1 files changed, 82 insertions, 0 deletions
| diff --git a/iup/srclua5/iuplua_glcanvas.c b/iup/srclua5/iuplua_glcanvas.c new file mode 100755 index 0000000..c50ba8f --- /dev/null +++ b/iup/srclua5/iuplua_glcanvas.c @@ -0,0 +1,82 @@ +/** \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" + +#ifdef _WIN32 +#include <windows.h> +#endif +#include <GL/gl.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_changeEnv(L); +   iuplua_regstring(L, (const char*)glGetString(GL_VENDOR), "GL_VENDOR"); +   iuplua_regstring(L, (const char*)glGetString(GL_RENDERER), "GL_RENDERER"); +   iuplua_regstring(L, (const char*)glGetString(GL_VERSION), "GL_VERSION"); +   iuplua_returnEnv(L); + +   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_checkint(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_checkint(L,2); +   int count = luaL_checkint(L,3); +   int list_base = luaL_checkint(L,4); +   IupGLUseFont(self, first, count, list_base); +   return 0; +} + +static int GLWait(lua_State *L) +{ +   IupGLWait(luaL_checkint(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"); +} | 
