diff --git a/extensions/MESA/MESA_EGL_image_cubemap.txt b/extensions/MESA/MESA_EGL_image_cubemap.txt new file mode 100644 index 00000000..67555cb2 --- /dev/null +++ b/extensions/MESA/MESA_EGL_image_cubemap.txt @@ -0,0 +1,106 @@ +Name + + MESA_EGL_image_cubemap + +Name Strings + + GL_MESA_EGL_image_cubemap + +Contact + + Simon Zeni, Status Holdings Ltd. + +Contributors + + Simon Zeni + +Status + + Draft + +Version + + Version 0.1, 2022/08/05 + +Number + + OpenGL ES Extension #546 + +Dependencies + + OpenGL ES 2.0 is required, or any previous version that offers support + for GL_ARB_texture_cube_map extension + + GL_OES_EGL_image is required. + + EGL 1.2 is required, with the EGL_KHR_image or EGL_KHR_image_base + + This extension is written based on the wording of the OpenGL 2.0 + +Overview + + This extension provides a mechanism for creating cubemap textures from + EGLImage objects. + + MESA_gl_texture_cubemap_image defines the process of creating an EGLImage + from an OpenGL ES cubemap texture. + + The companion EGL_KHR_image_base and EGL_KHR_image extensions provide the + definition and rationale for EGLImage objects. + + EGL extension specifications are located in the EGL Registry at + http://www.khronos.org/registry/egl/ + +New Tokens + + None. + +New Procedures and Functions + + void EGLImageTargetCubemapMESA(enum target, eglImageOES image) + +Additions to Chapter 3 of the OpenGL 2.0 Specification (Rasterization) + + In section 3.8.2 following the specification added by OES_EGL_image: + + "It is also possible to specify cubemap textures images from existing + EGLImage objects. Images specified this way will be EGLImage sibilings + with the original EGLImage source and any other EGLImage targets. + + The command + + void EGLImageTargetCubemapMESA(enum target, eglImageOES image); + + defines an complete cubemap texture with 6 faces. All properties of the + texture images (including width, height, format, border, mipmap levels of + detail, and image data) are taken from the specified eglImageOES , + rather than from the client or the framebuffer. Any existing image arrays + associated with any mipmap levels in the texture object are freed (as if + TexImage was called for each, with an image of zero size). As a result of + this referencing operation, all of the pixel data in the used as + the EGLImage source resource (i.e., the parameter passed to the + CreateImageOES command that returned ) will become undefined. + + must be TEXTURE_CUBE_MAP, and must be the handle of a + valid EGLImage resource, cast into the type eglImageOES. Assuming no + errors are generated by the command EGLImageTargetCubemapMESA, the newly + specified texture object will be an EGLImage target of the specified + eglImageOES. If an application later respecifies any face of the cubemap + texture object (through mechanism such as calls to TexImage2D or + TexSubImage2D), the implementation must allocate a new space for the image + and copy any existing data to the newly (re)specified texture object. The + (re)specified texture object will not be an EGLImage target. + + If the GL is unable to specify a texture object using the supploed + eglImageOES (if the refers to a different type of image, + such as a TEXTURE_2D), the error INVALID_OPERATION is generated. + + If does not refer to a valid eglImageOES object, the error + INVALID_VALUE is generated. + + If is not TEXTURE_CUBE_MAP, the error INVALID_ENUM is generated. + +Revision History + + Version 0.1, 2022-08-05 (Simon Zeni) + - Initial draft diff --git a/extensions/glext.php b/extensions/glext.php index 8b98acf7..c8a9ed77 100644 --- a/extensions/glext.php +++ b/extensions/glext.php @@ -1031,6 +1031,8 @@
  • GL_EXT_EGL_sync
  • +
  • GL_MESA_EGL_image_cubemap +
  • GL_INTEL_shader_integer_functions2
  • GL_MESA_framebuffer_flip_x diff --git a/extensions/registry.py b/extensions/registry.py index 2be38add..4db18706 100644 --- a/extensions/registry.py +++ b/extensions/registry.py @@ -5684,4 +5684,10 @@ 'supporters' : { 'NVIDIA' }, 'url' : 'extensions/NV/GLX_NV_multigpu_context.txt', }, + 'GL_MESA_EGL_image_cubemap' : { + 'number' : 546, + 'flags' : { 'public' }, + 'supporters' : { 'MESA' }, + 'url' : 'extensions/MESA/MESA_EGL_image_cubemap.txt', + }, }