MythTV  master
Public Slots | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
MythRenderOpenGL Class Reference

#include <mythrenderopengl.h>

Inheritance diagram for MythRenderOpenGL:
Inheritance graph
[legend]
Collaboration diagram for MythRenderOpenGL:
Collaboration graph
[legend]

Public Slots

void MessageLogged (const QOpenGLDebugMessage &Message)
 
void logDebugMarker (const QString &Message)
 
void contextToBeDestroyed (void)
 

Public Member Functions

void ReleaseResources (void) override
 
QStringList GetDescription (void) override
 
bool IsReady (void)
 
void makeCurrent ()
 
void doneCurrent ()
 
void swapBuffers ()
 
bool Init (void)
 
int GetMaxTextureSize (void) const
 
int GetMaxTextureUnits (void) const
 
int GetExtraFeatures (void) const
 
QOpenGLFunctions::OpenGLFeatures GetFeatures (void) const
 
bool IsRecommendedRenderer (void)
 
void SetViewPort (QRect Rect, bool ViewportOnly=false) override
 
QRect GetViewPort (void)
 
void PushTransformation (const UIEffects &Fx, QPointF &Center)
 
void PopTransformation (void)
 
void Flush (void)
 
void SetBlend (bool Enable)
 
void SetBackground (uint8_t Red, uint8_t Green, uint8_t Blue, uint8_t Alpha)
 
QFunctionPointer GetProcAddress (const QString &Proc) const
 
uint64_t GetSwapCount ()
 
QOpenGLBuffer * CreateVBO (int Size, bool Release=true)
 
MythGLTextureCreateTextureFromQImage (QImage *Image)
 
QSize GetTextureSize (QSize Size, bool Normalised)
 
void SetTextureFilters (MythGLTexture *Texture, QOpenGLTexture::Filter Filter, QOpenGLTexture::WrapMode Wrap=QOpenGLTexture::ClampToEdge)
 
void ActiveTexture (GLuint ActiveTex)
 
void DeleteTexture (MythGLTexture *Texture)
 
QOpenGLFramebufferObject * CreateFramebuffer (QSize &Size, bool SixteenBit=false)
 
MythGLTextureCreateFramebufferTexture (QOpenGLFramebufferObject *Framebuffer)
 This is no longer used but will probably be needed for future UI enhancements. More...
 
void DeleteFramebuffer (QOpenGLFramebufferObject *Framebuffer)
 
void BindFramebuffer (QOpenGLFramebufferObject *Framebuffer)
 
void ClearFramebuffer (void)
 
QOpenGLShaderProgram * CreateShaderProgram (const QString &Vertex, const QString &Fragment)
 
QOpenGLShaderProgram * CreateComputeShader (const QString &Source)
 
void DeleteShaderProgram (QOpenGLShaderProgram *Program)
 
bool EnableShaderProgram (QOpenGLShaderProgram *Program)
 
void SetShaderProgramParams (QOpenGLShaderProgram *Program, const QMatrix4x4 &Value, const char *Uniform)
 
void SetShaderProjection (QOpenGLShaderProgram *Program)
 
void DrawBitmap (MythGLTexture *Texture, QOpenGLFramebufferObject *Target, QRect Source, QRect Destination, QOpenGLShaderProgram *Program, int Alpha=255, qreal Scale=1.0)
 
void DrawBitmap (std::vector< MythGLTexture * > &Textures, QOpenGLFramebufferObject *Target, QRect Source, QRect Destination, QOpenGLShaderProgram *Program, int Rotation)
 
void DrawRect (QOpenGLFramebufferObject *Target, QRect Area, const QBrush &FillBrush, const QPen &LinePen, int Alpha)
 
void DrawRoundRect (QOpenGLFramebufferObject *Target, QRect Area, int CornerRadius, const QBrush &FillBrush, const QPen &LinePen, int Alpha)
 
void ClearRect (QOpenGLFramebufferObject *Target, QRect Area, int Color, int Alpha)
 An optimised method to clear a QRect to the given color. More...
 
void DrawProcedural (QRect Area, int Alpha, QOpenGLFramebufferObject *Target, QOpenGLShaderProgram *Program, float TimeVal)
 
std::tuple< int, int, int > GetGPUMemory ()
 
- Public Member Functions inherited from MythEGL
 MythEGL (MythRenderOpenGL *Context)
 
 ~MythEGL ()=default
 
bool IsEGL (void)
 
bool HasEGLExtension (QString Extension)
 
void * GetEGLDisplay (void)
 
void eglImageTargetTexture2DOES (GLenum Target, void *Image)
 
void * eglCreateImageKHR (void *Disp, void *Context, unsigned int Target, void *Buffer, const int32_t *Attributes)
 
void eglDestroyImageKHR (void *Disp, void *Image)
 
- Public Member Functions inherited from MythRender
 MythRender (RenderType type)
 
bool IsShared (void) const
 Warning: The reference count can be decremented between the call to this function and the use of it's value. More...
 
RenderType Type (void) const
 
bool IsErrored (void) const
 
QSize GetSize (void) const
 
- Public Member Functions inherited from ReferenceCounter
 ReferenceCounter (const QString &debugName, bool logDebug=true)
 Creates reference counter with an initial value of 1. More...
 
virtual int IncrRef (void)
 Increments reference count. More...
 
virtual int DecrRef (void)
 Decrements reference count and deletes on 0. More...
 

Static Public Member Functions

static MythRenderOpenGLGetOpenGLRender (void)
 
static MythRenderOpenGLCreate (QWidget *Widget)
 
static int GetTextureDataSize (MythGLTexture *Texture)
 
static int GetBufferSize (QSize Size, QOpenGLTexture::PixelFormat Format, QOpenGLTexture::PixelType Type)
 
- Static Public Member Functions inherited from MythEGL
static qint32 GetEGLError (void)
 
static QString GetEGLVendor (void)
 
- Static Public Member Functions inherited from ReferenceCounter
static void PrintDebug (void)
 Print out any leaks if that level of debugging is enabled. More...
 

Static Public Attributes

static constexpr GLuint kVertexSize { 16 * sizeof(GLfloat) }
 

Protected Member Functions

 MythRenderOpenGL (const QSurfaceFormat &Format, QWidget *Widget)
 
 ~MythRenderOpenGL () override
 
void SetWidget (QWidget *Widget)
 
void Init2DState (void)
 
void SetMatrixView (void)
 
void DeleteFramebuffers (void)
 
GLfloat * GetCachedVertices (GLuint Type, QRect Area)
 
void ExpireVertices (int Max=0)
 
void GetCachedVBO (GLuint Type, QRect Area)
 
void ExpireVBOS (int Max=0)
 
bool CreateDefaultShaders (void)
 
void DeleteDefaultShaders (void)
 
void Check16BitFBO (void)
 Check for 16bit framebufferobject support. More...
 
void glVertexAttribPointerI (GLuint Index, GLint Size, GLenum Type, GLboolean Normalize, GLsizei Stride, GLuint Value)
 
- Protected Member Functions inherited from MythRender
 ~MythRender () override=default
 
- Protected Member Functions inherited from ReferenceCounter
virtual ~ReferenceCounter (void)
 Called on destruction, will warn if object deleted with references in place. More...
 

Static Protected Member Functions

static bool UpdateTextureVertices (MythGLTexture *Texture, QRect Source, QRect Destination, int Rotation, qreal Scale=1.0)
 

Protected Attributes

bool m_ready { false }
 
GLuint m_activeFramebuffer { 0 }
 
GLuint m_fence { 0 }
 
std::array< QOpenGLShaderProgram *, kShaderCountm_defaultPrograms { nullptr }
 
QOpenGLShaderProgram * m_activeProgram { nullptr }
 
QMap< uint64_t, GLfloat * > m_cachedVertices
 
QList< uint64_t > m_vertexExpiry
 
QMap< uint64_t, QOpenGLBuffer * > m_cachedVBOS
 
QList< uint64_t > m_vboExpiry
 
QRecursiveMutex m_lock
 
int m_lockLevel { 0 }
 
QOpenGLFunctions::OpenGLFeatures m_features { Multitexture }
 
int m_extraFeatures { kGLFeatNone }
 
int m_extraFeaturesUsed { kGLFeatNone }
 
int m_maxTextureSize { 0 }
 
int m_maxTextureUnits { 0 }
 
uint64_t m_swapCount { 0 }
 
QRect m_viewport
 
GLuint m_activeTexture { 0 }
 
bool m_blend { false }
 
int32_t m_background { 0x00000001 }
 
bool m_fullRange { true }
 
QMatrix4x4 m_projection
 
QStack< QMatrix4x4 > m_transforms
 
QMatrix4x4 m_parameters
 
QHash< QString, QMatrix4x4 > m_cachedMatrixUniforms
 
QHash< QOpenGLShaderProgram *, QHash< QByteArray, GLint > > m_cachedUniformLocations
 
GLuint m_vao { 0 }
 
bool m_flushEnabled { true }
 
- Protected Attributes inherited from MythRender
RenderType m_type
 
QSize m_size
 
bool m_errored
 
- Protected Attributes inherited from ReferenceCounter
bool m_logDebug
 This is used to suppress creating LoggingItem classes for LoggingItem reference count changes. More...
 
QAtomicInt m_referenceCount {1}
 

Private Member Functions

void DebugFeatures (void)
 

Private Attributes

QOpenGLDebugLogger * m_openglDebugger { nullptr }
 
QOpenGLDebugMessage::Types m_openGLDebuggerFilter { QOpenGLDebugMessage::InvalidType }
 
QWindow * m_window { nullptr }
 

Detailed Description

Definition at line 96 of file mythrenderopengl.h.

Constructor & Destructor Documentation

◆ MythRenderOpenGL()

MythRenderOpenGL::MythRenderOpenGL ( const QSurfaceFormat &  Format,
QWidget *  Widget 
)
protected

Definition at line 122 of file mythrenderopengl.cpp.

Referenced by Create().

◆ ~MythRenderOpenGL()

MythRenderOpenGL::~MythRenderOpenGL ( )
overrideprotected

Definition at line 135 of file mythrenderopengl.cpp.

Member Function Documentation

◆ GetOpenGLRender()

MythRenderOpenGL * MythRenderOpenGL::GetOpenGLRender ( void  )
static

◆ Create()

MythRenderOpenGL * MythRenderOpenGL::Create ( QWidget *  Widget)
static

◆ ReleaseResources()

void MythRenderOpenGL::ReleaseResources ( void  )
overridevirtual

Reimplemented from MythRender.

Definition at line 1116 of file mythrenderopengl.cpp.

Referenced by ~MythRenderOpenGL().

◆ GetDescription()

QStringList MythRenderOpenGL::GetDescription ( void  )
overridevirtual

Reimplemented from MythRender.

Definition at line 1143 of file mythrenderopengl.cpp.

◆ IsReady()

bool MythRenderOpenGL::IsReady ( void  )

◆ makeCurrent()

void MythRenderOpenGL::makeCurrent ( )

◆ doneCurrent()

void MythRenderOpenGL::doneCurrent ( )

◆ swapBuffers()

void MythRenderOpenGL::swapBuffers ( )

◆ Init()

bool MythRenderOpenGL::Init ( void  )

◆ GetMaxTextureSize()

int MythRenderOpenGL::GetMaxTextureSize ( void  ) const

Definition at line 445 of file mythrenderopengl.cpp.

◆ GetMaxTextureUnits()

int MythRenderOpenGL::GetMaxTextureUnits ( void  ) const

Definition at line 450 of file mythrenderopengl.cpp.

Referenced by MythOpenGLVideo::AddDeinterlacer().

◆ GetExtraFeatures()

int MythRenderOpenGL::GetExtraFeatures ( void  ) const

◆ GetFeatures()

QOpenGLFunctions::OpenGLFeatures MythRenderOpenGL::GetFeatures ( void  ) const

Definition at line 460 of file mythrenderopengl.cpp.

Referenced by MythOpenGLVideo::MythOpenGLVideo().

◆ IsRecommendedRenderer()

bool MythRenderOpenGL::IsRecommendedRenderer ( void  )

◆ SetViewPort()

void MythRenderOpenGL::SetViewPort ( QRect  Rect,
bool  ViewportOnly = false 
)
overridevirtual

Reimplemented from MythRender.

Definition at line 584 of file mythrenderopengl.cpp.

Referenced by MythOpenGLPainter::Begin(), and MythOpenGLVideo::RenderFrame().

◆ GetViewPort()

QRect MythRenderOpenGL::GetViewPort ( void  )
inline

Definition at line 120 of file mythrenderopengl.h.

◆ PushTransformation()

void MythRenderOpenGL::PushTransformation ( const UIEffects Fx,
QPointF &  Center 
)

◆ PopTransformation()

void MythRenderOpenGL::PopTransformation ( void  )

◆ Flush()

void MythRenderOpenGL::Flush ( void  )

◆ SetBlend()

void MythRenderOpenGL::SetBlend ( bool  Enable)

Definition at line 607 of file mythrenderopengl.cpp.

Referenced by Init2DState().

◆ SetBackground()

void MythRenderOpenGL::SetBackground ( uint8_t  Red,
uint8_t  Green,
uint8_t  Blue,
uint8_t  Alpha 
)

◆ GetProcAddress()

QFunctionPointer MythRenderOpenGL::GetProcAddress ( const QString &  Proc) const

Definition at line 1084 of file mythrenderopengl.cpp.

Referenced by Init(), and MythVDPAUInterop::InitNV().

◆ GetSwapCount()

uint64_t MythRenderOpenGL::GetSwapCount ( )

Definition at line 517 of file mythrenderopengl.cpp.

◆ CreateVBO()

QOpenGLBuffer * MythRenderOpenGL::CreateVBO ( int  Size,
bool  Release = true 
)

◆ CreateTextureFromQImage()

MythGLTexture * MythRenderOpenGL::CreateTextureFromQImage ( QImage *  Image)

Definition at line 630 of file mythrenderopengl.cpp.

Referenced by MythOpenGLPainter::GetTextureFromCache().

◆ GetTextureSize()

QSize MythRenderOpenGL::GetTextureSize ( QSize  Size,
bool  Normalised 
)

◆ GetTextureDataSize()

int MythRenderOpenGL::GetTextureDataSize ( MythGLTexture Texture)
static

◆ SetTextureFilters()

void MythRenderOpenGL::SetTextureFilters ( MythGLTexture Texture,
QOpenGLTexture::Filter  Filter,
QOpenGLTexture::WrapMode  Wrap = QOpenGLTexture::ClampToEdge 
)

◆ ActiveTexture()

void MythRenderOpenGL::ActiveTexture ( GLuint  ActiveTex)

Definition at line 702 of file mythrenderopengl.cpp.

Referenced by DrawBitmap(), and MythOpenGLTonemap::Map().

◆ DeleteTexture()

void MythRenderOpenGL::DeleteTexture ( MythGLTexture Texture)

◆ GetBufferSize()

int MythRenderOpenGL::GetBufferSize ( QSize  Size,
QOpenGLTexture::PixelFormat  Format,
QOpenGLTexture::PixelType  Type 
)
static

◆ CreateFramebuffer()

QOpenGLFramebufferObject * MythRenderOpenGL::CreateFramebuffer ( QSize &  Size,
bool  SixteenBit = false 
)

◆ CreateFramebufferTexture()

MythGLTexture * MythRenderOpenGL::CreateFramebufferTexture ( QOpenGLFramebufferObject *  Framebuffer)

This is no longer used but will probably be needed for future UI enhancements.

Definition at line 763 of file mythrenderopengl.cpp.

◆ DeleteFramebuffer()

void MythRenderOpenGL::DeleteFramebuffer ( QOpenGLFramebufferObject *  Framebuffer)

◆ BindFramebuffer()

void MythRenderOpenGL::BindFramebuffer ( QOpenGLFramebufferObject *  Framebuffer)

◆ ClearFramebuffer()

void MythRenderOpenGL::ClearFramebuffer ( void  )

◆ CreateShaderProgram()

QOpenGLShaderProgram * MythRenderOpenGL::CreateShaderProgram ( const QString &  Vertex,
const QString &  Fragment 
)

◆ CreateComputeShader()

QOpenGLShaderProgram * MythRenderOpenGL::CreateComputeShader ( const QString &  Source)

Definition at line 1443 of file mythrenderopengl.cpp.

Referenced by MythOpenGLTonemap::CreateShader().

◆ DeleteShaderProgram()

void MythRenderOpenGL::DeleteShaderProgram ( QOpenGLShaderProgram *  Program)

◆ EnableShaderProgram()

bool MythRenderOpenGL::EnableShaderProgram ( QOpenGLShaderProgram *  Program)

◆ SetShaderProgramParams()

void MythRenderOpenGL::SetShaderProgramParams ( QOpenGLShaderProgram *  Program,
const QMatrix4x4 &  Value,
const char *  Uniform 
)

◆ SetShaderProjection()

void MythRenderOpenGL::SetShaderProjection ( QOpenGLShaderProgram *  Program)

◆ DrawBitmap() [1/2]

void MythRenderOpenGL::DrawBitmap ( MythGLTexture Texture,
QOpenGLFramebufferObject *  Target,
QRect  Source,
QRect  Destination,
QOpenGLShaderProgram *  Program,
int  Alpha = 255,
qreal  Scale = 1.0 
)

◆ DrawBitmap() [2/2]

void MythRenderOpenGL::DrawBitmap ( std::vector< MythGLTexture * > &  Textures,
QOpenGLFramebufferObject *  Target,
QRect  Source,
QRect  Destination,
QOpenGLShaderProgram *  Program,
int  Rotation 
)

Definition at line 889 of file mythrenderopengl.cpp.

◆ DrawRect()

void MythRenderOpenGL::DrawRect ( QOpenGLFramebufferObject *  Target,
QRect  Area,
const QBrush &  FillBrush,
const QPen &  LinePen,
int  Alpha 
)

◆ DrawRoundRect()

void MythRenderOpenGL::DrawRoundRect ( QOpenGLFramebufferObject *  Target,
QRect  Area,
int  CornerRadius,
const QBrush &  FillBrush,
const QPen &  LinePen,
int  Alpha 
)

Definition at line 987 of file mythrenderopengl.cpp.

Referenced by DrawRect(), and MythOpenGLPainter::DrawRoundRect().

◆ ClearRect()

void MythRenderOpenGL::ClearRect ( QOpenGLFramebufferObject *  Target,
QRect  Area,
int  Color,
int  Alpha 
)

An optimised method to clear a QRect to the given color.

Definition at line 959 of file mythrenderopengl.cpp.

Referenced by MythVideoOutputOpenGL::RenderFrame().

◆ DrawProcedural()

void MythRenderOpenGL::DrawProcedural ( QRect  Area,
int  Alpha,
QOpenGLFramebufferObject *  Target,
QOpenGLShaderProgram *  Program,
float  TimeVal 
)

Definition at line 812 of file mythrenderopengl.cpp.

Referenced by MythOpenGLPainter::DrawProcedural().

◆ GetGPUMemory()

std::tuple< int, int, int > MythRenderOpenGL::GetGPUMemory ( )

Definition at line 1557 of file mythrenderopengl.cpp.

◆ MessageLogged

void MythRenderOpenGL::MessageLogged ( const QOpenGLDebugMessage &  Message)
slot

Definition at line 145 of file mythrenderopengl.cpp.

Referenced by Init().

◆ logDebugMarker

void MythRenderOpenGL::logDebugMarker ( const QString &  Message)
slot

◆ contextToBeDestroyed

void MythRenderOpenGL::contextToBeDestroyed ( void  )
slot

Definition at line 205 of file mythrenderopengl.cpp.

Referenced by MythRenderOpenGL(), and ~MythRenderOpenGL().

◆ SetWidget()

void MythRenderOpenGL::SetWidget ( QWidget *  Widget)
protected

Definition at line 524 of file mythrenderopengl.cpp.

Referenced by MythRenderOpenGL().

◆ Init2DState()

void MythRenderOpenGL::Init2DState ( void  )
protected

Definition at line 1069 of file mythrenderopengl.cpp.

Referenced by Init().

◆ SetMatrixView()

void MythRenderOpenGL::SetMatrixView ( void  )
protected

Definition at line 1551 of file mythrenderopengl.cpp.

Referenced by SetViewPort().

◆ DeleteFramebuffers()

void MythRenderOpenGL::DeleteFramebuffers ( void  )
protected

◆ UpdateTextureVertices()

bool MythRenderOpenGL::UpdateTextureVertices ( MythGLTexture Texture,
QRect  Source,
QRect  Destination,
int  Rotation,
qreal  Scale = 1.0 
)
staticprotected

Definition at line 1157 of file mythrenderopengl.cpp.

Referenced by DrawBitmap().

◆ GetCachedVertices()

GLfloat * MythRenderOpenGL::GetCachedVertices ( GLuint  Type,
QRect  Area 
)
protected

Definition at line 1241 of file mythrenderopengl.cpp.

Referenced by GetCachedVBO().

◆ ExpireVertices()

void MythRenderOpenGL::ExpireVertices ( int  Max = 0)
protected

Definition at line 1276 of file mythrenderopengl.cpp.

Referenced by GetCachedVertices(), and ReleaseResources().

◆ GetCachedVBO()

void MythRenderOpenGL::GetCachedVBO ( GLuint  Type,
QRect  Area 
)
protected

Definition at line 1290 of file mythrenderopengl.cpp.

Referenced by ClearRect(), DrawProcedural(), and DrawRoundRect().

◆ ExpireVBOS()

void MythRenderOpenGL::ExpireVBOS ( int  Max = 0)
protected

Definition at line 1325 of file mythrenderopengl.cpp.

Referenced by GetCachedVBO(), and ReleaseResources().

◆ CreateDefaultShaders()

bool MythRenderOpenGL::CreateDefaultShaders ( void  )
protected

Definition at line 1532 of file mythrenderopengl.cpp.

Referenced by Init().

◆ DeleteDefaultShaders()

void MythRenderOpenGL::DeleteDefaultShaders ( void  )
protected

Definition at line 1542 of file mythrenderopengl.cpp.

Referenced by ReleaseResources().

◆ Check16BitFBO()

void MythRenderOpenGL::Check16BitFBO ( void  )
protected

Check for 16bit framebufferobject support.

We don't restrict this test based on OpenGL type or version to try and give as much support as possible. It will likely fail on all GL/ES 2.X versions.

Note
Qt support for 16bit framebuffers is broken until Qt5.12 on OpenGL ES3.X.
Qt only supports GL_RGBA16, GL_RGB16, GL_RGB10_A2 and GL_RGB10 but we only test for RGBA16 as it should be widely supported and will not restrict the use of alpha blending.

Definition at line 1583 of file mythrenderopengl.cpp.

Referenced by Init().

◆ glVertexAttribPointerI()

void MythRenderOpenGL::glVertexAttribPointerI ( GLuint  Index,
GLint  Size,
GLenum  Type,
GLboolean  Normalize,
GLsizei  Stride,
GLuint  Value 
)
inlineprotected

Definition at line 1060 of file mythrenderopengl.cpp.

Referenced by ClearRect(), DrawBitmap(), DrawProcedural(), and DrawRoundRect().

◆ DebugFeatures()

void MythRenderOpenGL::DebugFeatures ( void  )
private

Definition at line 399 of file mythrenderopengl.cpp.

Referenced by Init().

Member Data Documentation

◆ kVertexSize

constexpr GLuint MythRenderOpenGL::kVertexSize { 16 * sizeof(GLfloat) }
staticconstexpr

◆ m_ready

bool MythRenderOpenGL::m_ready { false }
protected

Definition at line 200 of file mythrenderopengl.h.

Referenced by Init(), IsReady(), and ~MythRenderOpenGL().

◆ m_activeFramebuffer

GLuint MythRenderOpenGL::m_activeFramebuffer { 0 }
protected

Definition at line 203 of file mythrenderopengl.h.

Referenced by BindFramebuffer(), CreateFramebuffer(), and Init2DState().

◆ m_fence

GLuint MythRenderOpenGL::m_fence { 0 }
protected

Definition at line 206 of file mythrenderopengl.h.

◆ m_defaultPrograms

std::array<QOpenGLShaderProgram*,kShaderCount> MythRenderOpenGL::m_defaultPrograms { nullptr }
protected

◆ m_activeProgram

QOpenGLShaderProgram* MythRenderOpenGL::m_activeProgram { nullptr }
protected

Definition at line 210 of file mythrenderopengl.h.

Referenced by DeleteShaderProgram(), and EnableShaderProgram().

◆ m_cachedVertices

QMap<uint64_t,GLfloat*> MythRenderOpenGL::m_cachedVertices
protected

Definition at line 213 of file mythrenderopengl.h.

Referenced by ExpireVertices(), GetCachedVertices(), and ReleaseResources().

◆ m_vertexExpiry

QList<uint64_t> MythRenderOpenGL::m_vertexExpiry
protected

Definition at line 214 of file mythrenderopengl.h.

Referenced by ExpireVertices(), and GetCachedVertices().

◆ m_cachedVBOS

QMap<uint64_t,QOpenGLBuffer*> MythRenderOpenGL::m_cachedVBOS
protected

Definition at line 215 of file mythrenderopengl.h.

Referenced by ExpireVBOS(), GetCachedVBO(), and ReleaseResources().

◆ m_vboExpiry

QList<uint64_t> MythRenderOpenGL::m_vboExpiry
protected

Definition at line 216 of file mythrenderopengl.h.

Referenced by ExpireVBOS(), and GetCachedVBO().

◆ m_lock

QRecursiveMutex MythRenderOpenGL::m_lock
protected

Definition at line 219 of file mythrenderopengl.h.

Referenced by doneCurrent(), and makeCurrent().

◆ m_lockLevel

int MythRenderOpenGL::m_lockLevel { 0 }
protected

Definition at line 220 of file mythrenderopengl.h.

Referenced by doneCurrent(), and makeCurrent().

◆ m_features

QOpenGLFunctions::OpenGLFeatures MythRenderOpenGL::m_features { Multitexture }
protected

◆ m_extraFeatures

int MythRenderOpenGL::m_extraFeatures { kGLFeatNone }
protected

Definition at line 224 of file mythrenderopengl.h.

Referenced by Check16BitFBO(), DebugFeatures(), and Init().

◆ m_extraFeaturesUsed

int MythRenderOpenGL::m_extraFeaturesUsed { kGLFeatNone }
protected

◆ m_maxTextureSize

int MythRenderOpenGL::m_maxTextureSize { 0 }
protected

Definition at line 226 of file mythrenderopengl.h.

Referenced by DebugFeatures(), GetMaxTextureSize(), and Init().

◆ m_maxTextureUnits

int MythRenderOpenGL::m_maxTextureUnits { 0 }
protected

Definition at line 227 of file mythrenderopengl.h.

Referenced by DebugFeatures(), GetMaxTextureUnits(), and Init().

◆ m_swapCount

uint64_t MythRenderOpenGL::m_swapCount { 0 }
protected

Definition at line 230 of file mythrenderopengl.h.

Referenced by GetSwapCount(), and swapBuffers().

◆ m_viewport

QRect MythRenderOpenGL::m_viewport
protected

Definition at line 231 of file mythrenderopengl.h.

Referenced by SetMatrixView(), and SetViewPort().

◆ m_activeTexture

GLuint MythRenderOpenGL::m_activeTexture { 0 }
protected

Definition at line 232 of file mythrenderopengl.h.

Referenced by ActiveTexture().

◆ m_blend

bool MythRenderOpenGL::m_blend { false }
protected

Definition at line 233 of file mythrenderopengl.h.

Referenced by SetBlend().

◆ m_background

int32_t MythRenderOpenGL::m_background { 0x00000001 }
protected

Definition at line 234 of file mythrenderopengl.h.

Referenced by SetBackground().

◆ m_fullRange

bool MythRenderOpenGL::m_fullRange { true }
protected

Definition at line 235 of file mythrenderopengl.h.

Referenced by ClearRect(), CreateDefaultShaders(), DrawRoundRect(), and Init().

◆ m_projection

QMatrix4x4 MythRenderOpenGL::m_projection
protected

Definition at line 236 of file mythrenderopengl.h.

Referenced by MythRenderOpenGL(), SetMatrixView(), and SetShaderProjection().

◆ m_transforms

QStack<QMatrix4x4> MythRenderOpenGL::m_transforms
protected

◆ m_parameters

QMatrix4x4 MythRenderOpenGL::m_parameters
protected

Definition at line 238 of file mythrenderopengl.h.

Referenced by DrawRoundRect(), and MythRenderOpenGL().

◆ m_cachedMatrixUniforms

QHash<QString,QMatrix4x4> MythRenderOpenGL::m_cachedMatrixUniforms
protected

Definition at line 239 of file mythrenderopengl.h.

Referenced by DeleteShaderProgram(), and SetShaderProgramParams().

◆ m_cachedUniformLocations

QHash<QOpenGLShaderProgram*, QHash<QByteArray, GLint> > MythRenderOpenGL::m_cachedUniformLocations
protected

Definition at line 240 of file mythrenderopengl.h.

Referenced by DeleteShaderProgram(), and SetShaderProgramParams().

◆ m_vao

GLuint MythRenderOpenGL::m_vao { 0 }
protected

Definition at line 241 of file mythrenderopengl.h.

Referenced by Init(), and ReleaseResources().

◆ m_flushEnabled

bool MythRenderOpenGL::m_flushEnabled { true }
protected

Definition at line 245 of file mythrenderopengl.h.

Referenced by Flush().

◆ m_openglDebugger

QOpenGLDebugLogger* MythRenderOpenGL::m_openglDebugger { nullptr }
private

Definition at line 250 of file mythrenderopengl.h.

Referenced by Init(), logDebugMarker(), and ReleaseResources().

◆ m_openGLDebuggerFilter

QOpenGLDebugMessage::Types MythRenderOpenGL::m_openGLDebuggerFilter { QOpenGLDebugMessage::InvalidType }
private

Definition at line 251 of file mythrenderopengl.h.

Referenced by Init(), and MessageLogged().

◆ m_window

QWindow* MythRenderOpenGL::m_window { nullptr }
private

Definition at line 252 of file mythrenderopengl.h.

Referenced by DrawProcedural(), makeCurrent(), SetWidget(), and swapBuffers().


The documentation for this class was generated from the following files: