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
11
12class 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
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
bool CreateShader(size_t InputSize, VideoFrameType Type, QSize Size)
MythVideoColourSpace * m_colourSpace
MythRenderOpenGL * m_render
MythVideoTextureOpenGL * GetTexture()
MythOpenGLTonemap(MythRenderOpenGL *Render, MythVideoColourSpace *ColourSpace)
MythVideoTextureOpenGL * m_texture
QOpenGLShaderProgram * m_shader
~MythOpenGLTonemap() override
VideoFrameType m_inputType
QOpenGLExtraFunctions * m_extra
MythVideoTextureOpenGL * Map(std::vector< MythVideoTextureOpenGL * > &Inputs, QSize DisplaySize)
void UpdateColourSpace(bool PrimariesChanged)
bool CreateTexture(QSize Size)
MythVideoColourSpace contains a QMatrix4x4 that can convert YCbCr data to RGB.
VideoFrameType
Definition: mythframe.h:20
@ FMT_NONE
Definition: mythframe.h:21