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
10class 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
A simple overload of QOpenGLTimeMonitor to record and log OpenGL execution intervals.
Common code shared between GPU accelerated sub-classes (e.g. OpenGL)
bool Init(QSize VideoDim, QSize VideoDispDim, float Aspect, QRect DisplayVisibleRect, MythCodecID CodecId) override
void PrepareFrame(MythVideoFrame *Frame, FrameScanType Scan) override
MythRenderOpenGL * m_openglRender
MythVideoOutputOpenGL(MythMainWindow *MainWindow, MythRenderOpenGL *Render, MythOpenGLPainter *Painter, MythDisplay *Display, const MythVideoProfilePtr &VideoProfile, QString &Profile)
void RenderFrame(MythVideoFrame *Frame, FrameScanType Scan) override
QRect GetDisplayVisibleRectAdj() override
Adjust the display rectangle for OpenGL coordinates in some cases.
static void GetRenderOptions(RenderOptions &Options)
Generate the list of available OpenGL profiles.
static QStringList GetAllowedRenderers(MythRenderOpenGL *Render, MythCodecID CodecId, QSize VideoDim)
Generate a list of supported OpenGL profiles.
MythOpenGLPerf * m_openGLPerf
MythCodecID
Definition: mythcodecid.h:14
std::shared_ptr< MythVideoProfile > MythVideoProfilePtr
Definition: mythvideogpu.h:18
FrameScanType
Definition: videoouttypes.h:95