--- a/gfx/layers/opengl/TextureHostOGL.cpp
+++ b/gfx/layers/opengl/TextureHostOGL.cpp
@@ -311,17 +311,17 @@ GLTextureSource::IsValid() const
////////////////////////////////////////////////////////////////////////
// DirectMapTextureSource
DirectMapTextureSource::DirectMapTextureSource(TextureSourceProvider* aProvider,
gfx::DataSourceSurface* aSurface)
: GLTextureSource(aProvider,
0,
- LOCAL_GL_TEXTURE_2D,
+ LOCAL_GL_TEXTURE_RECTANGLE_ARB,
aSurface->GetSize(),
aSurface->GetFormat())
, mSync(0)
{
MOZ_ASSERT(aSurface);
UpdateInternal(aSurface, nullptr, nullptr, true);
}
@@ -361,32 +361,31 @@ DirectMapTextureSource::UpdateInternal(g
nsIntRegion* aDestRegion,
gfx::IntPoint* aSrcOffset,
bool aInit)
{
gl()->MakeCurrent();
if (aInit) {
gl()->fGenTextures(1, &mTextureHandle);
-
- gl()->fBindTexture(LOCAL_GL_TEXTURE_2D, mTextureHandle);
+ gl()->fBindTexture(LOCAL_GL_TEXTURE_RECTANGLE_ARB, mTextureHandle);
- // APPLE_texture_range
- // TODO: test with LOCAL_GL_STORAGE_SHARED_APPLE
- gl()->fTextureRangeAPPLE(LOCAL_GL_TEXTURE_2D,
+ gl()->fTextureRangeAPPLE(LOCAL_GL_TEXTURE_RECTANGLE_ARB,
aSurface->Stride() * aSurface->GetSize().height,
aSurface->GetData());
- gl()->fTexParameteri(LOCAL_GL_TEXTURE_2D,
+ gl()->fTexParameteri(LOCAL_GL_TEXTURE_RECTANGLE_ARB,
LOCAL_GL_TEXTURE_STORAGE_HINT_APPLE,
- LOCAL_GL_STORAGE_CACHED_APPLE);
+ LOCAL_GL_STORAGE_SHARED_APPLE);
- gl()->fTexParameteri(LOCAL_GL_TEXTURE_2D, LOCAL_GL_TEXTURE_WRAP_S, LOCAL_GL_CLAMP_TO_EDGE);
- gl()->fTexParameteri(LOCAL_GL_TEXTURE_2D, LOCAL_GL_TEXTURE_WRAP_T, LOCAL_GL_CLAMP_TO_EDGE);
-
- gl()->fBindTexture(LOCAL_GL_TEXTURE_2D, 0);
+ gl()->fTexParameteri(LOCAL_GL_TEXTURE_RECTANGLE_ARB,
+ LOCAL_GL_TEXTURE_WRAP_S,
+ LOCAL_GL_CLAMP_TO_EDGE);
+ gl()->fTexParameteri(LOCAL_GL_TEXTURE_RECTANGLE_ARB,
+ LOCAL_GL_TEXTURE_WRAP_T,
+ LOCAL_GL_CLAMP_TO_EDGE);
}
MOZ_ASSERT(mTextureHandle);
// APPLE_client_storage
gl()->fPixelStorei(LOCAL_GL_UNPACK_CLIENT_STORAGE_APPLE, LOCAL_GL_TRUE);
nsIntRegion destRegion = aDestRegion ? *aDestRegion
@@ -399,23 +398,17 @@ DirectMapTextureSource::UpdateInternal(g
aSurface,
destRegion,
mTextureHandle,
aSurface->GetSize(),
nullptr,
aInit,
srcPoint,
LOCAL_GL_TEXTURE0,
- LOCAL_GL_TEXTURE_2D);
-
- // Delete the previous sync object.
- if (mSync) {
- gl()->fDeleteSync(mSync);
- }
- mSync = gl()->fFenceSync(LOCAL_GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
+ LOCAL_GL_TEXTURE_RECTANGLE_ARB);
gl()->fPixelStorei(LOCAL_GL_UNPACK_CLIENT_STORAGE_APPLE, LOCAL_GL_FALSE);
return true;
}
////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////
// SurfaceTextureHost