102f4aeb0Sopenharmony_ciName 202f4aeb0Sopenharmony_ci 302f4aeb0Sopenharmony_ci KHR_image 402f4aeb0Sopenharmony_ci 502f4aeb0Sopenharmony_ciName Strings 602f4aeb0Sopenharmony_ci 702f4aeb0Sopenharmony_ci EGL_KHR_image 802f4aeb0Sopenharmony_ci 902f4aeb0Sopenharmony_ciContributors 1002f4aeb0Sopenharmony_ci 1102f4aeb0Sopenharmony_ci Jeff Juliano 1202f4aeb0Sopenharmony_ci Gary King 1302f4aeb0Sopenharmony_ci Jon Leech 1402f4aeb0Sopenharmony_ci Jonathan Grant 1502f4aeb0Sopenharmony_ci Barthold Lichtenbelt 1602f4aeb0Sopenharmony_ci Aaftab Munshi 1702f4aeb0Sopenharmony_ci Acorn Pooley 1802f4aeb0Sopenharmony_ci Chris Wynn 1902f4aeb0Sopenharmony_ci 2002f4aeb0Sopenharmony_ciContacts 2102f4aeb0Sopenharmony_ci 2202f4aeb0Sopenharmony_ci Jon Leech (jon 'at' alumni.caltech.edu) 2302f4aeb0Sopenharmony_ci Gary King, NVIDIA Corporation (gking 'at' nvidia.com) 2402f4aeb0Sopenharmony_ci 2502f4aeb0Sopenharmony_ciNotice 2602f4aeb0Sopenharmony_ci 2702f4aeb0Sopenharmony_ci Copyright (c) 2006-2013 The Khronos Group Inc. Copyright terms at 2802f4aeb0Sopenharmony_ci http://www.khronos.org/registry/speccopyright.html 2902f4aeb0Sopenharmony_ci 3002f4aeb0Sopenharmony_ciStatus 3102f4aeb0Sopenharmony_ci 3202f4aeb0Sopenharmony_ci Complete. 3302f4aeb0Sopenharmony_ci Approved by the Khronos Board of Promoters on February 11, 2008. 3402f4aeb0Sopenharmony_ci 3502f4aeb0Sopenharmony_ci Rewritten in terms of split functionality in KHR_image_base and 3602f4aeb0Sopenharmony_ci KHR_image_pixmap, approved by the Khronos Technical Working Group 3702f4aeb0Sopenharmony_ci on November 19, 2008. 3802f4aeb0Sopenharmony_ci 3902f4aeb0Sopenharmony_ciVersion 4002f4aeb0Sopenharmony_ci 4102f4aeb0Sopenharmony_ci Version 11, November 12, 2008 4202f4aeb0Sopenharmony_ci 4302f4aeb0Sopenharmony_ciNumber 4402f4aeb0Sopenharmony_ci 4502f4aeb0Sopenharmony_ci EGL Extension #3 4602f4aeb0Sopenharmony_ci 4702f4aeb0Sopenharmony_ciDependencies 4802f4aeb0Sopenharmony_ci 4902f4aeb0Sopenharmony_ci EGL 1.2 is required. 5002f4aeb0Sopenharmony_ci 5102f4aeb0Sopenharmony_ci An EGL client API, such as OpenGL ES or OpenVG, is required. 5202f4aeb0Sopenharmony_ci 5302f4aeb0Sopenharmony_ci The specifications of EGL_KHR_image_base and EGL_KHR_image_pixmap are 5402f4aeb0Sopenharmony_ci required to determine the specification of this extension, although 5502f4aeb0Sopenharmony_ci those extentions may not be supported. 5602f4aeb0Sopenharmony_ci 5702f4aeb0Sopenharmony_ci This extension is written against the wording of the EGL 1.2 5802f4aeb0Sopenharmony_ci Specification. 5902f4aeb0Sopenharmony_ci 6002f4aeb0Sopenharmony_ciOverview 6102f4aeb0Sopenharmony_ci 6202f4aeb0Sopenharmony_ci This extension defines a new EGL resource type that is suitable for 6302f4aeb0Sopenharmony_ci sharing 2D arrays of image data between client APIs, the EGLImage, 6402f4aeb0Sopenharmony_ci and allows creating EGLImages from EGL native pixmaps. 6502f4aeb0Sopenharmony_ci 6602f4aeb0Sopenharmony_ciNew Types 6702f4aeb0Sopenharmony_ci 6802f4aeb0Sopenharmony_ci As defined by EGL_KHR_image_base. 6902f4aeb0Sopenharmony_ci 7002f4aeb0Sopenharmony_ciNew Procedures and Functions 7102f4aeb0Sopenharmony_ci 7202f4aeb0Sopenharmony_ci As defined by EGL_KHR_image_base. 7302f4aeb0Sopenharmony_ci 7402f4aeb0Sopenharmony_ciNew Tokens 7502f4aeb0Sopenharmony_ci 7602f4aeb0Sopenharmony_ci As defined by EGL_KHR_image_base and EGL_KHR_image_pixmap, with the 7702f4aeb0Sopenharmony_ci exception that EGL_IMAGE_PRESERVED_KHR is not defined by this 7802f4aeb0Sopenharmony_ci extension. 7902f4aeb0Sopenharmony_ci 8002f4aeb0Sopenharmony_ciAdditions to Chapter 2 of the EGL 1.2 Specification (EGL Operation) 8102f4aeb0Sopenharmony_ci 8202f4aeb0Sopenharmony_ci EGL_KHR_image is equivalent to the combination of the functionality 8302f4aeb0Sopenharmony_ci defined by EGL_KHR_image_base and EGL_KHR_image_pixmap, with the 8402f4aeb0Sopenharmony_ci exception that if EGL_KHR_image is supported and EGL_KHR_image_base 8502f4aeb0Sopenharmony_ci is not, the attribute EGL_IMAGE_PRESERVED_KHR is not accepted in 8602f4aeb0Sopenharmony_ci <attrib_list>, However, the default value of this attribute is still 8702f4aeb0Sopenharmony_ci EGL_FALSE. In this situation, image preservation is always disabled. 8802f4aeb0Sopenharmony_ci 8902f4aeb0Sopenharmony_ciIssues 9002f4aeb0Sopenharmony_ci 9102f4aeb0Sopenharmony_ci None (but see the issues lists for EGL_KHR_image_base and 9202f4aeb0Sopenharmony_ci EGL_KHR_image_pixmap). 9302f4aeb0Sopenharmony_ci 9402f4aeb0Sopenharmony_ciRevision History 9502f4aeb0Sopenharmony_ci 9602f4aeb0Sopenharmony_ci#11 (Jon Leech, November 12, 2008) 9702f4aeb0Sopenharmony_ci - Clarified image preservation behavior when using this extension. 9802f4aeb0Sopenharmony_ci#10 (Jon Leech, October 22, 2008) 9902f4aeb0Sopenharmony_ci - Update description of interactions with EGL_KHR_image_base now 10002f4aeb0Sopenharmony_ci that the default value of EGL_IMAGE_PRESERVED_KHR is always FALSE. 10102f4aeb0Sopenharmony_ci#9 (Jon Leech, October 21, 2008) 10202f4aeb0Sopenharmony_ci - Split functionality into new extensions EGL_KHR_image_base and 10302f4aeb0Sopenharmony_ci EGL_KHR_image_pixmap, and defined legacy non-preserved image behavior 10402f4aeb0Sopenharmony_ci when this extension is supported. 10502f4aeb0Sopenharmony_ci#8 (Jon Leech, October 8, 2008) 10602f4aeb0Sopenharmony_ci - Updated status (approved as part of OpenKODE 1.0) 10702f4aeb0Sopenharmony_ci#7 (Jon Leech, November 20, 2007) 10802f4aeb0Sopenharmony_ci - Corrected 'enum' to 'EGLenum' in prototypes. 10902f4aeb0Sopenharmony_ci#6 (Jon Leech, April 5, 2007) 11002f4aeb0Sopenharmony_ci - Assigned enumerant values 11102f4aeb0Sopenharmony_ci - Added OpenKODE 1.0 Provisional disclaimer 11202f4aeb0Sopenharmony_ci#5 (Jon Leech, February 26, 2007) 11302f4aeb0Sopenharmony_ci - Add eglCreateImageKHR error if native pixmaps are not supported by 11402f4aeb0Sopenharmony_ci EGL. 11502f4aeb0Sopenharmony_ci#4 (December 14, 2006) 11602f4aeb0Sopenharmony_ci - Replaced EGL_OUT_OF_MEMORY error with EGL_BAD_ALLOC 11702f4aeb0Sopenharmony_ci - add "egl" and "EGL" to names to be consistant with spec 11802f4aeb0Sopenharmony_ci - formatting to keep within 80 columns 11902f4aeb0Sopenharmony_ci - Changed requirement to egl 1.2 to include EGLClientBuffer type. 12002f4aeb0Sopenharmony_ci - clarified some unclear error cases 12102f4aeb0Sopenharmony_ci - added some new error cases related to <dpy> and <ctx> 12202f4aeb0Sopenharmony_ci - add <dpy> param to eglCreateImageKHR and eglDestroyImageKHR 12302f4aeb0Sopenharmony_ci#3 (November 27, 2006) 12402f4aeb0Sopenharmony_ci - Converted OES token to KHR token 12502f4aeb0Sopenharmony_ci#2 (October 20, 2006) 12602f4aeb0Sopenharmony_ci - Split out API-specific image source types (VG, GL, etc.) into 12702f4aeb0Sopenharmony_ci individual extensions. 12802f4aeb0Sopenharmony_ci - Merged CreateImage2DOES and CreateImage3DOES functions into 12902f4aeb0Sopenharmony_ci a single CreateImageOES function with an attribute-value list. 13002f4aeb0Sopenharmony_ci - Removed the minimum requirements section (2.5.3), since this 13102f4aeb0Sopenharmony_ci doesn't make sense without the client-API specific extensions. 13202f4aeb0Sopenharmony_ci The minimum requirements should be migrated to the client-API 13302f4aeb0Sopenharmony_ci specific extension specifications. 13402f4aeb0Sopenharmony_ci - Added EGL_NO_IMAGE_OES default object, used as return value for 13502f4aeb0Sopenharmony_ci CreateImage*OES functions in the event of error conditions. 13602f4aeb0Sopenharmony_ci - Reworded issue 5, to clarify that the buffer sub-object (i.e., 13702f4aeb0Sopenharmony_ci the unique resource specified by <ctx>, <target>, <buffer>, 13802f4aeb0Sopenharmony_ci and <attrib_list>) specified in CreateImage may not already be 13902f4aeb0Sopenharmony_ci an EGLImage sibling (either EGLImage source or EGLImage target). 14002f4aeb0Sopenharmony_ci#1 Original release 141