void GLTextureSource::BindTexture(GLenum aTextureUnit, gfx::Filter aFilter) { if (!gl()) { NS_WARNING("Trying to bind a texture without a GLContext"); return; } gl()->fActiveTexture(aTextureUnit); gl()->fBindTexture(mTextureTarget, mTex); ApplyFilterToBoundTexture(gl(), aFilter, mTextureTarget); }
void GLTextureSource::BindTexture(GLenum aTextureUnit, gfx::Filter aFilter) { MOZ_ASSERT(gl()); MOZ_ASSERT(mTextureHandle != 0); if (!gl()) { return; } gl()->fActiveTexture(aTextureUnit); gl()->fBindTexture(mTextureTarget, mTextureHandle); ApplyFilterToBoundTexture(gl(), aFilter, mTextureTarget); }
void GLTextureSource::BindTexture(GLenum aTextureUnit, gfx::Filter aFilter) { MOZ_ASSERT(mTextureHandle != 0); GLContext* gl = this->gl(); if (!gl || !gl->MakeCurrent()) { return; } gl->fActiveTexture(aTextureUnit); gl->fBindTexture(mTextureTarget, mTextureHandle); ApplyFilterToBoundTexture(gl, aFilter, mTextureTarget); }
void MacIOSurfaceTextureSourceOGL::BindTexture(GLenum aTextureUnit, gfx::Filter aFilter) { if (!gl()) { NS_WARNING("Trying to bind a texture without a GLContext"); return; } GLuint tex = mCompositor->GetTemporaryTexture(GetTextureTarget(), aTextureUnit); gl()->fActiveTexture(aTextureUnit); gl()->fBindTexture(LOCAL_GL_TEXTURE_RECTANGLE_ARB, tex); mSurface->CGLTexImageIOSurface2D(gl::GLContextCGL::Cast(gl())->GetCGLContext()); ApplyFilterToBoundTexture(gl(), aFilter, LOCAL_GL_TEXTURE_RECTANGLE_ARB); }
void SharedTextureSourceOGL::BindTexture(GLenum aTextureUnit, gfx::Filter aFilter) { if (!gl()) { NS_WARNING("Trying to bind a texture without a GLContext"); return; } GLuint tex = mCompositor->GetTemporaryTexture(GetTextureTarget(), aTextureUnit); gl()->fActiveTexture(aTextureUnit); gl()->fBindTexture(mTextureTarget, tex); if (!AttachSharedHandle(gl(), mShareType, mSharedHandle)) { NS_ERROR("Failed to bind shared texture handle"); return; } ApplyFilterToBoundTexture(gl(), aFilter, mTextureTarget); }
void SurfaceTextureSource::BindTexture(GLenum aTextureUnit, gfx::Filter aFilter) { if (!gl()) { NS_WARNING("Trying to bind a texture without a GLContext"); return; } gl()->fActiveTexture(aTextureUnit); // SurfaceTexture spams us if there are any existing GL errors, so // we'll clear them here in order to avoid that. gl()->FlushErrors(); mSurfTex->UpdateTexImage(); ApplyFilterToBoundTexture(gl(), aFilter, mTextureTarget); }
void EGLImageTextureSource::BindTexture(GLenum aTextureUnit, gfx::Filter aFilter) { if (!gl()) { NS_WARNING("Trying to bind a texture without a GLContext"); return; } MOZ_ASSERT(DoesEGLContextSupportSharingWithEGLImage(gl()), "EGLImage not supported or disabled in runtime"); GLuint tex = mCompositor->GetTemporaryTexture(mTextureTarget, aTextureUnit); gl()->fActiveTexture(aTextureUnit); gl()->fBindTexture(mTextureTarget, tex); gl()->fEGLImageTargetTexture2D(mTextureTarget, mImage); ApplyFilterToBoundTexture(gl(), aFilter, mTextureTarget); }