1Name 2 3 ANGLE_d3d_share_handle_client_buffer 4 5Name Strings 6 7 EGL_ANGLE_d3d_share_handle_client_buffer 8 9Contributors 10 11 John Bauman 12 Alastair Patrick 13 Daniel Koch 14 15Contacts 16 17 John Bauman, Google Inc. (jbauman 'at' chromium.org) 18 19Status 20 21 Complete 22 Implemented (ANGLE r650) 23 24Version 25 26 Version 3, May 12, 2011 27 28Number 29 30 EGL Extension #38 31 32Dependencies 33 34 Requires the EGL_ANGLE_surface_d3d_texture_2d_share_handle extension. 35 36 This extension is written against the wording of the EGL 1.4 37 Specification. 38 39Overview 40 41 This extension allows creating EGL surfaces from handles to textures 42 shared from the Direct3D API or from 43 EGL_ANGLE_surface_texture_2d_share_handle. 44 45New Types 46 47 None 48 49New Procedures and Functions 50 51 None 52 53New Tokens 54 55 Accepted in the <buftype> parameter of eglCreatePbufferFromClientBuffer: 56 57 EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE 0x3200 58 59Additions to Chapter 3 of the EGL 1.4 Specification (EGL Functions and Errors) 60 61 Replace the last sentence of paragraph 1 of Section 3.5.3 with the 62 following text. 63 "Currently, the only client API resources which may be bound in this 64 fashion are OpenVG VGImage objects and Direct3D share handles." 65 66 Replace the last sentence of paragraph 2 ("To bind a client API...") of 67 Section 3.5.3 with the following text. 68 "When <buftype> is EGL_OPENVG_IMAGE, the width and height of the pbuffer 69 are determined by the width and height of <buffer>. When <buftype> is 70 EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE, the width and height are specified 71 using EGL_WIDTH and EGL_HEIGHT, or else they default to zero. The width 72 and height must match the dimensions of the texture which the share handle 73 was created from or else an EGL_BAD_ALLOC error is generated." 74 75 Replace the third paragraph of Section 3.5.3 with the following text. 76 "<buftype> specifies the type of buffer to be bound. The only allowed values 77 of <buftype> are EGL_OPENVG_IMAGE and 78 EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE". 79 80 Append the following text to the fourth paragraph of Section 3.5.3. 81 "When <buftype> is EGL_D3D_TEXTURE_2D_SHARE_HANDLE_ANGLE, <buffer> must be 82 a valid D3D share handle, cast into the type EGLClientBuffer. The handle 83 may be obtained from the Direct3D9Ex CreateTexture function, from DXGI's 84 GetSharedHandle method on an ID3D10Texture2D, or from the 85 EGL_ANGLE_surface_d3d_texture_2d_share_handle extension." 86 87Issues 88 89Revision History 90 91 Version 3, 2011/05/12 92 - publish 93 94 Version 2, 2011/05/03 95 - specify EGL_D3D_TEXTURE_2D_SHARE_HANDLE 96 - specify error if dimensions don't match 97 98 Version 1, 2011/04/12 - first draft. 99