Files
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
2026-02-18 15:48:36 -08:00

88 lines
3.2 KiB
Java

package com.google.android.exoplayer2.util;
import android.opengl.GLES20;
import android.opengl.GLU;
import android.text.TextUtils;
import androidx.work.Data;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.FloatBuffer;
import java.nio.IntBuffer;
/* loaded from: classes2.dex */
public abstract class GlUtil {
public static void checkGlError() {
while (true) {
int glGetError = GLES20.glGetError();
if (glGetError == 0) {
return;
}
String valueOf = String.valueOf(GLU.gluErrorString(glGetError));
Log.e("GlUtil", valueOf.length() != 0 ? "glError ".concat(valueOf) : new String("glError "));
}
}
public static int compileProgram(String[] strArr, String[] strArr2) {
return compileProgram(TextUtils.join("\n", strArr), TextUtils.join("\n", strArr2));
}
public static int compileProgram(String str, String str2) {
int glCreateProgram = GLES20.glCreateProgram();
checkGlError();
addShader(35633, str, glCreateProgram);
addShader(35632, str2, glCreateProgram);
GLES20.glLinkProgram(glCreateProgram);
int[] iArr = {0};
GLES20.glGetProgramiv(glCreateProgram, 35714, iArr, 0);
if (iArr[0] != 1) {
String valueOf = String.valueOf(GLES20.glGetProgramInfoLog(glCreateProgram));
throwGlError(valueOf.length() != 0 ? "Unable to link shader program: \n".concat(valueOf) : new String("Unable to link shader program: \n"));
}
checkGlError();
return glCreateProgram;
}
public static FloatBuffer createBuffer(float[] fArr) {
return (FloatBuffer) createBuffer(fArr.length).put(fArr).flip();
}
public static FloatBuffer createBuffer(int i) {
return ByteBuffer.allocateDirect(i * 4).order(ByteOrder.nativeOrder()).asFloatBuffer();
}
public static int createExternalTexture() {
int[] iArr = new int[1];
GLES20.glGenTextures(1, IntBuffer.wrap(iArr));
GLES20.glBindTexture(36197, iArr[0]);
GLES20.glTexParameteri(36197, 10241, 9729);
GLES20.glTexParameteri(36197, Data.MAX_DATA_BYTES, 9729);
GLES20.glTexParameteri(36197, 10242, 33071);
GLES20.glTexParameteri(36197, 10243, 33071);
checkGlError();
return iArr[0];
}
public static void addShader(int i, String str, int i2) {
int glCreateShader = GLES20.glCreateShader(i);
GLES20.glShaderSource(glCreateShader, str);
GLES20.glCompileShader(glCreateShader);
int[] iArr = {0};
GLES20.glGetShaderiv(glCreateShader, 35713, iArr, 0);
if (iArr[0] != 1) {
String glGetShaderInfoLog = GLES20.glGetShaderInfoLog(glCreateShader);
StringBuilder sb = new StringBuilder(String.valueOf(glGetShaderInfoLog).length() + 10 + String.valueOf(str).length());
sb.append(glGetShaderInfoLog);
sb.append(", source: ");
sb.append(str);
throwGlError(sb.toString());
}
GLES20.glAttachShader(i2, glCreateShader);
GLES20.glDeleteShader(glCreateShader);
checkGlError();
}
public static void throwGlError(String str) {
Log.e("GlUtil", str);
}
}