1 // 2 // Copyright(c) 2014 The ANGLE Project Authors. All rights reserved. 3 // Use of this source code is governed by a BSD-style license that can be 4 // found in the LICENSE file. 5 // 6 7 // entry_points_egl_ext.h : Defines the EGL extension entry points. 8 9 #ifndef LIBGLESV2_ENTRYPOINTSEGLEXT_H_ 10 #define LIBGLESV2_ENTRYPOINTSEGLEXT_H_ 11 12 #include <EGL/egl.h> 13 #include <EGL/eglext.h> 14 #include <export.h> 15 16 namespace egl 17 { 18 19 // EGL_ANGLE_query_surface_pointer 20 ANGLE_EXPORT EGLBoolean EGLAPIENTRY QuerySurfacePointerANGLE(EGLDisplay dpy, EGLSurface surface, EGLint attribute, void **value); 21 22 // EGL_NV_post_sub_buffer 23 ANGLE_EXPORT EGLBoolean EGLAPIENTRY PostSubBufferNV(EGLDisplay dpy, EGLSurface surface, EGLint x, EGLint y, EGLint width, EGLint height); 24 25 // EGL_EXT_platform_base 26 ANGLE_EXPORT EGLDisplay EGLAPIENTRY GetPlatformDisplayEXT(EGLenum platform, void *native_display, const EGLint *attrib_list); 27 28 // EGL_EXT_device_query 29 ANGLE_EXPORT EGLBoolean EGLAPIENTRY QueryDisplayAttribEXT(EGLDisplay dpy, EGLint attribute, EGLAttrib *value); 30 ANGLE_EXPORT EGLBoolean EGLAPIENTRY QueryDeviceAttribEXT(EGLDeviceEXT device, EGLint attribute, EGLAttrib *value); 31 ANGLE_EXPORT const char * EGLAPIENTRY QueryDeviceStringEXT(EGLDeviceEXT device, EGLint name); 32 33 // EGL_KHR_image_base/EGL_KHR_image 34 ANGLE_EXPORT EGLImageKHR EGLAPIENTRY CreateImageKHR(EGLDisplay dpy, 35 EGLContext ctx, 36 EGLenum target, 37 EGLClientBuffer buffer, 38 const EGLint *attrib_list); 39 ANGLE_EXPORT EGLBoolean EGLAPIENTRY DestroyImageKHR(EGLDisplay dpy, EGLImageKHR image); 40 41 // EGL_EXT_device_creation 42 ANGLE_EXPORT EGLDeviceEXT EGLAPIENTRY CreateDeviceANGLE(EGLint device_type, 43 void *native_device, 44 const EGLAttrib *attrib_list); 45 ANGLE_EXPORT EGLBoolean EGLAPIENTRY ReleaseDeviceANGLE(EGLDeviceEXT device); 46 47 // EGL_KHR_stream 48 ANGLE_EXPORT EGLStreamKHR EGLAPIENTRY CreateStreamKHR(EGLDisplay dpy, const EGLint *attrib_list); 49 ANGLE_EXPORT EGLBoolean EGLAPIENTRY DestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream); 50 ANGLE_EXPORT EGLBoolean EGLAPIENTRY StreamAttribKHR(EGLDisplay dpy, 51 EGLStreamKHR stream, 52 EGLenum attribute, 53 EGLint value); 54 ANGLE_EXPORT EGLBoolean EGLAPIENTRY QueryStreamKHR(EGLDisplay dpy, 55 EGLStreamKHR stream, 56 EGLenum attribute, 57 EGLint *value); 58 ANGLE_EXPORT EGLBoolean EGLAPIENTRY QueryStreamu64KHR(EGLDisplay dpy, 59 EGLStreamKHR stream, 60 EGLenum attribute, 61 EGLuint64KHR *value); 62 63 // EGL_KHR_stream_consumer_gltexture 64 ANGLE_EXPORT EGLBoolean EGLAPIENTRY StreamConsumerGLTextureExternalKHR(EGLDisplay dpy, 65 EGLStreamKHR stream); 66 ANGLE_EXPORT EGLBoolean EGLAPIENTRY StreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR stream); 67 ANGLE_EXPORT EGLBoolean EGLAPIENTRY StreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR stream); 68 ANGLE_EXPORT EGLBoolean EGLAPIENTRY 69 StreamConsumerGLTextureExternalAttribsNV(EGLDisplay dpy, 70 EGLStreamKHR stream, 71 const EGLAttrib *attrib_list); 72 73 // EGL_ANGLE_stream_producer_d3d_texture_nv12 74 ANGLE_EXPORT EGLBoolean EGLAPIENTRY 75 CreateStreamProducerD3DTextureNV12ANGLE(EGLDisplay dpy, 76 EGLStreamKHR stream, 77 const EGLAttrib *attrib_list); 78 ANGLE_EXPORT EGLBoolean EGLAPIENTRY StreamPostD3DTextureNV12ANGLE(EGLDisplay dpy, 79 EGLStreamKHR stream, 80 void *texture, 81 const EGLAttrib *attrib_list); 82 83 // EGL_CHROMIUM_get_sync_values 84 ANGLE_EXPORT EGLBoolean EGLAPIENTRY GetSyncValuesCHROMIUM(EGLDisplay dpy, 85 EGLSurface surface, 86 EGLuint64KHR *ust, 87 EGLuint64KHR *msc, 88 EGLuint64KHR *sbc); 89 90 // EGL_EXT_swap_buffers_with_damage 91 ANGLE_EXPORT EGLBoolean SwapBuffersWithDamageEXT(EGLDisplay dpy, 92 EGLSurface surface, 93 EGLint *rects, 94 EGLint n_rects); 95 96 // 97 ANGLE_EXPORT EGLint EGLAPIENTRY ProgramCacheGetAttribANGLE(EGLDisplay dpy, EGLenum attrib); 98 ANGLE_EXPORT void EGLAPIENTRY ProgramCacheQueryANGLE(EGLDisplay dpy, 99 EGLint index, 100 void *key, 101 EGLint *keysize, 102 void *binary, 103 EGLint *binarysize); 104 ANGLE_EXPORT void EGLAPIENTRY ProgramCachePopulateANGLE(EGLDisplay dpy, 105 const void *key, 106 EGLint keysize, 107 const void *binary, 108 EGLint binarysize); 109 ANGLE_EXPORT EGLint EGLAPIENTRY ProgramCacheResizeANGLE(EGLDisplay dpy, EGLint limit, EGLenum mode); 110 111 } // namespace egl 112 113 #endif // LIBGLESV2_ENTRYPOINTSEGLEXT_H_ 114