blob: 719bb1182b6d7e768a789640cb4979c0724e2679 [file] [log] [blame]
Name
KHR_vg_parent_image
Name Strings
EGL_KHR_vg_parent_image
Contributors
Ignacio Llamas
Gary King
Chris Wynn
Contacts
Gary King, NVIDIA Corporation (gking 'at' nvidia.com)
Notice
Copyright (c) 2006-2013 The Khronos Group Inc. Copyright terms at
http://www.khronos.org/registry/speccopyright.html
Status
Complete.
Approved by the Khronos Board of Promoters on February 11, 2008.
Version
Version 5, October 8, 2008
Number
EGL Extension #4
Dependencies
This extension requires EGL 1.2 and the EGL_KHR_image extension,
and an OpenVG implementation
This specification is written against the wording of the EGL Image
(EGL_KHR_image) specification.
Overview
This extension provides a mechanism for creating EGLImage objects
from OpenVG VGImage API resources. For an overview of EGLImage
operation, please see the EGL_KHR_image specification.
New Types
None
New Procedures and Functions
None
New Tokens
EGL_VG_PARENT_IMAGE_KHR 0x30BA
Additions to the EGL Image (EGL_KHR_image) Specification:
Add the following to Table aaa (Legal values for CreateImageKHR
<target> parameter), Section 2.5.1 (EGLImage Specification)
+--------------------------+--------------------------------------------+
| <target> | Notes |
+--------------------------+--------------------------------------------+
| EGL_VG_PARENT_IMAGE_KHR | Used for OpenVG VGImage objects |
+--------------------------+--------------------------------------------+
Insert the following text after paragraph 3 ("If <target> is
NATIVE_PIXMAP_KHR...") of Section 2.5.1 (EGLImage Specification):
"If <target> is EGL_VG_PARENT_IMAGE_KHR, <dpy> must be a valid EGLDisplay,
<ctx> must be a valid OpenVG API context on that display, and <buffer>
must be a handle of a VGImage object valid in the specified context, cast
into the type EGLClientBuffer. Furthermore, the specified VGImage
<buffer> must not be a child image (i.e. the value returned by
vgGetParent(<buffer>) must be <buffer>). If the specified VGImage
<buffer> has any child images (i.e., vgChildImage has been previously
called with the parent parameter set to <buffer>), all child images will
be treated as EGLImage siblings after CreateImageKHR returns. Any values
specified in <attr_list> are ignored."
Add the following errors to the end of the list in Section 2.5.1 (EGLImage
Specification):
" * If <target> is EGL_VG_PARENT_IMAGE_KHR, and <dpy> is not a
valid EGLDisplay, the error EGL_BAD_DISPLAY is generated.
* If <target> is EGL_VG_PARENT_IMAGE_KHR and <ctx> is not a
valid EGLContext, the error EGL_BAD_CONTEXT is generated.
* If <target> is EGL_VG_PARENT_IMAGE_KHR and <ctx> is not a valid
OpenVG context, the error EGL_BAD_MATCH is returned.
* If <target> is EGL_VG_PARENT_IMAGE_KHR and <buffer> is not a handle
to a VGImage object in the specified API context <ctx>, the error
EGL_BAD_PARAMETER is generated.
* If <target> is EGL_VG_PARENT_IMAGE_KHR, and the VGImage specified by
<buffer> is a child image (i.e., vgGetParent(<buffer>) returns
a different handle), the error EGL_BAD_ACCESS is generated."
Issues
1. Should this specification allow the creation of EGLImages
from OpenVG child images?
RESOLVED: No. It is believed that properly addressing the
interaction of hardware restrictions (e.g., memory alignment),
arbitrary image subrectangles, scissor rectangles and viewport
rectangles may create an undue burden on implementers. In the
interest of providing a useful spec in a timely fashion, this
functionality has been disallowed, with the possibility of
providing it (if necessary) through a future layered extension.
This restriction is shared with eglCreatePbufferFromClientBuffer;
however, this specification allows EGL Images to be created
from VGImages which have child images, functionality not
previously available.
Revision History
#5 (Jon Leech, October 8, 2008)
- Updated status (approved as part of OpenKODE 1.0)
#4 (Jon Leech, April 5, 2007)
- Assigned enumerant values
- Added OpenKODE 1.0 Provisional disclaimer
#3 (December 14, 2006)
- Changed requirement to egl 1.2 to include EGLClientBuffer type.
- added error condition descriptions for <dpy> and <ctx>
#2 (November 27, 2006)
- Changed OES token to KHR