Edit

kc3-lang/angle/src/libGLESv2/entry_points_egl_ext.h

Branch :

  • Show log

    Commit

  • Author : Jamie Madill
    Date : 2017-07-11 13:51:04
    Hash : 315ecd20
    Message : Add entry points for EGL_ANGLE_program_cache_control. This instruments the plumbing for the extension without adding any functionality or exposing the extensions string. The extension text is also updated to reflect the new entry point design and naming. Also this corrects a few mistakes. This will be followed up by the tests (which won't run) and then the extension functionality in ANGLE. BUG=angleproject:1897 Change-Id: I5b009e23bc27da06b067375525bd6fc574027702

  • src/libGLESv2/entry_points_egl_ext.h
  • //
    // Copyright(c) 2014 The ANGLE Project Authors. All rights reserved.
    // Use of this source code is governed by a BSD-style license that can be
    // found in the LICENSE file.
    //
    
    // entry_points_egl_ext.h : Defines the EGL extension entry points.
    
    #ifndef LIBGLESV2_ENTRYPOINTSEGLEXT_H_
    #define LIBGLESV2_ENTRYPOINTSEGLEXT_H_
    
    #include <EGL/egl.h>
    #include <EGL/eglext.h>
    #include <export.h>
    
    namespace egl
    {
    
    // EGL_ANGLE_query_surface_pointer
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY QuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value);
    
    // EGL_NV_post_sub_buffer
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY PostSubBufferNV(EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height);
    
    // EGL_EXT_platform_base
    ANGLE_EXPORT EGLDisplay EGLAPIENTRY GetPlatformDisplayEXT(EGLenum platform, void *native_display, const EGLint *attrib_list);
    
    // EGL_EXT_device_query
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY QueryDisplayAttribEXT(EGLDisplay dpy, EGLint attribute, EGLAttrib *value);
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY QueryDeviceAttribEXT(EGLDeviceEXT device, EGLint attribute, EGLAttrib *value);
    ANGLE_EXPORT const char * EGLAPIENTRY QueryDeviceStringEXT(EGLDeviceEXT device, EGLint name);
    
    // EGL_KHR_image_base/EGL_KHR_image
    ANGLE_EXPORT EGLImageKHR EGLAPIENTRY CreateImageKHR(EGLDisplay dpy,
                                                        EGLContext ctx,
                                                        EGLenum target,
                                                        EGLClientBuffer buffer,
                                                        const EGLint *attrib_list);
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY DestroyImageKHR(EGLDisplay dpy, EGLImageKHR image);
    
    // EGL_EXT_device_creation
    ANGLE_EXPORT EGLDeviceEXT EGLAPIENTRY CreateDeviceANGLE(EGLint device_type,
                                                            void *native_device,
                                                            const EGLAttrib *attrib_list);
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY ReleaseDeviceANGLE(EGLDeviceEXT device);
    
    // EGL_KHR_stream
    ANGLE_EXPORT EGLStreamKHR EGLAPIENTRY CreateStreamKHR(EGLDisplay dpy, const EGLint *attrib_list);
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY DestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream);
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY StreamAttribKHR(EGLDisplay dpy,
                                                        EGLStreamKHR stream,
                                                        EGLenum attribute,
                                                        EGLint value);
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY QueryStreamKHR(EGLDisplay dpy,
                                                       EGLStreamKHR stream,
                                                       EGLenum attribute,
                                                       EGLint *value);
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY QueryStreamu64KHR(EGLDisplay dpy,
                                                          EGLStreamKHR stream,
                                                          EGLenum attribute,
                                                          EGLuint64KHR *value);
    
    // EGL_KHR_stream_consumer_gltexture
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY StreamConsumerGLTextureExternalKHR(EGLDisplay dpy,
                                                                           EGLStreamKHR stream);
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY StreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR stream);
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY StreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR stream);
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY
    StreamConsumerGLTextureExternalAttribsNV(EGLDisplay dpy,
                                             EGLStreamKHR stream,
                                             const EGLAttrib *attrib_list);
    
    // EGL_ANGLE_stream_producer_d3d_texture_nv12
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY
    CreateStreamProducerD3DTextureNV12ANGLE(EGLDisplay dpy,
                                            EGLStreamKHR stream,
                                            const EGLAttrib *attrib_list);
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY StreamPostD3DTextureNV12ANGLE(EGLDisplay dpy,
                                                                      EGLStreamKHR stream,
                                                                      void *texture,
                                                                      const EGLAttrib *attrib_list);
    
    // EGL_CHROMIUM_get_sync_values
    ANGLE_EXPORT EGLBoolean EGLAPIENTRY GetSyncValuesCHROMIUM(EGLDisplay dpy,
                                                              EGLSurface surface,
                                                              EGLuint64KHR *ust,
                                                              EGLuint64KHR *msc,
                                                              EGLuint64KHR *sbc);
    
    // EGL_EXT_swap_buffers_with_damage
    ANGLE_EXPORT EGLBoolean SwapBuffersWithDamageEXT(EGLDisplay dpy,
                                                     EGLSurface surface,
                                                     EGLint *rects,
                                                     EGLint n_rects);
    
    //
    ANGLE_EXPORT EGLint EGLAPIENTRY ProgramCacheGetAttribANGLE(EGLDisplay dpy, EGLenum attrib);
    ANGLE_EXPORT void EGLAPIENTRY ProgramCacheQueryANGLE(EGLDisplay dpy,
                                                         EGLint index,
                                                         void *key,
                                                         EGLint *keysize,
                                                         void *binary,
                                                         EGLint *binarysize);
    ANGLE_EXPORT void EGLAPIENTRY ProgramCachePopulateANGLE(EGLDisplay dpy,
                                                            const void *key,
                                                            EGLint keysize,
                                                            const void *binary,
                                                            EGLint binarysize);
    ANGLE_EXPORT EGLint EGLAPIENTRY ProgramCacheResizeANGLE(EGLDisplay dpy, EGLint limit, EGLenum mode);
    
    }  // namespace egl
    
    #endif // LIBGLESV2_ENTRYPOINTSEGLEXT_H_