Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在使用OpenGL的PPAPI插件中获取当前EGLContext_Opengl_Chromium_Google Nativeclient_Egl_Ppapi - Fatal编程技术网

如何在使用OpenGL的PPAPI插件中获取当前EGLContext

如何在使用OpenGL的PPAPI插件中获取当前EGLContext,opengl,chromium,google-nativeclient,egl,ppapi,Opengl,Chromium,Google Nativeclient,Egl,Ppapi,我尝试开发一个PPAPI插件(在Chromium应用程序中),该插件使用OpenGL PPAPI包装器呈现3D图形。此外,我想利用EGL扩展,允许我访问在另一个进程中渲染的共享DirectX纹理。我想在PPAPI的Graphics3D OpenGL上下文中使用这个纹理(以便在插件的UI元素中显示它) 在PPAPI插件中,我能够访问共享的D3D纹理并创建一个EGL曲面(即使用eglCreatePbufferFromClientBuffer创建一个PBuffer)。 但是,我假设当尝试将此曲面绑定到

我尝试开发一个PPAPI插件(在Chromium应用程序中),该插件使用OpenGL PPAPI包装器呈现3D图形。此外,我想利用EGL扩展,允许我访问在另一个进程中渲染的共享DirectX纹理。我想在PPAPI的Graphics3D OpenGL上下文中使用这个纹理(以便在插件的UI元素中显示它)

在PPAPI插件中,我能够访问共享的D3D纹理并创建一个EGL曲面(即使用eglCreatePbufferFromClientBuffer创建一个PBuffer)。 但是,我假设当尝试将此曲面绑定到插件的OpenGL上下文中的OpenGL纹理时,我的EGLSurface与我在PPAPI的OpenGL上下文中创建的纹理处于不同的上下文中

EGLSurface eglSurface = eglCreatePbufferFromClientBuffer(eglDisplay, EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE, m_SharedTextureHandle, eglConfig, pBufferAttributes);
eglMakeCurrent(eglDisplay, eglSurface, eglSurface, eglContext);

glGenTextures(1, &m_glSharedTex);
glBindTexture(GL_TEXTURE_2D, m_glSharedTex);

eglBindTexImage(eglDisplay, eglSurface, EGL_BACK_BUFFER)
这可能是因为我设置了自己的EGLDisplay和EGLContext

 EGLDisplay eglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
 EGLContext eglContext = eglCreateContext(eglDisplay, eglConfig, EGL_NO_CONTEXT, pContextAttributes));
但是,尝试使用现有上下文eglGetCurrentContext()会返回EGL_NO_上下文,与显示相同


所以我需要的是访问插件的实际EGLContext。我怎样才能做到这一点?我是否可以在EGL中共享使用glSetCurrentContextPPAPI()创建的上下文?谢谢你的提示

嘿,我也有类似的情况。你找到解决办法了吗?没有。我想你没有直接访问上下文是有意的。我想你需要修补铬才能做到这一点。嘿,我也有类似的情况。你找到解决办法了吗?没有。我想你没有直接访问上下文是有意的。我想你需要修补铬才能做到这一点。