EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay display, EGLConfig config, EGLNativeWindowType win, const EGLint *attrib_list) { VALIDATE_DISPLAY_RETURN(display,EGL_NO_SURFACE); VALIDATE_CONFIG_RETURN(config,EGL_NO_SURFACE); if(!(cfg->surfaceType() & EGL_WINDOW_BIT)) { RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_MATCH); } if(!dpy->nativeType()->isValidNativeWin(win)) { RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_NATIVE_WINDOW); } if(!EglValidate::noAttribs(attrib_list)) { RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ATTRIBUTE); } if(EglWindowSurface::alreadyAssociatedWithConfig(win)) { RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ALLOC); } unsigned int width,height; if(!dpy->nativeType()->checkWindowPixelFormatMatch( win, cfg->nativeFormat(), &width, &height)) { RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ALLOC); } SurfacePtr wSurface(new EglWindowSurface(dpy, win,cfg,width,height)); if(!wSurface.Ptr()) { RETURN_ERROR(EGL_NO_SURFACE,EGL_BAD_ALLOC); } return dpy->addSurface(wSurface); }
SDL_Rect getRect(void) { return (wSurface()->clip_rect); }