// C function EGLSurface eglCreateWindowSurface ( EGLDisplay dpy, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list ) | |
private static native EGLSurface _eglCreateWindowSurface( | |
EGLDisplay dpy, | |
EGLConfig config, | |
Object win, | |
int[] attrib_list, | |
int offset | |
); | |
private static native EGLSurface _eglCreateWindowSurfaceTexture( | |
EGLDisplay dpy, | |
EGLConfig config, | |
Object win, | |
int[] attrib_list, | |
int offset | |
); | |
public static EGLSurface eglCreateWindowSurface(EGLDisplay dpy, | |
EGLConfig config, | |
Object win, | |
int[] attrib_list, | |
int offset | |
){ | |
Surface sur = null; | |
if (win instanceof SurfaceView) { | |
SurfaceView surfaceView = (SurfaceView)win; | |
sur = surfaceView.getHolder().getSurface(); | |
} else if (win instanceof SurfaceHolder) { | |
SurfaceHolder holder = (SurfaceHolder)win; | |
sur = holder.getSurface(); | |
} else if (win instanceof Surface) { | |
sur = (Surface) win; | |
} | |
EGLSurface surface; | |
if (sur != null) { | |
surface = _eglCreateWindowSurface(dpy, config, sur, attrib_list, offset); | |
} else if (win instanceof SurfaceTexture) { | |
surface = _eglCreateWindowSurfaceTexture(dpy, config, | |
win, attrib_list, offset); | |
} else { | |
throw new java.lang.UnsupportedOperationException( | |
"eglCreateWindowSurface() can only be called with an instance of " + | |
"Surface, SurfaceView, SurfaceTexture or SurfaceHolder at the moment, " + | |
"this will be fixed later."); | |
} | |
return surface; | |
} |