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

Side by Side Diff: cc/resources/resource_provider.h

Issue 14409006: cc: Changes to use GL API for GpuMemoryBuffers (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@glapi
Patch Set: s/GL_WRITE_ONLY/GL_READ_WRITE/ for map mode Created 7 years, 7 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
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 #ifndef CC_RESOURCES_RESOURCE_PROVIDER_H_ 5 #ifndef CC_RESOURCES_RESOURCE_PROVIDER_H_
6 #define CC_RESOURCES_RESOURCE_PROVIDER_H_ 6 #define CC_RESOURCES_RESOURCE_PROVIDER_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 bool CanLockForWrite(ResourceId id); 311 bool CanLockForWrite(ResourceId id);
312 312
313 cc::ContextProvider* offscreen_context_provider() { 313 cc::ContextProvider* offscreen_context_provider() {
314 return offscreen_context_provider_.get(); 314 return offscreen_context_provider_.get();
315 } 315 }
316 void set_offscreen_context_provider( 316 void set_offscreen_context_provider(
317 scoped_refptr<cc::ContextProvider> offscreen_context_provider) { 317 scoped_refptr<cc::ContextProvider> offscreen_context_provider) {
318 offscreen_context_provider_ = offscreen_context_provider; 318 offscreen_context_provider_ = offscreen_context_provider;
319 } 319 }
320 320
321 // Sets if zero-copy GPU memory buffers should be used.
322 void SetUseGpuMemoryBuffers(bool use_gpu_memory_buffers);
reveman 2013/05/17 01:48:08 You don't need this when exposing this using a new
kaanb 2013/05/17 21:27:36 Done.
323
321 private: 324 private:
322 struct Resource { 325 struct Resource {
323 Resource(); 326 Resource();
324 ~Resource(); 327 ~Resource();
325 Resource(unsigned texture_id, gfx::Size size, GLenum format, GLenum filter); 328 Resource(unsigned texture_id, gfx::Size size, GLenum format, GLenum filter);
326 Resource(uint8_t* pixels, gfx::Size size, GLenum format, GLenum filter); 329 Resource(uint8_t* pixels, gfx::Size size, GLenum format, GLenum filter);
327 330
328 unsigned gl_id; 331 unsigned gl_id;
329 // Pixel buffer used for set pixels without unnecessary copying. 332 // Pixel buffer used for set pixels without unnecessary copying.
330 unsigned gl_pixel_buffer_id; 333 unsigned gl_pixel_buffer_id;
331 // Query used to determine when asynchronous set pixels complete. 334 // Query used to determine when asynchronous set pixels complete.
332 unsigned gl_upload_query_id; 335 unsigned gl_upload_query_id;
333 TextureMailbox mailbox; 336 TextureMailbox mailbox;
334 uint8_t* pixels; 337 uint8_t* pixels;
335 uint8_t* pixel_buffer; 338 uint8_t* pixel_buffer;
336 int lock_for_read_count; 339 int lock_for_read_count;
337 bool locked_for_write; 340 bool locked_for_write;
338 bool external; 341 bool external;
339 bool exported; 342 bool exported;
340 bool marked_for_deletion; 343 bool marked_for_deletion;
341 bool pending_set_pixels; 344 bool pending_set_pixels;
342 bool set_pixels_completion_forced; 345 bool set_pixels_completion_forced;
343 bool allocated; 346 bool allocated;
344 bool enable_read_lock_fences; 347 bool enable_read_lock_fences;
345 scoped_refptr<Fence> read_lock_fence; 348 scoped_refptr<Fence> read_lock_fence;
346 gfx::Size size; 349 gfx::Size size;
347 GLenum format; 350 GLenum format;
348 // TODO(skyostil): Use a separate sampler object for filter state. 351 // TODO(skyostil): Use a separate sampler object for filter state.
349 GLenum filter; 352 GLenum filter;
353 unsigned image_id;
350 ResourceType type; 354 ResourceType type;
351 }; 355 };
352 typedef base::hash_map<ResourceId, Resource> ResourceMap; 356 typedef base::hash_map<ResourceId, Resource> ResourceMap;
353 struct Child { 357 struct Child {
354 Child(); 358 Child();
355 ~Child(); 359 ~Child();
356 360
357 ResourceIdMap child_to_parent_map; 361 ResourceIdMap child_to_parent_map;
358 ResourceIdMap parent_to_child_map; 362 ResourceIdMap parent_to_child_map;
359 }; 363 };
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
399 scoped_ptr<AcceleratedTextureCopier> texture_copier_; 403 scoped_ptr<AcceleratedTextureCopier> texture_copier_;
400 int max_texture_size_; 404 int max_texture_size_;
401 GLenum best_texture_format_; 405 GLenum best_texture_format_;
402 406
403 scoped_refptr<cc::ContextProvider> offscreen_context_provider_; 407 scoped_refptr<cc::ContextProvider> offscreen_context_provider_;
404 408
405 base::ThreadChecker thread_checker_; 409 base::ThreadChecker thread_checker_;
406 410
407 scoped_refptr<Fence> current_read_lock_fence_; 411 scoped_refptr<Fence> current_read_lock_fence_;
408 412
413 bool use_gpu_memory_buffers_;
reveman 2013/05/17 01:48:08 remove this
kaanb 2013/05/17 21:27:36 Done.
414
409 DISALLOW_COPY_AND_ASSIGN(ResourceProvider); 415 DISALLOW_COPY_AND_ASSIGN(ResourceProvider);
410 }; 416 };
411 417
412 } // namespace cc 418 } // namespace cc
413 419
414 #endif // CC_RESOURCES_RESOURCE_PROVIDER_H_ 420 #endif // CC_RESOURCES_RESOURCE_PROVIDER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698