在javascript和WebGL中创建纹理,并在WebAssembly中识别它们

在javascript和WebGL中创建纹理,并在WebAssembly中识别它们,javascript,webgl,webassembly,Javascript,Webgl,Webassembly,我想创建一些,并继续在WebAssembly部件中使用它们。我使用了一些上下文,因为 在OpenGL中,我可以使用创建纹理,并具有指向纹理的指针 是否有任何方法可以在Javascript部件(使用WebGL)中创建纹理,并通过指向WebAssembly部件的有效指针或任何其他id来识别纹理?只是猜测,但我认为您需要修改emscripten OpenGL源代码。如果查看,您将看到WebGL对象与一个id相关联。您需要添加一个函数来登记外部JavaScript WebGL对象,或者需要添加一个函数,

我想创建一些,并继续在WebAssembly部件中使用它们。我使用了一些上下文,因为

在OpenGL中,我可以使用创建纹理,并具有指向纹理的指针


是否有任何方法可以在Javascript部件(使用WebGL)中创建纹理,并通过指向WebAssembly部件的有效指针或任何其他id来识别纹理?

只是猜测,但我认为您需要修改emscripten OpenGL源代码。如果查看,您将看到WebGL对象与一个id相关联。您需要添加一个函数来登记外部JavaScript WebGL对象,或者需要添加一个函数,C++允许生成ID,然后从JavaScript中获取对象。

注意:在不改变Eclipse源的情况下,可以在第二个步骤(使C++中的对象传递给JavaScript),使ID为C++,绑定它,然后调用JavaScript并对其进行JavaScript查询。换句话说

 GLuint tex;
 glGenTextures(1, tex);
 glBindTexture(GL_TEXTURE_2D, tex);
…现在你

 function someJSFunction() {
   // look up the currently bound TEXTURE_2D
   const tex = gl.getParameter(gl.TEXTURE_BINDING_2D);
   ...

C++中使用的ID通过EMPRESTEN的OpenGL库,从而< < /P> >被入侵到<代码> WebGLTexture <代码>对象

 const id = tex.name
您可以在任何时候引用<代码> ID >代码>返回到C++。

此外,使用上面的代码,您可以构建一个C++函数,该函数分配C++中的一个纹理,您可以从JavaScript调用它。由于它会使刚创建的纹理保持绑定状态,因此您可以如上所示查询纹理。

非常感谢!我应该担心去JS,回到C++中的性能吗?