summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorenne <enne@chromium.org>2014-12-10 15:24:39 -0800
committerCommit bot <commit-bot@chromium.org>2014-12-10 23:24:57 +0000
commit7d0c6eba74f2d2b1ef3e0f2aa0be1720ff735c2b (patch)
treed05076e3fb88ad07dbeed0c69fff5d6d517236ff
parent7189d8c4af9541fb1901b238afe2ad7fbd56e872 (diff)
downloadchromium_src-7d0c6eba74f2d2b1ef3e0f2aa0be1720ff735c2b.zip
chromium_src-7d0c6eba74f2d2b1ef3e0f2aa0be1720ff735c2b.tar.gz
chromium_src-7d0c6eba74f2d2b1ef3e0f2aa0be1720ff735c2b.tar.bz2
cc: fix blending + texture rectangle mask errors
The backdrop texture target is always GL_TEXTURE2D as it comes from GLRenderer::GetFramebufferTexture. Only the mask sampler in the render pass shader has a parameterizable texture target. The backdrop shouldn't be configurable. Depends on: https://codereview.chromium.org/791853002/ https://codereview.chromium.org/739893004/ BUG=439621 Review URL: https://codereview.chromium.org/790963002 Cr-Commit-Position: refs/heads/master@{#307788}
-rw-r--r--cc/output/shader.cc4
-rw-r--r--cc/trees/layer_tree_host_pixeltest_blending.cc21
2 files changed, 23 insertions, 2 deletions
diff --git a/cc/output/shader.cc b/cc/output/shader.cc
index e22e446..5bc7044 100644
--- a/cc/output/shader.cc
+++ b/cc/output/shader.cc
@@ -695,14 +695,14 @@ std::string FragmentTexBlendMode::SetBlendModeFunctions(
// clang-format off
static const std::string kFunctionApplyBlendMode = SHADER0(
// clang-format on
- uniform SamplerType s_backdropTexture;
+ uniform sampler2D s_backdropTexture;
uniform TexCoordPrecision vec4 backdropRect;
vec4 GetBackdropColor() {
TexCoordPrecision vec2 bgTexCoord = gl_FragCoord.xy - backdropRect.xy;
bgTexCoord.x /= backdropRect.z;
bgTexCoord.y /= backdropRect.w;
- return TextureLookup(s_backdropTexture, bgTexCoord);
+ return texture2D(s_backdropTexture, bgTexCoord);
}
vec4 ApplyBlendMode(vec4 src) {
diff --git a/cc/trees/layer_tree_host_pixeltest_blending.cc b/cc/trees/layer_tree_host_pixeltest_blending.cc
index 70d9e89..b31d3e8 100644
--- a/cc/trees/layer_tree_host_pixeltest_blending.cc
+++ b/cc/trees/layer_tree_host_pixeltest_blending.cc
@@ -436,6 +436,13 @@ TEST_F(LayerTreeHostBlendingPixelTest,
}
TEST_F(LayerTreeHostBlendingPixelTest,
+ BlendingWithRenderPassShadersWithMask_GL_TextureRect) {
+ RunBlendingWithRenderPass(GL_ZERO_COPY_RECT_DRAW,
+ FILE_PATH_LITERAL("blending_render_pass_mask.png"),
+ kUseMasks | kForceShaders);
+}
+
+TEST_F(LayerTreeHostBlendingPixelTest,
BlendingWithRenderPassShadersWithMaskAA_GL) {
RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
FILE_PATH_LITERAL("blending_render_pass_mask.png"),
@@ -443,6 +450,13 @@ TEST_F(LayerTreeHostBlendingPixelTest,
}
TEST_F(LayerTreeHostBlendingPixelTest,
+ BlendingWithRenderPassShadersWithMaskAA_GL_TextureRect) {
+ RunBlendingWithRenderPass(GL_ZERO_COPY_RECT_DRAW,
+ FILE_PATH_LITERAL("blending_render_pass_mask.png"),
+ kUseMasks | kUseAntialiasing | kForceShaders);
+}
+
+TEST_F(LayerTreeHostBlendingPixelTest,
BlendingWithRenderPassShadersColorMatrix_GL) {
RunBlendingWithRenderPass(GL_ASYNC_UPLOAD_2D_DRAW,
FILE_PATH_LITERAL("blending_render_pass.png"),
@@ -464,6 +478,13 @@ TEST_F(LayerTreeHostBlendingPixelTest,
}
TEST_F(LayerTreeHostBlendingPixelTest,
+ BlendingWithRenderPassShadersWithMaskColorMatrix_GL_TextureRect) {
+ RunBlendingWithRenderPass(GL_ZERO_COPY_RECT_DRAW,
+ FILE_PATH_LITERAL("blending_render_pass_mask.png"),
+ kUseMasks | kUseColorMatrix | kForceShaders);
+}
+
+TEST_F(LayerTreeHostBlendingPixelTest,
BlendingWithRenderPassShadersWithMaskColorMatrixAA_GL) {
RunBlendingWithRenderPass(
GL_ASYNC_UPLOAD_2D_DRAW,