11 #include "utils/Geometry.h" 13 #include "platform/posix/utils/FileHandle.h" 20 #include "system_egl.h" 21 #include "system_gl.h" 23 #include <EGL/eglext.h> 28 class CVaapiRenderPicture;
32 EGLDisplay eglDisplay =
nullptr;
33 PFNEGLCREATEIMAGEKHRPROC eglCreateImageKHR;
34 PFNEGLDESTROYIMAGEKHRPROC eglDestroyImageKHR;
35 PFNGLEGLIMAGETARGETTEXTURE2DOESPROC glEGLImageTargetTexture2DOES;
47 virtual void Unmap() = 0;
49 virtual GLuint GetTextureY() = 0;
50 virtual GLuint GetTextureVU() = 0;
51 virtual CSizeInt GetTextureSize() = 0;
60 void Unmap()
override;
63 GLuint GetTextureY()
override;
64 GLuint GetTextureVU()
override;
67 static void TestInterop(VADisplay vaDpy, EGLDisplay eglDisplay,
bool &general,
bool &deepColor);
70 GLuint m_textureY = 0;
71 GLuint m_textureVU = 0;
76 static bool TestInteropDeepColor(VADisplay vaDpy, EGLDisplay eglDisplay);
83 VABufferInfo vBufInfo;
85 EGLImageKHR eglImageY, eglImageVU;
93 void Unmap()
override;
96 GLuint GetTextureY()
override;
97 GLuint GetTextureVU()
override;
100 static void TestInterop(VADisplay vaDpy, EGLDisplay eglDisplay,
bool &general,
bool &deepColor);
101 static bool TestInteropGeneral(VADisplay vaDpy, EGLDisplay eglDisplay);
104 static bool TestEsh(VADisplay vaDpy, EGLDisplay eglDisplay, std::uint32_t rtFormat, std::int32_t pixelFormat);
108 EGLImageKHR eglImage{EGL_NO_IMAGE_KHR};
114 bool m_hasPlaneModifiers{
false};
115 std::array<KODI::UTILS::POSIX::CFileHandle, 4> m_drmFDs;
116 MappedTexture m_y, m_vu;
Definition: VaapiEGL.h:54
Definition: VaapiEGL.h:39
Definition: VaapiEGL.h:80
Definition: VaapiEGL.h:89
Definition: VaapiEGL.h:30