• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Name
2
3    KHR_image_pixmap
4
5Name Strings
6
7    EGL_KHR_image_pixmap
8
9Contributors
10
11    Jeff Juliano
12    Gary King
13    Jon Leech
14    Jonathan Grant
15    Barthold Lichtenbelt
16    Aaftab Munshi
17    Acorn Pooley
18    Chris Wynn
19    Ray Smith
20
21Contacts
22
23    Jon Leech (jon 'at' alumni.caltech.edu)
24    Gary King, NVIDIA Corporation (gking 'at' nvidia.com)
25
26Notice
27
28    Copyright (c) 2008-2013 The Khronos Group Inc. Copyright terms at
29        http://www.khronos.org/registry/speccopyright.html
30
31Status
32
33    Complete. Functionality approved (as part of KHR_image) by the
34    Khronos Board of Promoters on February 11, 2008.
35
36    Split into KHR_image_base and KHR_image_pixmap approved by the
37    Khronos Technical Working Group on November 19, 2008.
38
39Version
40
41    Version 5, November 13, 2013
42
43Number
44
45    EGL Extension #9
46
47Dependencies
48
49    EGL 1.2 is required.
50
51    EGL_KHR_image_base is required.
52
53    The EGL implementation must define an EGLNativePixmapType (although it
54    is not required either to export any EGLConfigs supporting rendering to
55    native pixmaps, or to support eglCreatePixmapSurface).
56
57    This extension is written against the wording of the EGL 1.4
58    Specification.
59
60Overview
61
62    This extension allows creating an EGLImage from a native pixmap
63    image.
64
65New Types
66
67    None
68
69New Procedures and Functions
70
71    None
72
73New Tokens
74
75    Accepted by the <target> parameter of eglCreateImageKHR:
76
77        EGL_NATIVE_PIXMAP_KHR                          0x30B0
78
79Additions to Chapter 2 of the EGL 1.4 Specification (EGL Operation)
80
81    Rename section 2.2.2.1 "Native Surface Coordinate Systems" to "Native
82    Surface and EGLImage Pixmap Coordinate Systems" and add to the end of
83    the section:
84
85   "EGLImages created with target EGL_NATIVE_PIXMAP_KHR share the same
86    coordinate system as native pixmap surfaces. When that coordinate system
87    is inverted, client APIs must invert their <y> coordinate when accessing
88    such images as described above."
89
90    Add to section 2.5.1 "EGLImage Specification" (as defined by the
91    EGL_KHR_image_base specification), in the description of
92    eglCreateImageKHR:
93
94   "Values accepted for <target> are listed in Table aaa, below.
95
96      +-------------------------+--------------------------------------------+
97      |  <target>               |  Notes                                     |
98      +-------------------------+--------------------------------------------+
99      |  EGL_NATIVE_PIXMAP_KHR  |   Used for EGLNativePixmapType objects     |
100      +-------------------------+--------------------------------------------+
101       Table aaa.  Legal values for eglCreateImageKHR <target> parameter
102
103    ...
104
105    If <target> is EGL_NATIVE_PIXMAP_KHR, <dpy> must be a valid display, <ctx>
106    must be EGL_NO_CONTEXT; <buffer> must be a handle to a valid
107    NativePixmapType object, cast into the type EGLClientBuffer; and
108    attributes other than EGL_IMAGE_PRESERVED_KHR are ignored."
109
110    Add to the list of error conditions for eglCreateImageKHR:
111
112      "* If <target> is EGL_NATIVE_PIXMAP_KHR and <buffer> is not a
113         valid native pixmap handle, or if <buffer> is a native pixmap
114         whose color buffer format is incompatible with the system's
115         EGLImage implementation, the error EGL_BAD_PARAMETER is
116         generated.
117
118       * If <target> is EGL_NATIVE_PIXMAP_KHR, and <dpy> is not a valid
119         EGLDisplay object the error EGL_BAD_DISPLAY is generated.
120
121       * If <target> is EGL_NATIVE_PIXMAP_KHR, and <ctx> is not EGL_NO_CONTEXT,
122         the error EGL_BAD_PARAMETER is generated.
123
124       * If <target> is EGL_NATIVE_PIXMAP_KHR, and <buffer> is not a handle
125         to a valid NativePixmapType object, the error EGL_BAD_PARAMETER
126         is generated."
127
128Issues
129
130    1) Should this specification allow EGLImages to be created from native
131       pixmaps which already have a pixmap surface associated with them, and
132       vice versa?
133
134       RESOLVED: Yes. There are practical usecases for this, and it is
135       already the application's responsibility to handle any format
136       mismatch or synchronization issues that this may allow.
137
138Revision History
139
140#5  (Jon Leech, November 13, 2013)
141    - Add Issue #1 regarding use cases for multiple EGL consumer/producers
142      of a native pixmap (Bug 7779).
143
144#4  (Jon Leech, October 16, 2013)
145    - Add language allowing native pixmap and client API image y coordinate
146      convention to differ. Re-base extension against EGL 1.4 (Bug 9701).
147
148#3  (Jon Leech, November 25, 2008)
149    - Remove dependency on EGLConfig in error conditions.
150
151#2  (Jon Leech, November 12, 2008)
152    - Clarified dependency on EGLNativePixmapType such that pixmap configs
153      and surfaces are not required.
154
155#1  (Jon Leech, October 21, 2008)
156    - Split native pixmap functionality from EGL_KHR_image into a layered
157      extension on EGL_KHR_image_base, and note interaction with the new
158      EGL_IMAGE_PRESERVED_KHR attribute.
159