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