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

Side by Side Diff: content/browser/renderer_host/backing_store_mac.mm

Issue 11031055: Introduce PlatformBitmap, which is a minimal helper class that wraps an SkBitmap (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 8 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 #import <Cocoa/Cocoa.h> 5 #import <Cocoa/Cocoa.h>
6 6
7 #include "content/browser/renderer_host/backing_store_mac.h" 7 #include "content/browser/renderer_host/backing_store_mac.h"
8 8
9 #include <cmath> 9 #include <cmath>
10 10
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 } else { 160 } else {
161 // The layer hasn't been created yet, so draw into the cache bitmap. 161 // The layer hasn't been created yet, so draw into the cache bitmap.
162 gfx::Rect paint_rect = copy_rect; 162 gfx::Rect paint_rect = copy_rect;
163 paint_rect.set_y(size().height() - copy_rect.bottom()); 163 paint_rect.set_y(size().height() - copy_rect.bottom());
164 CGContextDrawImage(cg_bitmap_, paint_rect.ToCGRect(), image); 164 CGContextDrawImage(cg_bitmap_, paint_rect.ToCGRect(), image);
165 } 165 }
166 } 166 }
167 } 167 }
168 168
169 bool BackingStoreMac::CopyFromBackingStore(const gfx::Rect& rect, 169 bool BackingStoreMac::CopyFromBackingStore(const gfx::Rect& rect,
170 skia::PlatformCanvas* output) { 170 skia::PlatformBitmap* output) {
171 // TODO(thakis): Make sure this works with HiDPI backing stores. 171 // TODO(thakis): Make sure this works with HiDPI backing stores.
172 if (!output->initialize(rect.width(), rect.height(), true)) 172 if (!output->Allocate(rect.width(), rect.height(), true))
173 return false; 173 return false;
174 174
175 skia::ScopedPlatformPaint scoped_platform_paint(output); 175 CGContextRef temp_context = output->GetSurface();
176 CGContextRef temp_context = scoped_platform_paint.GetPlatformSurface();
177 gfx::ScopedCGContextSaveGState save_gstate(temp_context); 176 gfx::ScopedCGContextSaveGState save_gstate(temp_context);
178 CGContextTranslateCTM(temp_context, 0.0, size().height()); 177 CGContextTranslateCTM(temp_context, 0.0, size().height());
179 CGContextScaleCTM(temp_context, 1.0, -1.0); 178 CGContextScaleCTM(temp_context, 1.0, -1.0);
180 CGContextDrawLayerAtPoint(temp_context, CGPointMake(rect.x(), rect.y()), 179 CGContextDrawLayerAtPoint(temp_context, CGPointMake(rect.x(), rect.y()),
181 cg_layer()); 180 cg_layer());
182 return true; 181 return true;
183 } 182 }
184 183
185 // Scroll the contents of our CGLayer 184 // Scroll the contents of our CGLayer
186 void BackingStoreMac::ScrollBackingStore(int dx, int dy, 185 void BackingStoreMac::ScrollBackingStore(int dx, int dy,
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 8, pixel_size.width() * 4, 278 8, pixel_size.width() * 4,
280 base::mac::GetSystemColorSpace(), 279 base::mac::GetSystemColorSpace(),
281 kCGImageAlphaPremultipliedFirst | 280 kCGImageAlphaPremultipliedFirst |
282 kCGBitmapByteOrder32Host); 281 kCGBitmapByteOrder32Host);
283 DCHECK(context); 282 DCHECK(context);
284 283
285 return context; 284 return context;
286 } 285 }
287 286
288 } // namespace content 287 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/renderer_host/backing_store_mac.h ('k') | content/browser/renderer_host/backing_store_win.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698