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

Unified Diff: ui/accelerated_widget_mac/ca_renderer_layer_tree.mm

Issue 2125673002: Revert of Move all CARendererLayerTree parameters to separate struct. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 5 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') | ui/gl/BUILD.gn » ('j') | 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 5aa0176c2af2f6da110aad0a4b171602001ab064..feb283eaadef2ef7e1d03120c8ec30f6f2918364 100644
--- a/ui/accelerated_widget_mac/ca_renderer_layer_tree.mm
+++ b/ui/accelerated_widget_mac/ca_renderer_layer_tree.mm
@@ -16,8 +16,6 @@
#include "ui/base/cocoa/animation_utils.h"
#include "ui/base/ui_base_switches.h"
#include "ui/gfx/geometry/dip_util.h"
-#include "ui/gl/ca_renderer_layer_params.h"
-#include "ui/gl/gl_image_io_surface.h"
#if !defined(MAC_OS_X_VERSION_10_8) || \
MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_8
@@ -132,14 +130,29 @@
CARendererLayerTree::CARendererLayerTree() {}
CARendererLayerTree::~CARendererLayerTree() {}
-bool CARendererLayerTree::ScheduleCALayer(const CARendererLayerParams& params) {
+bool CARendererLayerTree::ScheduleCALayer(
+ bool is_clipped,
+ const gfx::Rect& clip_rect,
+ unsigned sorting_context_id,
+ const gfx::Transform& transform,
+ base::ScopedCFTypeRef<IOSurfaceRef> io_surface,
+ base::ScopedCFTypeRef<CVPixelBufferRef> cv_pixel_buffer,
+ const gfx::RectF& contents_rect,
+ const gfx::Rect& rect,
+ unsigned background_color,
+ unsigned edge_aa_mask,
+ float opacity,
+ unsigned filter) {
// Excessive logging to debug white screens (crbug.com/583805).
// TODO(ccameron): change this back to a DLOG.
if (has_committed_) {
LOG(ERROR) << "ScheduleCALayer called after CommitScheduledCALayers.";
return false;
}
- return root_layer_.AddContentLayer(params);
+ return root_layer_.AddContentLayer(is_clipped, clip_rect, sorting_context_id,
+ transform, io_surface, cv_pixel_buffer,
+ contents_rect, rect, background_color,
+ edge_aa_mask, opacity, filter);
}
void CARendererLayerTree::CommitScheduledCALayers(
@@ -339,7 +352,18 @@
}
bool CARendererLayerTree::RootLayer::AddContentLayer(
- const CARendererLayerParams& params) {
+ bool is_clipped,
+ const gfx::Rect& clip_rect,
+ unsigned sorting_context_id,
+ const gfx::Transform& transform,
+ base::ScopedCFTypeRef<IOSurfaceRef> io_surface,
+ base::ScopedCFTypeRef<CVPixelBufferRef> cv_pixel_buffer,
+ const gfx::RectF& contents_rect,
+ const gfx::Rect& rect,
+ unsigned background_color,
+ unsigned edge_aa_mask,
+ float opacity,
+ unsigned filter) {
bool needs_new_clip_and_sorting_layer = true;
// In sorting_context_id 0, all quads are listed in back-to-front order.
@@ -347,16 +371,16 @@
// If a quad has a 3D transform, it is necessary to put it in its own sorting
// context, so that it will not intersect with quads before and after it.
bool is_singleton_sorting_context =
- !params.sorting_context_id && !params.transform.IsFlat();
+ !sorting_context_id && !transform.IsFlat();
if (!clip_and_sorting_layers.empty()) {
ClipAndSortingLayer& current_layer = clip_and_sorting_layers.back();
// It is in error to change the clipping settings within a non-zero sorting
// context. The result will be incorrect layering and intersection.
- if (params.sorting_context_id &&
- current_layer.sorting_context_id == params.sorting_context_id &&
- (current_layer.is_clipped != params.is_clipped ||
- current_layer.clip_rect != params.clip_rect)) {
+ if (sorting_context_id &&
+ current_layer.sorting_context_id == sorting_context_id &&
+ (current_layer.is_clipped != is_clipped ||
+ current_layer.clip_rect != clip_rect)) {
// Excessive logging to debug white screens (crbug.com/583805).
// TODO(ccameron): change this back to a DLOG.
LOG(ERROR) << "CALayer changed clip inside non-zero sorting context.";
@@ -364,48 +388,58 @@
}
if (!is_singleton_sorting_context &&
!current_layer.is_singleton_sorting_context &&
- current_layer.is_clipped == params.is_clipped &&
- current_layer.clip_rect == params.clip_rect &&
- current_layer.sorting_context_id == params.sorting_context_id) {
+ current_layer.is_clipped == is_clipped &&
+ current_layer.clip_rect == clip_rect &&
+ current_layer.sorting_context_id == sorting_context_id) {
needs_new_clip_and_sorting_layer = false;
}
}
if (needs_new_clip_and_sorting_layer) {
- clip_and_sorting_layers.push_back(ClipAndSortingLayer(
- params.is_clipped, params.clip_rect, params.sorting_context_id,
- is_singleton_sorting_context));
- }
- clip_and_sorting_layers.back().AddContentLayer(params);
+ clip_and_sorting_layers.push_back(
+ ClipAndSortingLayer(is_clipped, clip_rect, sorting_context_id,
+ is_singleton_sorting_context));
+ }
+ clip_and_sorting_layers.back().AddContentLayer(
+ transform, io_surface, cv_pixel_buffer, contents_rect, rect,
+ background_color, edge_aa_mask, opacity, filter);
return true;
}
void CARendererLayerTree::ClipAndSortingLayer::AddContentLayer(
- const CARendererLayerParams& params) {
+ const gfx::Transform& transform,
+ base::ScopedCFTypeRef<IOSurfaceRef> io_surface,
+ base::ScopedCFTypeRef<CVPixelBufferRef> cv_pixel_buffer,
+ const gfx::RectF& contents_rect,
+ const gfx::Rect& rect,
+ unsigned background_color,
+ unsigned edge_aa_mask,
+ float opacity,
+ unsigned filter) {
bool needs_new_transform_layer = true;
if (!transform_layers.empty()) {
const TransformLayer& current_layer = transform_layers.back();
- if (current_layer.transform == params.transform)
+ if (current_layer.transform == transform)
needs_new_transform_layer = false;
}
if (needs_new_transform_layer)
- transform_layers.push_back(TransformLayer(params.transform));
- transform_layers.back().AddContentLayer(params);
+ transform_layers.push_back(TransformLayer(transform));
+ transform_layers.back().AddContentLayer(io_surface, cv_pixel_buffer,
+ contents_rect, rect, background_color,
+ edge_aa_mask, opacity, filter);
}
void CARendererLayerTree::TransformLayer::AddContentLayer(
- const CARendererLayerParams& params) {
- gl::GLImageIOSurface* io_surface_image =
- gl::GLImageIOSurface::FromGLImage(params.image);
- DCHECK(io_surface_image);
- base::ScopedCFTypeRef<IOSurfaceRef> io_surface =
- io_surface_image->io_surface();
- base::ScopedCFTypeRef<CVPixelBufferRef> cv_pixel_buffer =
- io_surface_image->cv_pixel_buffer();
-
- content_layers.push_back(
- ContentLayer(io_surface, cv_pixel_buffer, params.contents_rect,
- params.rect, params.background_color, params.edge_aa_mask,
- params.opacity, params.filter));
+ base::ScopedCFTypeRef<IOSurfaceRef> io_surface,
+ base::ScopedCFTypeRef<CVPixelBufferRef> cv_pixel_buffer,
+ const gfx::RectF& contents_rect,
+ const gfx::Rect& rect,
+ unsigned background_color,
+ unsigned edge_aa_mask,
+ float opacity,
+ unsigned filter) {
+ content_layers.push_back(ContentLayer(io_surface, cv_pixel_buffer,
+ contents_rect, rect, background_color,
+ edge_aa_mask, opacity, filter));
}
void CARendererLayerTree::RootLayer::CommitToCA(CALayer* superlayer,
« no previous file with comments | « ui/accelerated_widget_mac/ca_renderer_layer_tree.h ('k') | ui/gl/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698