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

Commit 3f7be830 authored by Romain Guy's avatar Romain Guy Committed by Android (Google) Code Review
Browse files

Merge "Enable dirty regions on newly created EGL surfaces"

parents 5aa2136d 9477c6e6
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -441,6 +441,8 @@ public abstract class HardwareRenderer {
        }

        boolean mDirtyRegionsEnabled;
        boolean mUpdateDirtyRegions;

        final boolean mVsyncDisabled;

        final int mGlVersion;
@@ -675,6 +677,12 @@ public abstract class HardwareRenderer {
            
            initCaches();

            enableDirtyRegions();

            return mEglContext.getGL();
        }

        private void enableDirtyRegions() {
            // If mDirtyRegions is set, this means we have an EGL configuration
            // with EGL_SWAP_BEHAVIOR_PRESERVED_BIT set
            if (sDirtyRegions) {
@@ -690,8 +698,6 @@ public abstract class HardwareRenderer {
                // configuration (see RENDER_DIRTY_REGIONS)
                mDirtyRegionsEnabled = GLES20Canvas.isBackBufferPreserved();
            }

            return mEglContext.getGL();
        }

        abstract void initCaches();
@@ -745,6 +751,9 @@ public abstract class HardwareRenderer {
                if (!createSurface(holder)) {
                    return;
                }

                mUpdateDirtyRegions = true;

                if (mCanvas != null) {
                    setEnabled(true);
                }
@@ -943,6 +952,10 @@ public abstract class HardwareRenderer {
                    fallback(true);
                    return SURFACE_STATE_ERROR;
                } else {
                    if (mUpdateDirtyRegions) {
                        enableDirtyRegions();
                        mUpdateDirtyRegions = false;
                    }
                    return SURFACE_STATE_UPDATED;
                }
            }