Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d48478e4 authored by Chet Haase's avatar Chet Haase Committed by Android (Google) Code Review
Browse files

Merge "Assign default texture id of 0" into jb-mr1-dev

parents f8b18ced 98d3a64f
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@
#include <utils/Log.h>

#include "Layer.h"
#include "LayerRenderer.h"
#include "OpenGLRenderer.h"
#include "Caches.h"

@@ -46,14 +47,15 @@ Layer::~Layer() {
    if (mesh) delete mesh;
    if (meshIndices) delete meshIndices;
    if (colorFilter) Caches::getInstance().resourceCache.decrementRefcount(colorFilter);
    if (fbo) Caches::getInstance().fboCache.put(fbo);
    removeFbo();
    deleteTexture();
}

void Layer::freeResourcesLocked() {
    if (colorFilter) {
        Caches::getInstance().resourceCache.decrementRefcountLocked(colorFilter);
        colorFilter = NULL;
void Layer::removeFbo() {
    if (fbo) {
        LayerRenderer::flushLayer(this);
        Caches::getInstance().fboCache.put(fbo);
        fbo = 0;
    }
}

+1 −1
Original line number Diff line number Diff line
@@ -48,7 +48,7 @@ struct Layer {
    Layer(const uint32_t layerWidth, const uint32_t layerHeight);
    ~Layer();

    void freeResourcesLocked();
    void removeFbo();

    /**
     * Sets this layer's region to a rectangle. Computes the appropriate
+1 −7
Original line number Diff line number Diff line
@@ -299,13 +299,6 @@ void LayerRenderer::destroyLayer(Layer* layer) {
        LAYER_RENDERER_LOGD("Recycling layer, %dx%d fbo = %d",
                layer->getWidth(), layer->getHeight(), layer->getFbo());

        GLuint fbo = layer->getFbo();
        if (fbo) {
            flushLayer(layer);
            Caches::getInstance().fboCache.put(fbo);
            layer->setFbo(0);
        }

        if (!Caches::getInstance().layerCache.put(layer)) {
            LAYER_RENDERER_LOGD("  Destroyed!");
            Caches::getInstance().resourceCache.decrementRefcount(layer);
@@ -314,6 +307,7 @@ void LayerRenderer::destroyLayer(Layer* layer) {
#if DEBUG_LAYER_RENDERER
            Caches::getInstance().layerCache.dump();
#endif
            layer->removeFbo();
            layer->region.clear();
        }
    }
+2 −2
Original line number Diff line number Diff line
@@ -60,6 +60,8 @@ public:
    ANDROID_API static void destroyLayerDeferred(Layer* layer);
    ANDROID_API static bool copyLayer(Layer* layer, SkBitmap* bitmap);

    static void flushLayer(Layer* layer);

protected:
    virtual bool hasLayer();
    virtual Region* getRegion();
@@ -69,8 +71,6 @@ protected:
private:
    void generateMesh();

    static void flushLayer(Layer* layer);

    Layer* mLayer;
}; // class LayerRenderer

+2 −0
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@ struct Texture {

        firstFilter = true;
        firstWrap = true;

        id = 0;
    }

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