C ++宏包装外部函数并将其添加到类中

问题描述

我正在使用C ++ / wasm(WebAssembly)在浏览器中使用webgl进行渲染。为此,我导入所有webgl函数(很多30+函数),并将它们包装在c ++类中。由于有很多功能,我的文件大小越来越大(导入+包装)。

一个函数的示例(这是一个外部js函数):

importfrom("webgl") void viewport(GLhandle deviceRef,GLsizei x,GLsizei y,GLsizei w,GLsizei h);

deviceRef是呈现上下文的(int)句柄。在我的C ++包装器内部,我使用以下函数:

class WebGlRenderContext {
private:
    GLhandle contextHandle = 0;

public:
    WebGlRenderContext(GLhandle context) : contextHandle(context) { }

    inline void setViewport(GLsizei x,GLsizei h) {
        JsImports::viewport(contextHandle,x,y,w,h);
    }
    ...
}

有没有一种方法可以在宏中完成所有操作,然后导入,创建内联包装并添加contextHandle作为第一个参数。我知道宏有可变参数,但我认为没有办法剥离内部调用的类型。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)