Make sure we have a current EGL context when invoking EGL
Bug #5081795
Change-Id: Iee3382d362a71c1e6c5c498b319bf7f7bcf5a2f0
diff --git a/libs/hwui/Layer.h b/libs/hwui/Layer.h
index 0c536b0..dd75497 100644
--- a/libs/hwui/Layer.h
+++ b/libs/hwui/Layer.h
@@ -191,6 +191,10 @@
if (texture.id) glDeleteTextures(1, &texture.id);
}
+ inline void deleteFbo() {
+ if (fbo) glDeleteFramebuffers(1, &fbo);
+ }
+
inline void allocateTexture(GLenum format, GLenum storage) {
glTexImage2D(renderTarget, 0, format, getWidth(), getHeight(), 0, format, storage, NULL);
}
diff --git a/libs/hwui/LayerCache.cpp b/libs/hwui/LayerCache.cpp
index 36083af..58c0fac 100644
--- a/libs/hwui/LayerCache.cpp
+++ b/libs/hwui/LayerCache.cpp
@@ -69,6 +69,7 @@
void LayerCache::deleteLayer(Layer* layer) {
if (layer) {
mSize -= layer->getWidth() * layer->getHeight() * 4;
+ layer->deleteFbo();
layer->deleteTexture();
delete layer;
}
diff --git a/libs/hwui/TextureCache.cpp b/libs/hwui/TextureCache.cpp
index f926fdd..fbdbf92 100644
--- a/libs/hwui/TextureCache.cpp
+++ b/libs/hwui/TextureCache.cpp
@@ -165,7 +165,7 @@
void TextureCache::clear() {
mCache.clear();
- TEXTURE_LOGD("TextureCache:clear(), miSize = %d", mSize);
+ TEXTURE_LOGD("TextureCache:clear(), mSize = %d", mSize);
}
void TextureCache::generateTexture(SkBitmap* bitmap, Texture* texture, bool regenerate) {