Skip to content

Commit

Permalink
3rdparty/proposals: Add draft WIP khronos proposal
Browse files Browse the repository at this point in the history
Change-Id: I48eed026db138e4f83cb7f5e0403f0fcaaa401f2
  • Loading branch information
kallisti5 committed Mar 29, 2023
1 parent 5bf437d commit ed24eb5
Showing 1 changed file with 100 additions and 0 deletions.
100 changes: 100 additions & 0 deletions 3rdparty/proposals/khronos/EGL_KHR_platform_haiku.txt
@@ -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+

0 comments on commit ed24eb5

Please sign in to comment.