vdr-plugin-softhddevice-drm-gles 1.5.9-20e15de
cOglThread Class Reference

#include <openglosd.h>

Public Member Functions

 cOglThread (cCondWait *startWait, int maxCacheSize, cSoftHdDevice *device)
 
virtual ~cOglThread (void)
 
void Stop (void)
 
void DoCmd (cOglCmd *)
 
int StoreImage (const cImage &)
 
void DropImageData (int)
 
sOglImage * GetImageRef (int)
 
int MaxTextureSize (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)
 
int GetFreeSlot (void)
 
void ClearSlot (int slot)
 
void eglAcquireContext (void)
 
void eglReleaseContext (void)
 

Private Attributes

cCondWait * m_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
 

Detailed Description

Definition at line 642 of file openglosd.h.

Constructor & Destructor Documentation

◆ cOglThread()

cOglThread::cOglThread ( cCondWait *  startWait,
int  maxCacheSize,
cSoftHdDevice device 
)

Definition at line 1647 of file openglosd.cpp.

References m_imageCache, and OGL_MAX_OSDIMAGES.

◆ ~cOglThread()

virtual cOglThread::~cOglThread ( void  )
inlinevirtual

Definition at line 646 of file openglosd.h.

Member Function Documentation

◆ Action()

◆ Cleanup()

void cOglThread::Cleanup ( void  )
private

◆ ClearSlot()

void cOglThread::ClearSlot ( int  slot)
private

Definition at line 1764 of file openglosd.cpp.

References m_imageCache, and OGL_MAX_OSDIMAGES.

Referenced by DropImageData(), and StoreImage().

◆ DeleteShaders()

void cOglThread::DeleteShaders ( void  )
private

Definition at line 1917 of file openglosd.cpp.

References Shaders, and stCount.

Referenced by Cleanup().

◆ DeleteVertexBuffers()

void cOglThread::DeleteVertexBuffers ( void  )
private

Definition at line 1936 of file openglosd.cpp.

References vbCount, and VertexBuffers.

Referenced by Cleanup().

◆ DoCmd()

void cOglThread::DoCmd ( cOglCmd cmd)

Definition at line 1674 of file openglosd.cpp.

References m_commands, m_stalled, m_wait, and OGL_CMDQUEUE_SIZE.

Referenced by DropImageData(), and StoreImage().

◆ DropImageData()

void cOglThread::DropImageData ( int  imageHandle)

Definition at line 1785 of file openglosd.cpp.

References ClearSlot(), DoCmd(), GetImageRef(), and m_memCached.

Referenced by Stop(), and StoreImage().

◆ eglAcquireContext()

void cOglThread::eglAcquireContext ( void  )
private

Definition at line 1870 of file openglosd.cpp.

References m_pRender.

Referenced by InitOpenGL().

◆ eglReleaseContext()

void cOglThread::eglReleaseContext ( void  )
private

Definition at line 1875 of file openglosd.cpp.

References m_pRender.

◆ GetFreeSlot()

int cOglThread::GetFreeSlot ( void  )
private

Definition at line 1750 of file openglosd.cpp.

References m_imageCache, and OGL_MAX_OSDIMAGES.

Referenced by StoreImage().

◆ GetImageRef()

sOglImage * cOglThread::GetImageRef ( int  slot)

Definition at line 1777 of file openglosd.cpp.

References m_imageCache, and OGL_MAX_OSDIMAGES.

Referenced by DropImageData(), and StoreImage().

◆ InitOpenGL()

bool cOglThread::InitOpenGL ( void  )
private

Definition at line 1880 of file openglosd.cpp.

References eglAcquireContext(), cOglVb::EnableBlending(), L_OPENGL, LOGDEBUG2, m_pRender, vbText, and VertexBuffers.

Referenced by Action().

◆ InitShaders()

bool cOglThread::InitShaders ( void  )
private

Definition at line 1904 of file openglosd.cpp.

References L_OPENGL, cOglShader::Load(), LOGDEBUG2, Shaders, and stCount.

Referenced by Action().

◆ InitVertexBuffers()

bool cOglThread::InitVertexBuffers ( void  )
private

Definition at line 1923 of file openglosd.cpp.

References cOglVb::Init(), L_OPENGL, LOGDEBUG2, vbCount, and VertexBuffers.

Referenced by Action().

◆ MaxTextureSize()

int cOglThread::MaxTextureSize ( void  )
inline

Definition at line 653 of file openglosd.h.

References m_maxTextureSize.

◆ Stop()

void cOglThread::Stop ( void  )

Definition at line 1663 of file openglosd.cpp.

References DropImageData(), m_imageCache, m_stalled, and OGL_MAX_OSDIMAGES.

◆ StoreImage()

int cOglThread::StoreImage ( const cImage &  image)

Member Data Documentation

◆ m_commands

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

Definition at line 660 of file openglosd.h.

Referenced by Action(), and DoCmd().

◆ m_imageCache

sOglImage cOglThread::m_imageCache[OGL_MAX_OSDIMAGES]
private

Definition at line 662 of file openglosd.h.

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

◆ m_maxCacheSize

long cOglThread::m_maxCacheSize
private

Definition at line 664 of file openglosd.h.

Referenced by StoreImage().

◆ m_maxTextureSize

GLint cOglThread::m_maxTextureSize = 0
private

Definition at line 661 of file openglosd.h.

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

◆ m_memCached

long cOglThread::m_memCached = 0
private

Definition at line 663 of file openglosd.h.

Referenced by DropImageData(), and StoreImage().

◆ m_pRender

cVideoRender* cOglThread::m_pRender
private

Definition at line 665 of file openglosd.h.

Referenced by eglAcquireContext(), eglReleaseContext(), and InitOpenGL().

◆ m_stalled

bool cOglThread::m_stalled = false
private

Definition at line 659 of file openglosd.h.

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

◆ m_startWait

cCondWait* cOglThread::m_startWait
private

Definition at line 657 of file openglosd.h.

Referenced by Action().

◆ m_wait

cCondWait cOglThread::m_wait
private

Definition at line 658 of file openglosd.h.

Referenced by Action(), and DoCmd().


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