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

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

Issue 105103004: Convert cc resource system over to GLES2Interface (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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 | Annotate | Revision Log
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/resources/resource_provider.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 13 matching lines...) Expand all
24 #include "cc/resources/return_callback.h" 24 #include "cc/resources/return_callback.h"
25 #include "cc/resources/single_release_callback.h" 25 #include "cc/resources/single_release_callback.h"
26 #include "cc/resources/texture_mailbox.h" 26 #include "cc/resources/texture_mailbox.h"
27 #include "cc/resources/transferable_resource.h" 27 #include "cc/resources/transferable_resource.h"
28 #include "third_party/khronos/GLES2/gl2.h" 28 #include "third_party/khronos/GLES2/gl2.h"
29 #include "third_party/khronos/GLES2/gl2ext.h" 29 #include "third_party/khronos/GLES2/gl2ext.h"
30 #include "third_party/skia/include/core/SkBitmap.h" 30 #include "third_party/skia/include/core/SkBitmap.h"
31 #include "third_party/skia/include/core/SkCanvas.h" 31 #include "third_party/skia/include/core/SkCanvas.h"
32 #include "ui/gfx/size.h" 32 #include "ui/gfx/size.h"
33 33
34 namespace blink { class WebGraphicsContext3D; } 34 namespace gpu {
35 namespace gles {
36 class GLES2Interface;
37 }
38 }
35 39
36 namespace gfx { 40 namespace gfx {
37 class Rect; 41 class Rect;
38 class Vector2d; 42 class Vector2d;
39 } 43 }
40 44
41 namespace cc { 45 namespace cc {
42 class IdAllocator; 46 class IdAllocator;
43 class SharedBitmap; 47 class SharedBitmap;
44 class SharedBitmapManager; 48 class SharedBitmapManager;
(...skipping 303 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 current_read_lock_fence_ = fence; 352 current_read_lock_fence_ = fence;
349 } 353 }
350 Fence* GetReadLockFence() { return current_read_lock_fence_.get(); } 354 Fence* GetReadLockFence() { return current_read_lock_fence_.get(); }
351 355
352 // Enable read lock fences for a specific resource. 356 // Enable read lock fences for a specific resource.
353 void EnableReadLockFences(ResourceProvider::ResourceId id, bool enable); 357 void EnableReadLockFences(ResourceProvider::ResourceId id, bool enable);
354 358
355 // Indicates if we can currently lock this resource for write. 359 // Indicates if we can currently lock this resource for write.
356 bool CanLockForWrite(ResourceId id); 360 bool CanLockForWrite(ResourceId id);
357 361
358 static GLint GetActiveTextureUnit(blink::WebGraphicsContext3D* context); 362 static GLint GetActiveTextureUnit(gpu::gles2::GLES2Interface* gl);
359 363
360 private: 364 private:
361 struct Resource { 365 struct Resource {
362 Resource(); 366 Resource();
363 ~Resource(); 367 ~Resource();
364 Resource(unsigned texture_id, 368 Resource(unsigned texture_id,
365 gfx::Size size, 369 gfx::Size size,
366 GLenum target, 370 GLenum target,
367 GLenum filter, 371 GLenum filter,
368 GLenum texture_pool, 372 GLenum texture_pool,
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 void CleanUpGLIfNeeded(); 448 void CleanUpGLIfNeeded();
445 449
446 Resource* GetResource(ResourceId id); 450 Resource* GetResource(ResourceId id);
447 const Resource* LockForRead(ResourceId id); 451 const Resource* LockForRead(ResourceId id);
448 void UnlockForRead(ResourceId id); 452 void UnlockForRead(ResourceId id);
449 const Resource* LockForWrite(ResourceId id); 453 const Resource* LockForWrite(ResourceId id);
450 void UnlockForWrite(ResourceId id); 454 void UnlockForWrite(ResourceId id);
451 static void PopulateSkBitmapWithResource(SkBitmap* sk_bitmap, 455 static void PopulateSkBitmapWithResource(SkBitmap* sk_bitmap,
452 const Resource* resource); 456 const Resource* resource);
453 457
454 void TransferResource(blink::WebGraphicsContext3D* context, 458 void TransferResource(gpu::gles2::GLES2Interface* gl,
455 ResourceId id, 459 ResourceId id,
456 TransferableResource* resource); 460 TransferableResource* resource);
457 enum DeleteStyle { 461 enum DeleteStyle {
458 Normal, 462 Normal,
459 ForShutdown, 463 ForShutdown,
460 }; 464 };
461 void DeleteResourceInternal(ResourceMap::iterator it, DeleteStyle style); 465 void DeleteResourceInternal(ResourceMap::iterator it, DeleteStyle style);
462 void DeleteAndReturnUnusedResourcesToChild(ChildMap::iterator child_it, 466 void DeleteAndReturnUnusedResourcesToChild(ChildMap::iterator child_it,
463 DeleteStyle style, 467 DeleteStyle style,
464 const ResourceIdArray& unused); 468 const ResourceIdArray& unused);
465 void DestroyChildInternal(ChildMap::iterator it, DeleteStyle style); 469 void DestroyChildInternal(ChildMap::iterator it, DeleteStyle style);
466 void LazyCreate(Resource* resource); 470 void LazyCreate(Resource* resource);
467 void LazyAllocate(Resource* resource); 471 void LazyAllocate(Resource* resource);
468 472
469 // Binds the given GL resource to a texture target for sampling using the 473 // Binds the given GL resource to a texture target for sampling using the
470 // specified filter for both minification and magnification. Returns the 474 // specified filter for both minification and magnification. Returns the
471 // texture target used. The resource must be locked for reading. 475 // texture target used. The resource must be locked for reading.
472 GLenum BindForSampling(ResourceProvider::ResourceId resource_id, 476 GLenum BindForSampling(ResourceProvider::ResourceId resource_id,
473 GLenum unit, 477 GLenum unit,
474 GLenum filter); 478 GLenum filter);
475 479
476 // Returns NULL if the output_surface_ does not have a ContextProvider. 480 // Returns NULL if the output_surface_ does not have a ContextProvider.
477 blink::WebGraphicsContext3D* Context3d() const; 481 gpu::gles2::GLES2Interface* ContextGL() const;
478 482
479 OutputSurface* output_surface_; 483 OutputSurface* output_surface_;
480 SharedBitmapManager* shared_bitmap_manager_; 484 SharedBitmapManager* shared_bitmap_manager_;
481 bool lost_output_surface_; 485 bool lost_output_surface_;
482 int highp_threshold_min_; 486 int highp_threshold_min_;
483 ResourceId next_id_; 487 ResourceId next_id_;
484 ResourceMap resources_; 488 ResourceMap resources_;
485 int next_child_; 489 int next_child_;
486 ChildMap children_; 490 ChildMap children_;
487 491
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 return format_gl_data_format[format]; 551 return format_gl_data_format[format];
548 } 552 }
549 553
550 inline GLenum GLInternalFormat(ResourceFormat format) { 554 inline GLenum GLInternalFormat(ResourceFormat format) {
551 return GLDataFormat(format); 555 return GLDataFormat(format);
552 } 556 }
553 557
554 } // namespace cc 558 } // namespace cc
555 559
556 #endif // CC_RESOURCES_RESOURCE_PROVIDER_H_ 560 #endif // CC_RESOURCES_RESOURCE_PROVIDER_H_
OLDNEW
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/resources/resource_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698