Skip to content

Commit d48478e

Browse files
chethaaseAndroid (Google) Code Review
authored andcommitted
Merge "Assign default texture id of 0" into jb-mr1-dev
2 parents f8b18ce + 98d3a64 commit d48478e

File tree

5 files changed

+13
-15
lines changed

5 files changed

+13
-15
lines changed

libs/hwui/Layer.cpp

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
#include <utils/Log.h>
2020

2121
#include "Layer.h"
22+
#include "LayerRenderer.h"
2223
#include "OpenGLRenderer.h"
2324
#include "Caches.h"
2425

@@ -46,14 +47,15 @@ Layer::~Layer() {
4647
if (mesh) delete mesh;
4748
if (meshIndices) delete meshIndices;
4849
if (colorFilter) Caches::getInstance().resourceCache.decrementRefcount(colorFilter);
49-
if (fbo) Caches::getInstance().fboCache.put(fbo);
50+
removeFbo();
5051
deleteTexture();
5152
}
5253

53-
void Layer::freeResourcesLocked() {
54-
if (colorFilter) {
55-
Caches::getInstance().resourceCache.decrementRefcountLocked(colorFilter);
56-
colorFilter = NULL;
54+
void Layer::removeFbo() {
55+
if (fbo) {
56+
LayerRenderer::flushLayer(this);
57+
Caches::getInstance().fboCache.put(fbo);
58+
fbo = 0;
5759
}
5860
}
5961

libs/hwui/Layer.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ struct Layer {
4848
Layer(const uint32_t layerWidth, const uint32_t layerHeight);
4949
~Layer();
5050

51-
void freeResourcesLocked();
51+
void removeFbo();
5252

5353
/**
5454
* Sets this layer's region to a rectangle. Computes the appropriate

libs/hwui/LayerRenderer.cpp

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -299,13 +299,6 @@ void LayerRenderer::destroyLayer(Layer* layer) {
299299
LAYER_RENDERER_LOGD("Recycling layer, %dx%d fbo = %d",
300300
layer->getWidth(), layer->getHeight(), layer->getFbo());
301301

302-
GLuint fbo = layer->getFbo();
303-
if (fbo) {
304-
flushLayer(layer);
305-
Caches::getInstance().fboCache.put(fbo);
306-
layer->setFbo(0);
307-
}
308-
309302
if (!Caches::getInstance().layerCache.put(layer)) {
310303
LAYER_RENDERER_LOGD(" Destroyed!");
311304
Caches::getInstance().resourceCache.decrementRefcount(layer);
@@ -314,6 +307,7 @@ void LayerRenderer::destroyLayer(Layer* layer) {
314307
#if DEBUG_LAYER_RENDERER
315308
Caches::getInstance().layerCache.dump();
316309
#endif
310+
layer->removeFbo();
317311
layer->region.clear();
318312
}
319313
}

libs/hwui/LayerRenderer.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ class LayerRenderer: public OpenGLRenderer {
6060
ANDROID_API static void destroyLayerDeferred(Layer* layer);
6161
ANDROID_API static bool copyLayer(Layer* layer, SkBitmap* bitmap);
6262

63+
static void flushLayer(Layer* layer);
64+
6365
protected:
6466
virtual bool hasLayer();
6567
virtual Region* getRegion();
@@ -69,8 +71,6 @@ class LayerRenderer: public OpenGLRenderer {
6971
private:
7072
void generateMesh();
7173

72-
static void flushLayer(Layer* layer);
73-
7474
Layer* mLayer;
7575
}; // class LayerRenderer
7676

libs/hwui/Texture.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ struct Texture {
3838

3939
firstFilter = true;
4040
firstWrap = true;
41+
42+
id = 0;
4143
}
4244

4345
void setWrap(GLenum wrap, bool bindTexture = false, bool force = false,

0 commit comments

Comments
 (0)