[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,&params);
 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