MythTV  master
mythegl.h
Go to the documentation of this file.
1 #ifndef MYTHEGL_H
2 #define MYTHEGL_H
3 
4 // Qt
5 #include <QOpenGLContext>
6 
7 // MythTV
8 #include "libmythui/mythuiexp.h"
9 
10 using MYTH_EGLIMAGETARGET = void (*)(GLenum, void*);
11 using MYTH_EGLCREATEIMAGE = void* (*)(void*, void*, unsigned int, void*, const int32_t *);
12 using MYTH_EGLDESTROYIMAGE = void (*)(void*, void*);
13 using MYTH_EGLGETPLATFORMDISPLAY = void* (*)(GLenum, void*, const intptr_t*);
14 
15 class MythRenderOpenGL;
16 
18 {
19  public:
20  explicit MythEGL(MythRenderOpenGL *Context);
21  ~MythEGL() = default;
22 
23  bool IsEGL(void);
24  bool HasEGLExtension(QString Extension);
25  void* GetEGLDisplay(void);
26  static qint32 GetEGLError(void);
27  void eglImageTargetTexture2DOES (GLenum Target, void* Image);
28  void* eglCreateImageKHR (void* Disp, void* Context, unsigned int Target,
29  void* Buffer, const int32_t *Attributes);
30  void eglDestroyImageKHR (void* Disp, void* Image);
31  static QString GetEGLVendor(void);
32 
33  private:
34  Q_DISABLE_COPY(MythEGL)
35  bool InitEGL(void);
36 
37  MythRenderOpenGL *m_context { nullptr };
38  void* m_eglDisplay { nullptr };
39  MYTH_EGLIMAGETARGET m_eglImageTargetTexture2DOES { nullptr };
40  MYTH_EGLCREATEIMAGE m_eglCreateImageKHR { nullptr };
41  MYTH_EGLDESTROYIMAGE m_eglDestroyImageKHR { nullptr };
42 };
43 
44 #endif // MYTHEGL_H
MUI_PUBLIC
#define MUI_PUBLIC
Definition: mythuiexp.h:9
MYTH_EGLGETPLATFORMDISPLAY
void *(*)(GLenum, void *, const intptr_t *) MYTH_EGLGETPLATFORMDISPLAY
Definition: mythegl.h:13
MYTH_EGLCREATEIMAGE
void *(*)(void *, void *, unsigned int, void *, const int32_t *) MYTH_EGLCREATEIMAGE
Definition: mythegl.h:11
Image
Definition: image.h:33
MYTH_EGLDESTROYIMAGE
void(*)(void *, void *) MYTH_EGLDESTROYIMAGE
Definition: mythegl.h:12
MYTH_EGLIMAGETARGET
void(*)(GLenum, void *) MYTH_EGLIMAGETARGET
Definition: mythegl.h:10
MythRenderOpenGL
Definition: mythrenderopengl.h:96
MythEGL
Definition: mythegl.h:17
Buffer
Definition: MythExternControl.h:36
mythuiexp.h