예제 #1
0
void CRendererVTB::AfterRenderHook(int idx)
{
  CRenderBuffer &buf = m_vtbBuffers[idx];
  if (buf.m_fence && glIsSyncAPPLE(buf.m_fence))
  {
    glDeleteSyncAPPLE(buf.m_fence);
  }
  buf.m_fence = glFenceSyncAPPLE(GL_SYNC_GPU_COMMANDS_COMPLETE_APPLE, 0);
}
예제 #2
0
void CRendererVTB::ReleaseBuffer(int idx)
{
  CRenderBuffer &buf = m_vtbBuffers[idx];
  if (buf.m_videoBuffer)
    CVBufferRelease(buf.m_videoBuffer);
  buf.m_videoBuffer = nullptr;
  
  if (buf.m_fence && glIsSyncAPPLE(buf.m_fence))
  {
    glDeleteSyncAPPLE(buf.m_fence);
    buf.m_fence = nullptr;
  }
}
예제 #3
0
void CRendererVTB::ReleaseBuffer(int idx)
{
  YUVBUFFER &buf = m_buffers[idx];
  CRenderBuffer &renderBuf = m_vtbBuffers[idx];
  if (buf.videoBuffer)
  {
    if (renderBuf.m_fence && glIsSyncAPPLE(renderBuf.m_fence))
    {
      glDeleteSyncAPPLE(renderBuf.m_fence);
      renderBuf.m_fence = 0;
    }
    buf.videoBuffer->Release();
    buf.videoBuffer = nullptr;
  }
}
JNIEXPORT void JNICALL Java_org_lwjgl_opengles_APPLESync_nglDeleteSyncAPPLE(JNIEnv *__env, jclass clazz, jlong syncAddress) {
    glDeleteSyncAPPLEPROC glDeleteSyncAPPLE = (glDeleteSyncAPPLEPROC)tlsGetFunction(380);
    intptr_t sync = (intptr_t)syncAddress;
    UNUSED_PARAM(clazz)
    glDeleteSyncAPPLE(sync);
}