1 // 2 // Copyright 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 extern "C" { 17 18 // EGL_ANGLE_query_surface_pointer 19 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_QuerySurfacePointerANGLE(EGLDisplay dpy, 20 EGLSurface surface, 21 EGLint attribute, 22 void **value); 23 24 // EGL_NV_post_sub_buffer 25 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_PostSubBufferNV(EGLDisplay dpy, 26 EGLSurface surface, 27 EGLint x, 28 EGLint y, 29 EGLint width, 30 EGLint height); 31 32 // EGL_EXT_platform_base 33 ANGLE_EXPORT EGLDisplay EGLAPIENTRY EGL_GetPlatformDisplayEXT(EGLenum platform, 34 void *native_display, 35 const EGLint *attrib_list); 36 ANGLE_EXPORT EGLSurface EGLAPIENTRY EGL_CreatePlatformWindowSurfaceEXT(EGLDisplay dpy, 37 EGLConfig config, 38 void *native_window, 39 const EGLint *attrib_list); 40 ANGLE_EXPORT EGLSurface EGLAPIENTRY EGL_CreatePlatformPixmapSurfaceEXT(EGLDisplay dpy, 41 EGLConfig config, 42 void *native_pixmap, 43 const EGLint *attrib_list); 44 45 // EGL_EXT_device_query 46 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_QueryDisplayAttribEXT(EGLDisplay dpy, 47 EGLint attribute, 48 EGLAttrib *value); 49 50 // EGL_ANGLE_feature_control 51 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_QueryDisplayAttribANGLE(EGLDisplay dpy, 52 EGLint attribute, 53 EGLAttrib *value); 54 55 // EGL_EXT_device_query 56 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_QueryDeviceAttribEXT(EGLDeviceEXT device, 57 EGLint attribute, 58 EGLAttrib *value); 59 ANGLE_EXPORT const char *EGLAPIENTRY EGL_QueryDeviceStringEXT(EGLDeviceEXT device, EGLint name); 60 61 // EGL_KHR_image_base/EGL_KHR_image 62 ANGLE_EXPORT EGLImageKHR EGLAPIENTRY EGL_CreateImageKHR(EGLDisplay dpy, 63 EGLContext ctx, 64 EGLenum target, 65 EGLClientBuffer buffer, 66 const EGLint *attrib_list); 67 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_DestroyImageKHR(EGLDisplay dpy, EGLImageKHR image); 68 69 // EGL_ANGLE_device_creation 70 ANGLE_EXPORT EGLDeviceEXT EGLAPIENTRY EGL_CreateDeviceANGLE(EGLint device_type, 71 void *native_device, 72 const EGLAttrib *attrib_list); 73 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_ReleaseDeviceANGLE(EGLDeviceEXT device); 74 75 // EGL_KHR_stream 76 ANGLE_EXPORT EGLStreamKHR EGLAPIENTRY EGL_CreateStreamKHR(EGLDisplay dpy, 77 const EGLint *attrib_list); 78 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_DestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream); 79 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_StreamAttribKHR(EGLDisplay dpy, 80 EGLStreamKHR stream, 81 EGLenum attribute, 82 EGLint value); 83 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_QueryStreamKHR(EGLDisplay dpy, 84 EGLStreamKHR stream, 85 EGLenum attribute, 86 EGLint *value); 87 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_QueryStreamu64KHR(EGLDisplay dpy, 88 EGLStreamKHR stream, 89 EGLenum attribute, 90 EGLuint64KHR *value); 91 92 // EGL_KHR_stream_consumer_gltexture 93 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_StreamConsumerGLTextureExternalKHR(EGLDisplay dpy, 94 EGLStreamKHR stream); 95 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_StreamConsumerAcquireKHR(EGLDisplay dpy, 96 EGLStreamKHR stream); 97 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_StreamConsumerReleaseKHR(EGLDisplay dpy, 98 EGLStreamKHR stream); 99 ANGLE_EXPORT EGLBoolean EGLAPIENTRY 100 EGL_StreamConsumerGLTextureExternalAttribsNV(EGLDisplay dpy, 101 EGLStreamKHR stream, 102 const EGLAttrib *attrib_list); 103 104 // EGL_ANGLE_stream_producer_d3d_texture 105 ANGLE_EXPORT EGLBoolean EGLAPIENTRY 106 EGL_CreateStreamProducerD3DTextureANGLE(EGLDisplay dpy, 107 EGLStreamKHR stream, 108 const EGLAttrib *attrib_list); 109 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_StreamPostD3DTextureANGLE(EGLDisplay dpy, 110 EGLStreamKHR stream, 111 void *texture, 112 const EGLAttrib *attrib_list); 113 114 // EGL_KHR_fence_sync 115 ANGLE_EXPORT EGLSync EGLAPIENTRY EGL_CreateSyncKHR(EGLDisplay dpy, 116 EGLenum type, 117 const EGLint *attrib_list); 118 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_DestroySyncKHR(EGLDisplay dpy, EGLSync sync); 119 ANGLE_EXPORT EGLint EGLAPIENTRY EGL_ClientWaitSyncKHR(EGLDisplay dpy, 120 EGLSync sync, 121 EGLint flags, 122 EGLTime timeout); 123 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_GetSyncAttribKHR(EGLDisplay dpy, 124 EGLSync sync, 125 EGLint attribute, 126 EGLint *value); 127 128 // EGL_KHR_wait_sync 129 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_WaitSyncKHR(EGLDisplay dpy, EGLSync sync, EGLint flags); 130 131 // EGL_CHROMIUM_sync_control 132 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_GetSyncValuesCHROMIUM(EGLDisplay dpy, 133 EGLSurface surface, 134 EGLuint64KHR *ust, 135 EGLuint64KHR *msc, 136 EGLuint64KHR *sbc); 137 138 // EGL_ANGLE_sync_control_rate 139 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_GetMscRateANGLE(EGLDisplay dpy, 140 EGLSurface surface, 141 EGLint *numerator, 142 EGLint *denominator); 143 144 // EGL_KHR_swap_buffers_with_damage 145 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_SwapBuffersWithDamageKHR(EGLDisplay dpy, 146 EGLSurface surface, 147 EGLint *rects, 148 EGLint n_rects); 149 150 // EGL_ANDROID_presentation_time 151 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_PresentationTimeANDROID(EGLDisplay dpy, 152 EGLSurface surface, 153 EGLnsecsANDROID time); 154 155 // EGL_ANDRIOD_blob_cache 156 ANGLE_EXPORT void EGLAPIENTRY EGL_SetBlobCacheFuncsANDROID(EGLDisplay dpy, 157 EGLSetBlobFuncANDROID set, 158 EGLGetBlobFuncANDROID get); 159 160 // EGL_ANGLE_program_cache_control 161 ANGLE_EXPORT EGLint EGLAPIENTRY EGL_ProgramCacheGetAttribANGLE(EGLDisplay dpy, EGLenum attrib); 162 ANGLE_EXPORT void EGLAPIENTRY EGL_ProgramCacheQueryANGLE(EGLDisplay dpy, 163 EGLint index, 164 void *key, 165 EGLint *keysize, 166 void *binary, 167 EGLint *binarysize); 168 ANGLE_EXPORT void EGLAPIENTRY EGL_ProgramCachePopulateANGLE(EGLDisplay dpy, 169 const void *key, 170 EGLint keysize, 171 const void *binary, 172 EGLint binarysize); 173 ANGLE_EXPORT EGLint EGLAPIENTRY EGL_ProgramCacheResizeANGLE(EGLDisplay dpy, 174 EGLint limit, 175 EGLenum mode); 176 177 // EGL_KHR_debug 178 ANGLE_EXPORT EGLint EGLAPIENTRY EGL_DebugMessageControlKHR(EGLDEBUGPROCKHR callback, 179 const EGLAttrib *attrib_list); 180 181 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_QueryDebugKHR(EGLint attribute, EGLAttrib *value); 182 183 ANGLE_EXPORT EGLint EGLAPIENTRY EGL_LabelObjectKHR(EGLDisplay display, 184 EGLenum objectType, 185 EGLObjectKHR object, 186 EGLLabelKHR label); 187 188 // ANDROID_get_frame_timestamps 189 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_GetCompositorTimingSupportedANDROID(EGLDisplay dpy, 190 EGLSurface surface, 191 EGLint name); 192 193 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_GetCompositorTimingANDROID(EGLDisplay dpy, 194 EGLSurface surface, 195 EGLint numTimestamps, 196 const EGLint *names, 197 EGLnsecsANDROID *values); 198 199 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_GetNextFrameIdANDROID(EGLDisplay dpy, 200 EGLSurface surface, 201 EGLuint64KHR *frameId); 202 203 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_GetFrameTimestampSupportedANDROID(EGLDisplay dpy, 204 EGLSurface surface, 205 EGLint timestamp); 206 207 ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_GetFrameTimestampsANDROID(EGLDisplay dpy, 208 EGLSurface surface, 209 EGLuint64KHR frameId, 210 EGLint numTimestamps, 211 const EGLint *timestamps, 212 EGLnsecsANDROID *values); 213 214 // EGL_ANGLE_feature_control 215 ANGLE_EXPORT const char *EGLAPIENTRY EGL_QueryStringiANGLE(EGLDisplay dpy, 216 EGLint name, 217 EGLint index); 218 219 // EGL_ANDROID_get_native_client_buffer 220 ANGLE_EXPORT EGLClientBuffer EGLAPIENTRY 221 EGL_GetNativeClientBufferANDROID(const struct AHardwareBuffer *buffer); 222 223 // EGL_ANDROID_native_fence_sync 224 ANGLE_EXPORT EGLint EGLAPIENTRY EGL_DupNativeFenceFDANDROID(EGLDisplay dpy, EGLSyncKHR sync); 225 226 // EGL_ANGLE_swap_with_frame_token 227 ANGLE_EXPORT EGLBoolean EGLAPIENTRY 228 EGL_SwapBuffersWithFrameTokenANGLE(EGLDisplay dpy, 229 EGLSurface surface, 230 EGLFrameTokenANGLE frametoken); 231 232 } // extern "C" 233 234 #endif // LIBGLESV2_ENTRYPOINTSEGLEXT_H_ 235