Edit

kc3-lang/angle/extensions/EGL_ANGLE_device_creation.txt

Branch :

  • Show log

    Commit

  • Author : Austin Kinross
    Date : 2015-12-02 12:37:10
    Hash : fc1a44a1
    Message : Revert "Revert "Add and implement EGL_ANGLE_device_creation[_d3d11]"" This reverts commit dd5c5b79333fdde7858a77d39e91cc3d30b74c9e. BUG=angleproject:1190 Change-Id: I1bc1b232b6a916da6d18b546baf20e0854a2768f Reviewed-on: https://chromium-review.googlesource.com/315169 Tested-by: Austin Kinross <aukinros@microsoft.com> Reviewed-by: Jamie Madill <jmadill@chromium.org>

  • extensions/EGL_ANGLE_device_creation.txt
  • Name
    
        ANGLE_device_creation
    
    Name Strings
    
        EGL_ANGLE_device_creation
    
    Contributors
    
        Austin Kinross  (aukinros 'at' microsoft.com)
    
    Contact
    
        Austin Kinross  (aukinros 'at' microsoft.com)
    
    Status
    
        Draft
    
    Version
    
        Version 1, Nov 02, 2015
    
    Number
    
        EGL Extension #XXX
    
    Extension Type
    
        EGL client extension
    
    Dependencies
    
        Requires EGL_EXT_device_query.
    
        Written against the wording of EGL 1.5 as modified by EGL_EXT_device_query.
    
    Overview
    
        Increasingly, EGL and its client APIs are being used in place of "native"
        rendering APIs to implement the basic graphics functionality of native
        windowing systems. This extension defines a way to create an EGL device
        which maps to an inputted "native" rendering API device.
    
        This extension is intended to be used with EGL_EXT_platform_device to
        initialize a display using an existing "native" rendering device, but
        EGL_EXT_platform_device is not required.
    
    IP Status
    
        No known claims.
    
    New Types
    
        None.
    
    New Procedures and Functions
    
        EGLDeviceEXT eglCreateDeviceANGLE(EGLint device_type,
                                          void *native_device,
                                          cost EGLAttrib *attrib_list)
    
        EGLBoolean eglReleaseDeviceANGLE(EGLDeviceEXT device)
    
    New Tokens
    
        None.
    
    Changes to section 3.2 (Devices)
    
        Add the following after the final paragraph to section 3.2 (Devices):
    
        To create an EGL device wrapping an existing native rendering device, use:
    
            EGLDeviceEXT eglCreateDeviceANGLE(EGLint device_type,
                                              void *native_device,
                                              cost EGLAttrib *attrib_list);
    
        On success, a valid EGLDeviceEXT is returned. On failure, EGL_NO_DEVICE_EXT
        is returned.
    
        An EGL_BAD_ATTRIBUTE error is generated if <device_type> is not a valid
        device type. This extension defines no valid values for <device_type>.
    
        All attribute names in <attrib_list> are immediately followed by the
        corresponding desired value. The list is terminated with EGL_NONE. The
        <attrib_list> is considered empty if either <attrib_list> is NULL or if its
        first element is EGL_NONE. This specification defines no valid attribute
        names for inclusion in <attrib_list>. If <attrib_list> is not empty then
        an EGL_BAD_ATTRIBUTE error is generated.
    
        If a device is created using eglCreateDeviceANGLE then it is the
        caller's responsibility to manage the lifetime of the device, and to call
        eglReleaseDeviceANGLE at an appropriate time.
    
        To release a device, use:
    
            EGLBoolean eglReleaseDeviceANGLE(EGLDeviceEXT device);
    
        On success, EGL_TRUE is returned. On failure, EGL_FALSE is returned.
    
        If <device> equals EGL_NO_DEVICE_EXT then an EGL_BAD_DEVICE_EXT error is
        generated. If <device> is not a valid device then the behavior is undefined.
    
        <device> must have been created using eglGetDeviceANGLE. If <device> was
        obtained by other means, such as through eglQueryDisplayAttribEXT, then an
        EGL_BAD_DEVICE_EXT error is generated.
    
        If eglReleaseDeviceANGLE is called on a device that is still in use by other
        EGL objects, then the resulting behavior of those objects is undefined.
    
    Issues
    
        None.
    
    Revision History
    
        Version 1, Nov 2, 2015 (Austin Kinross)
            - Initial Draft