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

Commit 2d72dd2e authored by John Reck's avatar John Reck Committed by Android (Google) Code Review
Browse files

Merge "Have destroy call freePrefetchedLayers" into lmp-dev

parents 65bd3eaa 17035b02
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -126,7 +126,7 @@ public class ThreadedRenderer extends HardwareRenderer {
    void destroy() {
        mInitialized = false;
        updateEnabledState(null);
        nDestroyCanvasAndSurface(mNativeProxy);
        nDestroy(mNativeProxy);
    }

    private void updateEnabledState(Surface surface) {
@@ -488,7 +488,7 @@ public class ThreadedRenderer extends HardwareRenderer {
    private static native void nSetOpaque(long nativeProxy, boolean opaque);
    private static native int nSyncAndDrawFrame(long nativeProxy,
            long frameTimeNanos, long recordDuration, float density);
    private static native void nDestroyCanvasAndSurface(long nativeProxy);
    private static native void nDestroy(long nativeProxy);
    private static native void nRegisterAnimatingRenderNode(long rootRenderNode, long animatingNode);

    private static native void nInvokeFunctor(long functor, boolean waitForCompletion);
+3 −3
Original line number Diff line number Diff line
@@ -291,10 +291,10 @@ static int android_view_ThreadedRenderer_syncAndDrawFrame(JNIEnv* env, jobject c
    return proxy->syncAndDrawFrame(frameTimeNanos, recordDuration, density);
}

static void android_view_ThreadedRenderer_destroyCanvasAndSurface(JNIEnv* env, jobject clazz,
static void android_view_ThreadedRenderer_destroy(JNIEnv* env, jobject clazz,
        jlong proxyPtr) {
    RenderProxy* proxy = reinterpret_cast<RenderProxy*>(proxyPtr);
    proxy->destroyCanvasAndSurface();
    proxy->destroy();
}

static void android_view_ThreadedRenderer_registerAnimatingRenderNode(JNIEnv* env, jobject clazz,
@@ -430,7 +430,7 @@ static JNINativeMethod gMethods[] = {
    { "nSetup", "(JIIFFFFII)V", (void*) android_view_ThreadedRenderer_setup },
    { "nSetOpaque", "(JZ)V", (void*) android_view_ThreadedRenderer_setOpaque },
    { "nSyncAndDrawFrame", "(JJJF)I", (void*) android_view_ThreadedRenderer_syncAndDrawFrame },
    { "nDestroyCanvasAndSurface", "(J)V", (void*) android_view_ThreadedRenderer_destroyCanvasAndSurface },
    { "nDestroy", "(J)V", (void*) android_view_ThreadedRenderer_destroy },
    { "nRegisterAnimatingRenderNode", "(JJ)V", (void*) android_view_ThreadedRenderer_registerAnimatingRenderNode },
    { "nInvokeFunctor", "(JZ)V", (void*) android_view_ThreadedRenderer_invokeFunctor },
    { "nCreateDisplayListLayer", "(JII)J", (void*) android_view_ThreadedRenderer_createDisplayListLayer },
+7 −3
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@
#include "Properties.h"
#include "LayerRenderer.h"
#include "ShadowTessellator.h"
#include "RenderState.h"

namespace android {

@@ -49,7 +50,7 @@ namespace uirenderer {
///////////////////////////////////////////////////////////////////////////////

Caches::Caches(): Singleton<Caches>(),
        mExtensions(Extensions::getInstance()), mInitialized(false) {
        mExtensions(Extensions::getInstance()), mInitialized(false), mRenderState(NULL) {
    init();
    initFont();
    initConstraints();
@@ -267,8 +268,11 @@ void Caches::dumpMemoryUsage(String8 &log) {
    log.appendFormat("Current memory usage / total memory usage (bytes):\n");
    log.appendFormat("  TextureCache         %8d / %8d\n",
            textureCache.getSize(), textureCache.getMaxSize());
    log.appendFormat("  LayerCache           %8d / %8d\n",
            layerCache.getSize(), layerCache.getMaxSize());
    log.appendFormat("  LayerCache           %8d / %8d (numLayers = %zu)\n",
            layerCache.getSize(), layerCache.getMaxSize(), layerCache.getCount());
    log.appendFormat("  Garbage layers       %8zu\n", mLayerGarbage.size());
    log.appendFormat("  Active layers        %8zu\n",
            mRenderState ? mRenderState->mActiveLayers.size() : 0);
    log.appendFormat("  RenderBufferCache    %8d / %8d\n",
            renderBufferCache.getSize(), renderBufferCache.getMaxSize());
    log.appendFormat("  GradientCache        %8d / %8d\n",
+5 −0
Original line number Diff line number Diff line
@@ -107,6 +107,7 @@ struct CacheLogger {
///////////////////////////////////////////////////////////////////////////////

class RenderNode;
class RenderState;

class ANDROID_API Caches: public Singleton<Caches> {
    Caches();
@@ -132,6 +133,8 @@ public:
     */
    bool initProperties();

    void setRenderState(RenderState* renderState) { mRenderState = renderState; }

    /**
     * Flush the cache.
     *
@@ -431,6 +434,8 @@ private:
    GLuint mBoundTextures[REQUIRED_TEXTURE_UNITS_COUNT];

    OverdrawColorSet mOverdrawDebugColorSet;

    RenderState* mRenderState;
}; // class Caches

}; // namespace uirenderer
+4 −0
Original line number Diff line number Diff line
@@ -49,6 +49,10 @@ LayerCache::~LayerCache() {
// Size management
///////////////////////////////////////////////////////////////////////////////

size_t LayerCache::getCount() {
    return mCache.size();
}

uint32_t LayerCache::getSize() {
    return mSize;
}
Loading