Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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);
}
Ejemplo n.º 3
0
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);
}
Ejemplo n.º 5
0
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);
}
Ejemplo n.º 6
0
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);
}
Ejemplo n.º 7
0
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);
}