}
}
+void CLinuxRendererGLES::Flush()
+{
+ if (!m_bValidated)
+ return;
+
+ glFinish();
+
+ for (int i = 0 ; i < m_NumYV12Buffers ; i++)
+ (this->*m_textureDelete)(i);
+
+ glFinish();
+ m_bValidated = false;
+ m_fbo.Cleanup();
+ m_iYV12RenderBuffer = 0;
+}
+
void CLinuxRendererGLES::Update()
{
if (!m_bConfigured) return;
}
}
+void CLinuxRendererGLES::ReleaseBuffer(int idx)
+{
+#ifdef HAVE_VIDEOTOOLBOXDECODER
+ YUVBUFFER &buf = m_buffers[idx];
+
+ if (buf.cvBufferRef)
+ CVBufferRelease(buf.cvBufferRef);
+ buf.cvBufferRef = NULL;
+#endif
+}
+
void CLinuxRendererGLES::Render(DWORD flags, int index)
{
// If rendered directly by the hardware
virtual unsigned int PreInit();
virtual void UnInit();
virtual void Reset(); /* resets renderer after seek for example */
+ virtual void Flush();
virtual void ReorderDrawPoints();
+ virtual void ReleaseBuffer(int idx);
virtual void SetBufferSize(int numBuffers) { m_NumYV12Buffers = numBuffers; }
virtual unsigned int GetMaxBufferSize() { return NUM_BUFFERS; }
virtual unsigned int GetProcessorSize();