EGL_MESA_screen_surface version 4
Brian Paul
brian.paul at tungstengraphics.com
Wed Mar 23 15:38:34 PST 2005
Michel Danzer wrote:
> On Wed, 2005-03-23 at 08:19 -0700, Brian Paul wrote:
>
>>Issues
>>
>> 1. Should EGL_INTERLACE be a supported mode attribute?
>
>
> [...]
>
>
>> Arguments for:
>>
>> An interlaced display can be of use without considering video
>> material. Being able to query whether a screen is operating in
>> interlaced mode can be used by applications to control their
>> drawing. For example: avoid drawing 1-pixel-wide horizontal lines
>> if screen is interlaced. [B. Paul]
>
>
> Good point, I can agree to this.
>
>
>
>> 8. Should eglQueryModeStringMESA() be included? This function returns
>> a human-readable string which corresponds to an EGLMode.
>>
>> Arguments for:
>>
>> A mode name such as "HDTV-720P" might mean more to users than
>> "1280x720 at 60Hz" if the later were generated via code.
>
>
> I agree, but I think it should be made clear that the mode names are
> implementation specific, subject to change and don't have any meaning
> beyond being unique for each mode. Applications should never try to
> identify modes by name.
I'll strengthen the language for that.
>> EGLSurface eglCreateScreenSurfaceMESA(EGLDisplay dpy, EGLConfig config,
>> const EGLint *attrib_list)
>>
>> Create a surface that can be displayed on a screen. <attrib_list> is
>> an array of token/value pairs terminated with EGL_NONE. Valid tokens
>> include:
>>
>> Name Description
>> ---------------- --------------------------------
>> EGL_WIDTH desired surface width in pixels
>> EGL_HEIGHT desired surface height in pixels
>>
>> Any other token will generate the error EGL_BAD_ATTRIBUTE.
>
>
> What will happen if either of these attributes is omitted?
Good question. For eglCreatePbufferSurface(), the default width and
height are zero. Since there's no way to resize a Pbuffer surface,
that seems sort of useless. Oh well. Is there any objection to
simply doing the same thing for screen surfaces?
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?
-Brian
More information about the dri-egl
mailing list