summaryrefslogtreecommitdiffstats
path: root/WebCore/platform/graphics/android/MediaLayer.cpp
diff options
context:
space:
mode:
authorDerek Sollenberger <djsollen@google.com>2011-01-26 08:14:27 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-01-26 08:14:27 -0800
commit9d071845bbad7f9b73a17de59ad8b564e6ce39e4 (patch)
tree97760d790f52757308d6d6ddeeef0519d6521a7b /WebCore/platform/graphics/android/MediaLayer.cpp
parent85e27b62cf6f85f2e8d5694b285be78a3a090b22 (diff)
parent35b48db52f4434b8a07ac3529efbb17b994769a1 (diff)
downloadexternal_webkit-9d071845bbad7f9b73a17de59ad8b564e6ce39e4.zip
external_webkit-9d071845bbad7f9b73a17de59ad8b564e6ce39e4.tar.gz
external_webkit-9d071845bbad7f9b73a17de59ad8b564e6ce39e4.tar.bz2
Merge "Plugin API to allow for y-axis inversion during rendering." into honeycomb
Diffstat (limited to 'WebCore/platform/graphics/android/MediaLayer.cpp')
-rw-r--r--WebCore/platform/graphics/android/MediaLayer.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/WebCore/platform/graphics/android/MediaLayer.cpp b/WebCore/platform/graphics/android/MediaLayer.cpp
index 9c370a5..e4ccbdb 100644
--- a/WebCore/platform/graphics/android/MediaLayer.cpp
+++ b/WebCore/platform/graphics/android/MediaLayer.cpp
@@ -46,6 +46,7 @@ MediaLayer::MediaLayer() : LayerAndroid(false)
m_bufferedTexture = new MediaTexture(EGL_NO_CONTEXT);
m_bufferedTexture->incStrong(this);
m_currentTextureInfo = 0;
+ m_isContentInverted = false;
XLOG("Creating Media Layer %p", this);
}
@@ -54,6 +55,7 @@ MediaLayer::MediaLayer(const MediaLayer& layer) : LayerAndroid(layer)
m_bufferedTexture = layer.getTexture();
m_bufferedTexture->incStrong(this);
m_currentTextureInfo = 0;
+ m_isContentInverted = layer.m_isContentInverted;
XLOG("Creating Media Layer Copy %p -> %p", &layer, this);
}
@@ -71,6 +73,14 @@ bool MediaLayer::drawGL(SkMatrix& matrix)
SkRect rect;
rect.set(0, 0, getSize().width(), getSize().height());
TransformationMatrix m = drawTransform();
+
+ // the layer's shader draws the content inverted so we must undo
+ // that change in the transformation matrix
+ if (!m_isContentInverted) {
+ m.flipY();
+ m.translate(0, -getSize().height());
+ }
+
TilesManager::instance()->shader()->drawLayerQuad(m, rect,
textureInfo->m_textureId,
1.0f); //TODO fix this m_drawOpacity