我有这个 C 函数
bool gfx_draw_line(float x1, float y1, float x2, float y2, int r, int g, int b, int a)
{
bool success = true;
// draw line...
return success;
}
我想把它暴露给松鼠,但我必须手动创建一个 SQFUNCTION
static SQInteger api_drawline(HSQUIRRELVM v)
{
SQFloat x1, y1, x2, y2;
SQInteger r, g, b, a;
int arg = 1;
sq_getfloat(v, ++arg, &x1);
sq_getfloat(v, ++arg, &y1);
sq_getfloat(v, ++arg, &x2);
sq_getfloat(v, ++arg, &y2);
sq_getinteger(v, ++arg, &r);
sq_getinteger(v, ++arg, &g);
sq_getinteger(v, ++arg, &b);
sq_getinteger(v, ++arg, &a);
int s = gfx_draw_line(x1, y1, x2, y2, r, g, b, a);
sq_pushbool(v, s);
return 1;
}
C 中有没有办法动态生成 SQFUNCTION 对象?说一个宏或一个函数,它将从一个函数创建 SQFUNCTION 对象,这样我就可以像那样使用它
SQFUNCTION sq = create_sqfunction(gfx_draw_line);