Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(730)

Unified Diff: ui/accelerated_widget_mac/ca_renderer_layer_tree.mm

Issue 2387653004: Mac: Fix bugs in Sierra color fix (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/accelerated_widget_mac/ca_renderer_layer_tree.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/accelerated_widget_mac/ca_renderer_layer_tree.mm
diff --git a/ui/accelerated_widget_mac/ca_renderer_layer_tree.mm b/ui/accelerated_widget_mac/ca_renderer_layer_tree.mm
index f47d93f139909ea4369ec0fdc087d9a77320a6c8..a139dc7d073b8da3a68b78e593dce4d946774f1f 100644
--- a/ui/accelerated_widget_mac/ca_renderer_layer_tree.mm
+++ b/ui/accelerated_widget_mac/ca_renderer_layer_tree.mm
@@ -11,7 +11,6 @@
#include "base/command_line.h"
#include "base/lazy_instance.h"
-#include "base/mac/mac_util.h"
#include "base/mac/sdk_forward_declarations.h"
#include "base/trace_event/trace_event.h"
#include "third_party/skia/include/core/SkColor.h"
@@ -201,9 +200,11 @@ bool AVSampleBufferDisplayLayerEnqueueIOSurface(
}
CARendererLayerTree::CARendererLayerTree(
- bool allow_av_sample_buffer_display_layer)
+ bool allow_av_sample_buffer_display_layer,
+ bool allow_solid_color_layers)
: allow_av_sample_buffer_display_layer_(
- allow_av_sample_buffer_display_layer) {}
+ allow_av_sample_buffer_display_layer),
+ allow_solid_color_layers_(allow_solid_color_layers) {}
CARendererLayerTree::~CARendererLayerTree() {}
bool CARendererLayerTree::ScheduleCALayer(const CARendererLayerParams& params) {
@@ -287,6 +288,9 @@ bool AVSampleBufferDisplayLayerEnqueueIOSurface(
return true;
}
+id CARendererLayerTree::ContentsForSolidColorForTesting(SkColor color) {
+ return SolidColorContents::Get(color)->GetContents();
+}
CARendererLayerTree::RootLayer::RootLayer() {}
@@ -366,7 +370,7 @@ bool AVSampleBufferDisplayLayerEnqueueIOSurface(
// across processes. To make colors consistent across both solid color and
// IOSurface-backed layers, use a cache of solid-color IOSurfaces as contents.
// https://crbug.com/633805
- if (base::mac::IsAtLeastOS10_12()) {
ccameron 2016/09/30 22:14:18 I was testing this on 10.11, so I screwed up this
+ if (!io_surface && !tree->allow_solid_color_layers_) {
solid_color_contents = SolidColorContents::Get(background_color);
ContentLayer::contents_rect = gfx::RectF(0, 0, 1, 1);
}
@@ -673,6 +677,8 @@ bool AVSampleBufferDisplayLayerEnqueueIOSurface(
[ca_layer setContents:static_cast<id>(io_surface.get())];
} else if (solid_color_contents) {
[ca_layer setContents:solid_color_contents->GetContents()];
+ } else {
+ [ca_layer setContents:nil];
}
if ([ca_layer respondsToSelector:(@selector(setContentsScale:))])
[ca_layer setContentsScale:scale_factor];
@@ -715,7 +721,7 @@ bool AVSampleBufferDisplayLayerEnqueueIOSurface(
// Yellow represents an AV layer that changed this frame.
color.reset(CGColorCreateGenericRGB(1, 1, 0, 1));
} else if (io_surface) {
- // Pink represents a CALayer that changed this frame.
+ // Magenta represents a CALayer that changed this frame.
color.reset(CGColorCreateGenericRGB(1, 0, 1, 1));
} else if (solid_color_contents) {
// Cyan represents a solid color IOSurface-backed layer.
« no previous file with comments | « ui/accelerated_widget_mac/ca_renderer_layer_tree.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698