MythTV  master
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
MythOpenGLPainter Class Reference

#include <mythpainteropengl.h>

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

Public Member Functions

 MythOpenGLPainter (MythRenderOpenGL *Render=nullptr, QWidget *Parent=nullptr)
 
 ~MythOpenGLPainter () override
 
void SetTarget (QOpenGLFramebufferObject *NewTarget)
 
void SetSwapControl (bool Swap)
 
void DeleteTextures (void)
 
QString GetName (void) override
 
bool SupportsAnimation (void) override
 
bool SupportsAlpha (void) override
 
bool SupportsClipping (void) override
 
void FreeResources (void) override
 
void Begin (QPaintDevice *Parent) override
 
void End () override
 
void DrawImage (const QRect &Dest, MythImage *Image, const QRect &Source, int Alpha) override
 
void DrawRect (const QRect &Area, const QBrush &FillBrush, const QPen &LinePen, int Alpha) override
 
void DrawRoundRect (const QRect &Area, int CornerRadius, const QBrush &FillBrush, const QPen &LinePen, int Alpha) override
 
void PushTransformation (const UIEffects &Fx, QPointF Center=QPointF()) override
 
void PopTransformation (void) override
 
- Public Member Functions inherited from MythPainter
 MythPainter ()
 
virtual ~MythPainter ()=default
 MythPainter destructor. More...
 
virtual void SetClipRect (const QRect &clipRect)
 
virtual void SetClipRegion (const QRegion &clipRegion)
 
virtual void Clear (QPaintDevice *device, const QRegion &region)
 
QPaintDevice * GetParent (void)
 
void DrawImage (int x, int y, MythImage *im, int alpha)
 
void DrawImage (const QPoint &topLeft, MythImage *im, int alph)
 
virtual void DrawText (const QRect &r, const QString &msg, int flags, const MythFontProperties &font, int alpha, const QRect &boundRect)
 
virtual void DrawTextLayout (const QRect &canvasRect, const LayoutVector &layouts, const FormatVector &formats, const MythFontProperties &font, int alpha, const QRect &destRect)
 
virtual void DrawEllipse (const QRect &area, const QBrush &fillBrush, const QPen &linePen, int alpha)
 
MythImageGetFormatImage ()
 Returns a blank reference counted image in the format required for the Draw functions for this painter. More...
 
void DeleteFormatImage (MythImage *im)
 
void SetDebugMode (bool showBorders, bool showNames)
 
bool ShowBorders (void)
 
bool ShowTypeNames (void)
 
void SetMaximumCacheSizes (int hardware, int software)
 

Protected Member Functions

void ClearCache (void)
 
MythGLTextureGetTextureFromCache (MythImage *Image)
 
MythImageGetFormatImagePriv (void) override
 Creates a reference counted image, call DecrRef() to delete. More...
 
void DeleteFormatImagePriv (MythImage *Image) override
 
- Protected Member Functions inherited from MythPainter
MythImageGetImageFromString (const QString &msg, int flags, const QRect &r, const MythFontProperties &font)
 
MythImageGetImageFromTextLayout (const LayoutVector &layouts, const FormatVector &formats, const MythFontProperties &font, QRect &canvas, QRect &dest)
 
MythImageGetImageFromRect (const QRect &area, int radius, int ellipse, const QBrush &fillBrush, const QPen &linePen)
 
void ExpireImages (int64_t max=0)
 
virtual void Teardown (void)
 
void CheckFormatImage (MythImage *im)
 

Protected Attributes

QWidget * m_parent { nullptr }
 
MythRenderOpenGLm_render { nullptr }
 
QOpenGLFramebufferObject * m_target { nullptr }
 
bool m_swapControl { true }
 
QSize m_lastSize { }
 
QMap< MythImage *, MythGLTexture * > m_imageToTextureMap
 
std::list< MythImage * > m_ImageExpireList
 
std::list< MythGLTexture * > m_textureDeleteList
 
QMutex m_textureDeleteLock
 
QVector< MythGLTexture * > m_mappedTextures
 
QOpenGLBuffer * m_mappedBufferPool [MAX_BUFFER_POOL] { nullptr }
 
int m_mappedBufferPoolIdx { 0 }
 
bool m_mappedBufferPoolReady { false }
 
- Protected Attributes inherited from MythPainter
QPaintDevice * m_parent {nullptr}
 
int m_hardwareCacheSize {0}
 
int m_maxHardwareCacheSize {0}
 

Additional Inherited Members

- Static Protected Member Functions inherited from MythPainter
static void DrawTextPriv (MythImage *im, const QString &msg, int flags, const QRect &r, const MythFontProperties &font)
 
static void DrawRectPriv (MythImage *im, const QRect &area, int radius, int ellipse, const QBrush &fillBrush, const QPen &linePen)
 

Detailed Description

Definition at line 23 of file mythpainteropengl.h.

Constructor & Destructor Documentation

◆ MythOpenGLPainter()

MythOpenGLPainter::MythOpenGLPainter ( MythRenderOpenGL Render = nullptr,
QWidget *  Parent = nullptr 
)
explicit

Definition at line 15 of file mythpainteropengl.cpp.

◆ ~MythOpenGLPainter()

MythOpenGLPainter::~MythOpenGLPainter ( )
override

Definition at line 25 of file mythpainteropengl.cpp.

Member Function Documentation

◆ SetTarget()

void MythOpenGLPainter::SetTarget ( QOpenGLFramebufferObject *  NewTarget)
inline

Definition at line 29 of file mythpainteropengl.h.

◆ SetSwapControl()

void MythOpenGLPainter::SetSwapControl ( bool  Swap)
inline

◆ DeleteTextures()

void MythOpenGLPainter::DeleteTextures ( void  )

Definition at line 56 of file mythpainteropengl.cpp.

Referenced by Begin(), FreeResources(), and GetTextureFromCache().

◆ GetName()

QString MythOpenGLPainter::GetName ( void  )
inlineoverridevirtual

Implements MythPainter.

Definition at line 34 of file mythpainteropengl.h.

◆ SupportsAnimation()

bool MythOpenGLPainter::SupportsAnimation ( void  )
inlineoverridevirtual

Implements MythPainter.

Definition at line 35 of file mythpainteropengl.h.

◆ SupportsAlpha()

bool MythOpenGLPainter::SupportsAlpha ( void  )
inlineoverridevirtual

Implements MythPainter.

Definition at line 36 of file mythpainteropengl.h.

◆ SupportsClipping()

bool MythOpenGLPainter::SupportsClipping ( void  )
inlineoverridevirtual

Implements MythPainter.

Definition at line 37 of file mythpainteropengl.h.

◆ FreeResources()

void MythOpenGLPainter::FreeResources ( void  )
overridevirtual

Reimplemented from MythPainter.

Definition at line 40 of file mythpainteropengl.cpp.

Referenced by MythVideoOutputOpenGL::Init(), and ~MythOpenGLPainter().

◆ Begin()

void MythOpenGLPainter::Begin ( QPaintDevice *  Parent)
overridevirtual

Reimplemented from MythPainter.

Definition at line 87 of file mythpainteropengl.cpp.

◆ End()

void MythOpenGLPainter::End ( void  )
overridevirtual

Reimplemented from MythPainter.

Definition at line 140 of file mythpainteropengl.cpp.

◆ DrawImage()

void MythOpenGLPainter::DrawImage ( const QRect &  Dest,
MythImage Image,
const QRect &  Source,
int  Alpha 
)
overridevirtual

Implements MythPainter.

Definition at line 224 of file mythpainteropengl.cpp.

◆ DrawRect()

void MythOpenGLPainter::DrawRect ( const QRect &  Area,
const QBrush &  FillBrush,
const QPen &  LinePen,
int  Alpha 
)
overridevirtual

Reimplemented from MythPainter.

Definition at line 251 of file mythpainteropengl.cpp.

◆ DrawRoundRect()

void MythOpenGLPainter::DrawRoundRect ( const QRect &  Area,
int  CornerRadius,
const QBrush &  FillBrush,
const QPen &  LinePen,
int  Alpha 
)
overridevirtual

Reimplemented from MythPainter.

Definition at line 263 of file mythpainteropengl.cpp.

◆ PushTransformation()

void MythOpenGLPainter::PushTransformation ( const UIEffects Fx,
QPointF  Center = QPointF() 
)
overridevirtual

Reimplemented from MythPainter.

Definition at line 288 of file mythpainteropengl.cpp.

◆ PopTransformation()

void MythOpenGLPainter::PopTransformation ( void  )
overridevirtual

Reimplemented from MythPainter.

Definition at line 294 of file mythpainteropengl.cpp.

◆ ClearCache()

void MythOpenGLPainter::ClearCache ( void  )
protected

Definition at line 72 of file mythpainteropengl.cpp.

Referenced by FreeResources().

◆ GetTextureFromCache()

MythGLTexture * MythOpenGLPainter::GetTextureFromCache ( MythImage Image)
protected

Definition at line 161 of file mythpainteropengl.cpp.

Referenced by DrawImage().

◆ GetFormatImagePriv()

MythImage* MythOpenGLPainter::GetFormatImagePriv ( void  )
inlineoverrideprotectedvirtual

Creates a reference counted image, call DecrRef() to delete.

Implements MythPainter.

Definition at line 54 of file mythpainteropengl.h.

◆ DeleteFormatImagePriv()

void MythOpenGLPainter::DeleteFormatImagePriv ( MythImage Image)
overrideprotectedvirtual

Implements MythPainter.

Definition at line 277 of file mythpainteropengl.cpp.

Referenced by GetTextureFromCache().

Member Data Documentation

◆ m_parent

QWidget* MythOpenGLPainter::m_parent { nullptr }
protected

Definition at line 58 of file mythpainteropengl.h.

Referenced by Begin().

◆ m_render

MythRenderOpenGL* MythOpenGLPainter::m_render { nullptr }
protected

◆ m_target

QOpenGLFramebufferObject* MythOpenGLPainter::m_target { nullptr }
protected

Definition at line 60 of file mythpainteropengl.h.

Referenced by Begin(), DrawImage(), DrawRect(), DrawRoundRect(), and End().

◆ m_swapControl

bool MythOpenGLPainter::m_swapControl { true }
protected

Definition at line 61 of file mythpainteropengl.h.

Referenced by Begin(), and End().

◆ m_lastSize

QSize MythOpenGLPainter::m_lastSize { }
protected

Definition at line 62 of file mythpainteropengl.h.

Referenced by Begin().

◆ m_imageToTextureMap

QMap<MythImage *, MythGLTexture*> MythOpenGLPainter::m_imageToTextureMap
protected

Definition at line 64 of file mythpainteropengl.h.

Referenced by ClearCache(), DeleteFormatImagePriv(), and GetTextureFromCache().

◆ m_ImageExpireList

std::list<MythImage *> MythOpenGLPainter::m_ImageExpireList
protected

Definition at line 65 of file mythpainteropengl.h.

Referenced by ClearCache(), DeleteFormatImagePriv(), and GetTextureFromCache().

◆ m_textureDeleteList

std::list<MythGLTexture*> MythOpenGLPainter::m_textureDeleteList
protected

Definition at line 66 of file mythpainteropengl.h.

Referenced by ClearCache(), DeleteFormatImagePriv(), and DeleteTextures().

◆ m_textureDeleteLock

QMutex MythOpenGLPainter::m_textureDeleteLock
protected

Definition at line 67 of file mythpainteropengl.h.

Referenced by ClearCache(), DeleteFormatImagePriv(), and DeleteTextures().

◆ m_mappedTextures

QVector<MythGLTexture*> MythOpenGLPainter::m_mappedTextures
protected

Definition at line 69 of file mythpainteropengl.h.

Referenced by DrawImage(), End(), and MythOpenGLPainter().

◆ m_mappedBufferPool

QOpenGLBuffer* MythOpenGLPainter::m_mappedBufferPool[MAX_BUFFER_POOL] { nullptr }
protected

Definition at line 70 of file mythpainteropengl.h.

Referenced by Begin(), DrawImage(), and FreeResources().

◆ m_mappedBufferPoolIdx

int MythOpenGLPainter::m_mappedBufferPoolIdx { 0 }
protected

Definition at line 71 of file mythpainteropengl.h.

Referenced by DrawImage().

◆ m_mappedBufferPoolReady

bool MythOpenGLPainter::m_mappedBufferPoolReady { false }
protected

Definition at line 72 of file mythpainteropengl.h.

Referenced by Begin(), and FreeResources().


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