vdr-plugin-softhddevice-drm-gles 1.6.2
cOglThread Class Reference

OpenGL Commands Processing Thread. More...

#include <openglosd.h>

Public Member Functions

 cOglThread (cCondWait *startWait, int maxCacheSize, cSoftHdDevice *device)
 
virtual ~cOglThread (void)
 
void RequestStop (void)
 
void Stop (void)
 
void DoCmd (cOglCmd *)
 
int StoreImage (const cImage &)
 
void DropImageData (int)
 
sOglImageGetImageRef (int)
 
int MaxTextureSize (void)
 
void LockOutputFb (void)
 
void UnlockOutputFb (void)
 

Protected Member Functions

virtual void Action (void)
 

Private Member Functions

bool InitOpenGL (void)
 
bool InitShaders (void)
 
void DeleteShaders (void)
 
bool InitVertexBuffers (void)
 
void DeleteVertexBuffers (void)
 
void Cleanup (void)
 
void CleanupImageCache (void)
 
int GetFreeSlot (void)
 
void ClearSlot (int slot)
 
void eglAcquireContext (void)
 

Private Attributes

cCondWaitm_startWait
 
cCondWait m_wait
 
bool m_stalled = false
 
std::queue< cOglCmd * > m_commands
 
GLint m_maxTextureSize = 0
 
sOglImage m_imageCache [OGL_MAX_OSDIMAGES]
 
long m_memCached = 0
 
long m_maxCacheSize
 
cVideoRenderm_pRender
 
std::mutex m_mutex
 

Detailed Description

OpenGL Commands Processing Thread.

Continuosly executes OpenGL commands

Every OSD draw or flush which is invoked by VDR is transposed into an OpenGL command. cOglThread holds a fifo-queue of these commands. It continuosly checks for commands on the queue, pops them and sends them to the hardware.

On startup it initiates all necessary OpenGL bits.

Definition at line 617 of file openglosd.h.

Constructor & Destructor Documentation

◆ ~cOglThread()

virtual cOglThread::~cOglThread ( void  )
inlinevirtual

Definition at line 620 of file openglosd.h.

Member Function Documentation

◆ LockOutputFb()

void cOglThread::LockOutputFb ( void  )
inline

Definition at line 629 of file openglosd.h.

References m_mutex.

◆ MaxTextureSize()

int cOglThread::MaxTextureSize ( void  )
inline

Definition at line 628 of file openglosd.h.

References m_maxTextureSize.

◆ UnlockOutputFb()

void cOglThread::UnlockOutputFb ( void  )
inline

Definition at line 630 of file openglosd.h.

References m_mutex.

Member Data Documentation

◆ m_commands

std::queue<cOglCmd*> cOglThread::m_commands
private

Definition at line 637 of file openglosd.h.

Referenced by Action(), and DoCmd().

◆ m_imageCache

sOglImage cOglThread::m_imageCache[OGL_MAX_OSDIMAGES]
private

Definition at line 639 of file openglosd.h.

Referenced by CleanupImageCache(), ClearSlot(), cOglThread(), GetFreeSlot(), and GetImageRef().

◆ m_maxCacheSize

long cOglThread::m_maxCacheSize
private

Definition at line 641 of file openglosd.h.

Referenced by StoreImage().

◆ m_maxTextureSize

GLint cOglThread::m_maxTextureSize = 0
private

Definition at line 638 of file openglosd.h.

Referenced by Action(), MaxTextureSize(), and StoreImage().

◆ m_memCached

long cOglThread::m_memCached = 0
private

Definition at line 640 of file openglosd.h.

Referenced by DropImageData(), and StoreImage().

◆ m_mutex

std::mutex cOglThread::m_mutex
private

Definition at line 643 of file openglosd.h.

Referenced by Action(), LockOutputFb(), and UnlockOutputFb().

◆ m_pRender

cVideoRender* cOglThread::m_pRender
private

Definition at line 642 of file openglosd.h.

Referenced by eglAcquireContext(), and InitOpenGL().

◆ m_stalled

bool cOglThread::m_stalled = false
private

Definition at line 636 of file openglosd.h.

Referenced by Action(), DoCmd(), and Stop().

◆ m_startWait

cCondWait* cOglThread::m_startWait
private

Definition at line 634 of file openglosd.h.

Referenced by Action().

◆ m_wait

cCondWait cOglThread::m_wait
private

Definition at line 635 of file openglosd.h.

Referenced by Action(), and DoCmd().


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