зеркало из https://github.com/AvaloniaUI/angle.git
112 строки
3.6 KiB
Plaintext
112 строки
3.6 KiB
Plaintext
Name
|
|
|
|
ANGLE_d3d_texture_client_buffer
|
|
|
|
Name Strings
|
|
|
|
EGL_ANGLE_d3d_texture_client_buffer
|
|
|
|
Contributors
|
|
|
|
Geoff Lang
|
|
|
|
Contacts
|
|
|
|
Geoff Lang, Google Inc. (geofflang 'at' google.com)
|
|
|
|
Status
|
|
|
|
Draft
|
|
|
|
Version
|
|
|
|
Version 1, Oct 5, 2016
|
|
|
|
Number
|
|
|
|
EGL Extension #??
|
|
|
|
Dependencies
|
|
|
|
This extension is written against the wording of the EGL 1.4
|
|
Specification.
|
|
|
|
References the EGL_ANGLE_device_d3d extension.
|
|
|
|
Overview
|
|
|
|
This extension allows creating EGL surfaces from D3D texture objects.
|
|
|
|
New Types
|
|
|
|
None
|
|
|
|
New Procedures and Functions
|
|
|
|
None
|
|
|
|
New Tokens
|
|
|
|
Accepted in the <buftype> parameter of eglCreatePbufferFromClientBuffer:
|
|
|
|
EGL_D3D_TEXTURE_ANGLE 0x33A3
|
|
|
|
Additions to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors)
|
|
|
|
Replace the last sentence of paragraph 1 of Section 3.5.3 with the
|
|
following text.
|
|
"Currently, the only client API resources which may be bound in this
|
|
fashion are OpenVG VGImage objects and Direct3D texture objects."
|
|
|
|
Replace the last sentence of paragraph 2 ("To bind a client API...") of
|
|
Section 3.5.3 with the following text.
|
|
"When <buftype> is EGL_OPENVG_IMAGE or EGL_D3D_TEXTURE_ANGLE, the width and
|
|
height of the pbuffer are determined by the width and height of <buffer>."
|
|
|
|
Replace the third paragraph of Section 3.5.3 with the following text.
|
|
"<buftype> specifies the type of buffer to be bound. The only allowed values
|
|
of <buftype> are EGL_OPENVG_IMAGE and EGL_D3D_TEXTURE_ANGLE".
|
|
|
|
Append the following text to the fourth paragraph of Section 3.5.3.
|
|
"When <buftype> is EGL_D3D_TEXTURE_ANGLE, <buffer> must be
|
|
a valid D3D texture object, cast into the type EGLClientBuffer. See table
|
|
egl.restrictions for acceptable texture object types and formats. If the
|
|
EGL_ANGLE_device_d3d extension is present, the provided D3D texture object
|
|
must have been created by the same D3D device queried from the display.
|
|
If these requirements are not met, an EGL_BAD_PARAMETER error is
|
|
generated."
|
|
|
|
---------------------------------------------------------------------------
|
|
Resource Type Resource Restrictions
|
|
---------------------------------------------------------------------------
|
|
IDirect3DTexture9 Memory pool must be D3DPOOL_DEFAULT. Format must be
|
|
D3DFMT_R8G8B8, D3DFMT_A8R8G8B8, D3DFMT_A16B16G16R16F or
|
|
D3DFMT_A32B32G32R32F.
|
|
ID3D11Texture2D Usage flags must be D3D11_USAGE_DEFAULT. Format must be
|
|
DXGI_FORMAT_R8G8B8A8_UNORM,
|
|
DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
|
|
DXGI_FORMAT_B8G8R8A8_UNORM,
|
|
DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
|
|
DXGI_FORMAT_R16G16B16A16_FLOAT or
|
|
DXGI_FORMAT_R32G32B32A32_FLOAT.
|
|
--------------------------------------------------------------------------
|
|
Table egl.restrictions - Restrictions on D3D resources that can be used
|
|
as a <buffer>.
|
|
--------------------------------------------------------------------------
|
|
|
|
Append to the end of Section 3.5.3.
|
|
"When a pbuffer is created with type EGL_D3D_TEXTURE_ANGLE, the contents
|
|
of the associcated D3D texture object are undefined while the pbuffer is
|
|
the current read surface, draw surface or bound to a client texture."
|
|
|
|
Issues
|
|
|
|
1. What renderers allow the use of a multi-sampled texture?
|
|
|
|
PROPOSED: Mutli-sampled texture support is currently limited to D3D11. Additionally,
|
|
the client is responsible for resolving the texture.
|
|
|
|
Revision History
|
|
|
|
Version 1, 2016/10/05 - first draft.
|