On 18 October 2016 at 18:33, Chad Versace <chadvers...@chromium.org> wrote:
> Add function wegl_pbuffer_init(), which initializes a struct
> wegl_surface with eglCreatePbufferSurface().
>
> Not yet used, but will be used later by the new surfaceless platform.
>
> Cc: Gurchetan Singh <gurchetansi...@chromium.org>
> Cc: Haixia Shi <h...@chromium.org>
> ---
>  src/waffle/egl/wegl_platform.c |  1 +
>  src/waffle/egl/wegl_platform.h |  2 ++
>  src/waffle/egl/wegl_surface.c  | 42 
> ++++++++++++++++++++++++++++++++++++++++++
>  src/waffle/egl/wegl_surface.h  |  5 +++++
>  4 files changed, 50 insertions(+)
>
> diff --git a/src/waffle/egl/wegl_platform.c b/src/waffle/egl/wegl_platform.c
> index 71eb29e..331cc89 100644
> --- a/src/waffle/egl/wegl_platform.c
> +++ b/src/waffle/egl/wegl_platform.c
> @@ -139,6 +139,7 @@ wegl_platform_init(struct wegl_platform *self, EGLenum 
> egl_platform)
>      // window
>      RETRIEVE_EGL_SYMBOL(eglGetConfigAttrib);
>      RETRIEVE_EGL_SYMBOL(eglCreateWindowSurface);
> +    RETRIEVE_EGL_SYMBOL(eglCreatePbufferSurface);
>      RETRIEVE_EGL_SYMBOL(eglDestroySurface);
>      RETRIEVE_EGL_SYMBOL(eglSwapBuffers);
>
> diff --git a/src/waffle/egl/wegl_platform.h b/src/waffle/egl/wegl_platform.h
> index d6788eb..a5092a5 100644
> --- a/src/waffle/egl/wegl_platform.h
> +++ b/src/waffle/egl/wegl_platform.h
> @@ -89,6 +89,8 @@ struct wegl_platform {
>      EGLSurface (*eglCreateWindowSurface)(EGLDisplay dpy, EGLConfig config,
>                                           EGLNativeWindowType win,
>                                           const EGLint *attrib_list);
> +    EGLSurface (*eglCreatePbufferSurface)(EGLDisplay dpy, EGLConfig config,
> +                                          const EGLint *attrib_list);
>      EGLBoolean (*eglDestroySurface)(EGLDisplay dpy, EGLSurface surface);
>      EGLBoolean (*eglSwapBuffers)(EGLDisplay dpy, EGLSurface surface);
>  };
> diff --git a/src/waffle/egl/wegl_surface.c b/src/waffle/egl/wegl_surface.c
> index ccd0799..0bd0857 100644
> --- a/src/waffle/egl/wegl_surface.c
> +++ b/src/waffle/egl/wegl_surface.c
> @@ -74,6 +74,48 @@ fail:
>  }
>
>  bool
> +wegl_pbuffer_init(struct wegl_surface *surf,
> +                  struct wcore_config *wc_config,
> +                  int32_t width, int32_t height)
> +{
> +    struct wegl_config *config = wegl_config(wc_config);
> +    struct wegl_display *dpy = wegl_display(wc_config->display);
> +    struct wegl_platform *plat = wegl_platform(dpy->wcore.platform);
> +    bool ok;
> +
> +    ok = wcore_window_init(&surf->wcore, wc_config);
> +    if (!ok)
> +        goto fail;
> +
This hunk (and most of the series really) will clash with a fair bit
of cleanups I have on the list.
In this particular case - the wcore_window_init API has 'lost' it's
[always return true] return type.

Re-basing either way will be fun, so let's get the new platform in
first and then consider the cleanups.
Please ?

Emil
_______________________________________________
waffle mailing list
waffle@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/waffle

Reply via email to