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

Unified Diff: gpu/command_buffer/service/gles2_cmd_decoder.cc

Issue 2006923006: Move all CARendererLayerTree parameters to separate struct. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 6 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
Index: gpu/command_buffer/service/gles2_cmd_decoder.cc
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 6d4bacbfa7f941e3cfcf8a1855a3e1b36c2770ab..ee8a1812563533c5a72f01753ae1f2f18ad5565a 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -62,8 +62,10 @@
#include "gpu/command_buffer/service/vertex_array_manager.h"
#include "gpu/command_buffer/service/vertex_attrib_manager.h"
#include "third_party/smhasher/src/City.h"
+#include "ui/accelerated_widget_mac/ca_renderer_layer_params.h"
#include "ui/gfx/geometry/point.h"
#include "ui/gfx/geometry/rect.h"
+#include "ui/gfx/geometry/rect_conversions.h"
#include "ui/gfx/geometry/size.h"
#include "ui/gfx/overlay_transform.h"
#include "ui/gfx/transform.h"
@@ -10331,10 +10333,22 @@ error::Error GLES2DecoderImpl::HandleScheduleCALayerCHROMIUM(
mem[13], mem[17], mem[21], mem[25],
mem[14], mem[18], mem[22], mem[26],
mem[15], mem[19], mem[23], mem[27]);
- if (!surface_->ScheduleCALayer(
- image, contents_rect, c.opacity, c.background_color, c.edge_aa_mask,
- bounds_rect, c.is_clipped ? true : false, clip_rect, transform,
- c.sorting_context_id, filter)) {
+
piman 2016/06/28 00:28:09 This, and the headers will now need to be in a #if
kirr 2016/06/28 10:25:48 Done. Thanks. I've replaced mac-specific surfaces
+ base::ScopedCFTypeRef<IOSurfaceRef> io_surface;
+ base::ScopedCFTypeRef<CVPixelBufferRef> cv_pixel_buffer;
+ if (image) {
+ gl::GLImageIOSurface* io_surface_image =
+ static_cast<gl::GLImageIOSurface*>(image);
ccameron 2016/06/28 00:05:14 Add a TODO(ccameron): Remove this cast (crbug.com/
kirr 2016/06/28 10:25:48 Done.
+ io_surface = io_surface_image->io_surface();
+ cv_pixel_buffer = io_surface_image->cv_pixel_buffer();
+ }
+
+ ui::CARendererLayerParams params = ui::CARendererLayerParams(
+ c.is_clipped ? true : false, gfx::ToEnclosingRect(clip_rect),
+ c.sorting_context_id, transform, io_surface, cv_pixel_buffer,
+ contents_rect, gfx::ToEnclosingRect(bounds_rect), c.background_color,
+ c.edge_aa_mask, c.opacity, filter);
+ if (!surface_->ScheduleCALayer(params)) {
LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, "glScheduleCALayerCHROMIUM",
"failed to schedule CALayer");
}

Powered by Google App Engine
This is Rietveld 408576698