diff --git a/src/OpenGL/swapChain.c b/src/OpenGL/swapChain.c index 2efa1bb..b85a461 100644 --- a/src/OpenGL/swapChain.c +++ b/src/OpenGL/swapChain.c @@ -80,7 +80,6 @@ bool OpenGL_InitSwapChainEGL(Instance * instance, unsigned int width, unsigned i eglInitialize(display, &major, &minor); eglBindAPI(EGL_OPENGL_API); - #else EGLDisplay display = internalInstance->user_display; #endif // USE_GBM @@ -133,6 +132,38 @@ bool OpenGL_InitSwapChainEGL(Instance * instance, unsigned int width, unsigned i // Import textures in user context // +#if USE_GBM + EGLAttrib attrib_list_left_tmp[] = + { + EGL_DMA_BUF_PLANE0_FD_EXT, left_texture_params.fd, + EGL_DMA_BUF_PLANE0_PITCH_EXT, left_texture_params.stride, + EGL_DMA_BUF_PLANE0_OFFSET_EXT, left_texture_params.offset, + EGL_WIDTH, left_texture_params.width, + EGL_HEIGHT, left_texture_params.height, + EGL_LINUX_DRM_FOURCC_EXT, left_texture_params.fourcc, + //EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT, left_texture_params.modifiers & 0xFFFFFFFF, + //EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT, left_texture_params.modifiers >> 32, + EGL_NONE, + }; + + left_image = eglCreateImage(internalInstance->user_display, EGL_NO_CONTEXT, EGL_LINUX_DMA_BUF_EXT, NULL, attrib_list_left_tmp); + + EGLAttrib attrib_list_right_tmp[] = + { + EGL_DMA_BUF_PLANE0_FD_EXT, right_texture_params.fd, + EGL_DMA_BUF_PLANE0_PITCH_EXT, right_texture_params.stride, + EGL_DMA_BUF_PLANE0_OFFSET_EXT, right_texture_params.offset, + EGL_WIDTH, right_texture_params.width, + EGL_HEIGHT, right_texture_params.height, + EGL_LINUX_DRM_FOURCC_EXT, right_texture_params.fourcc, + //EGL_DMA_BUF_PLANE0_MODIFIER_LO_EXT, right_texture_params->modifiers & 0xFFFFFFFF, + //EGL_DMA_BUF_PLANE0_MODIFIER_HI_EXT, right_texture_params->modifiers >> 32, + EGL_NONE, + }; + + right_image = eglCreateImage(internalInstance->user_display, EGL_NO_CONTEXT, EGL_LINUX_DMA_BUF_EXT, NULL, attrib_list_right_tmp); +#endif // USE_GBM + PFNGLEGLIMAGETARGETTEXTURE2DOESPROC glEGLImageTargetTexture2D_user = (PFNGLEGLIMAGETARGETTEXTURE2DOESPROC) eglGetProcAddress ("glEGLImageTargetTexture2DOES"); glGenTextures(2, textures);