102f4aeb0Sopenharmony_ciName 202f4aeb0Sopenharmony_ci 302f4aeb0Sopenharmony_ci KHR_vg_parent_image 402f4aeb0Sopenharmony_ci 502f4aeb0Sopenharmony_ciName Strings 602f4aeb0Sopenharmony_ci 702f4aeb0Sopenharmony_ci EGL_KHR_vg_parent_image 802f4aeb0Sopenharmony_ci 902f4aeb0Sopenharmony_ciContributors 1002f4aeb0Sopenharmony_ci 1102f4aeb0Sopenharmony_ci Ignacio Llamas 1202f4aeb0Sopenharmony_ci Gary King 1302f4aeb0Sopenharmony_ci Chris Wynn 1402f4aeb0Sopenharmony_ci 1502f4aeb0Sopenharmony_ciContacts 1602f4aeb0Sopenharmony_ci 1702f4aeb0Sopenharmony_ci Gary King, NVIDIA Corporation (gking 'at' nvidia.com) 1802f4aeb0Sopenharmony_ci 1902f4aeb0Sopenharmony_ciNotice 2002f4aeb0Sopenharmony_ci 2102f4aeb0Sopenharmony_ci Copyright (c) 2006-2013 The Khronos Group Inc. Copyright terms at 2202f4aeb0Sopenharmony_ci http://www.khronos.org/registry/speccopyright.html 2302f4aeb0Sopenharmony_ci 2402f4aeb0Sopenharmony_ciStatus 2502f4aeb0Sopenharmony_ci 2602f4aeb0Sopenharmony_ci Complete. 2702f4aeb0Sopenharmony_ci Approved by the Khronos Board of Promoters on February 11, 2008. 2802f4aeb0Sopenharmony_ci 2902f4aeb0Sopenharmony_ciVersion 3002f4aeb0Sopenharmony_ci 3102f4aeb0Sopenharmony_ci Version 5, October 8, 2008 3202f4aeb0Sopenharmony_ci 3302f4aeb0Sopenharmony_ciNumber 3402f4aeb0Sopenharmony_ci 3502f4aeb0Sopenharmony_ci EGL Extension #4 3602f4aeb0Sopenharmony_ci 3702f4aeb0Sopenharmony_ciDependencies 3802f4aeb0Sopenharmony_ci 3902f4aeb0Sopenharmony_ci This extension requires EGL 1.2 and the EGL_KHR_image extension, 4002f4aeb0Sopenharmony_ci and an OpenVG implementation 4102f4aeb0Sopenharmony_ci 4202f4aeb0Sopenharmony_ci This specification is written against the wording of the EGL Image 4302f4aeb0Sopenharmony_ci (EGL_KHR_image) specification. 4402f4aeb0Sopenharmony_ci 4502f4aeb0Sopenharmony_ciOverview 4602f4aeb0Sopenharmony_ci 4702f4aeb0Sopenharmony_ci This extension provides a mechanism for creating EGLImage objects 4802f4aeb0Sopenharmony_ci from OpenVG VGImage API resources. For an overview of EGLImage 4902f4aeb0Sopenharmony_ci operation, please see the EGL_KHR_image specification. 5002f4aeb0Sopenharmony_ci 5102f4aeb0Sopenharmony_ciNew Types 5202f4aeb0Sopenharmony_ci 5302f4aeb0Sopenharmony_ci None 5402f4aeb0Sopenharmony_ci 5502f4aeb0Sopenharmony_ciNew Procedures and Functions 5602f4aeb0Sopenharmony_ci 5702f4aeb0Sopenharmony_ci None 5802f4aeb0Sopenharmony_ci 5902f4aeb0Sopenharmony_ciNew Tokens 6002f4aeb0Sopenharmony_ci 6102f4aeb0Sopenharmony_ci EGL_VG_PARENT_IMAGE_KHR 0x30BA 6202f4aeb0Sopenharmony_ci 6302f4aeb0Sopenharmony_ci 6402f4aeb0Sopenharmony_ciAdditions to the EGL Image (EGL_KHR_image) Specification: 6502f4aeb0Sopenharmony_ci 6602f4aeb0Sopenharmony_ci Add the following to Table aaa (Legal values for CreateImageKHR 6702f4aeb0Sopenharmony_ci <target> parameter), Section 2.5.1 (EGLImage Specification) 6802f4aeb0Sopenharmony_ci 6902f4aeb0Sopenharmony_ci +--------------------------+--------------------------------------------+ 7002f4aeb0Sopenharmony_ci | <target> | Notes | 7102f4aeb0Sopenharmony_ci +--------------------------+--------------------------------------------+ 7202f4aeb0Sopenharmony_ci | EGL_VG_PARENT_IMAGE_KHR | Used for OpenVG VGImage objects | 7302f4aeb0Sopenharmony_ci +--------------------------+--------------------------------------------+ 7402f4aeb0Sopenharmony_ci 7502f4aeb0Sopenharmony_ci Insert the following text after paragraph 3 ("If <target> is 7602f4aeb0Sopenharmony_ci NATIVE_PIXMAP_KHR...") of Section 2.5.1 (EGLImage Specification): 7702f4aeb0Sopenharmony_ci 7802f4aeb0Sopenharmony_ci "If <target> is EGL_VG_PARENT_IMAGE_KHR, <dpy> must be a valid EGLDisplay, 7902f4aeb0Sopenharmony_ci <ctx> must be a valid OpenVG API context on that display, and <buffer> 8002f4aeb0Sopenharmony_ci must be a handle of a VGImage object valid in the specified context, cast 8102f4aeb0Sopenharmony_ci into the type EGLClientBuffer. Furthermore, the specified VGImage 8202f4aeb0Sopenharmony_ci <buffer> must not be a child image (i.e. the value returned by 8302f4aeb0Sopenharmony_ci vgGetParent(<buffer>) must be <buffer>). If the specified VGImage 8402f4aeb0Sopenharmony_ci <buffer> has any child images (i.e., vgChildImage has been previously 8502f4aeb0Sopenharmony_ci called with the parent parameter set to <buffer>), all child images will 8602f4aeb0Sopenharmony_ci be treated as EGLImage siblings after CreateImageKHR returns. Any values 8702f4aeb0Sopenharmony_ci specified in <attr_list> are ignored." 8802f4aeb0Sopenharmony_ci 8902f4aeb0Sopenharmony_ci Add the following errors to the end of the list in Section 2.5.1 (EGLImage 9002f4aeb0Sopenharmony_ci Specification): 9102f4aeb0Sopenharmony_ci 9202f4aeb0Sopenharmony_ci " * If <target> is EGL_VG_PARENT_IMAGE_KHR, and <dpy> is not a 9302f4aeb0Sopenharmony_ci valid EGLDisplay, the error EGL_BAD_DISPLAY is generated. 9402f4aeb0Sopenharmony_ci 9502f4aeb0Sopenharmony_ci * If <target> is EGL_VG_PARENT_IMAGE_KHR and <ctx> is not a 9602f4aeb0Sopenharmony_ci valid EGLContext, the error EGL_BAD_CONTEXT is generated. 9702f4aeb0Sopenharmony_ci 9802f4aeb0Sopenharmony_ci * If <target> is EGL_VG_PARENT_IMAGE_KHR and <ctx> is not a valid 9902f4aeb0Sopenharmony_ci OpenVG context, the error EGL_BAD_MATCH is returned. 10002f4aeb0Sopenharmony_ci 10102f4aeb0Sopenharmony_ci * If <target> is EGL_VG_PARENT_IMAGE_KHR and <buffer> is not a handle 10202f4aeb0Sopenharmony_ci to a VGImage object in the specified API context <ctx>, the error 10302f4aeb0Sopenharmony_ci EGL_BAD_PARAMETER is generated. 10402f4aeb0Sopenharmony_ci 10502f4aeb0Sopenharmony_ci * If <target> is EGL_VG_PARENT_IMAGE_KHR, and the VGImage specified by 10602f4aeb0Sopenharmony_ci <buffer> is a child image (i.e., vgGetParent(<buffer>) returns 10702f4aeb0Sopenharmony_ci a different handle), the error EGL_BAD_ACCESS is generated." 10802f4aeb0Sopenharmony_ci 10902f4aeb0Sopenharmony_ciIssues 11002f4aeb0Sopenharmony_ci 11102f4aeb0Sopenharmony_ci 1. Should this specification allow the creation of EGLImages 11202f4aeb0Sopenharmony_ci from OpenVG child images? 11302f4aeb0Sopenharmony_ci 11402f4aeb0Sopenharmony_ci RESOLVED: No. It is believed that properly addressing the 11502f4aeb0Sopenharmony_ci interaction of hardware restrictions (e.g., memory alignment), 11602f4aeb0Sopenharmony_ci arbitrary image subrectangles, scissor rectangles and viewport 11702f4aeb0Sopenharmony_ci rectangles may create an undue burden on implementers. In the 11802f4aeb0Sopenharmony_ci interest of providing a useful spec in a timely fashion, this 11902f4aeb0Sopenharmony_ci functionality has been disallowed, with the possibility of 12002f4aeb0Sopenharmony_ci providing it (if necessary) through a future layered extension. 12102f4aeb0Sopenharmony_ci 12202f4aeb0Sopenharmony_ci This restriction is shared with eglCreatePbufferFromClientBuffer; 12302f4aeb0Sopenharmony_ci however, this specification allows EGL Images to be created 12402f4aeb0Sopenharmony_ci from VGImages which have child images, functionality not 12502f4aeb0Sopenharmony_ci previously available. 12602f4aeb0Sopenharmony_ci 12702f4aeb0Sopenharmony_ciRevision History 12802f4aeb0Sopenharmony_ci 12902f4aeb0Sopenharmony_ci#5 (Jon Leech, October 8, 2008) 13002f4aeb0Sopenharmony_ci - Updated status (approved as part of OpenKODE 1.0) 13102f4aeb0Sopenharmony_ci#4 (Jon Leech, April 5, 2007) 13202f4aeb0Sopenharmony_ci - Assigned enumerant values 13302f4aeb0Sopenharmony_ci - Added OpenKODE 1.0 Provisional disclaimer 13402f4aeb0Sopenharmony_ci#3 (December 14, 2006) 13502f4aeb0Sopenharmony_ci - Changed requirement to egl 1.2 to include EGLClientBuffer type. 13602f4aeb0Sopenharmony_ci - added error condition descriptions for <dpy> and <ctx> 13702f4aeb0Sopenharmony_ci#2 (November 27, 2006) 13802f4aeb0Sopenharmony_ci - Changed OES token to KHR 139