Loading packages/SystemUI/src/com/android/systemui/glwallpaper/EglHelper.java +25 −3 Original line number Diff line number Diff line Loading @@ -146,7 +146,13 @@ public class EglHelper { * @return true if EglSurface is ready. */ public boolean createEglSurface(SurfaceHolder surfaceHolder) { if (hasEglDisplay()) { mEglSurface = eglCreateWindowSurface(mEglDisplay, mEglConfig, surfaceHolder, null, 0); } else { Log.w(TAG, "mEglDisplay is null"); return false; } if (mEglSurface == null || mEglSurface == EGL_NO_SURFACE) { Log.w(TAG, "createWindowSurface failed: " + GLUtils.getEGLErrorString(eglGetError())); return false; Loading Loading @@ -186,7 +192,13 @@ public class EglHelper { public boolean createEglContext() { int[] attrib_list = new int[] {EGL_CONTEXT_CLIENT_VERSION, 2, EGL_CONTEXT_PRIORITY_LEVEL_IMG, EGL_CONTEXT_PRIORITY_LOW_IMG, EGL_NONE}; if (hasEglDisplay()) { mEglContext = eglCreateContext(mEglDisplay, mEglConfig, EGL_NO_CONTEXT, attrib_list, 0); } else { Log.w(TAG, "mEglDisplay is null"); return false; } if (mEglContext == EGL_NO_CONTEXT) { Log.w(TAG, "eglCreateContext failed: " + GLUtils.getEGLErrorString(eglGetError())); return false; Loading @@ -212,6 +224,14 @@ public class EglHelper { return mEglContext != null; } /** * Check if we have EglDisplay. * @return true if EglDisplay is ready. */ public boolean hasEglDisplay() { return mEglDisplay != null; } /** * Swap buffer to display. * @return true if swap successfully. Loading @@ -235,7 +255,9 @@ public class EglHelper { if (hasEglContext()) { destroyEglContext(); } if (hasEglDisplay()) { eglTerminate(mEglDisplay); } mEglReady = false; } Loading packages/SystemUI/tests/src/com/android/systemui/glwallpaper/EglHelperTest.java 0 → 100644 +67 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.glwallpaper; import static org.junit.Assert.*; import static org.mockito.Mockito.RETURNS_DEFAULTS; import static org.mockito.Mockito.mock; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.view.SurfaceHolder; import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @SmallTest @RunWith(AndroidTestingRunner.class) @TestableLooper.RunWithLooper public class EglHelperTest extends SysuiTestCase { @Mock private EglHelper mEglHelper; @Mock private SurfaceHolder mSurfaceHolder; @Before public void setUp() throws Exception { mEglHelper = mock(EglHelper.class, RETURNS_DEFAULTS); mSurfaceHolder = mock(SurfaceHolder.class, RETURNS_DEFAULTS); } @Test public void testInit_finish() { mEglHelper.init(mSurfaceHolder); mEglHelper.finish(); } @Test public void testFinish_shouldNotCrash() { assertFalse(mEglHelper.hasEglDisplay()); assertFalse(mEglHelper.hasEglSurface()); assertFalse(mEglHelper.hasEglContext()); mEglHelper.finish(); } } Loading
packages/SystemUI/src/com/android/systemui/glwallpaper/EglHelper.java +25 −3 Original line number Diff line number Diff line Loading @@ -146,7 +146,13 @@ public class EglHelper { * @return true if EglSurface is ready. */ public boolean createEglSurface(SurfaceHolder surfaceHolder) { if (hasEglDisplay()) { mEglSurface = eglCreateWindowSurface(mEglDisplay, mEglConfig, surfaceHolder, null, 0); } else { Log.w(TAG, "mEglDisplay is null"); return false; } if (mEglSurface == null || mEglSurface == EGL_NO_SURFACE) { Log.w(TAG, "createWindowSurface failed: " + GLUtils.getEGLErrorString(eglGetError())); return false; Loading Loading @@ -186,7 +192,13 @@ public class EglHelper { public boolean createEglContext() { int[] attrib_list = new int[] {EGL_CONTEXT_CLIENT_VERSION, 2, EGL_CONTEXT_PRIORITY_LEVEL_IMG, EGL_CONTEXT_PRIORITY_LOW_IMG, EGL_NONE}; if (hasEglDisplay()) { mEglContext = eglCreateContext(mEglDisplay, mEglConfig, EGL_NO_CONTEXT, attrib_list, 0); } else { Log.w(TAG, "mEglDisplay is null"); return false; } if (mEglContext == EGL_NO_CONTEXT) { Log.w(TAG, "eglCreateContext failed: " + GLUtils.getEGLErrorString(eglGetError())); return false; Loading @@ -212,6 +224,14 @@ public class EglHelper { return mEglContext != null; } /** * Check if we have EglDisplay. * @return true if EglDisplay is ready. */ public boolean hasEglDisplay() { return mEglDisplay != null; } /** * Swap buffer to display. * @return true if swap successfully. Loading @@ -235,7 +255,9 @@ public class EglHelper { if (hasEglContext()) { destroyEglContext(); } if (hasEglDisplay()) { eglTerminate(mEglDisplay); } mEglReady = false; } Loading
packages/SystemUI/tests/src/com/android/systemui/glwallpaper/EglHelperTest.java 0 → 100644 +67 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.android.systemui.glwallpaper; import static org.junit.Assert.*; import static org.mockito.Mockito.RETURNS_DEFAULTS; import static org.mockito.Mockito.mock; import android.testing.AndroidTestingRunner; import android.testing.TestableLooper; import android.view.SurfaceHolder; import androidx.test.filters.SmallTest; import com.android.systemui.SysuiTestCase; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @SmallTest @RunWith(AndroidTestingRunner.class) @TestableLooper.RunWithLooper public class EglHelperTest extends SysuiTestCase { @Mock private EglHelper mEglHelper; @Mock private SurfaceHolder mSurfaceHolder; @Before public void setUp() throws Exception { mEglHelper = mock(EglHelper.class, RETURNS_DEFAULTS); mSurfaceHolder = mock(SurfaceHolder.class, RETURNS_DEFAULTS); } @Test public void testInit_finish() { mEglHelper.init(mSurfaceHolder); mEglHelper.finish(); } @Test public void testFinish_shouldNotCrash() { assertFalse(mEglHelper.hasEglDisplay()); assertFalse(mEglHelper.hasEglSurface()); assertFalse(mEglHelper.hasEglContext()); mEglHelper.finish(); } }