MythTV  master
mythvideooutopengl.h
Go to the documentation of this file.
1 #ifndef VIDEOOUT_OPENGL_H_
2 #define VIDEOOUT_OPENGL_H_
3 
4 // MythTV
6 #include "mythvideooutgpu.h"
7 
8 class MythRenderOpenGL;
10 class MythOpenGLPerf;
11 
13 {
14  Q_OBJECT
15 
16  public:
17  enum TextureFormats : std::uint8_t
18  {
21  };
22 
24  MythOpenGLPainter* Painter, MythDisplay* Display,
25  const MythVideoProfilePtr& VideoProfile, QString& Profile);
26  ~MythVideoOutputOpenGL() override;
27 
28  static void GetRenderOptions (RenderOptions& Options);
29  static QStringList GetAllowedRenderers(MythRenderOpenGL* Render, MythCodecID CodecId, QSize VideoDim);
30 
31  bool Init (QSize VideoDim, QSize VideoDispDim,
32  float Aspect, QRect DisplayVisibleRect, MythCodecID CodecId) override;
33  void PrepareFrame (MythVideoFrame* Frame, FrameScanType Scan) override;
34  void RenderFrame (MythVideoFrame* Frame, FrameScanType Scan) override;
35  void RenderEnd () override;
36  void EndFrame () override;
37 
38  protected:
39  QRect GetDisplayVisibleRectAdj() override;
40 
41  private:
44 };
45 
46 #endif
MythOpenGLPainter
Definition: mythpainteropengl.h:26
MythCodecID
MythCodecID
Definition: mythcodecid.h:11
MythVideoOutputOpenGL::EndFrame
void EndFrame() override
Definition: mythvideooutopengl.cpp:343
Frame
Definition: zmdefines.h:93
MythVideoOutputOpenGL::Init
bool Init(QSize VideoDim, QSize VideoDispDim, float Aspect, QRect DisplayVisibleRect, MythCodecID CodecId) override
Definition: mythvideooutopengl.cpp:180
MythVideoOutputOpenGL::GetRenderOptions
static void GetRenderOptions(RenderOptions &Options)
Generate the list of available OpenGL profiles.
Definition: mythvideooutopengl.cpp:28
MythVideoOutputOpenGL::LegacyFormats
@ LegacyFormats
Definition: mythvideooutopengl.h:20
MythVideoOutputOpenGL::m_openglRender
MythRenderOpenGL * m_openglRender
Definition: mythvideooutopengl.h:42
MythVideoOutputOpenGL::GetAllowedRenderers
static QStringList GetAllowedRenderers(MythRenderOpenGL *Render, MythCodecID CodecId, QSize VideoDim)
Generate a list of supported OpenGL profiles.
Definition: mythvideooutopengl.cpp:371
MythVideoOutputOpenGL::GetDisplayVisibleRectAdj
QRect GetDisplayVisibleRectAdj() override
Adjust the display rectangle for OpenGL coordinates in some cases.
Definition: mythvideooutopengl.cpp:207
mythrenderopengl.h
RenderOptions
Definition: mythvideoprofile.h:41
MythVideoOutputOpenGL::m_openGLPerf
MythOpenGLPerf * m_openGLPerf
Definition: mythvideooutopengl.h:43
mythvideooutgpu.h
MythVideoOutputOpenGL
Definition: mythvideooutopengl.h:12
MythVideoOutputOpenGL::TextureFormats
TextureFormats
Definition: mythvideooutopengl.h:17
MythDisplay
Definition: mythdisplay.h:22
MythOpenGLPerf
A simple overload of QOpenGLTimeMonitor to record and log OpenGL execution intervals.
Definition: mythopenglperf.h:37
MythVideoOutputOpenGL::PrepareFrame
void PrepareFrame(MythVideoFrame *Frame, FrameScanType Scan) override
Definition: mythvideooutopengl.cpp:236
MythRenderOpenGL
Definition: mythrenderopengl.h:96
MythVideoOutputOpenGL::RenderFrame
void RenderFrame(MythVideoFrame *Frame, FrameScanType Scan) override
Definition: mythvideooutopengl.cpp:262
MythVideoOutputOpenGL::AllFormats
@ AllFormats
Definition: mythvideooutopengl.h:19
MythVideoOutputOpenGL::~MythVideoOutputOpenGL
~MythVideoOutputOpenGL() override
Definition: mythvideooutopengl.cpp:170
MythVideoOutputGPU
Common code shared between GPU accelerated sub-classes (e.g. OpenGL)
Definition: mythvideooutgpu.h:12
MythVideoOutputOpenGL::MythVideoOutputOpenGL
MythVideoOutputOpenGL(MythMainWindow *MainWindow, MythRenderOpenGL *Render, MythOpenGLPainter *Painter, MythDisplay *Display, const MythVideoProfilePtr &VideoProfile, QString &Profile)
Definition: mythvideooutopengl.cpp:99
FrameScanType
FrameScanType
Definition: videoouttypes.h:94
MythVideoProfilePtr
std::shared_ptr< MythVideoProfile > MythVideoProfilePtr
Definition: mythvideogpu.h:18
MythVideoFrame
Definition: mythframe.h:88
MythVideoOutputOpenGL::RenderEnd
void RenderEnd() override
Definition: mythvideooutopengl.cpp:335
MythMainWindow
Definition: mythmainwindow.h:28