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

Commit c89b14bb authored by Romain Guy's avatar Romain Guy
Browse files

It seems that apparently useless public APIs are actually useful

Bug #6953651

Change-Id: Ic47ce504e63262711f5d3edc76f7d2b9c12471ad
parent 6ab4511a
Loading
Loading
Loading
Loading
+8 −2
Original line number Original line Diff line number Diff line
@@ -82,11 +82,17 @@ class GLES20RenderLayer extends GLES20Layer {
    }
    }


    @Override
    @Override
    void end() {
    void end(Canvas currentCanvas) {
        if (currentCanvas instanceof GLES20Canvas) {
            ((GLES20Canvas) currentCanvas).resume();
        }
    }
    }


    @Override
    @Override
    HardwareCanvas start() {
    HardwareCanvas start(Canvas currentCanvas) {
        if (currentCanvas instanceof GLES20Canvas) {
            ((GLES20Canvas) currentCanvas).interrupt();
        }
        return getCanvas();
        return getCanvas();
    }
    }


+3 −2
Original line number Original line Diff line number Diff line
@@ -16,6 +16,7 @@


package android.view;
package android.view;


import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Matrix;
import android.graphics.Rect;
import android.graphics.Rect;
import android.graphics.SurfaceTexture;
import android.graphics.SurfaceTexture;
@@ -56,12 +57,12 @@ class GLES20TextureLayer extends GLES20Layer {
    }
    }


    @Override
    @Override
    HardwareCanvas start() {
    HardwareCanvas start(Canvas currentCanvas) {
        return null;
        return null;
    }
    }


    @Override
    @Override
    void end() {
    void end(Canvas currentCanvas) {
    }
    }


    SurfaceTexture getSurfaceTexture() {
    SurfaceTexture getSurfaceTexture() {
+5 −2
Original line number Original line Diff line number Diff line
@@ -17,6 +17,7 @@
package android.view;
package android.view;


import android.graphics.Bitmap;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Matrix;
import android.graphics.Matrix;
import android.graphics.Rect;
import android.graphics.Rect;


@@ -143,13 +144,15 @@ abstract class HardwareLayer {


    /**
    /**
     * This must be invoked before drawing onto this layer.
     * This must be invoked before drawing onto this layer.
     * @param currentCanvas
     */
     */
    abstract HardwareCanvas start();
    abstract HardwareCanvas start(Canvas currentCanvas);
    
    
    /**
    /**
     * This must be invoked after drawing onto this layer.
     * This must be invoked after drawing onto this layer.
     * @param currentCanvas
     */
     */
    abstract void end();
    abstract void end(Canvas currentCanvas);


    /**
    /**
     * Copies this layer into the specified bitmap.
     * Copies this layer into the specified bitmap.
+3 −2
Original line number Original line Diff line number Diff line
@@ -1408,6 +1408,7 @@ public final class ViewRootImpl implements ViewParent,
                        disposeResizeBuffer();
                        disposeResizeBuffer();


                        boolean completed = false;
                        boolean completed = false;
                        HardwareCanvas hwRendererCanvas = mAttachInfo.mHardwareRenderer.getCanvas();
                        HardwareCanvas layerCanvas = null;
                        HardwareCanvas layerCanvas = null;
                        try {
                        try {
                            if (mResizeBuffer == null) {
                            if (mResizeBuffer == null) {
@@ -1417,7 +1418,7 @@ public final class ViewRootImpl implements ViewParent,
                                    mResizeBuffer.getHeight() != mHeight) {
                                    mResizeBuffer.getHeight() != mHeight) {
                                mResizeBuffer.resize(mWidth, mHeight);
                                mResizeBuffer.resize(mWidth, mHeight);
                            }
                            }
                            layerCanvas = mResizeBuffer.start();
                            layerCanvas = mResizeBuffer.start(hwRendererCanvas);
                            layerCanvas.setViewport(mWidth, mHeight);
                            layerCanvas.setViewport(mWidth, mHeight);
                            layerCanvas.onPreDraw(null);
                            layerCanvas.onPreDraw(null);
                            final int restoreCount = layerCanvas.save();
                            final int restoreCount = layerCanvas.save();
@@ -1456,7 +1457,7 @@ public final class ViewRootImpl implements ViewParent,
                                layerCanvas.onPostDraw();
                                layerCanvas.onPostDraw();
                            }
                            }
                            if (mResizeBuffer != null) {
                            if (mResizeBuffer != null) {
                                mResizeBuffer.end();
                                mResizeBuffer.end(hwRendererCanvas);
                                if (!completed) {
                                if (!completed) {
                                    mResizeBuffer.destroy();
                                    mResizeBuffer.destroy();
                                    mResizeBuffer = null;
                                    mResizeBuffer = null;
+12 −0
Original line number Original line Diff line number Diff line
@@ -720,6 +720,16 @@ static void android_view_GLES20Canvas_outputDisplayList(JNIEnv* env,
// Layers
// Layers
// ----------------------------------------------------------------------------
// ----------------------------------------------------------------------------


static void android_view_GLES20Canvas_interrupt(JNIEnv* env, jobject clazz,
        OpenGLRenderer* renderer) {
    renderer->interrupt();
}

static void android_view_GLES20Canvas_resume(JNIEnv* env, jobject clazz,
        OpenGLRenderer* renderer) {
    renderer->resume();
}

static OpenGLRenderer* android_view_GLES20Canvas_createLayerRenderer(JNIEnv* env,
static OpenGLRenderer* android_view_GLES20Canvas_createLayerRenderer(JNIEnv* env,
        jobject clazz, Layer* layer) {
        jobject clazz, Layer* layer) {
    if (layer) {
    if (layer) {
@@ -962,6 +972,8 @@ static JNINativeMethod gMethods[] = {
    { "nResetDisplayListRenderer",  "(I)V",    (void*) android_view_GLES20Canvas_resetDisplayListRenderer },
    { "nResetDisplayListRenderer",  "(I)V",    (void*) android_view_GLES20Canvas_resetDisplayListRenderer },


    { "nOutputDisplayList",      "(II)V",      (void*) android_view_GLES20Canvas_outputDisplayList },
    { "nOutputDisplayList",      "(II)V",      (void*) android_view_GLES20Canvas_outputDisplayList },
    { "nInterrupt",              "(I)V",       (void*) android_view_GLES20Canvas_interrupt },
    { "nResume",                 "(I)V",       (void*) android_view_GLES20Canvas_resume },


    { "nCreateLayerRenderer",    "(I)I",       (void*) android_view_GLES20Canvas_createLayerRenderer },
    { "nCreateLayerRenderer",    "(I)I",       (void*) android_view_GLES20Canvas_createLayerRenderer },
    { "nCreateLayer",            "(IIZ[I)I",   (void*) android_view_GLES20Canvas_createLayer },
    { "nCreateLayer",            "(IIZ[I)I",   (void*) android_view_GLES20Canvas_createLayer },
Loading