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