void GrallocTextureSourceOGL::BindEGLImage() { if (mCompositableBackendData) { CompositableDataGonkOGL* backend = static_cast<CompositableDataGonkOGL*>(mCompositableBackendData.get()); backend->BindEGLImage(GetTextureTarget(), mEGLImage); } else { gl()->fEGLImageTargetTexture2D(GetTextureTarget(), mEGLImage); } }
void GrallocTextureSourceOGL::DeallocateDeviceData() { if (mEGLImage) { MOZ_ASSERT(gl()); gl()->MakeCurrent(); if (mCompositableBackendData) { CompositableDataGonkOGL* backend = static_cast<CompositableDataGonkOGL*>(mCompositableBackendData.get()); backend->ClearBoundEGLImage(mEGLImage); } EGLImageDestroy(gl(), mEGLImage); mEGLImage = EGL_NO_IMAGE; } }
void GrallocTextureSourceOGL::BindEGLImage() { #if defined(MOZ_WIDGET_GONK) && ANDROID_VERSION >= 17 if (mTextureHost) { mTextureHost->WaitAcquireFenceSyncComplete(); } #endif if (mCompositableBackendData) { CompositableDataGonkOGL* backend = static_cast<CompositableDataGonkOGL*>(mCompositableBackendData.get()); backend->BindEGLImage(GetTextureTarget(), mEGLImage); } else { gl()->fEGLImageTargetTexture2D(GetTextureTarget(), mEGLImage); } }