mirror of
https://review.haiku-os.org/haiku
synced 2024-11-23 07:18:40 +01:00
3rdparty/proposals: Add draft WIP khronos proposal
Change-Id: I48eed026db138e4f83cb7f5e0403f0fcaaa401f2
This commit is contained in:
parent
5bf437dd89
commit
ed24eb5ff1
100
3rdparty/proposals/khronos/EGL_KHR_platform_haiku.txt
vendored
Normal file
100
3rdparty/proposals/khronos/EGL_KHR_platform_haiku.txt
vendored
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
Name
|
||||||
|
|
||||||
|
KHR_platform_haiku
|
||||||
|
|
||||||
|
Name Strings
|
||||||
|
|
||||||
|
EGL_KHR_platform_haiku
|
||||||
|
|
||||||
|
Contributors
|
||||||
|
|
||||||
|
Alexander von Gluck IV <alex@terarocket.io>
|
||||||
|
|
||||||
|
Contacts
|
||||||
|
|
||||||
|
Alexander von Gluck IV <alex@terarocket.io>
|
||||||
|
|
||||||
|
Status
|
||||||
|
|
||||||
|
Draft.
|
||||||
|
|
||||||
|
Version
|
||||||
|
|
||||||
|
Version 1, 2023/03/29
|
||||||
|
|
||||||
|
Number
|
||||||
|
|
||||||
|
EGL Extension TBD
|
||||||
|
|
||||||
|
Extension Type
|
||||||
|
|
||||||
|
EGL client extension
|
||||||
|
|
||||||
|
Dependencies
|
||||||
|
|
||||||
|
EGL 1.5 is required.
|
||||||
|
|
||||||
|
This extension is written against the EGL 1.5 Specification (draft
|
||||||
|
20140122).
|
||||||
|
|
||||||
|
Overview
|
||||||
|
|
||||||
|
This extension defines how to create EGL resources from native Haiku
|
||||||
|
resources using the EGL 1.5 platform functionality.
|
||||||
|
|
||||||
|
Mesa has tracked _EGL_PLATFORM_HAIKU internally for quite some time.
|
||||||
|
|
||||||
|
libglvnd has received patches for basic Haiku support
|
||||||
|
|
||||||
|
New Types
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
New Procedures and Functions
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
|
New Tokens
|
||||||
|
|
||||||
|
Accepted as the <platform> argument of eglGetPlatformDisplay:
|
||||||
|
|
||||||
|
EGL_PLATFORM_HAIKU_KHR 0x31D9
|
||||||
|
|
||||||
|
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 backed by a Haiku display, call
|
||||||
|
eglGetPlatformDisplay with <platform> set to EGL_PLATFORM_HAIKU_KHR. The
|
||||||
|
<native_display> parameter specifies the Haiku display to use and must
|
||||||
|
either point to a `struct wl_display` or be EGL_DEFAULT_DISPLAY. If
|
||||||
|
<native_display> is EGL_DEFAULT_DISPLAY, then EGL will create a new
|
||||||
|
wl_display structure by connecting to the default Wayland socket. The
|
||||||
|
manual page wl_display_connect(3) defines the location of the default
|
||||||
|
Wayland socket.
|
||||||
|
|
||||||
|
To obtain an on-screen rendering surface from a Wayland window, call
|
||||||
|
eglCreatePlatformWindowSurface with a <dpy> that belongs to Wayland and
|
||||||
|
a <native_window> that points to a `struct wl_egl_surface`.
|
||||||
|
|
||||||
|
It is not valid to call eglCreatePlatformPixmapSurface with a <dpy> that
|
||||||
|
belongs to Haiku. Any such call fails and generates an
|
||||||
|
EGL_BAD_PARAMETER error.
|
||||||
|
|
||||||
|
Rendering to the obtained EGLSurface or querying it with EGL_BUFFER_AGE_KHR
|
||||||
|
will lock its back buffer preventing it from being dropped or resized,
|
||||||
|
until the next buffer swap. The rationale behind this behavior is to keep
|
||||||
|
operations result accurate until the next swap.
|
||||||
|
|
||||||
|
Issues
|
||||||
|
|
||||||
|
TBD
|
||||||
|
|
||||||
|
Revision History
|
||||||
|
Version 1, 2023/03/29 (Alexander von Gluck IV)
|
||||||
|
- Initial Draft version for Haiku with EGL 1.5+
|
Loading…
Reference in New Issue
Block a user