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



我想通过WebGL创建一些从HTMLVIDEOELENT创建一些纹理,并继续在WebAssembly Part中与它们合作。我正在使用emscripten_webgl_create_context的某些上下文。

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

有什么方法可以在JavaScript部件(带WebGL)中创建纹理,并经过有效的指针或WebAssembly部分的任何其他ID,以便我可以识别纹理?

只是一个猜测,但我认为您需要修改Emscripten OpenGL源代码。如果您看到,您会在此处看到WebGL对象与ID关联。您需要添加一个函数才能在此处注册外部JavaScript WebGL对象,或者您需要添加一个函数以让C 制作ID,然后从JavaScript获取对象。

注意:您可以执行第二个方法(在C 中制作对象,将其传递给JavaScript)而无需更改emscripten源的源将是在C 中制作ID,绑定它,然后调用JavaScript并进行JavaScript查询。换句话说

 GLuint tex;
 glGenTextures(1, tex);
 glBindTexture(GL_TEXTURE_2D, tex);

..现在调用您制作的一些JavaScript功能..

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

empscripten的OpenGL库将C 中使用的ID入侵WebGLTexture对象。

 const id = tex.name

您现在可以随时参考纹理

id传递给C

另外,使用上面的代码可以构建一个C 函数,该功能可以在C 中分配单个纹理,您可以从JavaScript调用该纹理。由于它会留下纹理,因此创建了绑定,您可以查询纹理,如上所示。

相关内容

最新更新