Loading opengl/tools/glgen/specs/egl/EGL15.spec +2 −1 Original line number Diff line number Diff line EGLSync eglCreateSync ( EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list ) // eglGetSyncAttrib pulled in with eglCreateSync stubs // EGLBoolean eglGetSyncAttrib ( EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value ) EGLBoolean eglDestroySync ( EGLDisplay dpy, EGLSync sync ) EGLint eglClientWaitSync ( EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout ) EGLBoolean eglGetSyncAttrib ( EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value ) // NOTE: native_display isn't actually an EGLAttrib. Using EGLAttrib // so that the generate creates mostly correct code (do not want a buffer) // have to manually change cast to (void *) in generated code that calls Loading opengl/tools/glgen/stubs/egl/EGL15cHeader.cpp +19 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <utils/misc.h> #include <assert.h> #include <vector> #include <EGL/egl.h> #include <ui/ANativeObjectBase.h> Loading Loading @@ -206,4 +207,22 @@ toEGLHandle(JNIEnv *_env, jclass cls, jmethodID con, void *handle) { return _env->NewObject(cls, con, reinterpret_cast<jlong>(handle)); } struct WrappedEGLAttribs { private: std::vector<EGLAttrib> backing; // only for 32-bit public: EGLAttrib *attribs; WrappedEGLAttribs(): attribs(nullptr) { }; void init(jlong *array, jint size) { if (sizeof(EGLAttrib) != sizeof(jlong)) { for (jint i = 0; i < size; ++i) { backing.push_back(array[i]); } attribs = backing.data(); } else { attribs = (EGLAttrib*)array; } } }; // -------------------------------------------------------------------------- opengl/tools/glgen/stubs/egl/eglCreateImage.cpp 0 → 100644 +50 −0 Original line number Diff line number Diff line /* EGLImage eglCreateImage ( EGLDisplay dpy, EGLContext context, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list ) */ static jobject android_eglCreateImage (JNIEnv *_env, jobject _this, jobject dpy, jobject context, jint target, jlong buffer, jlongArray attrib_list_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; EGLImage _returnValue = (EGLImage) 0; EGLDisplay dpy_native = (EGLDisplay) fromEGLHandle(_env, egldisplayGetHandleID, dpy); EGLContext context_native = (EGLContext) fromEGLHandle(_env, eglcontextGetHandleID, context); jlong *attrib_list_base = (jlong *) 0; jint _remaining; WrappedEGLAttribs attrib_list; if (!attrib_list_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "attrib_list == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(attrib_list_ref) - offset; attrib_list_base = (jlong *) _env->GetLongArrayElements(attrib_list_ref, (jboolean *)0); attrib_list.init(attrib_list_base + offset, _remaining); _returnValue = eglCreateImage( (EGLDisplay)dpy_native, (EGLContext)context_native, (EGLenum)target, (EGLClientBuffer)buffer, attrib_list.attribs ); exit: if (attrib_list_base) { _env->ReleaseLongArrayElements(attrib_list_ref, (jlong*)attrib_list_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); return nullptr; } return toEGLHandle(_env, eglimageClass, eglimageConstructor, _returnValue); } opengl/tools/glgen/stubs/egl/eglCreateImage.java 0 → 100644 +11 −0 Original line number Diff line number Diff line // C function EGLImage eglCreateImage ( EGLDisplay dpy, EGLContext context, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list ) public static native EGLImage eglCreateImage( EGLDisplay dpy, EGLContext context, int target, long buffer, long[] attrib_list, int offset ); opengl/tools/glgen/stubs/egl/eglCreateImage.nativeReg 0 → 100644 +1 −0 Original line number Diff line number Diff line {"eglCreateImage", "(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLContext;IJ[JI)Landroid/opengl/EGLImage;", (void *) android_eglCreateImage }, Loading
opengl/tools/glgen/specs/egl/EGL15.spec +2 −1 Original line number Diff line number Diff line EGLSync eglCreateSync ( EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list ) // eglGetSyncAttrib pulled in with eglCreateSync stubs // EGLBoolean eglGetSyncAttrib ( EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value ) EGLBoolean eglDestroySync ( EGLDisplay dpy, EGLSync sync ) EGLint eglClientWaitSync ( EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout ) EGLBoolean eglGetSyncAttrib ( EGLDisplay dpy, EGLSync sync, EGLint attribute, EGLAttrib *value ) // NOTE: native_display isn't actually an EGLAttrib. Using EGLAttrib // so that the generate creates mostly correct code (do not want a buffer) // have to manually change cast to (void *) in generated code that calls Loading
opengl/tools/glgen/stubs/egl/EGL15cHeader.cpp +19 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <utils/misc.h> #include <assert.h> #include <vector> #include <EGL/egl.h> #include <ui/ANativeObjectBase.h> Loading Loading @@ -206,4 +207,22 @@ toEGLHandle(JNIEnv *_env, jclass cls, jmethodID con, void *handle) { return _env->NewObject(cls, con, reinterpret_cast<jlong>(handle)); } struct WrappedEGLAttribs { private: std::vector<EGLAttrib> backing; // only for 32-bit public: EGLAttrib *attribs; WrappedEGLAttribs(): attribs(nullptr) { }; void init(jlong *array, jint size) { if (sizeof(EGLAttrib) != sizeof(jlong)) { for (jint i = 0; i < size; ++i) { backing.push_back(array[i]); } attribs = backing.data(); } else { attribs = (EGLAttrib*)array; } } }; // --------------------------------------------------------------------------
opengl/tools/glgen/stubs/egl/eglCreateImage.cpp 0 → 100644 +50 −0 Original line number Diff line number Diff line /* EGLImage eglCreateImage ( EGLDisplay dpy, EGLContext context, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list ) */ static jobject android_eglCreateImage (JNIEnv *_env, jobject _this, jobject dpy, jobject context, jint target, jlong buffer, jlongArray attrib_list_ref, jint offset) { jint _exception = 0; const char * _exceptionType = NULL; const char * _exceptionMessage = NULL; EGLImage _returnValue = (EGLImage) 0; EGLDisplay dpy_native = (EGLDisplay) fromEGLHandle(_env, egldisplayGetHandleID, dpy); EGLContext context_native = (EGLContext) fromEGLHandle(_env, eglcontextGetHandleID, context); jlong *attrib_list_base = (jlong *) 0; jint _remaining; WrappedEGLAttribs attrib_list; if (!attrib_list_ref) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "attrib_list == null"; goto exit; } if (offset < 0) { _exception = 1; _exceptionType = "java/lang/IllegalArgumentException"; _exceptionMessage = "offset < 0"; goto exit; } _remaining = _env->GetArrayLength(attrib_list_ref) - offset; attrib_list_base = (jlong *) _env->GetLongArrayElements(attrib_list_ref, (jboolean *)0); attrib_list.init(attrib_list_base + offset, _remaining); _returnValue = eglCreateImage( (EGLDisplay)dpy_native, (EGLContext)context_native, (EGLenum)target, (EGLClientBuffer)buffer, attrib_list.attribs ); exit: if (attrib_list_base) { _env->ReleaseLongArrayElements(attrib_list_ref, (jlong*)attrib_list_base, JNI_ABORT); } if (_exception) { jniThrowException(_env, _exceptionType, _exceptionMessage); return nullptr; } return toEGLHandle(_env, eglimageClass, eglimageConstructor, _returnValue); }
opengl/tools/glgen/stubs/egl/eglCreateImage.java 0 → 100644 +11 −0 Original line number Diff line number Diff line // C function EGLImage eglCreateImage ( EGLDisplay dpy, EGLContext context, EGLenum target, EGLClientBuffer buffer, const EGLAttrib *attrib_list ) public static native EGLImage eglCreateImage( EGLDisplay dpy, EGLContext context, int target, long buffer, long[] attrib_list, int offset );
opengl/tools/glgen/stubs/egl/eglCreateImage.nativeReg 0 → 100644 +1 −0 Original line number Diff line number Diff line {"eglCreateImage", "(Landroid/opengl/EGLDisplay;Landroid/opengl/EGLContext;IJ[JI)Landroid/opengl/EGLImage;", (void *) android_eglCreateImage },