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

Side by Side Diff: content/common/gpu/image_transport_surface_overlay_mac.mm

Issue 1534623002: Mac CoreAnimation: Add more CALayer parameters (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix windows compile Created 5 years 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/common/gpu/image_transport_surface_overlay_mac.h" 5 #include "content/common/gpu/image_transport_surface_overlay_mac.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <CoreGraphics/CoreGraphics.h> 8 #include <CoreGraphics/CoreGraphics.h>
9 #include <IOSurface/IOSurface.h> 9 #include <IOSurface/IOSurface.h>
10 #include <OpenGL/CGLRenderers.h> 10 #include <OpenGL/CGLRenderers.h>
(...skipping 742 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 pending_overlay_planes_.push_back(plane); 753 pending_overlay_planes_.push_back(plane);
754 754
755 return true; 755 return true;
756 } 756 }
757 757
758 bool ImageTransportSurfaceOverlayMac::ScheduleCALayer( 758 bool ImageTransportSurfaceOverlayMac::ScheduleCALayer(
759 gl::GLImage* contents_image, 759 gl::GLImage* contents_image,
760 const gfx::RectF& contents_rect, 760 const gfx::RectF& contents_rect,
761 float opacity, 761 float opacity,
762 unsigned background_color, 762 unsigned background_color,
763 const gfx::SizeF& bounds_size, 763 unsigned edge_aa_mask,
764 const gfx::RectF& bounds_rect,
765 bool is_clipped,
766 const gfx::RectF& clip_rect,
764 const gfx::Transform& transform) { 767 const gfx::Transform& transform) {
765 // Extract the IOSurface, if this layer is not just a solid color. 768 // Extract the IOSurface, if this layer is not just a solid color.
766 int io_surface_id = 0; 769 int io_surface_id = 0;
767 base::ScopedCFTypeRef<IOSurfaceRef> io_surface; 770 base::ScopedCFTypeRef<IOSurfaceRef> io_surface;
768 if (contents_image) { 771 if (contents_image) {
769 io_surface_id = 772 io_surface_id =
770 static_cast<gl::GLImageIOSurface*>(contents_image)->io_surface_id().id; 773 static_cast<gl::GLImageIOSurface*>(contents_image)->io_surface_id().id;
771 io_surface = 774 io_surface =
772 static_cast<gl::GLImageIOSurface*>(contents_image)->io_surface(); 775 static_cast<gl::GLImageIOSurface*>(contents_image)->io_surface();
773 } 776 }
774 777
775 // Convert the RGBA SkColor to an sRGB CGColorRef. 778 // Convert the RGBA SkColor to an sRGB CGColorRef.
776 CGFloat rgba_color_components[4] = { 779 CGFloat rgba_color_components[4] = {
777 SkColorGetR(background_color) / 255., 780 SkColorGetR(background_color) / 255.,
778 SkColorGetG(background_color) / 255., 781 SkColorGetG(background_color) / 255.,
779 SkColorGetB(background_color) / 255., 782 SkColorGetB(background_color) / 255.,
780 SkColorGetA(background_color) / 255., 783 SkColorGetA(background_color) / 255.,
781 }; 784 };
782 base::ScopedCFTypeRef<CGColorRef> srgb_background_color(CGColorCreate( 785 base::ScopedCFTypeRef<CGColorRef> srgb_background_color(CGColorCreate(
783 CGColorSpaceCreateWithName(kCGColorSpaceSRGB), rgba_color_components)); 786 CGColorSpaceCreateWithName(kCGColorSpaceSRGB), rgba_color_components));
784 787
785 pending_overlay_planes_.push_back(OverlayPlane::CreateWithTransform( 788 pending_overlay_planes_.push_back(OverlayPlane::CreateWithTransform(
786 next_ca_layer_z_order_++, io_surface_id, io_surface, contents_rect, 789 next_ca_layer_z_order_++, io_surface_id, io_surface, contents_rect,
787 opacity, srgb_background_color, bounds_size, transform)); 790 opacity, srgb_background_color, bounds_rect.size(), transform));
788 return true; 791 return true;
789 } 792 }
790 793
791 bool ImageTransportSurfaceOverlayMac::IsSurfaceless() const { 794 bool ImageTransportSurfaceOverlayMac::IsSurfaceless() const {
792 return true; 795 return true;
793 } 796 }
794 797
795 void ImageTransportSurfaceOverlayMac::OnBufferPresented( 798 void ImageTransportSurfaceOverlayMac::OnBufferPresented(
796 const AcceleratedSurfaceMsg_BufferPresented_Params& params) { 799 const AcceleratedSurfaceMsg_BufferPresented_Params& params) {
797 vsync_timebase_ = params.vsync_timebase; 800 vsync_timebase_ = params.vsync_timebase;
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
851 // Compute the previous vsync time. 854 // Compute the previous vsync time.
852 base::TimeTicks previous_vsync = 855 base::TimeTicks previous_vsync =
853 vsync_interval_ * ((from - vsync_timebase_) / vsync_interval_) + 856 vsync_interval_ * ((from - vsync_timebase_) / vsync_interval_) +
854 vsync_timebase_; 857 vsync_timebase_;
855 858
856 // Return |interval_fraction| through the next vsync. 859 // Return |interval_fraction| through the next vsync.
857 return previous_vsync + (1 + interval_fraction) * vsync_interval_; 860 return previous_vsync + (1 + interval_fraction) * vsync_interval_;
858 } 861 }
859 862
860 } // namespace content 863 } // namespace content
OLDNEW
« no previous file with comments | « content/common/gpu/image_transport_surface_overlay_mac.h ('k') | gpu/GLES2/extensions/CHROMIUM/CHROMIUM_schedule_ca_layer.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698