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

Commit 2aa3aa68 authored by Mathias Agopian's avatar Mathias Agopian Committed by Android (Google) Code Review
Browse files

Merge "improve glgen tool to support EGL1.4"

parents e7db724b 66a42db8
Loading
Loading
Loading
Loading
+37 −9
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ mkdir -p out/javax/microedition/khronos/opengles
mkdir -p out/com/google/android/gles_jni
mkdir -p out/android/app
mkdir -p out/android/graphics
mkdir -p out/android/view
mkdir -p out/android/opengl
mkdir -p out/android/content
mkdir -p out/android/content/pm
@@ -24,15 +25,33 @@ echo "public interface Canvas {}" >> out/android/graphics/Canvas.java
echo "package android.app; import android.content.pm.IPackageManager; public class AppGlobals { public static IPackageManager getPackageManager() { return null;} }" > out/android/app/AppGlobals.java
# echo "package android.content; import android.content.pm.PackageManager; public interface Context { public PackageManager getPackageManager(); }" > out/android/content/Context.java
echo "package android.content.pm; public class ApplicationInfo {public int targetSdkVersion;}" > out/android/content/pm/ApplicationInfo.java
echo "package android.content.pm; public interface IPackageManager {ApplicationInfo getApplicationInfo(java.lang.String packageName, int flags) throws android.os.RemoteException;}" > out/android/content/pm/IPackageManager.java
echo "package android.content.pm; public interface IPackageManager {ApplicationInfo getApplicationInfo(java.lang.String packageName, int flags, java.lang.String userId) throws android.os.RemoteException;}" > out/android/content/pm/IPackageManager.java
echo "package android.os; public class Build {public static class VERSION_CODES { public static final int CUPCAKE = 3;};	}" > out/android/os/Build.java
echo "package android.os; public class UserId {public static String myUserId() { return \"\"; } }" > out/android/os/UserId.java
echo "package android.os; public class RemoteException extends Exception {}" > out/android/os/RemoteException.java
echo "package android.util; public class Log {public static void w(String a, String b) {} public static void e(String a, String b) {}}" > out/android/util/Log.java

echo "package android.opengl; public abstract class EGLObjectHandle { public int getHandle() { return 0; } }" > out/android/opengl/EGLObjectHandle.java
echo "package android.opengl; public class EGLSurface extends EGLObjectHandle {  }" > out/android/opengl/EGLSurface.java
echo "package android.opengl; public class EGLContext extends EGLObjectHandle {  }" > out/android/opengl/EGLContext.java
echo "package android.opengl; public class EGLDisplay extends EGLObjectHandle {  }" > out/android/opengl/EGLDisplay.java
echo "package android.opengl; public class EGLConfig extends EGLObjectHandle {  }" > out/android/opengl/EGLConfig.java


echo "package android.graphics;" > out/android/graphics/SurfaceTexture.java
echo "public interface SurfaceTexture {}" >> out/android/graphics/SurfaceTexture.java
echo "package android.view;" > out/android/view/SurfaceView.java
echo "public interface SurfaceView { SurfaceHolder getHolder(); }" >> out/android/view/SurfaceView.java
echo "package android.view;" > out/android/view/Surface.java
echo "public interface Surface {}" >> out/android/view/Surface.java
echo "package android.view;" > out/android/view/SurfaceHolder.java
echo "public interface SurfaceHolder { Surface getSurface(); }" >> out/android/view/SurfaceHolder.java


GLFILE=out/javax/microedition/khronos/opengles/GL.java
cp stubs/jsr239/GLHeader.java-if $GLFILE

GLGEN_FILES="CFunc.java CType.java CodeEmitter.java GenerateGL.java GenerateGLES.java GLESCodeEmitter.java JFunc.java JniCodeEmitter.java JType.java Jsr239CodeEmitter.java ParameterChecker.java"
GLGEN_FILES="CFunc.java CType.java CodeEmitter.java EGLCodeEmitter.java GenerateEGL.java GenerateGL.java GenerateGLES.java GLESCodeEmitter.java JFunc.java JniCodeEmitter.java JType.java Jsr239CodeEmitter.java ParameterChecker.java"

pushd src > /dev/null
javac ${GLGEN_FILES}
@@ -59,11 +78,19 @@ if [ $JAVA_RESULT -ne 0 ]; then
    exit $JAVA_RESULT
fi

echo "Generating static EGL 1.4 bindings"
java -classpath src GenerateEGL
JAVA_RESULT=$?
if [ $JAVA_RESULT -ne 0 ]; then
    echo "Could not run GenerateEGL."
    exit $JAVA_RESULT
fi

rm src/*.class

pushd out > /dev/null
mkdir classes
javac -d classes com/google/android/gles_jni/GLImpl.java javax/microedition/khronos/opengles/GL10.java javax/microedition/khronos/opengles/GL10Ext.java javax/microedition/khronos/opengles/GL11.java javax/microedition/khronos/opengles/GL11Ext.java javax/microedition/khronos/opengles/GL11ExtensionPack.java android/opengl/GLES10.java android/opengl/GLES10Ext.java android/opengl/GLES11.java android/opengl/GLES11Ext.java android/opengl/GLES20.java
javac -d classes android/opengl/EGL14.java com/google/android/gles_jni/GLImpl.java javax/microedition/khronos/opengles/GL10.java javax/microedition/khronos/opengles/GL10Ext.java javax/microedition/khronos/opengles/GL11.java javax/microedition/khronos/opengles/GL11Ext.java javax/microedition/khronos/opengles/GL11ExtensionPack.java android/opengl/GLES10.java android/opengl/GLES10Ext.java android/opengl/GLES11.java android/opengl/GLES11Ext.java android/opengl/GLES20.java
popd > /dev/null
JAVA_RESULT=$?
if [ $JAVA_RESULT -ne 0 ]; then
@@ -90,6 +117,7 @@ compareGenerated() {
    if cmp -s $1/$3 $2/$3 ; then
        echo "#    " $3 unchanged
    else
        echo "#    " $3 changed
        if [ $SAID_PLEASE == "0" ] ; then
            echo Please evaluate the following commands:
            echo
@@ -101,18 +129,18 @@ compareGenerated() {
    fi
}

compareGenerated ../../../core/jni generated/C com_google_android_gles_jni_GLImpl.cpp
compareGenerated ../../java/com/google/android/gles_jni generated/com/google/android/gles_jni GLImpl.java
compareGenerated ../../../../base/core/jni generated/C com_google_android_gles_jni_GLImpl.cpp
compareGenerated ../../../../base/opengl/java/com/google/android/gles_jni generated/com/google/android/gles_jni GLImpl.java

for x in GL.java GL10.java GL10Ext.java GL11.java GL11Ext.java GL11ExtensionPack.java
do
    compareGenerated ../../java/javax/microedition/khronos/opengles generated/javax/microedition/khronos/opengles $x
    compareGenerated ../../../../base/opengl/java/javax/microedition/khronos/opengles generated/javax/microedition/khronos/opengles $x
done

for x in GLES10 GLES10Ext GLES11 GLES11Ext GLES20
for x in EGL14 GLES10 GLES10Ext GLES11 GLES11Ext GLES20
do
    compareGenerated ../../java/android/opengl generated/android/opengl ${x}.java
    compareGenerated ../../../core/jni generated/C android_opengl_${x}.cpp
    compareGenerated ../../../../base/opengl/java/android/opengl generated/android/opengl ${x}.java
    compareGenerated ../../../../base/core/jni generated/C android_opengl_${x}.cpp
done

if [ $KEEP_GENERATED == "0" ] ; then
+33 −0
Original line number Diff line number Diff line
EGLint eglGetError ( void )
EGLDisplay eglGetDisplay ( EGLNativeDisplayType display_id )
EGLBoolean eglInitialize ( EGLDisplay dpy, EGLint *major, EGLint *minor )
EGLBoolean eglTerminate ( EGLDisplay dpy )
const char * eglQueryString ( EGLDisplay dpy, EGLint name )
EGLBoolean eglGetConfigs ( EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config )
EGLBoolean eglChooseConfig ( EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config )
EGLBoolean eglGetConfigAttrib ( EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value )
EGLSurface eglCreateWindowSurface ( EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list )
EGLSurface eglCreatePbufferSurface ( EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list )
EGLSurface eglCreatePixmapSurface ( EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list )
EGLBoolean eglDestroySurface ( EGLDisplay dpy, EGLSurface surface )
EGLBoolean eglQuerySurface ( EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value )
EGLBoolean eglBindAPI ( EGLenum api )
EGLenum eglQueryAPI ( void )
EGLBoolean eglWaitClient ( void )
EGLBoolean eglReleaseThread ( void )
EGLSurface eglCreatePbufferFromClientBuffer ( EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list )
EGLBoolean eglSurfaceAttrib ( EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value )
EGLBoolean eglBindTexImage ( EGLDisplay dpy, EGLSurface surface, EGLint buffer )
EGLBoolean eglReleaseTexImage ( EGLDisplay dpy, EGLSurface surface, EGLint buffer )
EGLBoolean eglSwapInterval ( EGLDisplay dpy, EGLint interval )
EGLContext eglCreateContext ( EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list )
EGLBoolean eglDestroyContext ( EGLDisplay dpy, EGLContext ctx )
EGLBoolean eglMakeCurrent ( EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx )
EGLContext eglGetCurrentContext ( void )
EGLSurface eglGetCurrentSurface ( EGLint readdraw )
EGLDisplay eglGetCurrentDisplay ( void )
EGLBoolean eglQueryContext ( EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value )
EGLBoolean eglWaitGL ( void )
EGLBoolean eglWaitNative ( EGLint engine )
EGLBoolean eglSwapBuffers ( EGLDisplay dpy, EGLSurface surface )
EGLBoolean eglCopyBuffers ( EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target )
+13 −0
Original line number Diff line number Diff line
eglInitialize check major 1 check minor 1
eglGetConfigs check configs config_size
eglChooseConfig check configs config_size check num_config 1 sentinel attrib_list EGL_NONE
eglGetConfigAttrib check value 1
//STUB function: //eglCreateWindowSurface sentinel attrib_list EGL_NONE
eglCreatePbufferSurface sentinel attrib_list EGL_NONE
//unsupported: eglCreatePixmapSurface sentinel attrib_list EGL_NONE
eglCreatePixmapSurface unsupported
eglCopyBuffers unsupported
eglQuerySurface check value 1
eglCreatePbufferFromClientBuffer sentinel attrib_list EGL_NONE
eglCreateContext sentinel attrib_list EGL_NONE
eglQueryContext check value 1
+8 −0
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ public class CFunc {

    boolean hasPointerArg = false;
    boolean hasTypedPointerArg = false;
    boolean hasEGLHandleArg = false;

    public CFunc(String original) {
        this.original = original;
@@ -63,6 +64,9 @@ public class CFunc {
        if (argType.isTypedPointer()) {
            hasTypedPointerArg = true;
        }
        if (argType.isEGLHandle()) {
            hasEGLHandleArg = true;
        }
    }

    public int getNumArgs() {
@@ -95,6 +99,10 @@ public class CFunc {
        return hasTypedPointerArg;
    }

    public boolean hasEGLHandleArg() {
        return hasEGLHandleArg;
    }

    @Override
    public String toString() {
        String s =  "Function " + fname + " returns " + ftype + ": ";
+10 −0
Original line number Diff line number Diff line
@@ -53,6 +53,16 @@ public class CType {
    return isPointer;
    }

    public boolean isEGLHandle() {
        if(baseType.equals("EGLContext")
           || baseType.equals("EGLConfig")
           || baseType.equals("EGLSurface")
           || baseType.equals("EGLDisplay")) {
               return true;
        }
        return false;
    }

    boolean isVoid() {
    String baseType = getBaseType();
    return baseType.equals("GLvoid") ||
Loading