зеркало из https://github.com/AvaloniaUI/angle.git
136 строки
4.3 KiB
Plaintext
136 строки
4.3 KiB
Plaintext
Name
|
|
|
|
ANGLE_external_objects_fuchsia
|
|
|
|
Name Strings
|
|
|
|
GL_ANGLE_memory_object_fuchsia
|
|
GL_ANGLE_semaphore_fuchsia
|
|
|
|
Contributors
|
|
|
|
Michael Spang, Google
|
|
|
|
Contact
|
|
|
|
Michael Spang, Google (spang 'at' google.com)
|
|
|
|
Status
|
|
|
|
Draft
|
|
|
|
Version
|
|
|
|
Last Modified Date: Feb 19, 2020
|
|
Revision: 1
|
|
|
|
Number
|
|
|
|
TBD
|
|
|
|
Dependencies
|
|
|
|
Written against the OpenGL 4.5 and OpenGL ES 3.2 specifications
|
|
|
|
GL_ANGLE_memory_object_fuchsia requires GL_EXT_memory_object
|
|
|
|
GL_ANGLE_semaphore_fuchsia requires GL_EXT_semaphore
|
|
|
|
Overview
|
|
|
|
Building upon the OpenGL memory object and semaphore framework
|
|
defined in EXT_external_objects, this extension enables an OpenGL
|
|
application to import a memory object or semaphore from Zircon
|
|
external handles.
|
|
|
|
New Procedures and Functions
|
|
|
|
If the GL_ANGLE_memory_object_fuchsia string is reported, the following
|
|
commands are added:
|
|
|
|
void ImportMemoryZirconHandleANGLE(uint memory,
|
|
uint64 size,
|
|
enum handleType,
|
|
uint handle);
|
|
|
|
If the GL_ANGLE_semaphore_fuchsia string is reported, the following commands
|
|
are added:
|
|
|
|
void ImportSemaphoreZirconHandleANGLE(uint semaphore,
|
|
enum handleType,
|
|
uint handle);
|
|
|
|
|
|
New Tokens
|
|
|
|
If the GL_ANGLE_memory_object_fuchsia string is reported, the following
|
|
tokens are added:
|
|
|
|
Accepted by the <handleType> parameter of ImportMemoryZirconHandleANGLE().
|
|
|
|
HANDLE_TYPE_ZIRCON_VMO_ANGLE 0x93AE
|
|
|
|
If the GL_ANGLE_semaphore_fuchsia string is reported, the following
|
|
tokens are added:
|
|
|
|
Accepted by the <handleType> parameter of ImportSemaphoreZirconHandleANGLE().
|
|
|
|
HANDLE_TYPE_ZIRCON_EVENT_ANGLE 0x93AF
|
|
|
|
Additions to Chapter 4 of the OpenGL 4.5 Specification (Event Model)
|
|
|
|
Add the following entry to table 4.2 "Commands for importing
|
|
external semaphore handles."
|
|
|
|
| Handle Type | Import command |
|
|
+--------------------------------+----------------------------------+
|
|
| HANDLE_TYPE_ZIRCON_EVENT_ANGLE | ImportSemaphoreZirconHandleANGLE |
|
|
+--------------------------------+----------------------------------+
|
|
|
|
Replace the paragraph in section 4.2.1 beginning "External handles
|
|
are often defined..." with the following
|
|
|
|
The command
|
|
|
|
ImportSemaphoreZirconHandleANGLE(uint semaphore,
|
|
enum handleType,
|
|
uint handle);
|
|
|
|
imports a semaphore from the zircon handle <handle>. What type of
|
|
handle <handle> refers to is determined by <handleType>. A successful
|
|
import operation transfers ownership of <handle> to the GL
|
|
implementation, and performing any operation on <handle> in the
|
|
application after an import results in undefined behavior.
|
|
|
|
Additions to Chapter 6 of the OpenGL 4.5 Specification (Memory Objects)
|
|
|
|
Add the following entry to table 6.2 "Commands for importing
|
|
external memory handles."
|
|
|
|
| Handle Type | Import command |
|
|
+------------------------------+-------------------------------+
|
|
| HANDLE_TYPE_ZIRCON_VMO_ANGLE | ImportMemoryZirconHandleANGLE |
|
|
+------------------------------+-------------------------------+
|
|
|
|
Replace the paragraph in section 6.1 beginning "External handles are
|
|
often defined..." with the following
|
|
|
|
The command
|
|
|
|
void ImportMemoryZirconHandleANGLE(uint memory,
|
|
uint64 size,
|
|
enum handleType,
|
|
uint handle);
|
|
|
|
imports a memory object of length <size> from the handle
|
|
<handle>. What type of object <handle> refers to is determined by
|
|
<handleType>. A successful import operation transfers ownership
|
|
of <handle> to the GL implementation, and performing any operation on
|
|
<handle> in the application after an import results in undefined
|
|
behavior.
|
|
|
|
Revision History
|
|
|
|
Revision 1, 2020-02-19 (Michael Spang)
|
|
- Initial draft based closely on EXT_external_objects_fd.
|