1 /* EGLDisplay eglGetPlatformDisplay ( EGLenum platform, EGLAttrib native_display, const EGLAttrib *attrib_list ) */ 2 static jobject 3 android_eglGetPlatformDisplay 4 (JNIEnv *_env, jobject _this, jint platform, jlong native_display, jlongArray attrib_list_ref, jint offset) { 5 jint _exception = 0; 6 const char * _exceptionType = NULL; 7 const char * _exceptionMessage = NULL; 8 EGLDisplay _returnValue = (EGLDisplay) 0; 9 jlong *attrib_list_base = (jlong *) 0; 10 jint _remaining; 11 WrappedEGLAttribs attrib_list; 12 13 if (!attrib_list_ref) { 14 _exception = 1; 15 _exceptionType = "java/lang/IllegalArgumentException"; 16 _exceptionMessage = "attrib_list == null"; 17 goto exit; 18 } 19 if (offset < 0) { 20 _exception = 1; 21 _exceptionType = "java/lang/IllegalArgumentException"; 22 _exceptionMessage = "offset < 0"; 23 goto exit; 24 } 25 _remaining = _env->GetArrayLength(attrib_list_ref) - offset; 26 attrib_list_base = (jlong *) 27 _env->GetLongArrayElements(attrib_list_ref, (jboolean *)0); 28 attrib_list.init(attrib_list_base + offset, _remaining); 29 30 _returnValue = eglGetPlatformDisplay( 31 (EGLenum)platform, 32 (void *)native_display, 33 attrib_list.attribs 34 ); 35 36 exit: 37 if (attrib_list_base) { 38 _env->ReleaseLongArrayElements(attrib_list_ref, (jlong*)attrib_list_base, 39 JNI_ABORT); 40 } 41 if (_exception) { 42 jniThrowException(_env, _exceptionType, _exceptionMessage); 43 return nullptr; 44 } 45 return toEGLHandle(_env, egldisplayClass, egldisplayConstructor, _returnValue); 46 } 47 48