| Name |
| |
| CHROMIUM_texture_mailbox |
| |
| Name Strings |
| |
| GL_CHROMIUM_texture_mailbox |
| |
| Version |
| |
| Last Modifed Date: June 11, 2018 |
| |
| Dependencies |
| |
| OpenGL ES 2.0 is required. |
| |
| Overview |
| |
| This extension defines a way of sharing texture image data between texture |
| objects in different contexts where the contexts would not normally share |
| texture resources. Two new functions are exported. |
| glProduceTextureDirectCHROMIUM generates a name that can be used to identify |
| texture image data outside the scope of a context group and associates a |
| texture object with that global mailbox name. |
| glCreateAndConsumeTextureCHROMIUM associates the texture object referenced |
| by a mailbox name to a texture name. |
| |
| New Procedures and Functions |
| |
| void glProduceTextureDirectCHROMIUM (GLuint texture, GLbyte *mailbox) |
| |
| Generates a unique name identifying a mailbox, and associates the specified |
| texture object with the mailbox name. The name is generated using a |
| cryptographic random number generator and is intended to be difficult to |
| guess. The scope of the name is implementation specific, for example it |
| might not span multiple displays. |
| |
| A given texture object can be associated with several mailbox names. |
| |
| This operation does not change the texture bindings or alter the bound |
| texture in any way. |
| |
| <texture> Specifies the name of a texture. |
| |
| <mailbox> returns a GL_MAILBOX_SIZE_CHROMIUM byte sized name. |
| |
| INVALID_OPERATION is generated if <texture> is not a valid texture. |
| |
| |
| GLuint glCreateAndConsumeTextureCHROMIUM (const GLbyte *mailbox) |
| |
| Returns a new texture name pointing to the texture object associated with |
| the mailbox name. Does not alter the texture bindings or alter the currently |
| bound texture in any way. All the contexts that have consumed the texture |
| object, as well as produced it share the texture object, as if the contexts |
| were part of the share group. The texture object is deleted once all |
| contexts have deleted the texture name associated with the texture object, |
| and detached it from all framebuffer objects as well as texture unit |
| bindings. See Appendix C of the OpenGL ES 2.0 specification for details |
| relative to visibility in one context of changes to the shared texture |
| object in another context. |
| |
| If glCreateAndConsumeTextureCHROMIUM generates an error, the new texture |
| name remains unbound. It is treated in the same way as a new texture name |
| returned by GenTextures. |
| |
| INVALID_OPERATION is generated if <mailbox> is not associated with a texture |
| object. |
| |
| New Tokens |
| |
| The size of a mailbox name in bytes. |
| |
| GL_MAILBOX_SIZE_CHROMIUM 16 |
| |
| Errors |
| |
| None. |
| |
| New Tokens |
| |
| None. |
| |
| New State |
| |
| None. |
| |
| Revision History |
| |
| 2011-04-25 Documented the extension |
| 2013-05-23 Major revision in Produce/Consume semantics, introducing |
| sharing. |
| 2014-06-02 Added glProduceTextureDirectCHROMIUM and |
| glCreateAndConsumeTextureCHROMIUM definitions. |
| 2016-08-03 Allow unbinding mailbox using glProduceTextureDirectCHROMIUM. |
| 2017-10-20 Remove glConsumeTextureCHROMIUM and update |
| glCreateAndConsumeTextureCHROMIUM definition. |
| 2017-11-20 Remove glProduceTextureCHROMIUM. Removed <target> arguments |
| from glProduceTextureDirectCHROMIUM and |
| glCreateAndConsumeTextureCHROMIUM, and updated definition. |
| 2018-06-11 Merge glGenMailboxCHROMIUM into glProduceTextureDirectCHROMIUM. |
| Update documentation to reflect reality. |