vdr-plugin-softhddevice-drm-gles 1.6.4-d0291bb
cOglOsd Class Reference

OpenGL OSD Implementation (GPU accelerated) More...

#include <openglosd.h>

Public Member Functions

 cOglOsd (int, int, uint, std::shared_ptr< cOglThread >, cSoftHdDevice *)
 
virtual ~cOglOsd ()
 
virtual eOsdError SetAreas (const tArea *, int)
 
virtual cPixmap * CreatePixmap (int, const cRect &, const cRect &DrawPort=cRect::Null)
 
virtual void DestroyPixmap (cPixmap *)
 
virtual void Flush (void)
 
virtual const cSizeMaxPixmapSize (void) const
 
virtual void DrawScaledBitmap (int, int, const cBitmap &, double, double, bool AntiAlias=false)
 

Static Public Attributes

static cOglOutputFbOutputFramebuffer = NULL
 main OSD output framebuffer - this keeps our finished "OSD" (one per OSD)
 

Private Attributes

cOglFbm_pBufferFramebuffer = nullptr
 all pixmaps are composed onto this framebuffer after each other, before this one is blit onto the OSD output framebuffer
 
std::shared_ptr< cOglThreadm_pOglThread
 pointer to thread, which executes the commands
 
cVector< cOglPixmap * > m_pOglPixmaps
 array of pixmaps
 
bool m_isSubtitleOsd
 true, if this is a subtitle osd
 
cSize m_maxPixmapSize
 maximum allowed size of a pixmap (depends on the maximum OpenGL texture size)
 
cRect m_pDirtyViewport
 the dirty viewport
 
cSoftHdDevicem_pDevice
 pointer to cSofthdDevice
 

Detailed Description

OpenGL OSD Implementation (GPU accelerated)

Definition at line 809 of file openglosd.h.

Constructor & Destructor Documentation

◆ cOglOsd()

cOglOsd::cOglOsd ( int  left,
int  top,
uint  level,
std::shared_ptr< cOglThread oglThread,
cSoftHdDevice device 
)

◆ ~cOglOsd()

cOglOsd::~cOglOsd ( )
virtual

Member Function Documentation

◆ CreatePixmap()

cPixmap * cOglOsd::CreatePixmap ( int  layer,
const cRect viewPort,
const cRect DrawPort = cRect::Null 
)
virtual

Definition at line 2415 of file openglosd.cpp.

References m_pOglPixmaps, and m_pOglThread.

◆ DestroyPixmap()

void cOglOsd::DestroyPixmap ( cPixmap *  Pixmap)
virtual

Definition at line 2436 of file openglosd.cpp.

References m_isSubtitleOsd, m_pOglPixmaps, and m_pOglThread.

Referenced by SetAreas().

◆ DrawScaledBitmap()

void cOglOsd::DrawScaledBitmap ( int  x,
int  y,
const cBitmap Bitmap,
double  FactorX,
double  FactorY,
bool  AntiAlias = false 
)
virtual

Definition at line 2530 of file openglosd.cpp.

References m_isSubtitleOsd, and m_pOglPixmaps.

◆ Flush()

void cOglOsd::Flush ( void  )
virtual

◆ MaxPixmapSize()

virtual const cSize & cOglOsd::MaxPixmapSize ( void  ) const
inlinevirtual

Definition at line 818 of file openglosd.h.

References m_maxPixmapSize.

◆ SetAreas()

eOsdError cOglOsd::SetAreas ( const tArea areas,
int  numAreas 
)
virtual

Member Data Documentation

◆ m_isSubtitleOsd

bool cOglOsd::m_isSubtitleOsd
private

true, if this is a subtitle osd

Definition at line 827 of file openglosd.h.

Referenced by DestroyPixmap(), DrawScaledBitmap(), Flush(), and SetAreas().

◆ m_maxPixmapSize

cSize cOglOsd::m_maxPixmapSize
private

maximum allowed size of a pixmap (depends on the maximum OpenGL texture size)

Definition at line 828 of file openglosd.h.

Referenced by cOglOsd(), and MaxPixmapSize().

◆ m_pBufferFramebuffer

cOglFb* cOglOsd::m_pBufferFramebuffer = nullptr
private

all pixmaps are composed onto this framebuffer after each other, before this one is blit onto the OSD output framebuffer

Definition at line 823 of file openglosd.h.

Referenced by Flush(), SetAreas(), and ~cOglOsd().

◆ m_pDevice

cSoftHdDevice* cOglOsd::m_pDevice
private

pointer to cSofthdDevice

Definition at line 830 of file openglosd.h.

Referenced by cOglOsd(), Flush(), and ~cOglOsd().

◆ m_pDirtyViewport

cRect cOglOsd::m_pDirtyViewport
private

the dirty viewport

Definition at line 829 of file openglosd.h.

Referenced by Flush().

◆ m_pOglPixmaps

cVector<cOglPixmap *> cOglOsd::m_pOglPixmaps
private

array of pixmaps

Definition at line 826 of file openglosd.h.

Referenced by CreatePixmap(), DestroyPixmap(), DrawScaledBitmap(), Flush(), and SetAreas().

◆ m_pOglThread

std::shared_ptr<cOglThread> cOglOsd::m_pOglThread
private

pointer to thread, which executes the commands

Definition at line 825 of file openglosd.h.

Referenced by cOglOsd(), CreatePixmap(), DestroyPixmap(), Flush(), SetAreas(), and ~cOglOsd().

◆ OutputFramebuffer

cOglOutputFb * cOglOsd::OutputFramebuffer = NULL
static

main OSD output framebuffer - this keeps our finished "OSD" (one per OSD)

Definition at line 821 of file openglosd.h.

Referenced by cOglThread::Cleanup(), cOglOsd(), Flush(), and ~cOglOsd().


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