[q2x] Doris: glGet
Nick Trout
nick at rockstarvancouver.com
Tue Apr 13 14:10:15 EDT 2004
> Well, I'm not sure there is one, because I don't know tolou, but there
> are two separate bindings for "glGet", so how does it know which one
> to call?
It tries both! :) See penultimate line. If one errs, the other gets a
chance. It may not be ideal but it allows multiple format arguments.
/* function: glGetDoublev */
static int tolua_gl_glGet00(lua_State* tolua_S)
{
#ifndef TOLUA_RELEASE
tolua_Error tolua_err;
if (
!tolua_isnumber(tolua_S,1,0,&tolua_err) ||
!tolua_isnumber(tolua_S,2,1,&tolua_err) ||
!tolua_isnoobj(tolua_S,3,&tolua_err)
)
goto tolua_lerror;
else
#endif
{
double pname = (( double) tolua_tonumber(tolua_S,1,0));
double params = (( double) tolua_tonumber(tolua_S,2,0));
{
glGetDoublev(pname,¶ms);
tolua_pushnumber(tolua_S,(lua_Number)params);
}
}
return 1;
#ifndef TOLUA_RELEASE
tolua_lerror:
tolua_error(tolua_S,"#ferror in function 'glGet'.",&tolua_err);
return 0;
#endif
}
/* function: glGetDoublev */
static int tolua_gl_glGet01(lua_State* tolua_S)
{
tolua_Error tolua_err;
if (
!tolua_isnumber(tolua_S,1,0,&tolua_err) ||
!tolua_istable(tolua_S,2,0,&tolua_err) ||
!tolua_isnoobj(tolua_S,3,&tolua_err)
)
goto tolua_lerror;
else
{
double pname = (( double) tolua_tonumber(tolua_S,1,0));
double params[16];
{
#ifndef TOLUA_RELEASE
if (!tolua_isnumberarray(tolua_S,2,16,1,&tolua_err))
goto tolua_lerror;
else
#endif
{
int i;
for(i=0; i<16;i++)
params[i] = ((double) tolua_tofieldnumber(tolua_S,2,i+1,0));
}
}
{
glGetDoublev(pname,params);
}
{
int i;
for(i=0; i<16;i++)
tolua_pushfieldnumber(tolua_S,2,i+1,(lua_Number) params[i]);
}
}
return 0;
tolua_lerror:
return tolua_gl_glGet00(tolua_S);
}
More information about the q2x
mailing list