121 lines
3.6 KiB
Plaintext
121 lines
3.6 KiB
Plaintext
Name
|
|
|
|
MESA_platform_surfaceless
|
|
|
|
Name Strings
|
|
|
|
EGL_MESA_platform_surfaceless
|
|
|
|
Contributors
|
|
|
|
Chad Versace <chadversary@google.com>
|
|
Haixia Shi <hshi@google.com>
|
|
Stéphane Marchesin <marcheu@google.com>
|
|
Zach Reizner <zachr@chromium.org>
|
|
Gurchetan Singh <gurchetansingh@google.com>
|
|
|
|
Contacts
|
|
|
|
Chad Versace <chadversary@google.com>
|
|
|
|
Status
|
|
|
|
DRAFT
|
|
|
|
Version
|
|
|
|
Version 2, 2016-10-13
|
|
|
|
Number
|
|
|
|
EGL Extension #TODO
|
|
|
|
Extension Type
|
|
|
|
EGL client extension
|
|
|
|
Dependencies
|
|
|
|
Requires EGL 1.5 or later; or EGL 1.4 with EGL_EXT_platform_base.
|
|
|
|
This extension is written against the EGL 1.5 Specification (draft
|
|
20140122).
|
|
|
|
This extension interacts with EGL_EXT_platform_base as follows. If the
|
|
implementation supports EGL_EXT_platform_base, then text regarding
|
|
eglGetPlatformDisplay applies also to eglGetPlatformDisplayEXT;
|
|
eglCreatePlatformWindowSurface to eglCreatePlatformWindowSurfaceEXT; and
|
|
eglCreatePlatformPixmapSurface to eglCreatePlatformPixmapSurfaceEXT.
|
|
|
|
Overview
|
|
|
|
This extension defines a new EGL platform, the "surfaceless" platform. This
|
|
platfom's defining property is that it has no native surfaces, and hence
|
|
neither eglCreatePlatformWindowSurface nor eglCreatePlatformPixmapSurface
|
|
can be used. The platform is independent of any native window system.
|
|
|
|
The platform's intended use case is for enabling OpenGL and OpenGL ES
|
|
applications on systems where no window system exists. However, the
|
|
platform's permitted usage is not restricted to this case. Since the
|
|
platform is independent of any native window system, it may also be used on
|
|
systems where a window system is present.
|
|
|
|
New Types
|
|
|
|
None
|
|
|
|
New Procedures and Functions
|
|
|
|
None
|
|
|
|
New Tokens
|
|
|
|
Accepted as the <platform> argument of eglGetPlatformDisplay:
|
|
|
|
EGL_PLATFORM_SURFACELESS_MESA 0x31DD
|
|
|
|
Additions to the EGL Specification
|
|
|
|
None.
|
|
|
|
New Behavior
|
|
|
|
To determine if the EGL implementation supports this extension, clients
|
|
should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY.
|
|
|
|
To obtain an EGLDisplay on the surfaceless platform, call
|
|
eglGetPlatformDisplay with <platform> set to EGL_PLATFORM_SURFACELESS_MESA.
|
|
The <native_display> parameter must be EGL_DEFAULT_DISPLAY.
|
|
|
|
eglCreatePlatformWindowSurface fails when called with a <display> that
|
|
belongs to the surfaceless platform. It returns EGL_NO_SURFACE and
|
|
generates EGL_BAD_NATIVE_WINDOW. The justification for this unconditional
|
|
failure is that the surfaceless platform has no native windows, and
|
|
therefore the <native_window> parameter is always invalid.
|
|
|
|
Likewise, eglCreatePlatformPixmapSurface also fails when called with a
|
|
<display> that belongs to the surfaceless platform. It returns
|
|
EGL_NO_SURFACE and generates EGL_BAD_NATIVE_PIXMAP.
|
|
|
|
The surfaceless platform imposes no platform-specific restrictions on the
|
|
creation of pbuffers, as eglCreatePbufferSurface has no native surface
|
|
parameter. Specifically, if the EGLDisplay advertises an EGLConfig whose
|
|
EGL_SURFACE_TYPE attribute contains EGL_PBUFFER_BIT, then the EGLDisplay
|
|
permits the creation of pbuffers with that config.
|
|
|
|
Issues
|
|
|
|
None.
|
|
|
|
Revision History
|
|
|
|
Version 2, 2016-10-13 (Chad Versace)
|
|
- Assign enum values
|
|
- Define interfactions with EGL 1.4 and EGL_EXT_platform_base.
|
|
- Add Gurchetan as contributor, as he implemented the pbuffer support.
|
|
|
|
Version 1, 2016-09-23 (Chad Versace)
|
|
- Initial version
|
|
- Posted for review at
|
|
https://lists.freedesktop.org/archives/mesa-dev/2016-September/129549.html
|