114 lines
3.5 KiB
Java
114 lines
3.5 KiB
Java
package org.webrtc;
|
|
|
|
import android.graphics.SurfaceTexture;
|
|
import android.view.Surface;
|
|
import c.d.b.a.a;
|
|
import java.util.ArrayList;
|
|
public interface EglBase {
|
|
public static final int[] CONFIG_PIXEL_BUFFER = new ConfigBuilder().setSupportsPixelBuffer(true).createConfigAttributes();
|
|
public static final int[] CONFIG_PIXEL_RGBA_BUFFER = new ConfigBuilder().setHasAlphaChannel(true).setSupportsPixelBuffer(true).createConfigAttributes();
|
|
public static final int[] CONFIG_PLAIN = new ConfigBuilder().createConfigAttributes();
|
|
public static final int[] CONFIG_RECORDABLE = new ConfigBuilder().setIsRecordable(true).createConfigAttributes();
|
|
public static final int[] CONFIG_RGBA = new ConfigBuilder().setHasAlphaChannel(true).createConfigAttributes();
|
|
public static final int EGL_OPENGL_ES2_BIT = 4;
|
|
public static final int EGL_OPENGL_ES3_BIT = 64;
|
|
public static final int EGL_RECORDABLE_ANDROID = 12610;
|
|
public static final Object lock = new Object();
|
|
|
|
public static class ConfigBuilder {
|
|
private boolean hasAlphaChannel;
|
|
private boolean isRecordable;
|
|
private int openGlesVersion = 2;
|
|
private boolean supportsPixelBuffer;
|
|
|
|
public int[] createConfigAttributes() {
|
|
ArrayList arrayList = new ArrayList();
|
|
arrayList.add(12324);
|
|
arrayList.add(8);
|
|
arrayList.add(12323);
|
|
arrayList.add(8);
|
|
arrayList.add(12322);
|
|
arrayList.add(8);
|
|
if (this.hasAlphaChannel) {
|
|
arrayList.add(12321);
|
|
arrayList.add(8);
|
|
}
|
|
int i = this.openGlesVersion;
|
|
if (i == 2 || i == 3) {
|
|
arrayList.add(12352);
|
|
arrayList.add(Integer.valueOf(this.openGlesVersion == 3 ? 64 : 4));
|
|
}
|
|
if (this.supportsPixelBuffer) {
|
|
arrayList.add(12339);
|
|
arrayList.add(1);
|
|
}
|
|
if (this.isRecordable) {
|
|
arrayList.add(12610);
|
|
arrayList.add(1);
|
|
}
|
|
arrayList.add(12344);
|
|
int[] iArr = new int[arrayList.size()];
|
|
for (int i2 = 0; i2 < arrayList.size(); i2++) {
|
|
iArr[i2] = ((Integer) arrayList.get(i2)).intValue();
|
|
}
|
|
return iArr;
|
|
}
|
|
|
|
public ConfigBuilder setHasAlphaChannel(boolean z2) {
|
|
this.hasAlphaChannel = z2;
|
|
return this;
|
|
}
|
|
|
|
public ConfigBuilder setIsRecordable(boolean z2) {
|
|
this.isRecordable = z2;
|
|
return this;
|
|
}
|
|
|
|
public ConfigBuilder setOpenGlesVersion(int i) {
|
|
if (i < 1 || i > 3) {
|
|
throw new IllegalArgumentException(a.k("OpenGL ES version ", i, " not supported"));
|
|
}
|
|
this.openGlesVersion = i;
|
|
return this;
|
|
}
|
|
|
|
public ConfigBuilder setSupportsPixelBuffer(boolean z2) {
|
|
this.supportsPixelBuffer = z2;
|
|
return this;
|
|
}
|
|
}
|
|
|
|
public interface Context {
|
|
public static final long NO_CONTEXT = 0;
|
|
|
|
long getNativeEglContext();
|
|
}
|
|
|
|
void createDummyPbufferSurface();
|
|
|
|
void createPbufferSurface(int i, int i2);
|
|
|
|
void createSurface(SurfaceTexture surfaceTexture);
|
|
|
|
void createSurface(Surface surface);
|
|
|
|
void detachCurrent();
|
|
|
|
Context getEglBaseContext();
|
|
|
|
boolean hasSurface();
|
|
|
|
void makeCurrent();
|
|
|
|
void release();
|
|
|
|
void releaseSurface();
|
|
|
|
int surfaceHeight();
|
|
|
|
int surfaceWidth();
|
|
|
|
void swapBuffers();
|
|
|
|
void swapBuffers(long j);
|
|
}
|