summaryrefslogtreecommitdiffstats
path: root/chromium/cc/layers/texture_layer_impl.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@theqtcompany.com>2016-05-09 14:22:11 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2016-05-09 15:11:45 +0000
commit2ddb2d3e14eef3de7dbd0cef553d669b9ac2361c (patch)
treee75f511546c5fd1a173e87c1f9fb11d7ac8d1af3 /chromium/cc/layers/texture_layer_impl.cc
parenta4f3d46271c57e8155ba912df46a05559d14726e (diff)
BASELINE: Update Chromium to 51.0.2704.41
Also adds in all smaller components by reversing logic for exclusion. Change-Id: Ibf90b506e7da088ea2f65dcf23f2b0992c504422 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'chromium/cc/layers/texture_layer_impl.cc')
-rw-r--r--chromium/cc/layers/texture_layer_impl.cc40
1 files changed, 21 insertions, 19 deletions
diff --git a/chromium/cc/layers/texture_layer_impl.cc b/chromium/cc/layers/texture_layer_impl.cc
index 0d2f4e7558a..27d3c971f64 100644
--- a/chromium/cc/layers/texture_layer_impl.cc
+++ b/chromium/cc/layers/texture_layer_impl.cc
@@ -10,7 +10,9 @@
#include <vector>
#include "base/strings/stringprintf.h"
+#include "cc/output/output_surface.h"
#include "cc/output/renderer.h"
+#include "cc/quads/solid_color_draw_quad.h"
#include "cc/quads/texture_draw_quad.h"
#include "cc/resources/platform_color.h"
#include "cc/resources/scoped_resource.h"
@@ -131,6 +133,7 @@ bool TextureLayerImpl::WillDraw(DrawMode draw_mode,
resource_provider->CopyToResource(texture_copy_->id(), pixels,
texture_mailbox_.size_in_pixels());
+ resource_provider->GenerateSyncTokenForResource(texture_copy_->id());
valid_texture_copy_ = true;
}
@@ -162,26 +165,25 @@ void TextureLayerImpl::AppendQuads(RenderPass* render_pass,
if (visible_quad_rect.IsEmpty())
return;
- TextureDrawQuad* quad =
- render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
- ResourceId id =
- valid_texture_copy_ ? texture_copy_->id() : external_texture_resource_;
- quad->SetNew(shared_quad_state,
- quad_rect,
- opaque_rect,
- visible_quad_rect,
- id,
- premultiplied_alpha_,
- uv_top_left_,
- uv_bottom_right_,
- bg_color,
- vertex_opacity_,
- flipped_,
- nearest_neighbor_);
- if (!valid_texture_copy_) {
- quad->set_resource_size_in_pixels(texture_mailbox_.size_in_pixels());
+ if (!texture_mailbox_.secure_output_only() ||
+ (layer_tree_impl()->OutputIsSecure() && !InsideCopyRequest())) {
+ TextureDrawQuad* quad =
+ render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
+ ResourceId id =
+ valid_texture_copy_ ? texture_copy_->id() : external_texture_resource_;
+ quad->SetNew(shared_quad_state, quad_rect, opaque_rect, visible_quad_rect,
+ id, premultiplied_alpha_, uv_top_left_, uv_bottom_right_,
+ bg_color, vertex_opacity_, flipped_, nearest_neighbor_);
+ if (!valid_texture_copy_) {
+ quad->set_resource_size_in_pixels(texture_mailbox_.size_in_pixels());
+ }
+ ValidateQuadResources(quad);
+ } else {
+ SolidColorDrawQuad* quad =
+ render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
+ quad->SetNew(shared_quad_state, quad_rect, visible_quad_rect, SK_ColorBLACK,
+ false);
}
- ValidateQuadResources(quad);
}
SimpleEnclosedRegion TextureLayerImpl::VisibleOpaqueRegion() const {