You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
Now that we have a reasonably well working SurfaceView implementation, it is actually cleaner to just implement GLSurfaceView the way AOSP does. In fact, their code doesn't have any weird dependencies, and can mostly be used as-is. The AOSP code is pure Java, which means we had to implement some EGL wrappers. This change fixes issues with Wayland (it only ever worked because the pbuffers were allocated using an XWayland EGLDisplay), and with resizing (which we simply didn't support), all while getting rid of quite some (arguably not very readable) LoC.
127 lines
4.9 KiB
Java
127 lines
4.9 KiB
Java
/*
|
|
* Copyright (C) 2006 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 javax.microedition.khronos.egl;
|
|
|
|
import java.lang.String;
|
|
|
|
public interface EGL10 extends EGL {
|
|
int EGL_SUCCESS = 0x3000;
|
|
int EGL_NOT_INITIALIZED = 0x3001;
|
|
int EGL_BAD_ACCESS = 0x3002;
|
|
int EGL_BAD_ALLOC = 0x3003;
|
|
int EGL_BAD_ATTRIBUTE = 0x3004;
|
|
int EGL_BAD_CONFIG = 0x3005;
|
|
int EGL_BAD_CONTEXT = 0x3006;
|
|
int EGL_BAD_CURRENT_SURFACE = 0x3007;
|
|
int EGL_BAD_DISPLAY = 0x3008;
|
|
int EGL_BAD_MATCH = 0x3009;
|
|
int EGL_BAD_NATIVE_PIXMAP = 0x300A;
|
|
int EGL_BAD_NATIVE_WINDOW = 0x300B;
|
|
int EGL_BAD_PARAMETER = 0x300C;
|
|
int EGL_BAD_SURFACE = 0x300D;
|
|
int EGL_BUFFER_SIZE = 0x3020;
|
|
int EGL_ALPHA_SIZE = 0x3021;
|
|
int EGL_BLUE_SIZE = 0x3022;
|
|
int EGL_GREEN_SIZE = 0x3023;
|
|
int EGL_RED_SIZE = 0x3024;
|
|
int EGL_DEPTH_SIZE = 0x3025;
|
|
int EGL_STENCIL_SIZE = 0x3026;
|
|
int EGL_CONFIG_CAVEAT = 0x3027;
|
|
int EGL_CONFIG_ID = 0x3028;
|
|
int EGL_LEVEL = 0x3029;
|
|
int EGL_MAX_PBUFFER_HEIGHT = 0x302A;
|
|
int EGL_MAX_PBUFFER_PIXELS = 0x302B;
|
|
int EGL_MAX_PBUFFER_WIDTH = 0x302C;
|
|
int EGL_NATIVE_RENDERABLE = 0x302D;
|
|
int EGL_NATIVE_VISUAL_ID = 0x302E;
|
|
int EGL_NATIVE_VISUAL_TYPE = 0x302F;
|
|
int EGL_SAMPLES = 0x3031;
|
|
int EGL_SAMPLE_BUFFERS = 0x3032;
|
|
int EGL_SURFACE_TYPE = 0x3033;
|
|
int EGL_TRANSPARENT_TYPE = 0x3034;
|
|
int EGL_TRANSPARENT_BLUE_VALUE = 0x3035;
|
|
int EGL_TRANSPARENT_GREEN_VALUE = 0x3036;
|
|
int EGL_TRANSPARENT_RED_VALUE = 0x3037;
|
|
int EGL_NONE = 0x3038;
|
|
int EGL_LUMINANCE_SIZE = 0x303D;
|
|
int EGL_ALPHA_MASK_SIZE = 0x303E;
|
|
int EGL_COLOR_BUFFER_TYPE = 0x303F;
|
|
int EGL_RENDERABLE_TYPE = 0x3040;
|
|
int EGL_SLOW_CONFIG = 0x3050;
|
|
int EGL_NON_CONFORMANT_CONFIG = 0x3051;
|
|
int EGL_TRANSPARENT_RGB = 0x3052;
|
|
int EGL_RGB_BUFFER = 0x308E;
|
|
int EGL_LUMINANCE_BUFFER = 0x308F;
|
|
int EGL_VENDOR = 0x3053;
|
|
int EGL_VERSION = 0x3054;
|
|
int EGL_EXTENSIONS = 0x3055;
|
|
int EGL_HEIGHT = 0x3056;
|
|
int EGL_WIDTH = 0x3057;
|
|
int EGL_LARGEST_PBUFFER = 0x3058;
|
|
int EGL_RENDER_BUFFER = 0x3086;
|
|
int EGL_COLORSPACE = 0x3087;
|
|
int EGL_ALPHA_FORMAT = 0x3088;
|
|
int EGL_HORIZONTAL_RESOLUTION = 0x3090;
|
|
int EGL_VERTICAL_RESOLUTION = 0x3091;
|
|
int EGL_PIXEL_ASPECT_RATIO = 0x3092;
|
|
int EGL_CONTEXT_CLIENT_VERSION = 0x3098;
|
|
int EGL_SINGLE_BUFFER = 0x3085;
|
|
int EGL_CORE_NATIVE_ENGINE = 0x305B;
|
|
int EGL_DRAW = 0x3059;
|
|
int EGL_READ = 0x305A;
|
|
|
|
int EGL_DONT_CARE = -1;
|
|
|
|
int EGL_PBUFFER_BIT = 0x01;
|
|
int EGL_PIXMAP_BIT = 0x02;
|
|
int EGL_WINDOW_BIT = 0x04;
|
|
|
|
Object EGL_DEFAULT_DISPLAY = null;
|
|
EGLDisplay EGL_NO_DISPLAY = new javax.microedition.khronos.egl.EGLDisplay(0);
|
|
EGLContext EGL_NO_CONTEXT = new javax.microedition.khronos.egl.EGLContext(0);
|
|
EGLSurface EGL_NO_SURFACE = new com.google.android.gles_jni.EGLSurfaceImpl(0);
|
|
|
|
boolean eglChooseConfig(EGLDisplay display, int[] attrib_list, EGLConfig[] configs, int config_size, int[] num_config);
|
|
boolean eglCopyBuffers(EGLDisplay display, EGLSurface surface, Object native_pixmap);
|
|
EGLContext eglCreateContext(EGLDisplay display, EGLConfig config, EGLContext share_context, int[] attrib_list);
|
|
EGLSurface eglCreatePbufferSurface(EGLDisplay display, EGLConfig config, int[] attrib_list);
|
|
EGLSurface eglCreatePixmapSurface(EGLDisplay display, EGLConfig config, Object native_pixmap, int[] attrib_list);
|
|
EGLSurface eglCreateWindowSurface(EGLDisplay display, EGLConfig config, Object native_window, int[] attrib_list);
|
|
boolean eglDestroyContext(EGLDisplay display, EGLContext context);
|
|
boolean eglDestroySurface(EGLDisplay display, EGLSurface surface);
|
|
boolean eglGetConfigAttrib(EGLDisplay display, EGLConfig config, int attribute, int[] value);
|
|
boolean eglGetConfigs(EGLDisplay display, EGLConfig[] configs, int config_size, int[] num_config);
|
|
EGLContext eglGetCurrentContext();
|
|
EGLDisplay eglGetCurrentDisplay();
|
|
EGLSurface eglGetCurrentSurface(int readdraw);
|
|
EGLDisplay eglGetDisplay(Object native_display);
|
|
int eglGetError();
|
|
boolean eglInitialize(EGLDisplay display, int[] major_minor);
|
|
boolean eglMakeCurrent(EGLDisplay display, EGLSurface draw, EGLSurface read, EGLContext context);
|
|
boolean eglQueryContext(EGLDisplay display, EGLContext context, int attribute, int[] value);
|
|
String eglQueryString(EGLDisplay display, int name);
|
|
boolean eglQuerySurface(EGLDisplay display, EGLSurface surface, int attribute, int[] value);
|
|
/**
|
|
* @hide *
|
|
*/
|
|
boolean eglReleaseThread();
|
|
boolean eglSwapBuffers(EGLDisplay display, EGLSurface surface);
|
|
boolean eglTerminate(EGLDisplay display);
|
|
boolean eglWaitGL();
|
|
boolean eglWaitNative(int engine, Object bindTarget);
|
|
}
|