Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 91f564da authored by Orion Hodson's avatar Orion Hodson
Browse files

glgen: sync generator with manual changes

Syncs generator to accomodate manual changes to checked-in sources.

Adds note to EGL15.cpp that file is automatically generated.

Bug: 126352534
Bug: 124064285

Test: gen and diff based on generated command lines.
Change-Id: I31909de4c077679dec0323761fb06f388d128a14
parent b8ecc059
Loading
Loading
Loading
Loading
+29 −7
Original line number Original line Diff line number Diff line
@@ -775,6 +775,19 @@ public class JniCodeEmitter {
        }
        }
    }
    }


    String getJniDefaultReturn(JType jType) {
        if (jType.isPrimitive()) {
            String baseType = jType.getBaseType();
            if (baseType.equals("boolean")) {
                return "JNI_FALSE";
            } else {
                return "(" + getJniType(jType) + ")0";
            }
        } else {
            return "nullptr";
        }
    }

    String getJniMangledName(String name) {
    String getJniMangledName(String name) {
        name = name.replaceAll("_", "_1");
        name = name.replaceAll("_", "_1");
        name = name.replaceAll(";", "_2");
        name = name.replaceAll(";", "_2");
@@ -943,15 +956,15 @@ public class JniCodeEmitter {
                        "jniThrowException(_env, \"java/lang/UnsupportedOperationException\",");
                        "jniThrowException(_env, \"java/lang/UnsupportedOperationException\",");
            out.println(indent +
            out.println(indent +
                        "    \"" + cfunc.getName() + "\");");
                        "    \"" + cfunc.getName() + "\");");
            if (!isVoid) {
            if (isVoid) {
                String retval = getErrorReturnValue(cfunc);
                out.println(indent + "return;");
            } else {
                if (cfunc.getType().isEGLHandle()) {
                if (cfunc.getType().isEGLHandle()) {
                    String baseType = cfunc.getType().getBaseType().toLowerCase();
                    String baseType = cfunc.getType().getBaseType().toLowerCase();
                    out.println(indent +
                    out.println(indent + indent + "return nullptr;");
                                "return toEGLHandle(_env, " + baseType + "Class, " +
                                baseType + "Constructor, " + retval + ");");
                } else {
                } else {
                    out.println(indent + "return " + retval + ";");
                    out.println(indent + indent + "return " +
                                getJniDefaultReturn(jfunc.getType()) + ";");
                }
                }
            }
            }
            out.println("}");
            out.println("}");
@@ -1595,8 +1608,17 @@ public class JniCodeEmitter {
            out.println(indent + "if (_exception) {");
            out.println(indent + "if (_exception) {");
            out.println(indent + indent +
            out.println(indent + indent +
                        "jniThrowException(_env, _exceptionType, _exceptionMessage);");
                        "jniThrowException(_env, _exceptionType, _exceptionMessage);");
            out.println(indent + "}");
            if (!isVoid) {
                if (cfunc.getType().isEGLHandle()) {
                    String baseType = cfunc.getType().getBaseType().toLowerCase();
                    out.println(indent + indent + "return nullptr;");
                } else {
                    out.println(indent + indent + "return " +
                                getJniDefaultReturn(jfunc.getType()) + ";");
                }
            }


            out.println(indent + "}");
        }
        }




+1 −2
Original line number Original line Diff line number Diff line
@@ -35,8 +35,6 @@


#include <ui/ANativeObjectBase.h>
#include <ui/ANativeObjectBase.h>


static int initialized = 0;

static jclass egldisplayClass;
static jclass egldisplayClass;
static jclass eglcontextClass;
static jclass eglcontextClass;
static jclass eglsurfaceClass;
static jclass eglsurfaceClass;
@@ -107,6 +105,7 @@ fromEGLHandle(JNIEnv *_env, jmethodID mid, jobject obj) {
    if (obj == NULL){
    if (obj == NULL){
        jniThrowException(_env, "java/lang/IllegalArgumentException",
        jniThrowException(_env, "java/lang/IllegalArgumentException",
                          "Object is set to null.");
                          "Object is set to null.");
        return nullptr;
    }
    }


    jlong handle = _env->CallLongMethod(obj, mid);
    jlong handle = _env->CallLongMethod(obj, mid);
+55 −51
Original line number Original line Diff line number Diff line
@@ -14,21 +14,21 @@
** limitations under the License.
** limitations under the License.
*/
*/


// This source file is automatically generated

#pragma GCC diagnostic ignored "-Wunused-variable"
#pragma GCC diagnostic ignored "-Wunused-variable"
#pragma GCC diagnostic ignored "-Wunused-function"
#pragma GCC diagnostic ignored "-Wunused-function"


#include <android_runtime/AndroidRuntime.h>
#include "jni.h"
#include <nativehelper/JNIHelp.h>
#include <nativehelper/JNIHelp.h>
#include <android_runtime/AndroidRuntime.h>
#include <utils/misc.h>
#include <utils/misc.h>
#include "jni.h"


#include <EGL/egl.h>
#include <assert.h>
#include <assert.h>
#include <EGL/egl.h>


#include <ui/ANativeObjectBase.h>
#include <ui/ANativeObjectBase.h>


static int initialized = 0;

// classes from EGL 1.4
// classes from EGL 1.4
static jclass egldisplayClass;
static jclass egldisplayClass;
static jclass eglsurfaceClass;
static jclass eglsurfaceClass;
@@ -74,7 +74,9 @@ static jobject eglNoSyncObject;


/* Cache method IDs each time the class is loaded. */
/* Cache method IDs each time the class is loaded. */


static void nativeClassInit(JNIEnv *_env, jclass glImplClass) {
static void
nativeClassInit(JNIEnv *_env, jclass glImplClass)
{
    // EGL 1.4 Init
    // EGL 1.4 Init
    jclass eglconfigClassLocal = _env->FindClass("android/opengl/EGLConfig");
    jclass eglconfigClassLocal = _env->FindClass("android/opengl/EGLConfig");
    eglconfigClass = (jclass) _env->NewGlobalRef(eglconfigClassLocal);
    eglconfigClass = (jclass) _env->NewGlobalRef(eglconfigClassLocal);
@@ -95,27 +97,21 @@ static void nativeClassInit(JNIEnv *_env, jclass glImplClass) {
    egldisplayConstructor = _env->GetMethodID(egldisplayClass, "<init>", "(J)V");
    egldisplayConstructor = _env->GetMethodID(egldisplayClass, "<init>", "(J)V");
    eglsurfaceConstructor = _env->GetMethodID(eglsurfaceClass, "<init>", "(J)V");
    eglsurfaceConstructor = _env->GetMethodID(eglsurfaceClass, "<init>", "(J)V");


    jobject localeglNoContextObject = _env->NewObject(eglcontextClass, eglcontextConstructor,
    jobject localeglNoContextObject = _env->NewObject(eglcontextClass, eglcontextConstructor, reinterpret_cast<jlong>(EGL_NO_CONTEXT));
                                                      reinterpret_cast<jlong>(EGL_NO_CONTEXT));
    eglNoContextObject = _env->NewGlobalRef(localeglNoContextObject);
    eglNoContextObject = _env->NewGlobalRef(localeglNoContextObject);
    jobject localeglNoDisplayObject = _env->NewObject(egldisplayClass, egldisplayConstructor,
    jobject localeglNoDisplayObject = _env->NewObject(egldisplayClass, egldisplayConstructor, reinterpret_cast<jlong>(EGL_NO_DISPLAY));
                                                      reinterpret_cast<jlong>(EGL_NO_DISPLAY));
    eglNoDisplayObject = _env->NewGlobalRef(localeglNoDisplayObject);
    eglNoDisplayObject = _env->NewGlobalRef(localeglNoDisplayObject);
    jobject localeglNoSurfaceObject = _env->NewObject(eglsurfaceClass, eglsurfaceConstructor,
    jobject localeglNoSurfaceObject = _env->NewObject(eglsurfaceClass, eglsurfaceConstructor, reinterpret_cast<jlong>(EGL_NO_SURFACE));
                                                      reinterpret_cast<jlong>(EGL_NO_SURFACE));
    eglNoSurfaceObject = _env->NewGlobalRef(localeglNoSurfaceObject);
    eglNoSurfaceObject = _env->NewGlobalRef(localeglNoSurfaceObject);


    jclass eglClass = _env->FindClass("android/opengl/EGL15");
    jclass eglClass = _env->FindClass("android/opengl/EGL15");
    jfieldID noContextFieldID =
    jfieldID noContextFieldID = _env->GetStaticFieldID(eglClass, "EGL_NO_CONTEXT", "Landroid/opengl/EGLContext;");
            _env->GetStaticFieldID(eglClass, "EGL_NO_CONTEXT", "Landroid/opengl/EGLContext;");
    _env->SetStaticObjectField(eglClass, noContextFieldID, eglNoContextObject);
    _env->SetStaticObjectField(eglClass, noContextFieldID, eglNoContextObject);


    jfieldID noDisplayFieldID =
    jfieldID noDisplayFieldID = _env->GetStaticFieldID(eglClass, "EGL_NO_DISPLAY", "Landroid/opengl/EGLDisplay;");
            _env->GetStaticFieldID(eglClass, "EGL_NO_DISPLAY", "Landroid/opengl/EGLDisplay;");
    _env->SetStaticObjectField(eglClass, noDisplayFieldID, eglNoDisplayObject);
    _env->SetStaticObjectField(eglClass, noDisplayFieldID, eglNoDisplayObject);


    jfieldID noSurfaceFieldID =
    jfieldID noSurfaceFieldID = _env->GetStaticFieldID(eglClass, "EGL_NO_SURFACE", "Landroid/opengl/EGLSurface;");
            _env->GetStaticFieldID(eglClass, "EGL_NO_SURFACE", "Landroid/opengl/EGLSurface;");
    _env->SetStaticObjectField(eglClass, noSurfaceFieldID, eglNoSurfaceObject);
    _env->SetStaticObjectField(eglClass, noSurfaceFieldID, eglNoSurfaceObject);


    // EGL 1.5 init
    // EGL 1.5 init
@@ -125,16 +121,17 @@ static void nativeClassInit(JNIEnv *_env, jclass glImplClass) {
    jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
    jclass bufferClassLocal = _env->FindClass("java/nio/Buffer");
    bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);
    bufferClass = (jclass) _env->NewGlobalRef(bufferClassLocal);


    getBasePointerID =
    getBasePointerID = _env->GetStaticMethodID(nioAccessClass,
            _env->GetStaticMethodID(nioAccessClass, "getBasePointer", "(Ljava/nio/Buffer;)J");
            "getBasePointer", "(Ljava/nio/Buffer;)J");
    getBaseArrayID = _env->GetStaticMethodID(nioAccessClass, "getBaseArray",
    getBaseArrayID = _env->GetStaticMethodID(nioAccessClass,
                                             "(Ljava/nio/Buffer;)Ljava/lang/Object;");
            "getBaseArray", "(Ljava/nio/Buffer;)Ljava/lang/Object;");
    getBaseArrayOffsetID =
    getBaseArrayOffsetID = _env->GetStaticMethodID(nioAccessClass,
            _env->GetStaticMethodID(nioAccessClass, "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");
            "getBaseArrayOffset", "(Ljava/nio/Buffer;)I");


    positionID = _env->GetFieldID(bufferClass, "position", "I");
    positionID = _env->GetFieldID(bufferClass, "position", "I");
    limitID = _env->GetFieldID(bufferClass, "limit", "I");
    limitID = _env->GetFieldID(bufferClass, "limit", "I");
    elementSizeShiftID = _env->GetFieldID(bufferClass, "_elementSizeShift", "I");
    elementSizeShiftID =
        _env->GetFieldID(bufferClass, "_elementSizeShift", "I");


    jclass eglimageClassLocal = _env->FindClass("android/opengl/EGLImage");
    jclass eglimageClassLocal = _env->FindClass("android/opengl/EGLImage");
    eglimageClass = (jclass) _env->NewGlobalRef(eglimageClassLocal);
    eglimageClass = (jclass) _env->NewGlobalRef(eglimageClassLocal);
@@ -147,17 +144,16 @@ static void nativeClassInit(JNIEnv *_env, jclass glImplClass) {
    eglimageConstructor = _env->GetMethodID(eglimageClass, "<init>", "(J)V");
    eglimageConstructor = _env->GetMethodID(eglimageClass, "<init>", "(J)V");
    eglsyncConstructor = _env->GetMethodID(eglsyncClass, "<init>", "(J)V");
    eglsyncConstructor = _env->GetMethodID(eglsyncClass, "<init>", "(J)V");


    jfieldID noImageFieldID =
    jfieldID noImageFieldID = _env->GetStaticFieldID(eglClass, "EGL_NO_IMAGE", "Landroid/opengl/EGLImage;");
            _env->GetStaticFieldID(eglClass, "EGL_NO_IMAGE", "Landroid/opengl/EGLImage;");
    _env->SetStaticObjectField(eglClass, noImageFieldID, eglNoImageObject);
    _env->SetStaticObjectField(eglClass, noImageFieldID, eglNoImageObject);


    jfieldID noSyncFieldID =
    jfieldID noSyncFieldID = _env->GetStaticFieldID(eglClass, "EGL_NO_SYNC", "Landroid/opengl/EGLSync;");
            _env->GetStaticFieldID(eglClass, "EGL_NO_SYNC", "Landroid/opengl/EGLSync;");
    _env->SetStaticObjectField(eglClass, noSyncFieldID, eglNoSyncObject);
    _env->SetStaticObjectField(eglClass, noSyncFieldID, eglNoSyncObject);
}
}


static void *getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining,
static void *
                        jint *offset) {
getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remaining, jint *offset)
{
    jint position;
    jint position;
    jint limit;
    jint limit;
    jint elementSizeShift;
    jint elementSizeShift;
@@ -167,34 +163,42 @@ static void *getPointer(JNIEnv *_env, jobject buffer, jarray *array, jint *remai
    limit = _env->GetIntField(buffer, limitID);
    limit = _env->GetIntField(buffer, limitID);
    elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
    elementSizeShift = _env->GetIntField(buffer, elementSizeShiftID);
    *remaining = (limit - position) << elementSizeShift;
    *remaining = (limit - position) << elementSizeShift;
    pointer = _env->CallStaticLongMethod(nioAccessClass, getBasePointerID, buffer);
    pointer = _env->CallStaticLongMethod(nioAccessClass,
            getBasePointerID, buffer);
    if (pointer != 0L) {
    if (pointer != 0L) {
        *array = NULL;
        *array = NULL;
        return reinterpret_cast<void*>(pointer);
        return reinterpret_cast<void*>(pointer);
    }
    }
    eglimageGetHandleID = _env->GetMethodID(eglimageClass, "getNativeHandle", "()J");
    eglsyncGetHandleID = _env->GetMethodID(eglsyncClass, "getNativeHandle", "()J");


    *array = (jarray)_env->CallStaticObjectMethod(nioAccessClass, getBaseArrayID, buffer);
    *array = (jarray) _env->CallStaticObjectMethod(nioAccessClass,
    *offset = _env->CallStaticIntMethod(nioAccessClass, getBaseArrayOffsetID, buffer);
            getBaseArrayID, buffer);
    *offset = _env->CallStaticIntMethod(nioAccessClass,
            getBaseArrayOffsetID, buffer);


    return NULL;
    return NULL;
}
}


static void releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit) {
static void
    _env->ReleasePrimitiveArrayCritical(array, data, commit ? 0 : JNI_ABORT);
releasePointer(JNIEnv *_env, jarray array, void *data, jboolean commit)
{
    _env->ReleasePrimitiveArrayCritical(array, data,
                       commit ? 0 : JNI_ABORT);
}
}


static void *fromEGLHandle(JNIEnv *_env, jmethodID mid, jobject obj) {
static void *
fromEGLHandle(JNIEnv *_env, jmethodID mid, jobject obj) {
    if (obj == NULL) {
    if (obj == NULL) {
        jniThrowException(_env, "java/lang/IllegalArgumentException", "Object is set to null.");
        jniThrowException(_env, "java/lang/IllegalArgumentException",
                          "Object is set to null.");
        return nullptr;
    }
    }


    jlong handle = _env->CallLongMethod(obj, mid);
    jlong handle = _env->CallLongMethod(obj, mid);
    return reinterpret_cast<void*>(handle);
    return reinterpret_cast<void*>(handle);
}
}


static jobject toEGLHandle(JNIEnv *_env, jclass cls, jmethodID con, void *handle) {
static jobject
toEGLHandle(JNIEnv *_env, jclass cls, jmethodID con, void *handle) {
    if (cls == eglimageClass && (EGLImage)handle == EGL_NO_IMAGE) {
    if (cls == eglimageClass && (EGLImage)handle == EGL_NO_IMAGE) {
        return eglNoImageObject;
        return eglNoImageObject;
    }
    }
+1 −2
Original line number Original line Diff line number Diff line
@@ -36,8 +36,6 @@


#include <ui/ANativeObjectBase.h>
#include <ui/ANativeObjectBase.h>


static int initialized = 0;

static jclass egldisplayClass;
static jclass egldisplayClass;
static jclass eglcontextClass;
static jclass eglcontextClass;
static jclass eglsurfaceClass;
static jclass eglsurfaceClass;
@@ -104,6 +102,7 @@ fromEGLHandle(JNIEnv *_env, jmethodID mid, jobject obj) {
    if (obj == NULL){
    if (obj == NULL){
        jniThrowException(_env, "java/lang/IllegalArgumentException",
        jniThrowException(_env, "java/lang/IllegalArgumentException",
                          "Object is set to null.");
                          "Object is set to null.");
        return nullptr;
    }
    }


    return reinterpret_cast<void*>(_env->CallLongMethod(obj, mid));
    return reinterpret_cast<void*>(_env->CallLongMethod(obj, mid));
+1 −0
Original line number Original line Diff line number Diff line
@@ -54,6 +54,7 @@ exit:
    }
    }
    if (_exception) {
    if (_exception) {
        jniThrowException(_env, _exceptionType, _exceptionMessage);
        jniThrowException(_env, _exceptionType, _exceptionMessage);
        return nullptr;
    }
    }
    return toEGLHandle(_env, eglsurfaceClass, eglsurfaceConstructor, _returnValue);
    return toEGLHandle(_env, eglsurfaceClass, eglsurfaceConstructor, _returnValue);
}
}
Loading