MythTV  master
mythopengltonemap.h
Go to the documentation of this file.
1 #ifndef MYTHOPENGLTONEMAP_H
2 #define MYTHOPENGLTONEMAP_H
3 
4 // Qt
5 #include <QObject>
6 
7 // MythTV
9 #include "mythvideocolourspace.h"
11 
12 class MythOpenGLTonemap : public QObject
13 {
14  Q_OBJECT
15 
16  public:
18  ~MythOpenGLTonemap() override;
19 
20  MythVideoTextureOpenGL* Map(std::vector<MythVideoTextureOpenGL*>& Inputs, QSize DisplaySize);
22 
23  public slots:
24  void UpdateColourSpace(bool PrimariesChanged);
25 
26  private:
27  Q_DISABLE_COPY(MythOpenGLTonemap)
28 
29  bool CreateShader(size_t InputSize, VideoFrameType Type, QSize Size);
30  bool CreateTexture(QSize Size);
31 
32  MythRenderOpenGL* m_render { nullptr };
33  QOpenGLExtraFunctions* m_extra { nullptr };
35  QOpenGLShaderProgram* m_shader { nullptr };
36  GLuint m_storageBuffer{ 0 };
38  size_t m_inputCount { 0 };
39  QSize m_inputSize { 0, 0 };
41  QSize m_outputSize { 0, 0 };
42 };
43 
44 #endif
MythOpenGLTonemap::m_inputSize
QSize m_inputSize
Definition: mythopengltonemap.h:39
MythOpenGLTonemap
Definition: mythopengltonemap.h:12
MythOpenGLTonemap::MythOpenGLTonemap
MythOpenGLTonemap(MythRenderOpenGL *Render, MythVideoColourSpace *ColourSpace)
Definition: mythopengltonemap.cpp:24
MythVideoTextureOpenGL
Definition: mythvideotextureopengl.h:21
MythOpenGLTonemap::Map
MythVideoTextureOpenGL * Map(std::vector< MythVideoTextureOpenGL * > &Inputs, QSize DisplaySize)
Definition: mythopengltonemap.cpp:73
mythvideotextureopengl.h
MythOpenGLTonemap::m_inputCount
size_t m_inputCount
Definition: mythopengltonemap.h:38
FMT_NONE
@ FMT_NONE
Definition: mythframe.h:22
MythOpenGLTonemap::m_storageBuffer
GLuint m_storageBuffer
Definition: mythopengltonemap.h:36
mythrenderopengl.h
mythvideocolourspace.h
MythOpenGLTonemap::m_texture
MythVideoTextureOpenGL * m_texture
Definition: mythopengltonemap.h:37
MythOpenGLTonemap::CreateTexture
bool CreateTexture(QSize Size)
Definition: mythopengltonemap.cpp:158
MythOpenGLTonemap::~MythOpenGLTonemap
~MythOpenGLTonemap() override
Definition: mythopengltonemap.cpp:41
MythOpenGLTonemap::m_colourSpace
MythVideoColourSpace * m_colourSpace
Definition: mythopengltonemap.h:34
MythOpenGLTonemap::m_outputSize
QSize m_outputSize
Definition: mythopengltonemap.h:41
MythOpenGLTonemap::CreateShader
bool CreateShader(size_t InputSize, VideoFrameType Type, QSize Size)
Definition: mythopengltonemap.cpp:128
MythRenderOpenGL
Definition: mythrenderopengl.h:96
MythOpenGLTonemap::UpdateColourSpace
void UpdateColourSpace(bool PrimariesChanged)
Definition: mythopengltonemap.cpp:58
MythOpenGLTonemap::GetTexture
MythVideoTextureOpenGL * GetTexture()
Definition: mythopengltonemap.cpp:68
MythOpenGLTonemap::m_inputType
VideoFrameType m_inputType
Definition: mythopengltonemap.h:40
VideoFrameType
VideoFrameType
Definition: mythframe.h:20
MythOpenGLTonemap::m_shader
QOpenGLShaderProgram * m_shader
Definition: mythopengltonemap.h:35
MythVideoColourSpace
MythVideoColourSpace contains a QMatrix4x4 that can convert YCbCr data to RGB.
Definition: mythvideocolourspace.h:18
MythOpenGLTonemap::m_render
MythRenderOpenGL * m_render
Definition: mythopengltonemap.h:32
MythOpenGLTonemap::m_extra
QOpenGLExtraFunctions * m_extra
Definition: mythopengltonemap.h:33