xref: /aosp_15_r20/external/angle/extensions/EGL_ANGLE_x11_visual.txt (revision 8975f5c5ed3d1c378011245431ada316dfb6f244)
1*8975f5c5SAndroid Build Coastguard WorkerName
2*8975f5c5SAndroid Build Coastguard Worker
3*8975f5c5SAndroid Build Coastguard Worker    ANGLE_x11_visual
4*8975f5c5SAndroid Build Coastguard Worker
5*8975f5c5SAndroid Build Coastguard WorkerName Strings
6*8975f5c5SAndroid Build Coastguard Worker
7*8975f5c5SAndroid Build Coastguard Worker    EGL_ANGLE_x11_visual
8*8975f5c5SAndroid Build Coastguard Worker
9*8975f5c5SAndroid Build Coastguard WorkerContributors
10*8975f5c5SAndroid Build Coastguard Worker
11*8975f5c5SAndroid Build Coastguard Worker    Corentin Wallez, Google
12*8975f5c5SAndroid Build Coastguard Worker    Shannon Woods, Google
13*8975f5c5SAndroid Build Coastguard Worker    Jamie Madill, Google
14*8975f5c5SAndroid Build Coastguard Worker    Geoff Lang, Google
15*8975f5c5SAndroid Build Coastguard Worker
16*8975f5c5SAndroid Build Coastguard WorkerContacts
17*8975f5c5SAndroid Build Coastguard Worker
18*8975f5c5SAndroid Build Coastguard Worker    Corentin Wallez, Google (cwallez 'at' chromium 'dot' org)
19*8975f5c5SAndroid Build Coastguard Worker
20*8975f5c5SAndroid Build Coastguard WorkerStatus
21*8975f5c5SAndroid Build Coastguard Worker
22*8975f5c5SAndroid Build Coastguard Worker    Draft
23*8975f5c5SAndroid Build Coastguard Worker
24*8975f5c5SAndroid Build Coastguard WorkerVersion
25*8975f5c5SAndroid Build Coastguard Worker
26*8975f5c5SAndroid Build Coastguard Worker    Version 1, 2015-11-13
27*8975f5c5SAndroid Build Coastguard Worker
28*8975f5c5SAndroid Build Coastguard WorkerNumber
29*8975f5c5SAndroid Build Coastguard Worker
30*8975f5c5SAndroid Build Coastguard Worker    EGL Extension XXX
31*8975f5c5SAndroid Build Coastguard Worker
32*8975f5c5SAndroid Build Coastguard WorkerExtension Type
33*8975f5c5SAndroid Build Coastguard Worker
34*8975f5c5SAndroid Build Coastguard Worker    EGL client extension
35*8975f5c5SAndroid Build Coastguard Worker
36*8975f5c5SAndroid Build Coastguard WorkerDependencies
37*8975f5c5SAndroid Build Coastguard Worker
38*8975f5c5SAndroid Build Coastguard Worker    Requires EGL_EXT_client_extensions to query its existence without
39*8975f5c5SAndroid Build Coastguard Worker    a display.
40*8975f5c5SAndroid Build Coastguard Worker
41*8975f5c5SAndroid Build Coastguard Worker    Requires EGL_EXT_platform_base.
42*8975f5c5SAndroid Build Coastguard Worker
43*8975f5c5SAndroid Build Coastguard Worker    This extension is written against the wording of version 9 of the
44*8975f5c5SAndroid Build Coastguard Worker    EGL_EXT_platform_base specification.
45*8975f5c5SAndroid Build Coastguard Worker
46*8975f5c5SAndroid Build Coastguard Worker    Written based on the wording of the EGL 1.5 Specification
47*8975f5c5SAndroid Build Coastguard Worker    (August 7 2014).
48*8975f5c5SAndroid Build Coastguard Worker
49*8975f5c5SAndroid Build Coastguard WorkerOverview
50*8975f5c5SAndroid Build Coastguard Worker
51*8975f5c5SAndroid Build Coastguard Worker    This extension allows passing the X11 visual ID used by the native
52*8975f5c5SAndroid Build Coastguard Worker    EGL surface types at display creation time. This will restrict
53*8975f5c5SAndroid Build Coastguard Worker    EGLSurfaces to be created from native types with this visual ID,
54*8975f5c5SAndroid Build Coastguard Worker    which may allow the created display to be more compatible and
55*8975f5c5SAndroid Build Coastguard Worker    performant.
56*8975f5c5SAndroid Build Coastguard Worker
57*8975f5c5SAndroid Build Coastguard WorkerNew Types
58*8975f5c5SAndroid Build Coastguard Worker
59*8975f5c5SAndroid Build Coastguard Worker    None
60*8975f5c5SAndroid Build Coastguard Worker
61*8975f5c5SAndroid Build Coastguard WorkerNew Procedures and Functions
62*8975f5c5SAndroid Build Coastguard Worker
63*8975f5c5SAndroid Build Coastguard Worker    None
64*8975f5c5SAndroid Build Coastguard Worker
65*8975f5c5SAndroid Build Coastguard WorkerNew Tokens
66*8975f5c5SAndroid Build Coastguard Worker
67*8975f5c5SAndroid Build Coastguard Worker    Accepted as an attribute name in the <attrib_list> argument of
68*8975f5c5SAndroid Build Coastguard Worker    eglGetPlatformDisplayEXT:
69*8975f5c5SAndroid Build Coastguard Worker
70*8975f5c5SAndroid Build Coastguard Worker        EGL_X11_VISUAL_ID_ANGLE 0x33A3
71*8975f5c5SAndroid Build Coastguard Worker
72*8975f5c5SAndroid Build Coastguard WorkerAdditions to the EGL Specification
73*8975f5c5SAndroid Build Coastguard Worker
74*8975f5c5SAndroid Build Coastguard Worker    Modify section 3.5.1 (Creating On-Screen Rendering Surfaces), p. 34
75*8975f5c5SAndroid Build Coastguard Worker
76*8975f5c5SAndroid Build Coastguard Worker    Append the following to the errors of CreateWindowSurface:
77*8975f5c5SAndroid Build Coastguard Worker
78*8975f5c5SAndroid Build Coastguard Worker    "If an X11 visual was specified at display creation time using
79*8975f5c5SAndroid Build Coastguard Worker    EGL_ANGLE_X11_VISUAL_ID that is not equal to the ID of the
80*8975f5c5SAndroid Build Coastguard Worker    native_window's visual, an EGL_BAD_MATCH error is generated and
81*8975f5c5SAndroid Build Coastguard Worker    EGL_NO_SURFACE is returned."
82*8975f5c5SAndroid Build Coastguard Worker
83*8975f5c5SAndroid Build Coastguard WorkerNew Behavior
84*8975f5c5SAndroid Build Coastguard Worker
85*8975f5c5SAndroid Build Coastguard Worker    To request a display created with a X11 visual ID, the value of
86*8975f5c5SAndroid Build Coastguard Worker    EGL_ANGLE_X11_VISUAL_ID should be set to a valid X11 visual ID. If
87*8975f5c5SAndroid Build Coastguard Worker    present, this ID will be used during display creation to make a
88*8975f5c5SAndroid Build Coastguard Worker    display that is more compatible and potentially more performant when
89*8975f5c5SAndroid Build Coastguard Worker    used with EGLsurfaces created from native types with this ID. If the
90*8975f5c5SAndroid Build Coastguard Worker    visual ID passed isn't a valid visual ID, eglGetPlatformDisplay will
91*8975f5c5SAndroid Build Coastguard Worker    return EGL_NO_DISPLAY and generate an EGL_NOT_INITIALIZED error.
92*8975f5c5SAndroid Build Coastguard Worker
93*8975f5c5SAndroid Build Coastguard WorkerIssues
94*8975f5c5SAndroid Build Coastguard Worker
95*8975f5c5SAndroid Build Coastguard Worker    1) When the hint is present, should EGLsurface creation functions
96*8975f5c5SAndroid Build Coastguard Worker       only accept native types with the hint's visual ID?
97*8975f5c5SAndroid Build Coastguard Worker
98*8975f5c5SAndroid Build Coastguard Worker       RESOLVED: Yes, generate an error when the visual of the native
99*8975f5c5SAndroid Build Coastguard Worker       surface doesn't match. This will avoid having hidden performance
100*8975f5c5SAndroid Build Coastguard Worker       or compatibility losses when using this extension.
101*8975f5c5SAndroid Build Coastguard Worker
102*8975f5c5SAndroid Build Coastguard WorkerRevision History
103*8975f5c5SAndroid Build Coastguard Worker
104*8975f5c5SAndroid Build Coastguard Worker    Version 1, 2015-11-13 (Corentin Wallez)
105*8975f5c5SAndroid Build Coastguard Worker      - Initial draft
106*8975f5c5SAndroid Build Coastguard Worker
107