Home | History | Annotate | Download | only in egl
      1     // C function EGLSurface eglCreateWindowSurface ( EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list )
      2 
      3     private static native EGLSurface _eglCreateWindowSurface(
      4         EGLDisplay dpy,
      5         EGLConfig config,
      6         Object win,
      7         int[] attrib_list,
      8         int offset
      9     );
     10 
     11     private static native EGLSurface _eglCreateWindowSurfaceTexture(
     12         EGLDisplay dpy,
     13         EGLConfig config,
     14         Object win,
     15         int[] attrib_list,
     16         int offset
     17     );
     18 
     19     public static EGLSurface eglCreateWindowSurface(EGLDisplay dpy,
     20         EGLConfig config,
     21         Object win,
     22         int[] attrib_list,
     23         int offset
     24     ){
     25         Surface sur = null;
     26         if (win instanceof SurfaceView) {
     27             SurfaceView surfaceView = (SurfaceView)win;
     28             sur = surfaceView.getHolder().getSurface();
     29         } else if (win instanceof SurfaceHolder) {
     30             SurfaceHolder holder = (SurfaceHolder)win;
     31             sur = holder.getSurface();
     32         } else if (win instanceof Surface) {
     33             sur = (Surface) win;
     34         }
     35 
     36         EGLSurface surface;
     37         if (sur != null) {
     38             surface = _eglCreateWindowSurface(dpy, config, sur, attrib_list, offset);
     39         } else if (win instanceof SurfaceTexture) {
     40             surface = _eglCreateWindowSurfaceTexture(dpy, config,
     41                     win, attrib_list, offset);
     42         } else {
     43             throw new java.lang.UnsupportedOperationException(
     44                 "eglCreateWindowSurface() can only be called with an instance of " +
     45                 "Surface, SurfaceView, SurfaceTexture or SurfaceHolder at the moment, " +
     46                 "this will be fixed later.");
     47         }
     48 
     49         return surface;
     50     }
     51