daniel@transgaming.com | 559f51c | 2011-04-06 18:45:47 +0000 | [diff] [blame] | 1 | Name |
| 2 | |
| 3 | ANGLE_surface_d3d_texture_2d_share_handle |
| 4 | |
| 5 | Name Strings |
| 6 | |
| 7 | EGL_ANGLE_surface_d3d_texture_2d_share_handle |
| 8 | |
| 9 | Contributors |
| 10 | |
| 11 | Vladimir Vukicevic |
| 12 | Daniel Koch |
| 13 | |
| 14 | Contacts |
| 15 | |
| 16 | Vladimir Vukicevic (vladimir 'at' pobox.com) |
| 17 | |
| 18 | Status |
| 19 | |
| 20 | Complete |
| 21 | Implemented (ANGLE r558) |
| 22 | |
| 23 | Version |
| 24 | |
| 25 | Version 2, December 21, 2010 |
| 26 | |
| 27 | Number |
| 28 | |
daniel@transgaming.com | 5569383 | 2012-01-17 14:28:13 +0000 | [diff] [blame] | 29 | EGL Extension #29 |
daniel@transgaming.com | 559f51c | 2011-04-06 18:45:47 +0000 | [diff] [blame] | 30 | |
| 31 | Dependencies |
| 32 | |
| 33 | Requires the EGL_ANGLE_query_surface_pointer extension. |
| 34 | |
| 35 | This extension is written against the wording of the EGL 1.4 |
| 36 | Specification. |
| 37 | |
| 38 | Overview |
| 39 | |
| 40 | Some EGL implementations generate EGLSurface handles that are |
| 41 | backed by Direct3D 2D textures. For such surfaces, a D3D share |
| 42 | handle can be generated, allowing access to the same surface |
| 43 | from the Direct3D API. |
| 44 | |
| 45 | New Types |
| 46 | |
| 47 | None |
| 48 | |
| 49 | New Procedures and Functions |
| 50 | |
| 51 | None |
| 52 | |
| 53 | New Tokens |
| 54 | |
| 55 | Accepted in the <attribute> parameter of eglQuerySurfacePointerANGLE: |
| 56 | |
| 57 | EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 |
| 58 | |
| 59 | Additions to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors) |
| 60 | |
| 61 | Add to table 3.5, "Queryable surface attributes and types": |
| 62 | |
| 63 | Attribute Type Description |
| 64 | --------- ---- ----------- |
| 65 | EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE pointer Direct3D share handle |
| 66 | |
| 67 | Add before the last paragraph in section 3.5, "Surface attributes": |
| 68 | |
| 69 | "Querying EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE returns a Direct3D |
| 70 | share handle, or NULL if a share handle for the surface is not |
| 71 | available. The share handle must be queried using |
| 72 | eglQuerySurfaceAttribPointerANGLE. Before using a Direct3D surface |
| 73 | created with this share handle, ensure that all rendering |
| 74 | to the EGLSurface with EGL client APIs has completed. |
| 75 | |
| 76 | The Direct3D share handle may be passed as the pSharedHandle |
| 77 | parameter of the Direct3D9Ex CreateTexture function, or via the |
| 78 | Direct3D10 OpenSharedResource function. If used with Direct3D 9, |
| 79 | the level argument to CreateTexture must be 1, and the dimensions |
| 80 | must match the dimensions of the EGL surface. If used with |
| 81 | Direct3D 10, OpenSharedResource should be called with the |
| 82 | ID3D10Texture2D uuid to obtain an ID3D10Texture2D object. |
| 83 | |
| 84 | Issues |
| 85 | |
| 86 | Revision History |
| 87 | |
| 88 | Version 3, 2011/02/11 - publish |
| 89 | |
| 90 | Version 2, 2010/12/21 |
| 91 | - renamed token to EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE (adding "2D") |
| 92 | - renamed extension to ANGLE_surface_d3d_texture_2d_share_handle |
| 93 | - added language about supported usage of the shared handle from D3D |
| 94 | |
| 95 | Version 1, 2010/12/07 - first draft. |