1

我有这个 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);
4

0 回答 0