From 0724e2b99f7f9e1b1c68b93d87955d109d371731 Mon Sep 17 00:00:00 2001 From: hschlueter Date: Mon, 28 Mar 2022 17:17:03 +0100 Subject: [PATCH] Check if there is a current context before generating textures/FBOs. This avoids silent failures where the generated identifiers are 0. PiperOrigin-RevId: 437775689 --- .../src/main/java/androidx/media3/common/util/GlUtil.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java index 8fca7eb310..f29b8f0503 100644 --- a/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java +++ b/libraries/common/src/main/java/androidx/media3/common/util/GlUtil.java @@ -371,6 +371,9 @@ public final class GlUtil { * GLES11Ext#GL_TEXTURE_EXTERNAL_OES} for an external texture. */ private static int generateAndBindTexture(int textureTarget) { + checkEglException( + !Util.areEqual(EGL14.eglGetCurrentContext(), EGL14.EGL_NO_CONTEXT), "No current context"); + int[] texId = new int[1]; GLES20.glGenTextures(/* n= */ 1, texId, /* offset= */ 0); checkGlError(); @@ -391,6 +394,9 @@ public final class GlUtil { * @param texId The identifier of the texture to attach to the framebuffer. */ public static int createFboForTexture(int texId) { + checkEglException( + !Util.areEqual(EGL14.eglGetCurrentContext(), EGL14.EGL_NO_CONTEXT), "No current context"); + int[] fboId = new int[1]; GLES20.glGenFramebuffers(/* n= */ 1, fboId, /* offset= */ 0); checkGlError();