eglext_nv.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186
  1. #ifndef __eglext_nv_h_
  2. #define __eglext_nv_h_
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. /*
  7. * Copyright (c) 2008 - 2019, NVIDIA Corporation. All rights reserved.
  8. *
  9. * NVIDIA Corporation and its licensors retain all intellectual property
  10. * and proprietary rights in and to this software, related documentation
  11. * and any modifications thereto. Any use, reproduction, disclosure or
  12. * distribution of this software and related documentation without an express
  13. * license agreement from NVIDIA Corporation is strictly prohibited.
  14. */
  15. #ifndef EGL_EXT_stream_acquire_mode
  16. #define EGL_EXT_stream_acquire_mode 1
  17. #define EGL_CONSUMER_AUTO_ACQUIRE_EXT 0x332B
  18. #define EGL_RESOURCE_BUSY_EXT 0x3353
  19. typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREATTRIBEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
  20. #ifdef EGL_EGLEXT_PROTOTYPES
  21. EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireAttribEXT (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
  22. #endif
  23. #endif /* EGL_EXT_stream_acquire_mode */
  24. #ifndef EGL_EXT_stream_consumer_qnxscreen_window
  25. #define EGL_EXT_stream_consumer_qnxscreen_window 1
  26. #define EGL_CONSUMER_ACQUIRE_QNX_FLUSHING_EXT 0x3320
  27. #define EGL_CONSUMER_ACQUIRE_QNX_DISPNO_EXT 0x3321
  28. #define EGL_CONSUMER_ACQUIRE_QNX_LAYERNO_EXT 0x3322
  29. #define EGL_CONSUMER_ACQUIRE_QNX_SURFACE_TYPE_EXT 0x3323
  30. #define EGL_CONSUMER_ACQUIRE_QNX_DISPLAY_POS_X_EXT 0x3324
  31. #define EGL_CONSUMER_ACQUIRE_QNX_DISPLAY_POS_Y_EXT 0x3325
  32. #define EGL_CONSUMER_ACQUIRE_QNX_DISPLAY_WIDTH_EXT 0x3326
  33. #define EGL_CONSUMER_ACQUIRE_QNX_DISPLAY_HEIGHT_EXT 0x3327
  34. typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERQNXSCREENWINDOWEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
  35. typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEEXTPROC) (EGLDisplay dpy, EGLStreamKHR stream);
  36. #ifdef EGL_EGLEXT_PROTOTYPES
  37. EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerQNXScreenWindowEXT (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
  38. EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseEXT (EGLDisplay dpy, EGLStreamKHR stream);
  39. #endif
  40. #endif /* EGL_EXT_stream_consumer_qnxscreen_window */
  41. #ifndef EGL_NV_output_drm_atomic
  42. #define EGL_NV_output_drm_atomic 1
  43. #define EGL_DRM_ATOMIC_REQUEST_NV 0x3333
  44. #endif /* EGL_NV_output_drm_atomic */
  45. #ifndef EGL_NV_output_drm_flip_event
  46. #define EGL_NV_output_drm_flip_event 1
  47. #define EGL_DRM_FLIP_EVENT_DATA_NV 0x333E
  48. #endif /* EGL_NV_output_drm_flip_event */
  49. #ifndef EGL_NV_perfmon
  50. #define EGL_NV_perfmon 1
  51. #define EGL_PERFMONITOR_HARDWARE_COUNTERS_BIT_NV 0x00000001
  52. #define EGL_PERFMONITOR_OPENGL_ES_API_BIT_NV 0x00000010
  53. #define EGL_PERFMONITOR_OPENVG_API_BIT_NV 0x00000020
  54. #define EGL_PERFMONITOR_OPENGL_ES2_API_BIT_NV 0x00000040
  55. #define EGL_COUNTER_NAME_NV 0x3220
  56. #define EGL_COUNTER_DESCRIPTION_NV 0x3221
  57. #define EGL_IS_HARDWARE_COUNTER_NV 0x3222
  58. #define EGL_COUNTER_MAX_NV 0x3223
  59. #define EGL_COUNTER_VALUE_TYPE_NV 0x3224
  60. #define EGL_RAW_VALUE_NV 0x3225
  61. #define EGL_PERCENTAGE_VALUE_NV 0x3226
  62. #define EGL_BAD_CURRENT_PERFMONITOR_NV 0x3227
  63. #define EGL_NO_PERFMONITOR_NV ((EGLPerfMonitorNV)0)
  64. #define EGL_DEFAULT_PERFMARKER_NV ((EGLPerfMarkerNV)0)
  65. typedef void *EGLPerfMonitorNV;
  66. typedef void *EGLPerfCounterNV;
  67. typedef void *EGLPerfMarkerNV;
  68. #ifdef EGL_EGLEXT_PROTOTYPES
  69. EGLAPI EGLPerfMonitorNV EGLAPIENTRY eglCreatePerfMonitorNV(EGLDisplay dpy, EGLint mask);
  70. EGLAPI EGLBoolean EGLAPIENTRY eglDestroyPerfMonitorNV(EGLDisplay dpy, EGLPerfMonitorNV monitor);
  71. EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrentPerfMonitorNV(EGLPerfMonitorNV monitor);
  72. EGLAPI EGLPerfMonitorNV EGLAPIENTRY eglGetCurrentPerfMonitorNV(void);
  73. EGLAPI EGLBoolean EGLAPIENTRY eglGetPerfCountersNV(EGLPerfMonitorNV monitor, EGLPerfCounterNV *counters, EGLint counter_size, EGLint *num_counter);
  74. EGLAPI EGLBoolean EGLAPIENTRY eglGetPerfCounterAttribNV(EGLPerfMonitorNV monitor, EGLPerfCounterNV counter, EGLint pname, EGLint *value);
  75. EGLAPI const char * EGLAPIENTRY eglQueryPerfCounterStringNV(EGLPerfMonitorNV monitor, EGLPerfCounterNV counter, EGLint pname);
  76. EGLAPI EGLBoolean EGLAPIENTRY eglPerfMonitorAddCountersNV(EGLint n, const EGLPerfCounterNV *counters);
  77. EGLAPI EGLBoolean EGLAPIENTRY eglPerfMonitorRemoveCountersNV(EGLint n, const EGLPerfCounterNV *counters);
  78. EGLAPI EGLBoolean EGLAPIENTRY eglPerfMonitorRemoveAllCountersNV(void);
  79. EGLAPI EGLBoolean EGLAPIENTRY eglPerfMonitorBeginExperimentNV(void);
  80. EGLAPI EGLBoolean EGLAPIENTRY eglPerfMonitorEndExperimentNV(void);
  81. EGLAPI EGLBoolean EGLAPIENTRY eglPerfMonitorBeginPassNV(EGLint n);
  82. EGLAPI EGLBoolean EGLAPIENTRY eglPerfMonitorEndPassNV(void);
  83. EGLAPI EGLPerfMarkerNV EGLAPIENTRY eglCreatePerfMarkerNV(void);
  84. EGLAPI EGLBoolean EGLAPIENTRY eglDestroyPerfMarkerNV(EGLPerfMarkerNV marker);
  85. EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrentPerfMarkerNV(EGLPerfMarkerNV marker);
  86. EGLAPI EGLPerfMarkerNV EGLAPIENTRY eglGetCurrentPerfMarkerNV(void);
  87. EGLAPI EGLBoolean EGLAPIENTRY eglGetPerfMarkerCounterNV(EGLPerfMarkerNV marker, EGLPerfCounterNV counter, EGLuint64NV *value, EGLuint64NV *cycles);
  88. EGLAPI EGLBoolean EGLAPIENTRY eglValidatePerfMonitorNV(EGLint *num_passes);
  89. #endif
  90. typedef EGLPerfMonitorNV (EGLAPIENTRYP PFNEGLCREATEPERFMONITORNVPROC)(EGLDisplay dpy, EGLint mask);
  91. typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYPERFMONITORNVPROC)(EGLDisplay dpy, EGLPerfMonitorNV monitor);
  92. typedef EGLBoolean (EGLAPIENTRYP PFNEGLMAKECURRENTPERFMONITORNVPROC)(EGLPerfMonitorNV monitor);
  93. typedef EGLPerfMonitorNV (EGLAPIENTRYP PFNEGLGETCURRENTPERFMONITORNVPROC)(void);
  94. typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETPERFCOUNTERSNVPROC)(EGLPerfMonitorNV monitor, EGLPerfCounterNV *counters, EGLint counter_size, EGLint *num_counter);
  95. typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETPERFCOUNTERATTRIBNVPROC)(EGLPerfMonitorNV monitor, EGLPerfCounterNV counter, EGLint pname, EGLint *value);
  96. typedef const char * (EGLAPIENTRYP PFNEGLQUERYPERFCOUNTERSTRINGNVPROC)(EGLPerfMonitorNV monitor, EGLPerfCounterNV counter, EGLint pname);
  97. typedef EGLBoolean (EGLAPIENTRYP PFNEGLPERFMONITORADDCOUNTERSNVPROC)(EGLint n, const EGLPerfCounterNV *counters);
  98. typedef EGLBoolean (EGLAPIENTRYP PFNEGLPERFMONITORREMOVECOUNTERSNVPROC)(EGLint n, const EGLPerfCounterNV *counters);
  99. typedef EGLBoolean (EGLAPIENTRYP PFNEGLPERFMONITORREMOVEALLCOUNTERSNVPROC)(void);
  100. typedef EGLBoolean (EGLAPIENTRYP PFNEGLPERFMONITORBEGINEXPERIMENTNVPROC)(void);
  101. typedef EGLBoolean (EGLAPIENTRYP PFNEGLPERFMONITORENDEXPERIMENTNVPROC)(void);
  102. typedef EGLBoolean (EGLAPIENTRYP PFNEGLPERFMONITORBEGINPASSNVPROC)(EGLint n);
  103. typedef EGLBoolean (EGLAPIENTRYP PFNEGLPERFMONITORENDPASSNVPROC)(void);
  104. typedef EGLPerfMarkerNV (EGLAPIENTRYP PFNEGLCREATEPERFMARKERNVPROC)(void);
  105. typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYPERFMARKERNVPROC)(EGLPerfMarkerNV marker);
  106. typedef EGLBoolean (EGLAPIENTRYP PFNEGLMAKECURRENTPERFMARKERNVPROC)(EGLPerfMarkerNV marker);
  107. typedef EGLPerfMarkerNV (EGLAPIENTRYP PFNEGLGETCURRENTPERFMARKERNVPROC)(void);
  108. typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETPERFMARKERCOUNTERNVPROC)(EGLPerfMarkerNV marker, EGLPerfCounterNV counter, EGLuint64NV *value, EGLuint64NV *cycles);
  109. typedef EGLBoolean (EGLAPIENTRYP PFNEGLVALIDATEPERFMONITORNVPROC)(EGLint *num_passes);
  110. #endif /* EGL_NV_perfmon */
  111. #ifndef EGL_NV_secure_context
  112. #define EGL_NV_secure_context 1
  113. #define EGL_SECURE_NV 0x313E
  114. #endif /* EGL_NV_secure_context */
  115. #ifndef EGL_NV_set_renderer
  116. #define EGL_NV_set_renderer 1
  117. #define EGL_RENDERER_LOWEST_POWER_NV 0x313A
  118. #define EGL_RENDERER_HIGHEST_PERFORMANCE_NV 0x313B
  119. #ifdef EGL_EGLEXT_PROTOTYPES
  120. EGLAPI EGLBoolean EGLAPIENTRY eglSetRendererNV(EGLenum renderer);
  121. #endif
  122. typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETRENDERERNVPROC)(EGLenum renderer);
  123. #endif /* EGL_NV_set_renderer */
  124. #ifndef EGL_NV_swap_asynchronous
  125. #define EGL_NV_swap_asynchronous
  126. #define EGL_ASYNCHRONOUS_SWAPS_NV 0x3232
  127. #endif /* EGL_NV_swap_asynchrounous */
  128. #ifndef EGL_NV_swap_hint
  129. #define EGL_NV_swap_hint
  130. #define EGL_SWAP_HINT_NV 0x30E4
  131. #define EGL_FASTEST_NV 0x30E5
  132. #endif /* EGL_NV_swap_hint */
  133. #ifndef EGL_NV_texture_rectangle
  134. #define EGL_NV_texture_rectangle 1
  135. #define EGL_GL_TEXTURE_RECTANGLE_NV_KHR 0x30BB
  136. #define EGL_TEXTURE_RECTANGLE_NV 0x20A2
  137. #endif /* EGL_NV_texture_rectangle */
  138. /* Deprecated. Use EGL_KHR_stream_attrib */
  139. #ifndef EGL_NV_stream_attrib
  140. #define EGL_NV_stream_attrib 1
  141. #ifdef EGL_EGLEXT_PROTOTYPES
  142. EGLAPI EGLStreamKHR EGLAPIENTRY eglCreateStreamAttribNV(EGLDisplay dpy, const EGLAttrib *attrib_list);
  143. EGLAPI EGLBoolean EGLAPIENTRY eglSetStreamAttribNV(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value);
  144. EGLAPI EGLBoolean EGLAPIENTRY eglQueryStreamAttribNV(EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value);
  145. EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireAttribNV(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
  146. EGLAPI EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseAttribNV(EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
  147. #endif
  148. typedef EGLStreamKHR (EGLAPIENTRYP PFNEGLCREATESTREAMATTRIBNVPROC) (EGLDisplay dpy, const EGLAttrib *attrib_list);
  149. typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSTREAMATTRIBNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib value);
  150. typedef EGLBoolean (EGLAPIENTRYP PFNEGLQUERYSTREAMATTRIBNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, EGLenum attribute, EGLAttrib *value);
  151. typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERACQUIREATTRIBNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
  152. typedef EGLBoolean (EGLAPIENTRYP PFNEGLSTREAMCONSUMERRELEASEATTRIBNVPROC) (EGLDisplay dpy, EGLStreamKHR stream, const EGLAttrib *attrib_list);
  153. #endif /* EGL_NV_stream_attrib */
  154. #ifndef EGL_WL_wayland_eglstream
  155. #define EGL_WL_wayland_eglstream 1
  156. #define EGL_WAYLAND_EGLSTREAM_WL 0x334B
  157. #endif /* EGL_WL_wayland_eglstream */
  158. // Some other builds require these typedefs without the "PROC" suffix. Until
  159. // those builds are fixed, keep these typedefs around.
  160. #if EGL_NV_stream_consumer_eglimage
  161. typedef PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC PFNEGLSTREAMIMAGECONSUMERCONNECTNV;
  162. typedef PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC PFNEGLQUERYSTREAMCONSUMEREVENTNV;
  163. typedef PFNEGLSTREAMACQUIREIMAGENVPROC PFNEGLSTREAMACQUIREIMAGENV;
  164. typedef PFNEGLSTREAMRELEASEIMAGENVPROC PFNEGLSTREAMRELEASEIMAGENV;
  165. #endif /* EGL_NV_stream_consumer_eglimage */
  166. #ifdef __cplusplus
  167. }
  168. #endif
  169. #endif