1     // C function EGLSurface eglCreateWindowSurface ( EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list )
2 
_eglCreateWindowSurface( EGLDisplay dpy, EGLConfig config, Object win, int[] attrib_list, int offset )3     private static native EGLSurface _eglCreateWindowSurface(
4         EGLDisplay dpy,
5         EGLConfig config,
6         Object win,
7         int[] attrib_list,
8         int offset
9     );
10 
_eglCreateWindowSurfaceTexture( EGLDisplay dpy, EGLConfig config, Object win, int[] attrib_list, int offset )11     private static native EGLSurface _eglCreateWindowSurfaceTexture(
12         EGLDisplay dpy,
13         EGLConfig config,
14         Object win,
15         int[] attrib_list,
16         int offset
17     );
18 
eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, Object win, int[] attrib_list, int offset )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