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

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

Merge "Fix layer recycling for GLRenderer"

parents 5f105a1e 0b2c8df7
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -504,6 +504,10 @@ public class GLRenderer extends HardwareRenderer {
        if (mGlCanvas != null) {
            mGlCanvas.cancelLayerUpdate(layer);
        }
        if (Looper.myLooper() == Looper.getMainLooper() && validate()) {
            long backingLayer = layer.detachBackingLayer();
            nDestroyLayer(backingLayer);
        }
        mAttachedLayers.remove(layer);
    }

@@ -1449,6 +1453,8 @@ public class GLRenderer extends HardwareRenderer {
     */
    static native boolean isBackBufferPreserved();

    static native void nDestroyLayer(long layerPtr);

    class DrawPerformanceDataProvider extends GraphDataProvider {
        private final int mGraphType;

+9 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@

#include <Caches.h>
#include <Extensions.h>
#include <LayerRenderer.h>

#ifdef USE_OPENGL_RENDERER
    EGLAPI void EGLAPIENTRY eglBeginFrame(EGLDisplay dpy, EGLSurface surface);
@@ -131,6 +132,13 @@ static jlong android_view_GLRenderer_getSystemTime(JNIEnv* env, jobject clazz) {
    return systemTime(SYSTEM_TIME_MONOTONIC);
}

static void android_view_GLRenderer_destroyLayer(JNIEnv* env, jobject clazz,
        jlong layerPtr) {
    using namespace android::uirenderer;
    Layer* layer = reinterpret_cast<Layer*>(layerPtr);
    LayerRenderer::destroyLayer(layer);
}

#endif // USE_OPENGL_RENDERER

// ----------------------------------------------------------------------------
@@ -160,6 +168,7 @@ static JNINativeMethod gMethods[] = {
    { "beginFrame",            "([I)V", (void*) android_view_GLRenderer_beginFrame },

    { "getSystemTime",         "()J",   (void*) android_view_GLRenderer_getSystemTime },
    { "nDestroyLayer",         "(J)V",  (void*) android_view_GLRenderer_destroyLayer },
#endif

    { "setupShadersDiskCache", "(Ljava/lang/String;)V",