Home | History | Annotate | Download | only in egl
      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