diff options
author | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-19 05:20:56 +0000 |
---|---|---|
committer | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-01-19 05:20:56 +0000 |
commit | 3b67546f8f00187780a5e9c4200978d09dff1e16 (patch) | |
tree | 06a2d68962d16d180462ae30ca38870f70fe3ce1 /gpu/command_buffer/service/renderbuffer_manager.h | |
parent | 3757a37d59a5e0a6b9baccce42b0ee2bc1c060ef (diff) | |
download | chromium_src-3b67546f8f00187780a5e9c4200978d09dff1e16.zip chromium_src-3b67546f8f00187780a5e9c4200978d09dff1e16.tar.gz chromium_src-3b67546f8f00187780a5e9c4200978d09dff1e16.tar.bz2 |
Fix RenderbufferManager to handle deleted objects
TEST=unit tests
BUG=110198
R=apatrick@chromium.org
Review URL: http://codereview.chromium.org/9253027
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@118243 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer/service/renderbuffer_manager.h')
-rw-r--r-- | gpu/command_buffer/service/renderbuffer_manager.h | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/gpu/command_buffer/service/renderbuffer_manager.h b/gpu/command_buffer/service/renderbuffer_manager.h index cae19f3..8cfd993 100644 --- a/gpu/command_buffer/service/renderbuffer_manager.h +++ b/gpu/command_buffer/service/renderbuffer_manager.h @@ -23,8 +23,9 @@ class RenderbufferManager { public: typedef scoped_refptr<RenderbufferInfo> Ref; - explicit RenderbufferInfo(GLuint service_id) - : service_id_(service_id), + RenderbufferInfo(RenderbufferManager* manager, GLuint service_id) + : manager_(manager), + service_id_(service_id), cleared_(true), has_been_bound_(false), samples_(0), @@ -75,7 +76,7 @@ class RenderbufferManager { friend class RenderbufferManager; friend class base::RefCounted<RenderbufferInfo>; - ~RenderbufferInfo() { } + ~RenderbufferInfo(); void set_cleared() { cleared_ = true; @@ -94,6 +95,9 @@ class RenderbufferManager { service_id_ = 0; } + // RenderbufferManager that owns this RenderbufferInfo. + RenderbufferManager* manager_; + // Service side renderbuffer id. GLuint service_id_; @@ -153,6 +157,8 @@ class RenderbufferManager { private: void UpdateMemRepresented(); + void StopTracking(RenderbufferInfo* renderbuffer); + GLint max_renderbuffer_size_; GLint max_samples_; |