/* PickMatrix( x, y, deltax, deltay, viewportArray) -> none */ static int luaglu_pick_matrix(lua_State *L) { GLint *vp; int num_args; if (!( lua_isnumber(L, 1) && lua_isnumber(L, 2) && lua_isnumber(L, 3) && lua_isnumber(L, 4))) { luaL_error(L, "incorrect argument to function 'glu.PickMatrix'"); return 0; } if(!lua_istable(L, 5) || (num_args = luagl_get_arrayi(L, 5, &vp)) < 4) { luaL_error(L, "incorrect argument to function 'glu.PickMatrix'"); return 0; } gluPickMatrix( (GLdouble)lua_tonumber(L, 1), (GLdouble)lua_tonumber(L, 2), (GLdouble)lua_tonumber(L, 3), (GLdouble)lua_tonumber(L, 4), vp); LUAGL_DELETE_ARRAY(vp); return 0; }
/* PickMatrix( x, y, deltax, deltay, viewportArray) -> none */ static int luaglu_pick_matrix(lua_State *L) { GLint *vp; int n; n = luagl_get_arrayi(L, 5, &vp); if (n < 4) luaL_argerror(L, 5, "invalid number of elements in the matrix table (n<4)."); gluPickMatrix(luaL_checknumber(L, 1), luaL_checknumber(L, 2), luaL_checknumber(L, 3), luaL_checknumber(L, 4), vp); LUAGL_DELETE_ARRAY(vp); return 0; }