如何在使用OpenGL的PPAPI插件中获取当前EGLContext
我尝试开发一个PPAPI插件(在Chromium应用程序中),该插件使用OpenGL PPAPI包装器呈现3D图形。此外,我想利用EGL扩展,允许我访问在另一个进程中渲染的共享DirectX纹理。我想在PPAPI的Graphics3D OpenGL上下文中使用这个纹理(以便在插件的UI元素中显示它) 在PPAPI插件中,我能够访问共享的D3D纹理并创建一个EGL曲面(即使用eglCreatePbufferFromClientBuffer创建一个PBuffer)。 但是,我假设当尝试将此曲面绑定到插件的OpenGL上下文中的OpenGL纹理时,我的EGLSurface与我在PPAPI的OpenGL上下文中创建的纹理处于不同的上下文中如何在使用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)。 但是,我假设当尝试将此曲面绑定到
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()创建的上下文?谢谢你的提示 嘿,我也有类似的情况。你找到解决办法了吗?没有。我想你没有直接访问上下文是有意的。我想你需要修补铬才能做到这一点。嘿,我也有类似的情况。你找到解决办法了吗?没有。我想你没有直接访问上下文是有意的。我想你需要修补铬才能做到这一点。