summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service/renderbuffer_manager.h
diff options
context:
space:
mode:
authorenne@chromium.org <enne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-05 18:00:36 +0000
committerenne@chromium.org <enne@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-05 18:00:36 +0000
commit06c8b08739df0a493445459d8ede0ae4eecc9a31 (patch)
treebd038ad2bd8a733b2f597c2d9d17e2b96b400d75 /gpu/command_buffer/service/renderbuffer_manager.h
parent3339229822e7af543067d5267d3b9795bd6e4485 (diff)
downloadchromium_src-06c8b08739df0a493445459d8ede0ae4eecc9a31.zip
chromium_src-06c8b08739df0a493445459d8ede0ae4eecc9a31.tar.gz
chromium_src-06c8b08739df0a493445459d8ede0ae4eecc9a31.tar.bz2
Fix glIsFoo() functions for non-bound objects in command buffer.
BUG=62617 TEST=LayoutTests/fast/canvas/webgl/is-object.html Review URL: http://codereview.chromium.org/4723003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70517 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer/service/renderbuffer_manager.h')
-rw-r--r--gpu/command_buffer/service/renderbuffer_manager.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/gpu/command_buffer/service/renderbuffer_manager.h b/gpu/command_buffer/service/renderbuffer_manager.h
index db9ba816..16a1d80 100644
--- a/gpu/command_buffer/service/renderbuffer_manager.h
+++ b/gpu/command_buffer/service/renderbuffer_manager.h
@@ -26,6 +26,7 @@ class RenderbufferManager {
explicit RenderbufferInfo(GLuint service_id)
: service_id_(service_id),
cleared_(false),
+ has_been_bound_(false),
samples_(0),
internal_format_(GL_RGBA4),
width_(0),
@@ -69,10 +70,18 @@ class RenderbufferManager {
cleared_ = false;
}
- bool IsDeleted() {
+ bool IsDeleted() const {
return service_id_ == 0;
}
+ void MarkAsValid() {
+ has_been_bound_ = true;
+ }
+
+ bool IsValid() const {
+ return has_been_bound_ && !IsDeleted();
+ }
+
private:
friend class RenderbufferManager;
friend class base::RefCounted<RenderbufferInfo>;
@@ -89,6 +98,9 @@ class RenderbufferManager {
// Whether this renderbuffer has been cleared
bool cleared_;
+ // Whether this renderbuffer has ever been bound.
+ bool has_been_bound_;
+
// Number of samples (for multi-sampled renderbuffers)
GLsizei samples_;