EGL_MESA_screen_surface version 4

Jon Smirl jonsmirl at gmail.com
Wed Mar 23 17:32:00 PST 2005


On Wed, 23 Mar 2005 16:38:34 -0700, Brian Paul
<brian.paul at tungstengraphics.com> wrote:
> Actually, here's a scenario to consider.  Suppose one wants to change
> the screen's size in the EGL application.  Also suppose there's a
> hardware restriction such that only one screen surface can exist at a
> time (either for lack of memory or because of memory layout restrictions).
> 
> The basic idea is that the currently displayed screen surface must be
> deallocated before a new one can be created.  Can people cope with
> that?  Or should there be a function to resize an existing screen surface?

Why wouldn't you do something like:
eglShowSurfaceMESA(EGL_NO_SURFACE, EGL_NO_MODE_MESA);
destroy the surface
create a new one
eglShowSurfaceMESA(the new surface, mode);

Did you note somewhere that it is illegal to destroy a surface while
it is being displayed?

Why is there a eglCreateScreenSurfaceMESA() in addition to
elgCreateSurface(), shouldn't all surfaces be created equal? Then if
you try to scanout a surface first it needs to compatible with the
mode. Next Mesa needs to move it into VRAM if it already isn't there.
There should be no reason that surfaces that aren't being scanned out
can't migrate to AGP memory.

In the composited desktop model all top level window get their own
surface then the desktop composits them into a single image. Now let's
assume these top level windows are compatible with monitor modes. If
all surfaces are created equal I should be able to transparently make
each top level window full screen and rotate through them.

-- 
Jon Smirl
jonsmirl at gmail.com


More information about the dri-egl mailing list