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

Side by Side Diff: app/surface/accelerated_surface_mac.cc

Issue 6665029: Adds a TransportDIB::Id value that is explicitly invalid and use it when compositing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: mebbe this one compiles? Created 9 years, 9 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
« no previous file with comments | « no previous file | app/surface/transport_dib.h » ('j') | app/surface/transport_dib.h » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "app/surface/accelerated_surface_mac.h" 5 #include "app/surface/accelerated_surface_mac.h"
6 6
7 #include "app/gfx/gl/gl_bindings.h" 7 #include "app/gfx/gl/gl_bindings.h"
8 #include "app/gfx/gl/gl_implementation.h" 8 #include "app/gfx/gl/gl_implementation.h"
9 #include "app/surface/io_surface_support_mac.h" 9 #include "app/surface/io_surface_support_mac.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 dib_free_callback_->Run(transport_dib_->id()); 300 dib_free_callback_->Run(transport_dib_->id());
301 } 301 }
302 transport_dib_.reset(); 302 transport_dib_.reset();
303 303
304 // Ask the renderer to create a TransportDIB. 304 // Ask the renderer to create a TransportDIB.
305 size_t dib_size = size.width() * 4 * size.height(); // 4 bytes per pixel. 305 size_t dib_size = size.width() * 4 * size.height(); // 4 bytes per pixel.
306 TransportDIB::Handle dib_handle; 306 TransportDIB::Handle dib_handle;
307 if (dib_alloc_callback_.get()) { 307 if (dib_alloc_callback_.get()) {
308 dib_alloc_callback_->Run(dib_size, &dib_handle); 308 dib_alloc_callback_->Run(dib_size, &dib_handle);
309 } 309 }
310 if (!TransportDIB::is_valid(dib_handle)) { 310 if (!TransportDIB::is_valid_handle(dib_handle)) {
311 // If the allocator fails, it means the DIB was not created in the browser, 311 // If the allocator fails, it means the DIB was not created in the browser,
312 // so there is no need to run the deallocator here. 312 // so there is no need to run the deallocator here.
313 return TransportDIB::DefaultHandleValue(); 313 return TransportDIB::DefaultHandleValue();
314 } 314 }
315 transport_dib_.reset(TransportDIB::Map(dib_handle)); 315 transport_dib_.reset(TransportDIB::Map(dib_handle));
316 if (transport_dib_.get() == NULL) { 316 if (transport_dib_.get() == NULL) {
317 // TODO(dspringer): if the Map() fails, should the deallocator be run so 317 // TODO(dspringer): if the Map() fails, should the deallocator be run so
318 // that the DIB is deallocated in the browser? 318 // that the DIB is deallocated in the browser?
319 return TransportDIB::DefaultHandleValue(); 319 return TransportDIB::DefaultHandleValue();
320 } 320 }
(...skipping 17 matching lines...) Expand all
338 } 338 }
339 return transport_dib_->handle(); 339 return transport_dib_->handle();
340 } 340 }
341 341
342 void AcceleratedSurface::SetTransportDIBAllocAndFree( 342 void AcceleratedSurface::SetTransportDIBAllocAndFree(
343 Callback2<size_t, TransportDIB::Handle*>::Type* allocator, 343 Callback2<size_t, TransportDIB::Handle*>::Type* allocator,
344 Callback1<TransportDIB::Id>::Type* deallocator) { 344 Callback1<TransportDIB::Id>::Type* deallocator) {
345 dib_alloc_callback_.reset(allocator); 345 dib_alloc_callback_.reset(allocator);
346 dib_free_callback_.reset(deallocator); 346 dib_free_callback_.reset(deallocator);
347 } 347 }
OLDNEW
« no previous file with comments | « no previous file | app/surface/transport_dib.h » ('j') | app/surface/transport_dib.h » ('J')

Powered by Google App Engine
This is Rietveld 408576698