Add a render buffer cache to reuse stencil buffers
Bug #7146141
This new cache is used in a similar way to LayerCache. It helps
reuse already allocated stencil buffers and thus avoid churning
memory on every frame.
Change-Id: I19551d72da52c40039e65904563600e492c8b193
diff --git a/libs/hwui/RenderBuffer.h b/libs/hwui/RenderBuffer.h
index 927f265..a9ad3d7 100644
--- a/libs/hwui/RenderBuffer.h
+++ b/libs/hwui/RenderBuffer.h
@@ -39,7 +39,7 @@
}
~RenderBuffer() {
- if (mName && mAllocated) {
+ if (mName) {
glDeleteRenderbuffers(1, &mName);
}
}
@@ -154,6 +154,29 @@
return false;
}
+ /**
+ * Returns the name of the specified render buffer format.
+ */
+ static const char* formatName(GLenum format) {
+ switch (format) {
+ case GL_STENCIL_INDEX8:
+ return "STENCIL_8";
+ case GL_STENCIL_INDEX1_OES:
+ return "STENCIL_1";
+ case GL_STENCIL_INDEX4_OES:
+ return "STENCIL_4";
+ case GL_DEPTH_COMPONENT16:
+ return "DEPTH_16";
+ case GL_RGBA4:
+ return "RGBA_444";
+ case GL_RGB565:
+ return "RGB_565";
+ case GL_RGB5_A1:
+ return "RGBA_5551";
+ }
+ return "Unknown";
+ }
+
private:
GLenum mFormat;