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

Unified Diff: gpu/command_buffer/service/renderbuffer_manager.h

Issue 8341128: Defer clearing textures and renderbuffers (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix one more unit test Created 9 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: gpu/command_buffer/service/renderbuffer_manager.h
diff --git a/gpu/command_buffer/service/renderbuffer_manager.h b/gpu/command_buffer/service/renderbuffer_manager.h
index 619fbf2fd4f972a18abd770bef5fd3816d07ccf1..5cd7e50cd9bc663efe54a4805e56a0ffc4820cc8 100644
--- a/gpu/command_buffer/service/renderbuffer_manager.h
+++ b/gpu/command_buffer/service/renderbuffer_manager.h
@@ -25,7 +25,7 @@ class RenderbufferManager {
explicit RenderbufferInfo(GLuint service_id)
: service_id_(service_id),
- cleared_(false),
+ cleared_(true),
has_been_bound_(false),
samples_(0),
internal_format_(GL_RGBA4),
@@ -41,10 +41,6 @@ class RenderbufferManager {
return cleared_;
}
- void set_cleared() {
- cleared_ = true;
- }
-
GLenum internal_format() const {
return internal_format_;
}
@@ -61,15 +57,6 @@ class RenderbufferManager {
return height_;
}
- void SetInfo(
- GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
- samples_ = samples;
- internal_format_ = internalformat;
- width_ = width;
- height_ = height;
- cleared_ = false;
- }
-
bool IsDeleted() const {
return service_id_ == 0;
}
@@ -88,6 +75,19 @@ class RenderbufferManager {
~RenderbufferInfo() { }
+ void set_cleared() {
+ cleared_ = true;
+ }
+
+ void SetInfo(
+ GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height) {
+ samples_ = samples;
+ internal_format_ = internalformat;
+ width_ = width;
+ height_ = height;
+ cleared_ = false;
+ }
+
void MarkAsDeleted() {
service_id_ = 0;
}
@@ -123,6 +123,16 @@ class RenderbufferManager {
return max_samples_;
}
+ bool HaveUnclearedRenderbuffers() const {
+ return num_uncleared_renderbuffers_ != 0;
+ }
+
+ void SetInfo(
+ RenderbufferInfo* renderbuffer,
+ GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
+
+ void SetCleared(RenderbufferInfo* renderbuffer);
+
// Must call before destruction.
void Destroy(bool have_context);
@@ -142,6 +152,8 @@ class RenderbufferManager {
GLint max_renderbuffer_size_;
GLint max_samples_;
+ int num_uncleared_renderbuffers_;
+
// Info for each renderbuffer in the system.
typedef base::hash_map<GLuint, RenderbufferInfo::Ref> RenderbufferInfoMap;
RenderbufferInfoMap renderbuffer_infos_;
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc ('k') | gpu/command_buffer/service/renderbuffer_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698