5 #include "eglcurrent.h"
9 #ifdef EGL_KHR_image_base
13 * Parse the list of image attributes and return the proper error code.
16 _eglParseImageAttribList(_EGLImageAttribs
*attrs
, _EGLDisplay
*dpy
,
17 const EGLint
*attrib_list
)
19 EGLint i
, err
= EGL_SUCCESS
;
23 memset(attrs
, 0, sizeof(attrs
));
24 attrs
->ImagePreserved
= EGL_FALSE
;
25 attrs
->GLTextureLevel
= 0;
26 attrs
->GLTextureZOffset
= 0;
31 for (i
= 0; attrib_list
[i
] != EGL_NONE
; i
++) {
32 EGLint attr
= attrib_list
[i
++];
33 EGLint val
= attrib_list
[i
];
36 /* EGL_KHR_image_base */
37 case EGL_IMAGE_PRESERVED_KHR
:
38 attrs
->ImagePreserved
= val
;
41 /* EGL_KHR_gl_image */
42 case EGL_GL_TEXTURE_LEVEL_KHR
:
43 attrs
->GLTextureLevel
= val
;
45 case EGL_GL_TEXTURE_ZOFFSET_KHR
:
46 attrs
->GLTextureZOffset
= val
;
49 /* EGL_MESA_drm_image */
56 case EGL_DRM_BUFFER_FORMAT_MESA
:
57 attrs
->DRMBufferFormatMESA
= val
;
59 case EGL_DRM_BUFFER_USE_MESA
:
60 attrs
->DRMBufferUseMESA
= val
;
62 case EGL_DRM_BUFFER_STRIDE_MESA
:
63 attrs
->DRMBufferStrideMESA
= val
;
67 /* unknown attrs are ignored */
71 if (err
!= EGL_SUCCESS
) {
72 _eglLog(_EGL_DEBUG
, "bad image attribute 0x%04x", attr
);
82 _eglInitImage(_EGLImage
*img
, _EGLDisplay
*dpy
)
84 _eglInitResource(&img
->Resource
, sizeof(*img
), dpy
);
90 #endif /* EGL_KHR_image_base */