summaryrefslogtreecommitdiff
path: root/libs/hwui/renderstate/RenderState.cpp
diff options
context:
space:
mode:
authorChris Craik <ccraik@google.com>2015-10-23 14:33:42 -0700
committerChris Craik <ccraik@google.com>2015-10-26 15:51:48 -0700
commit818c9fbf1d76d5df19253ba4eb964efa939ec9ec (patch)
tree6fa7a565ae56d5c92a5905b19c9a20f675b0526b /libs/hwui/renderstate/RenderState.cpp
parent914e362d1884a79588e848f6f87772e4e3fc73b2 (diff)
Initial version of clipped saveLayer in new pipeline
Additionally disables usage of FBO cache, so FBO destruction safely interacts with renderstate caching. Change-Id: I25c277cb7afec2ca33bf226445d6c8867a15a915
Diffstat (limited to 'libs/hwui/renderstate/RenderState.cpp')
-rw-r--r--libs/hwui/renderstate/RenderState.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/libs/hwui/renderstate/RenderState.cpp b/libs/hwui/renderstate/RenderState.cpp
index dfa70ace2f44..9637117bc11a 100644
--- a/libs/hwui/renderstate/RenderState.cpp
+++ b/libs/hwui/renderstate/RenderState.cpp
@@ -125,6 +125,21 @@ void RenderState::bindFramebuffer(GLuint fbo) {
}
}
+GLuint RenderState::genFramebuffer() {
+ GLuint ret;
+ glGenFramebuffers(1, &ret);
+ return ret;
+}
+
+void RenderState::deleteFramebuffer(GLuint fbo) {
+ if (mFramebuffer == fbo) {
+ // GL defines that deleting the currently bound FBO rebinds FBO 0.
+ // Reflect this in our cached value.
+ mFramebuffer = 0;
+ }
+ glDeleteFramebuffers(1, &fbo);
+}
+
void RenderState::invokeFunctor(Functor* functor, DrawGlInfo::Mode mode, DrawGlInfo* info) {
if (mode == DrawGlInfo::kModeProcessNoContext) {
// If there's no context we don't need to interrupt as there's