зеркало из https://github.com/AvaloniaUI/angle.git
121 строка
3.7 KiB
Plaintext
121 строка
3.7 KiB
Plaintext
Name
|
|
|
|
ANGLE_robust_resource_initialization
|
|
|
|
Name Strings
|
|
|
|
EGL_ANGLE_robust_resource_initialization
|
|
|
|
Contributors
|
|
|
|
Geoff Lang, Google
|
|
Ken Russell, Google
|
|
|
|
Contacts
|
|
|
|
Shannon Woods, Google (shannonwoods 'at' google.com)
|
|
|
|
Status
|
|
|
|
Draft
|
|
|
|
Version
|
|
|
|
Version 4, September 19, 2017
|
|
|
|
Number
|
|
|
|
EGL Extension TBD
|
|
|
|
Dependencies
|
|
|
|
This extension is written against the wording of the EGL 1.5
|
|
specification.
|
|
|
|
An OpenGL ES implementation supporting ANGLE_robust_resource_initialization
|
|
or an implementation supporting equivalent functionality is required.
|
|
|
|
Overview
|
|
|
|
This extension allows creating an OpenGL ES context or EGL surface
|
|
supporting robust resource initialization.
|
|
|
|
New Types
|
|
|
|
None
|
|
|
|
New Procedures and Functions
|
|
|
|
None
|
|
|
|
New Tokens
|
|
|
|
Accepted as an attribute name by eglCreateContext, eglQueryContext,
|
|
eglCreateWindowSurface, eglCreatePbufferSurface, eglCreatePixmapSurface,
|
|
and eglQuerySurface:
|
|
|
|
EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE 0x3453
|
|
|
|
Additions to the EGL 1.5 Specification
|
|
|
|
Add a new section entitled "OpenGL ES Robust Resource Initialization"
|
|
to section 3.7.1:
|
|
|
|
"If the attribute EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE
|
|
is set to EGL_TRUE, a context supporting <robust resource initialization>
|
|
will be created. OpenGL ES contexts must support the
|
|
ANGLE_robust_resource_initialization extension, or equivalent core API
|
|
functionality. This attribute is supported only for OpenGL ES contexts.
|
|
The default value of EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE
|
|
is EGL_FALSE."
|
|
|
|
Add a new paragraph to section 3.7.4 "Context Queries" under
|
|
eglQueryContext:
|
|
|
|
"Querying EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE returns if
|
|
the context was created using robust initialization."
|
|
|
|
Add a new paragrah to section 3.5.1 "Creating On-Screen Rendering
|
|
Surfaces" and section 3.5.2 "Creating Off-Screen Rendering Surfaces":
|
|
|
|
"EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE specifies if the pixel
|
|
values of the surface are initialized. If its value is EGL_TRUE then all
|
|
pixel values in the surface are initialized to zero, otherwise the contents
|
|
are undefined. The default value of
|
|
EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE is EGL_FALSE."
|
|
|
|
Add a new paragrah to section 3.5.6 "Surface Attributes" under
|
|
eglQuerySurface:
|
|
|
|
"Querying EGL_CONTEXT_ROBUST_RESOURCE_INITIALIZATION_ANGLE returns if
|
|
the surface was created using robust initialization."
|
|
|
|
Modify the 2nd paragraph of section 3.10.1 "Posting to a Window":
|
|
|
|
"... The contents of the color buffer are undefined if the value of the
|
|
EGL_SWAP_BEHAVIOR attribute of surface is not EGL_BUFFER_PRESERVED and
|
|
the value of the EGL_ROBUST_RESOURCE_INITIALIZATION_ANGLE is
|
|
EGL_FALSE. ..."
|
|
|
|
Issues
|
|
|
|
(1) Should this be a Display or Context creation extension?
|
|
|
|
RESOLVED (3): Making this a Context creation extension has complications in
|
|
the implementation - what happens to resources shared between Contexts
|
|
with and without the extension enabled? Also for display-created resources,
|
|
such as those used in the D3D11 SwapChain, there's no way to specify if
|
|
we want them robustly initialized. Hence it is clearer to specify this
|
|
extension as a Display extension.
|
|
|
|
RESOLVED (4): This extension has been moved back to a context/surface
|
|
creation attribute. This makes the extension much easier to detect before
|
|
the GL context is created.
|
|
|
|
Revision History
|
|
|
|
Version 1, 2015/01/07 - first draft.
|
|
Version 2, 2017/03/01 - renamed extension and enum.
|
|
Version 3, 2017/05/31 - renamed extension and made into display extension.
|
|
Version 4, 2017/09/19 - renamed extension and changed into a
|
|
context/surface creation attribute. |