no message

This commit is contained in:
gem
2025-02-18 15:21:31 +08:00
commit 2d133e56d7
1980 changed files with 465595 additions and 0 deletions

View File

@@ -0,0 +1,162 @@
/****************************************************************************
Copyright (c) 2019-2023 Xiamen Yaji Software Co., Ltd.
http://www.cocos.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
****************************************************************************/
#pragma once
#include <cstdint>
#include <type_traits>
#include "core/memop/CachedArray.h"
namespace cc {
namespace gfx {
// Multisampled Render to Texture
enum class MSRTSupportLevel {
NONE,
LEVEL1,
LEVEL2,
};
// Framebuffer Fetch
enum class FBFSupportLevel {
NONE,
COHERENT,
NON_COHERENT_EXT,
NON_COHERENT_QCOM,
};
enum class GLESCmdType : uint8_t {
BEGIN_RENDER_PASS,
END_RENDER_PASS,
BIND_STATES,
DRAW,
UPDATE_BUFFER,
COPY_BUFFER_TO_TEXTURE,
BLIT_TEXTURE,
DISPATCH,
BARRIER,
QUERY,
COUNT,
};
struct GLESBindingMapping {
ccstd::vector<int32_t> blockOffsets;
ccstd::vector<int32_t> samplerTextureOffsets;
uint32_t flexibleSet{0};
};
class GLESCmd {
public:
GLESCmdType type;
uint32_t refCount = 0;
explicit GLESCmd(GLESCmdType type) : type(type) {}
virtual ~GLESCmd() = default;
virtual void clear() = 0;
};
#define GLES_COMMAND_POOL_INITIAL_CAPACITY 1
template <typename T, typename = std::enable_if_t<std::is_base_of<GLESCmd, T>::value>>
class CommandPool {
public:
CommandPool() : _freeCmds(GLES_COMMAND_POOL_INITIAL_CAPACITY) {
_frees = ccnew T *[GLES_COMMAND_POOL_INITIAL_CAPACITY];
_count = GLES_COMMAND_POOL_INITIAL_CAPACITY;
_freeIdx = GLES_COMMAND_POOL_INITIAL_CAPACITY - 1;
for (uint32_t i = 0; i < _count; ++i) {
_frees[i] = ccnew T;
}
}
~CommandPool() {
for (uint32_t i = 0; i < _count; ++i) {
delete _frees[i];
}
delete[](_frees);
for (uint32_t i = 0; i < _freeCmds.size(); ++i) {
delete _freeCmds[i];
}
_freeCmds.clear();
}
T *alloc() {
if (_freeIdx < 0) {
T **oldFrees = _frees;
uint32_t size = _count * 2;
_frees = ccnew T *[size];
uint32_t increase = size - _count;
for (uint32_t i = 0; i < increase; ++i) {
_frees[i] = ccnew T;
}
for (uint32_t i = increase, j = 0; i < size; ++i, ++j) {
_frees[i] = oldFrees[j];
}
delete[](oldFrees);
_count = size;
_freeIdx += static_cast<int>(increase);
}
T *cmd = _frees[_freeIdx];
_frees[_freeIdx--] = nullptr;
++cmd->refCount;
return cmd;
}
void free(T *cmd) {
if (--cmd->refCount == 0) {
_freeCmds.push(cmd);
}
}
void freeCmds(CachedArray<T *> &cmds) {
for (uint32_t i = 0; i < cmds.size(); ++i) {
if (--cmds[i]->refCount == 0) {
_freeCmds.push(cmds[i]);
}
}
cmds.clear();
}
void release() {
for (uint32_t i = 0; i < _freeCmds.size(); ++i) {
T *cmd = _freeCmds[i];
cmd->clear();
_frees[++_freeIdx] = cmd;
}
_freeCmds.clear();
}
protected:
T **_frees = nullptr;
uint32_t _count = 0;
CachedArray<T *> _freeCmds;
int _freeIdx = 0;
};
} // namespace gfx
} // namespace cc

View File

@@ -0,0 +1,719 @@
/****************************************************************************
Copyright (c) 2019-2023 Xiamen Yaji Software Co., Ltd.
http://www.cocos.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
****************************************************************************/
#include "eglw.h"
#if (CC_PLATFORM != CC_PLATFORM_IOS)
/**
* ========================= !DO NOT CHANGE THE FOLLOWING SECTION MANUALLY! =========================
* The following section is auto-generated from EGL spec by running:
* node tools/gles-wrangler-generator/generate.js
* ========================= !DO NOT CHANGE THE FOLLOWING SECTION MANUALLY! =========================
*/
/* EGLW_GENERATE_EGL_DEFINITION */
PFNEGLGETPROCADDRESSPROC eglGetProcAddress;
/* EGL_VERSION_1_0 */
PFNEGLCHOOSECONFIGPROC eglChooseConfig;
PFNEGLCOPYBUFFERSPROC eglCopyBuffers;
PFNEGLCREATECONTEXTPROC eglCreateContext;
PFNEGLCREATEPBUFFERSURFACEPROC eglCreatePbufferSurface;
PFNEGLCREATEPIXMAPSURFACEPROC eglCreatePixmapSurface;
PFNEGLCREATEWINDOWSURFACEPROC eglCreateWindowSurface;
PFNEGLDESTROYCONTEXTPROC eglDestroyContext;
PFNEGLDESTROYSURFACEPROC eglDestroySurface;
PFNEGLGETCONFIGATTRIBPROC eglGetConfigAttrib;
PFNEGLGETCONFIGSPROC eglGetConfigs;
PFNEGLGETCURRENTDISPLAYPROC eglGetCurrentDisplay;
PFNEGLGETCURRENTSURFACEPROC eglGetCurrentSurface;
PFNEGLGETDISPLAYPROC eglGetDisplay;
PFNEGLGETERRORPROC eglGetError;
PFNEGLINITIALIZEPROC eglInitialize;
PFNEGLMAKECURRENTPROC eglMakeCurrent;
PFNEGLQUERYCONTEXTPROC eglQueryContext;
PFNEGLQUERYSTRINGPROC eglQueryString;
PFNEGLQUERYSURFACEPROC eglQuerySurface;
PFNEGLSWAPBUFFERSPROC eglSwapBuffers;
PFNEGLTERMINATEPROC eglTerminate;
PFNEGLWAITGLPROC eglWaitGL;
PFNEGLWAITNATIVEPROC eglWaitNative;
/* EGL_VERSION_1_1 */
PFNEGLBINDTEXIMAGEPROC eglBindTexImage;
PFNEGLRELEASETEXIMAGEPROC eglReleaseTexImage;
PFNEGLSURFACEATTRIBPROC eglSurfaceAttrib;
PFNEGLSWAPINTERVALPROC eglSwapInterval;
/* EGL_VERSION_1_2 */
PFNEGLBINDAPIPROC eglBindAPI;
PFNEGLQUERYAPIPROC eglQueryAPI;
PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC eglCreatePbufferFromClientBuffer;
PFNEGLRELEASETHREADPROC eglReleaseThread;
PFNEGLWAITCLIENTPROC eglWaitClient;
/* EGL_VERSION_1_3 */
/* EGL_VERSION_1_4 */
PFNEGLGETCURRENTCONTEXTPROC eglGetCurrentContext;
/* EGL_VERSION_1_5 */
PFNEGLCREATESYNCPROC eglCreateSync;
PFNEGLDESTROYSYNCPROC eglDestroySync;
PFNEGLCLIENTWAITSYNCPROC eglClientWaitSync;
PFNEGLGETSYNCATTRIBPROC eglGetSyncAttrib;
PFNEGLCREATEIMAGEPROC eglCreateImage;
PFNEGLDESTROYIMAGEPROC eglDestroyImage;
PFNEGLGETPLATFORMDISPLAYPROC eglGetPlatformDisplay;
PFNEGLCREATEPLATFORMWINDOWSURFACEPROC eglCreatePlatformWindowSurface;
PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC eglCreatePlatformPixmapSurface;
PFNEGLWAITSYNCPROC eglWaitSync;
#if defined(EGL_ANDROID_blob_cache)
PFNEGLSETBLOBCACHEFUNCSANDROIDPROC eglSetBlobCacheFuncsANDROID;
#endif /* defined(EGL_ANDROID_blob_cache) */
#if defined(EGL_ANDROID_create_native_client_buffer)
PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC eglCreateNativeClientBufferANDROID;
#endif /* defined(EGL_ANDROID_create_native_client_buffer) */
#if defined(EGL_ANDROID_get_native_client_buffer)
PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC eglGetNativeClientBufferANDROID;
#endif /* defined(EGL_ANDROID_get_native_client_buffer) */
#if defined(EGL_ANDROID_native_fence_sync)
PFNEGLDUPNATIVEFENCEFDANDROIDPROC eglDupNativeFenceFDANDROID;
#endif /* defined(EGL_ANDROID_native_fence_sync) */
#if defined(EGL_ANDROID_presentation_time)
PFNEGLPRESENTATIONTIMEANDROIDPROC eglPresentationTimeANDROID;
#endif /* defined(EGL_ANDROID_presentation_time) */
#if defined(EGL_ANDROID_get_frame_timestamps)
PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC eglGetCompositorTimingSupportedANDROID;
PFNEGLGETCOMPOSITORTIMINGANDROIDPROC eglGetCompositorTimingANDROID;
PFNEGLGETNEXTFRAMEIDANDROIDPROC eglGetNextFrameIdANDROID;
PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC eglGetFrameTimestampSupportedANDROID;
PFNEGLGETFRAMETIMESTAMPSANDROIDPROC eglGetFrameTimestampsANDROID;
#endif /* defined(EGL_ANDROID_get_frame_timestamps) */
#if defined(EGL_ANGLE_query_surface_pointer)
PFNEGLQUERYSURFACEPOINTERANGLEPROC eglQuerySurfacePointerANGLE;
#endif /* defined(EGL_ANGLE_query_surface_pointer) */
#if defined(EGL_ANGLE_sync_control_rate)
PFNEGLGETMSCRATEANGLEPROC eglGetMscRateANGLE;
#endif /* defined(EGL_ANGLE_sync_control_rate) */
#if defined(EGL_EXT_client_sync)
PFNEGLCLIENTSIGNALSYNCEXTPROC eglClientSignalSyncEXT;
#endif /* defined(EGL_EXT_client_sync) */
#if defined(EGL_EXT_device_base)
PFNEGLQUERYDEVICEATTRIBEXTPROC eglQueryDeviceAttribEXT;
PFNEGLQUERYDEVICESTRINGEXTPROC eglQueryDeviceStringEXT;
PFNEGLQUERYDEVICESEXTPROC eglQueryDevicesEXT;
PFNEGLQUERYDISPLAYATTRIBEXTPROC eglQueryDisplayAttribEXT;
#endif /* defined(EGL_EXT_device_base) */
#if defined(EGL_EXT_image_dma_buf_import_modifiers)
PFNEGLQUERYDMABUFFORMATSEXTPROC eglQueryDmaBufFormatsEXT;
PFNEGLQUERYDMABUFMODIFIERSEXTPROC eglQueryDmaBufModifiersEXT;
#endif /* defined(EGL_EXT_image_dma_buf_import_modifiers) */
#if defined(EGL_EXT_output_base)
PFNEGLGETOUTPUTLAYERSEXTPROC eglGetOutputLayersEXT;
PFNEGLGETOUTPUTPORTSEXTPROC eglGetOutputPortsEXT;
PFNEGLOUTPUTLAYERATTRIBEXTPROC eglOutputLayerAttribEXT;
PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC eglQueryOutputLayerAttribEXT;
PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC eglQueryOutputLayerStringEXT;
PFNEGLOUTPUTPORTATTRIBEXTPROC eglOutputPortAttribEXT;
PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC eglQueryOutputPortAttribEXT;
PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC eglQueryOutputPortStringEXT;
#endif /* defined(EGL_EXT_output_base) */
#if defined(EGL_EXT_platform_base)
PFNEGLGETPLATFORMDISPLAYEXTPROC eglGetPlatformDisplayEXT;
PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC eglCreatePlatformWindowSurfaceEXT;
PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC eglCreatePlatformPixmapSurfaceEXT;
#endif /* defined(EGL_EXT_platform_base) */
#if defined(EGL_EXT_stream_consumer_egloutput)
PFNEGLSTREAMCONSUMEROUTPUTEXTPROC eglStreamConsumerOutputEXT;
#endif /* defined(EGL_EXT_stream_consumer_egloutput) */
#if defined(EGL_EXT_swap_buffers_with_damage)
PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC eglSwapBuffersWithDamageEXT;
#endif /* defined(EGL_EXT_swap_buffers_with_damage) */
#if defined(EGL_EXT_sync_reuse)
PFNEGLUNSIGNALSYNCEXTPROC eglUnsignalSyncEXT;
#endif /* defined(EGL_EXT_sync_reuse) */
#if defined(EGL_HI_clientpixmap)
PFNEGLCREATEPIXMAPSURFACEHIPROC eglCreatePixmapSurfaceHI;
#endif /* defined(EGL_HI_clientpixmap) */
#if defined(EGL_KHR_cl_event2)
PFNEGLCREATESYNC64KHRPROC eglCreateSync64KHR;
#endif /* defined(EGL_KHR_cl_event2) */
#if defined(EGL_KHR_debug)
PFNEGLDEBUGMESSAGECONTROLKHRPROC eglDebugMessageControlKHR;
PFNEGLQUERYDEBUGKHRPROC eglQueryDebugKHR;
PFNEGLLABELOBJECTKHRPROC eglLabelObjectKHR;
#endif /* defined(EGL_KHR_debug) */
#if defined(EGL_KHR_display_reference)
PFNEGLQUERYDISPLAYATTRIBKHRPROC eglQueryDisplayAttribKHR;
#endif /* defined(EGL_KHR_display_reference) */
#if defined(EGL_KHR_fence_sync)
PFNEGLCREATESYNCKHRPROC eglCreateSyncKHR;
PFNEGLDESTROYSYNCKHRPROC eglDestroySyncKHR;
PFNEGLCLIENTWAITSYNCKHRPROC eglClientWaitSyncKHR;
PFNEGLGETSYNCATTRIBKHRPROC eglGetSyncAttribKHR;
#endif /* defined(EGL_KHR_fence_sync) */
#if defined(EGL_KHR_image)
PFNEGLCREATEIMAGEKHRPROC eglCreateImageKHR;
PFNEGLDESTROYIMAGEKHRPROC eglDestroyImageKHR;
#endif /* defined(EGL_KHR_image) */
#if defined(EGL_KHR_lock_surface)
PFNEGLLOCKSURFACEKHRPROC eglLockSurfaceKHR;
PFNEGLUNLOCKSURFACEKHRPROC eglUnlockSurfaceKHR;
#endif /* defined(EGL_KHR_lock_surface) */
#if defined(EGL_KHR_lock_surface3)
PFNEGLQUERYSURFACE64KHRPROC eglQuerySurface64KHR;
#endif /* defined(EGL_KHR_lock_surface3) */
#if defined(EGL_KHR_partial_update)
PFNEGLSETDAMAGEREGIONKHRPROC eglSetDamageRegionKHR;
#endif /* defined(EGL_KHR_partial_update) */
#if defined(EGL_KHR_reusable_sync)
PFNEGLSIGNALSYNCKHRPROC eglSignalSyncKHR;
#endif /* defined(EGL_KHR_reusable_sync) */
#if defined(EGL_KHR_stream)
PFNEGLCREATESTREAMKHRPROC eglCreateStreamKHR;
PFNEGLDESTROYSTREAMKHRPROC eglDestroyStreamKHR;
PFNEGLSTREAMATTRIBKHRPROC eglStreamAttribKHR;
PFNEGLQUERYSTREAMKHRPROC eglQueryStreamKHR;
PFNEGLQUERYSTREAMU64KHRPROC eglQueryStreamu64KHR;
#endif /* defined(EGL_KHR_stream) */
#if defined(EGL_KHR_stream_attrib)
PFNEGLCREATESTREAMATTRIBKHRPROC eglCreateStreamAttribKHR;
PFNEGLSETSTREAMATTRIBKHRPROC eglSetStreamAttribKHR;
PFNEGLQUERYSTREAMATTRIBKHRPROC eglQueryStreamAttribKHR;
PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC eglStreamConsumerAcquireAttribKHR;
PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC eglStreamConsumerReleaseAttribKHR;
#endif /* defined(EGL_KHR_stream_attrib) */
#if defined(EGL_KHR_stream_consumer_gltexture)
PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC eglStreamConsumerGLTextureExternalKHR;
PFNEGLSTREAMCONSUMERACQUIREKHRPROC eglStreamConsumerAcquireKHR;
PFNEGLSTREAMCONSUMERRELEASEKHRPROC eglStreamConsumerReleaseKHR;
#endif /* defined(EGL_KHR_stream_consumer_gltexture) */
#if defined(EGL_KHR_stream_cross_process_fd)
PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC eglGetStreamFileDescriptorKHR;
PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC eglCreateStreamFromFileDescriptorKHR;
#endif /* defined(EGL_KHR_stream_cross_process_fd) */
#if defined(EGL_KHR_stream_fifo)
PFNEGLQUERYSTREAMTIMEKHRPROC eglQueryStreamTimeKHR;
#endif /* defined(EGL_KHR_stream_fifo) */
#if defined(EGL_KHR_stream_producer_eglsurface)
PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC eglCreateStreamProducerSurfaceKHR;
#endif /* defined(EGL_KHR_stream_producer_eglsurface) */
#if defined(EGL_KHR_swap_buffers_with_damage)
PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC eglSwapBuffersWithDamageKHR;
#endif /* defined(EGL_KHR_swap_buffers_with_damage) */
#if defined(EGL_KHR_wait_sync)
PFNEGLWAITSYNCKHRPROC eglWaitSyncKHR;
#endif /* defined(EGL_KHR_wait_sync) */
#if defined(EGL_MESA_drm_image)
PFNEGLCREATEDRMIMAGEMESAPROC eglCreateDRMImageMESA;
PFNEGLEXPORTDRMIMAGEMESAPROC eglExportDRMImageMESA;
#endif /* defined(EGL_MESA_drm_image) */
#if defined(EGL_MESA_image_dma_buf_export)
PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC eglExportDMABUFImageQueryMESA;
PFNEGLEXPORTDMABUFIMAGEMESAPROC eglExportDMABUFImageMESA;
#endif /* defined(EGL_MESA_image_dma_buf_export) */
#if defined(EGL_MESA_query_driver)
PFNEGLGETDISPLAYDRIVERCONFIGPROC eglGetDisplayDriverConfig;
PFNEGLGETDISPLAYDRIVERNAMEPROC eglGetDisplayDriverName;
#endif /* defined(EGL_MESA_query_driver) */
#if defined(EGL_NOK_swap_region)
PFNEGLSWAPBUFFERSREGIONNOKPROC eglSwapBuffersRegionNOK;
#endif /* defined(EGL_NOK_swap_region) */
#if defined(EGL_NOK_swap_region2)
PFNEGLSWAPBUFFERSREGION2NOKPROC eglSwapBuffersRegion2NOK;
#endif /* defined(EGL_NOK_swap_region2) */
#if defined(EGL_NV_native_query)
PFNEGLQUERYNATIVEDISPLAYNVPROC eglQueryNativeDisplayNV;
PFNEGLQUERYNATIVEWINDOWNVPROC eglQueryNativeWindowNV;
PFNEGLQUERYNATIVEPIXMAPNVPROC eglQueryNativePixmapNV;
#endif /* defined(EGL_NV_native_query) */
#if defined(EGL_NV_post_sub_buffer)
PFNEGLPOSTSUBBUFFERNVPROC eglPostSubBufferNV;
#endif /* defined(EGL_NV_post_sub_buffer) */
#if defined(EGL_NV_stream_consumer_gltexture_yuv)
PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC eglStreamConsumerGLTextureExternalAttribsNV;
#endif /* defined(EGL_NV_stream_consumer_gltexture_yuv) */
#if defined(EGL_NV_stream_consumer_eglimage)
PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC eglStreamImageConsumerConnectNV;
PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC eglQueryStreamConsumerEventNV;
PFNEGLSTREAMACQUIREIMAGENVPROC eglStreamAcquireImageNV;
PFNEGLSTREAMRELEASEIMAGENVPROC eglStreamReleaseImageNV;
#endif /* defined(EGL_NV_stream_consumer_eglimage) */
#if defined(EGL_NV_stream_flush)
PFNEGLSTREAMFLUSHNVPROC eglStreamFlushNV;
#endif /* defined(EGL_NV_stream_flush) */
#if defined(EGL_NV_stream_metadata)
PFNEGLQUERYDISPLAYATTRIBNVPROC eglQueryDisplayAttribNV;
PFNEGLSETSTREAMMETADATANVPROC eglSetStreamMetadataNV;
PFNEGLQUERYSTREAMMETADATANVPROC eglQueryStreamMetadataNV;
#endif /* defined(EGL_NV_stream_metadata) */
#if defined(EGL_NV_stream_reset)
PFNEGLRESETSTREAMNVPROC eglResetStreamNV;
#endif /* defined(EGL_NV_stream_reset) */
#if defined(EGL_NV_stream_sync)
PFNEGLCREATESTREAMSYNCNVPROC eglCreateStreamSyncNV;
#endif /* defined(EGL_NV_stream_sync) */
#if defined(EGL_NV_sync)
PFNEGLCREATEFENCESYNCNVPROC eglCreateFenceSyncNV;
PFNEGLDESTROYSYNCNVPROC eglDestroySyncNV;
PFNEGLFENCENVPROC eglFenceNV;
PFNEGLCLIENTWAITSYNCNVPROC eglClientWaitSyncNV;
PFNEGLSIGNALSYNCNVPROC eglSignalSyncNV;
PFNEGLGETSYNCATTRIBNVPROC eglGetSyncAttribNV;
#endif /* defined(EGL_NV_sync) */
#if defined(EGL_NV_system_time)
PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC eglGetSystemTimeFrequencyNV;
PFNEGLGETSYSTEMTIMENVPROC eglGetSystemTimeNV;
#endif /* defined(EGL_NV_system_time) */
#if defined(EGL_EXT_compositor)
PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC eglCompositorSetContextListEXT;
PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC eglCompositorSetContextAttributesEXT;
PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC eglCompositorSetWindowListEXT;
PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC eglCompositorSetWindowAttributesEXT;
PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC eglCompositorBindTexWindowEXT;
PFNEGLCOMPOSITORSETSIZEEXTPROC eglCompositorSetSizeEXT;
PFNEGLCOMPOSITORSWAPPOLICYEXTPROC eglCompositorSwapPolicyEXT;
#endif /* defined(EGL_EXT_compositor) */
#if defined(EGL_WL_bind_wayland_display)
PFNEGLBINDWAYLANDDISPLAYWLPROC eglBindWaylandDisplayWL;
PFNEGLUNBINDWAYLANDDISPLAYWLPROC eglUnbindWaylandDisplayWL;
PFNEGLQUERYWAYLANDBUFFERWLPROC eglQueryWaylandBufferWL;
#endif /* defined(EGL_WL_bind_wayland_display) */
#if defined(EGL_WL_create_wayland_buffer_from_image)
PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC eglCreateWaylandBufferFromImageWL;
#endif /* defined(EGL_WL_create_wayland_buffer_from_image) */
/* EGLW_GENERATE_EGL_DEFINITION */
/**
* ========================= !DO NOT CHANGE THE ABOVE SECTION MANUALLY! =========================
* The above section is auto-generated from EGL spec by running:
* node tools/gles-wrangler-generator/generate.js
* ========================= !DO NOT CHANGE THE ABOVE SECTION MANUALLY! =========================
*/
#endif
void eglwLoadProcs(PFNEGLWLOADPROC eglwLoad) {
#if (CC_PLATFORM != CC_PLATFORM_IOS)
/**
* ========================= !DO NOT CHANGE THE FOLLOWING SECTION MANUALLY! =========================
* The following section is auto-generated from EGL spec by running:
* node tools/gles-wrangler-generator/generate.js
* ========================= !DO NOT CHANGE THE FOLLOWING SECTION MANUALLY! =========================
*/
/* EGLW_GENERATE_EGL_LOAD */
eglGetProcAddress = reinterpret_cast<PFNEGLGETPROCADDRESSPROC>(eglwLoad("eglGetProcAddress"));
/* EGL_VERSION_1_0 */
eglChooseConfig = reinterpret_cast<PFNEGLCHOOSECONFIGPROC>(eglwLoad("eglChooseConfig"));
eglCopyBuffers = reinterpret_cast<PFNEGLCOPYBUFFERSPROC>(eglwLoad("eglCopyBuffers"));
eglCreateContext = reinterpret_cast<PFNEGLCREATECONTEXTPROC>(eglwLoad("eglCreateContext"));
eglCreatePbufferSurface = reinterpret_cast<PFNEGLCREATEPBUFFERSURFACEPROC>(eglwLoad("eglCreatePbufferSurface"));
eglCreatePixmapSurface = reinterpret_cast<PFNEGLCREATEPIXMAPSURFACEPROC>(eglwLoad("eglCreatePixmapSurface"));
eglCreateWindowSurface = reinterpret_cast<PFNEGLCREATEWINDOWSURFACEPROC>(eglwLoad("eglCreateWindowSurface"));
eglDestroyContext = reinterpret_cast<PFNEGLDESTROYCONTEXTPROC>(eglwLoad("eglDestroyContext"));
eglDestroySurface = reinterpret_cast<PFNEGLDESTROYSURFACEPROC>(eglwLoad("eglDestroySurface"));
eglGetConfigAttrib = reinterpret_cast<PFNEGLGETCONFIGATTRIBPROC>(eglwLoad("eglGetConfigAttrib"));
eglGetConfigs = reinterpret_cast<PFNEGLGETCONFIGSPROC>(eglwLoad("eglGetConfigs"));
eglGetCurrentDisplay = reinterpret_cast<PFNEGLGETCURRENTDISPLAYPROC>(eglwLoad("eglGetCurrentDisplay"));
eglGetCurrentSurface = reinterpret_cast<PFNEGLGETCURRENTSURFACEPROC>(eglwLoad("eglGetCurrentSurface"));
eglGetDisplay = reinterpret_cast<PFNEGLGETDISPLAYPROC>(eglwLoad("eglGetDisplay"));
eglGetError = reinterpret_cast<PFNEGLGETERRORPROC>(eglwLoad("eglGetError"));
eglInitialize = reinterpret_cast<PFNEGLINITIALIZEPROC>(eglwLoad("eglInitialize"));
eglMakeCurrent = reinterpret_cast<PFNEGLMAKECURRENTPROC>(eglwLoad("eglMakeCurrent"));
eglQueryContext = reinterpret_cast<PFNEGLQUERYCONTEXTPROC>(eglwLoad("eglQueryContext"));
eglQueryString = reinterpret_cast<PFNEGLQUERYSTRINGPROC>(eglwLoad("eglQueryString"));
eglQuerySurface = reinterpret_cast<PFNEGLQUERYSURFACEPROC>(eglwLoad("eglQuerySurface"));
eglSwapBuffers = reinterpret_cast<PFNEGLSWAPBUFFERSPROC>(eglwLoad("eglSwapBuffers"));
eglTerminate = reinterpret_cast<PFNEGLTERMINATEPROC>(eglwLoad("eglTerminate"));
eglWaitGL = reinterpret_cast<PFNEGLWAITGLPROC>(eglwLoad("eglWaitGL"));
eglWaitNative = reinterpret_cast<PFNEGLWAITNATIVEPROC>(eglwLoad("eglWaitNative"));
/* EGL_VERSION_1_1 */
eglBindTexImage = reinterpret_cast<PFNEGLBINDTEXIMAGEPROC>(eglwLoad("eglBindTexImage"));
eglReleaseTexImage = reinterpret_cast<PFNEGLRELEASETEXIMAGEPROC>(eglwLoad("eglReleaseTexImage"));
eglSurfaceAttrib = reinterpret_cast<PFNEGLSURFACEATTRIBPROC>(eglwLoad("eglSurfaceAttrib"));
eglSwapInterval = reinterpret_cast<PFNEGLSWAPINTERVALPROC>(eglwLoad("eglSwapInterval"));
/* EGL_VERSION_1_2 */
eglBindAPI = reinterpret_cast<PFNEGLBINDAPIPROC>(eglwLoad("eglBindAPI"));
eglQueryAPI = reinterpret_cast<PFNEGLQUERYAPIPROC>(eglwLoad("eglQueryAPI"));
eglCreatePbufferFromClientBuffer = reinterpret_cast<PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC>(eglwLoad("eglCreatePbufferFromClientBuffer"));
eglReleaseThread = reinterpret_cast<PFNEGLRELEASETHREADPROC>(eglwLoad("eglReleaseThread"));
eglWaitClient = reinterpret_cast<PFNEGLWAITCLIENTPROC>(eglwLoad("eglWaitClient"));
/* EGL_VERSION_1_3 */
/* EGL_VERSION_1_4 */
eglGetCurrentContext = reinterpret_cast<PFNEGLGETCURRENTCONTEXTPROC>(eglwLoad("eglGetCurrentContext"));
/* EGL_VERSION_1_5 */
eglCreateSync = reinterpret_cast<PFNEGLCREATESYNCPROC>(eglwLoad("eglCreateSync"));
eglDestroySync = reinterpret_cast<PFNEGLDESTROYSYNCPROC>(eglwLoad("eglDestroySync"));
eglClientWaitSync = reinterpret_cast<PFNEGLCLIENTWAITSYNCPROC>(eglwLoad("eglClientWaitSync"));
eglGetSyncAttrib = reinterpret_cast<PFNEGLGETSYNCATTRIBPROC>(eglwLoad("eglGetSyncAttrib"));
eglCreateImage = reinterpret_cast<PFNEGLCREATEIMAGEPROC>(eglwLoad("eglCreateImage"));
eglDestroyImage = reinterpret_cast<PFNEGLDESTROYIMAGEPROC>(eglwLoad("eglDestroyImage"));
eglGetPlatformDisplay = reinterpret_cast<PFNEGLGETPLATFORMDISPLAYPROC>(eglwLoad("eglGetPlatformDisplay"));
eglCreatePlatformWindowSurface = reinterpret_cast<PFNEGLCREATEPLATFORMWINDOWSURFACEPROC>(eglwLoad("eglCreatePlatformWindowSurface"));
eglCreatePlatformPixmapSurface = reinterpret_cast<PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC>(eglwLoad("eglCreatePlatformPixmapSurface"));
eglWaitSync = reinterpret_cast<PFNEGLWAITSYNCPROC>(eglwLoad("eglWaitSync"));
#if defined(EGL_ANDROID_blob_cache)
eglSetBlobCacheFuncsANDROID = reinterpret_cast<PFNEGLSETBLOBCACHEFUNCSANDROIDPROC>(eglwLoad("eglSetBlobCacheFuncsANDROID"));
#endif /* defined(EGL_ANDROID_blob_cache) */
#if defined(EGL_ANDROID_create_native_client_buffer)
eglCreateNativeClientBufferANDROID = reinterpret_cast<PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC>(eglwLoad("eglCreateNativeClientBufferANDROID"));
#endif /* defined(EGL_ANDROID_create_native_client_buffer) */
#if defined(EGL_ANDROID_get_native_client_buffer)
eglGetNativeClientBufferANDROID = reinterpret_cast<PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC>(eglwLoad("eglGetNativeClientBufferANDROID"));
#endif /* defined(EGL_ANDROID_get_native_client_buffer) */
#if defined(EGL_ANDROID_native_fence_sync)
eglDupNativeFenceFDANDROID = reinterpret_cast<PFNEGLDUPNATIVEFENCEFDANDROIDPROC>(eglwLoad("eglDupNativeFenceFDANDROID"));
#endif /* defined(EGL_ANDROID_native_fence_sync) */
#if defined(EGL_ANDROID_presentation_time)
eglPresentationTimeANDROID = reinterpret_cast<PFNEGLPRESENTATIONTIMEANDROIDPROC>(eglwLoad("eglPresentationTimeANDROID"));
#endif /* defined(EGL_ANDROID_presentation_time) */
#if defined(EGL_ANDROID_get_frame_timestamps)
eglGetCompositorTimingSupportedANDROID = reinterpret_cast<PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC>(eglwLoad("eglGetCompositorTimingSupportedANDROID"));
eglGetCompositorTimingANDROID = reinterpret_cast<PFNEGLGETCOMPOSITORTIMINGANDROIDPROC>(eglwLoad("eglGetCompositorTimingANDROID"));
eglGetNextFrameIdANDROID = reinterpret_cast<PFNEGLGETNEXTFRAMEIDANDROIDPROC>(eglwLoad("eglGetNextFrameIdANDROID"));
eglGetFrameTimestampSupportedANDROID = reinterpret_cast<PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC>(eglwLoad("eglGetFrameTimestampSupportedANDROID"));
eglGetFrameTimestampsANDROID = reinterpret_cast<PFNEGLGETFRAMETIMESTAMPSANDROIDPROC>(eglwLoad("eglGetFrameTimestampsANDROID"));
#endif /* defined(EGL_ANDROID_get_frame_timestamps) */
#if defined(EGL_ANGLE_query_surface_pointer)
eglQuerySurfacePointerANGLE = reinterpret_cast<PFNEGLQUERYSURFACEPOINTERANGLEPROC>(eglwLoad("eglQuerySurfacePointerANGLE"));
#endif /* defined(EGL_ANGLE_query_surface_pointer) */
#if defined(EGL_ANGLE_sync_control_rate)
eglGetMscRateANGLE = reinterpret_cast<PFNEGLGETMSCRATEANGLEPROC>(eglwLoad("eglGetMscRateANGLE"));
#endif /* defined(EGL_ANGLE_sync_control_rate) */
#if defined(EGL_EXT_client_sync)
eglClientSignalSyncEXT = reinterpret_cast<PFNEGLCLIENTSIGNALSYNCEXTPROC>(eglwLoad("eglClientSignalSyncEXT"));
#endif /* defined(EGL_EXT_client_sync) */
#if defined(EGL_EXT_device_base)
eglQueryDeviceAttribEXT = reinterpret_cast<PFNEGLQUERYDEVICEATTRIBEXTPROC>(eglwLoad("eglQueryDeviceAttribEXT"));
eglQueryDeviceStringEXT = reinterpret_cast<PFNEGLQUERYDEVICESTRINGEXTPROC>(eglwLoad("eglQueryDeviceStringEXT"));
eglQueryDevicesEXT = reinterpret_cast<PFNEGLQUERYDEVICESEXTPROC>(eglwLoad("eglQueryDevicesEXT"));
eglQueryDisplayAttribEXT = reinterpret_cast<PFNEGLQUERYDISPLAYATTRIBEXTPROC>(eglwLoad("eglQueryDisplayAttribEXT"));
#endif /* defined(EGL_EXT_device_base) */
#if defined(EGL_EXT_image_dma_buf_import_modifiers)
eglQueryDmaBufFormatsEXT = reinterpret_cast<PFNEGLQUERYDMABUFFORMATSEXTPROC>(eglwLoad("eglQueryDmaBufFormatsEXT"));
eglQueryDmaBufModifiersEXT = reinterpret_cast<PFNEGLQUERYDMABUFMODIFIERSEXTPROC>(eglwLoad("eglQueryDmaBufModifiersEXT"));
#endif /* defined(EGL_EXT_image_dma_buf_import_modifiers) */
#if defined(EGL_EXT_output_base)
eglGetOutputLayersEXT = reinterpret_cast<PFNEGLGETOUTPUTLAYERSEXTPROC>(eglwLoad("eglGetOutputLayersEXT"));
eglGetOutputPortsEXT = reinterpret_cast<PFNEGLGETOUTPUTPORTSEXTPROC>(eglwLoad("eglGetOutputPortsEXT"));
eglOutputLayerAttribEXT = reinterpret_cast<PFNEGLOUTPUTLAYERATTRIBEXTPROC>(eglwLoad("eglOutputLayerAttribEXT"));
eglQueryOutputLayerAttribEXT = reinterpret_cast<PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC>(eglwLoad("eglQueryOutputLayerAttribEXT"));
eglQueryOutputLayerStringEXT = reinterpret_cast<PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC>(eglwLoad("eglQueryOutputLayerStringEXT"));
eglOutputPortAttribEXT = reinterpret_cast<PFNEGLOUTPUTPORTATTRIBEXTPROC>(eglwLoad("eglOutputPortAttribEXT"));
eglQueryOutputPortAttribEXT = reinterpret_cast<PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC>(eglwLoad("eglQueryOutputPortAttribEXT"));
eglQueryOutputPortStringEXT = reinterpret_cast<PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC>(eglwLoad("eglQueryOutputPortStringEXT"));
#endif /* defined(EGL_EXT_output_base) */
#if defined(EGL_EXT_platform_base)
eglGetPlatformDisplayEXT = reinterpret_cast<PFNEGLGETPLATFORMDISPLAYEXTPROC>(eglwLoad("eglGetPlatformDisplayEXT"));
eglCreatePlatformWindowSurfaceEXT = reinterpret_cast<PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC>(eglwLoad("eglCreatePlatformWindowSurfaceEXT"));
eglCreatePlatformPixmapSurfaceEXT = reinterpret_cast<PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC>(eglwLoad("eglCreatePlatformPixmapSurfaceEXT"));
#endif /* defined(EGL_EXT_platform_base) */
#if defined(EGL_EXT_stream_consumer_egloutput)
eglStreamConsumerOutputEXT = reinterpret_cast<PFNEGLSTREAMCONSUMEROUTPUTEXTPROC>(eglwLoad("eglStreamConsumerOutputEXT"));
#endif /* defined(EGL_EXT_stream_consumer_egloutput) */
#if defined(EGL_EXT_swap_buffers_with_damage)
eglSwapBuffersWithDamageEXT = reinterpret_cast<PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC>(eglwLoad("eglSwapBuffersWithDamageEXT"));
#endif /* defined(EGL_EXT_swap_buffers_with_damage) */
#if defined(EGL_EXT_sync_reuse)
eglUnsignalSyncEXT = reinterpret_cast<PFNEGLUNSIGNALSYNCEXTPROC>(eglwLoad("eglUnsignalSyncEXT"));
#endif /* defined(EGL_EXT_sync_reuse) */
#if defined(EGL_HI_clientpixmap)
eglCreatePixmapSurfaceHI = reinterpret_cast<PFNEGLCREATEPIXMAPSURFACEHIPROC>(eglwLoad("eglCreatePixmapSurfaceHI"));
#endif /* defined(EGL_HI_clientpixmap) */
#if defined(EGL_KHR_cl_event2)
eglCreateSync64KHR = reinterpret_cast<PFNEGLCREATESYNC64KHRPROC>(eglwLoad("eglCreateSync64KHR"));
#endif /* defined(EGL_KHR_cl_event2) */
#if defined(EGL_KHR_debug)
eglDebugMessageControlKHR = reinterpret_cast<PFNEGLDEBUGMESSAGECONTROLKHRPROC>(eglwLoad("eglDebugMessageControlKHR"));
eglQueryDebugKHR = reinterpret_cast<PFNEGLQUERYDEBUGKHRPROC>(eglwLoad("eglQueryDebugKHR"));
eglLabelObjectKHR = reinterpret_cast<PFNEGLLABELOBJECTKHRPROC>(eglwLoad("eglLabelObjectKHR"));
#endif /* defined(EGL_KHR_debug) */
#if defined(EGL_KHR_display_reference)
eglQueryDisplayAttribKHR = reinterpret_cast<PFNEGLQUERYDISPLAYATTRIBKHRPROC>(eglwLoad("eglQueryDisplayAttribKHR"));
#endif /* defined(EGL_KHR_display_reference) */
#if defined(EGL_KHR_fence_sync)
eglCreateSyncKHR = reinterpret_cast<PFNEGLCREATESYNCKHRPROC>(eglwLoad("eglCreateSyncKHR"));
eglDestroySyncKHR = reinterpret_cast<PFNEGLDESTROYSYNCKHRPROC>(eglwLoad("eglDestroySyncKHR"));
eglClientWaitSyncKHR = reinterpret_cast<PFNEGLCLIENTWAITSYNCKHRPROC>(eglwLoad("eglClientWaitSyncKHR"));
eglGetSyncAttribKHR = reinterpret_cast<PFNEGLGETSYNCATTRIBKHRPROC>(eglwLoad("eglGetSyncAttribKHR"));
#endif /* defined(EGL_KHR_fence_sync) */
#if defined(EGL_KHR_image)
eglCreateImageKHR = reinterpret_cast<PFNEGLCREATEIMAGEKHRPROC>(eglwLoad("eglCreateImageKHR"));
eglDestroyImageKHR = reinterpret_cast<PFNEGLDESTROYIMAGEKHRPROC>(eglwLoad("eglDestroyImageKHR"));
#endif /* defined(EGL_KHR_image) */
#if defined(EGL_KHR_lock_surface)
eglLockSurfaceKHR = reinterpret_cast<PFNEGLLOCKSURFACEKHRPROC>(eglwLoad("eglLockSurfaceKHR"));
eglUnlockSurfaceKHR = reinterpret_cast<PFNEGLUNLOCKSURFACEKHRPROC>(eglwLoad("eglUnlockSurfaceKHR"));
#endif /* defined(EGL_KHR_lock_surface) */
#if defined(EGL_KHR_lock_surface3)
eglQuerySurface64KHR = reinterpret_cast<PFNEGLQUERYSURFACE64KHRPROC>(eglwLoad("eglQuerySurface64KHR"));
#endif /* defined(EGL_KHR_lock_surface3) */
#if defined(EGL_KHR_partial_update)
eglSetDamageRegionKHR = reinterpret_cast<PFNEGLSETDAMAGEREGIONKHRPROC>(eglwLoad("eglSetDamageRegionKHR"));
#endif /* defined(EGL_KHR_partial_update) */
#if defined(EGL_KHR_reusable_sync)
eglSignalSyncKHR = reinterpret_cast<PFNEGLSIGNALSYNCKHRPROC>(eglwLoad("eglSignalSyncKHR"));
#endif /* defined(EGL_KHR_reusable_sync) */
#if defined(EGL_KHR_stream)
eglCreateStreamKHR = reinterpret_cast<PFNEGLCREATESTREAMKHRPROC>(eglwLoad("eglCreateStreamKHR"));
eglDestroyStreamKHR = reinterpret_cast<PFNEGLDESTROYSTREAMKHRPROC>(eglwLoad("eglDestroyStreamKHR"));
eglStreamAttribKHR = reinterpret_cast<PFNEGLSTREAMATTRIBKHRPROC>(eglwLoad("eglStreamAttribKHR"));
eglQueryStreamKHR = reinterpret_cast<PFNEGLQUERYSTREAMKHRPROC>(eglwLoad("eglQueryStreamKHR"));
eglQueryStreamu64KHR = reinterpret_cast<PFNEGLQUERYSTREAMU64KHRPROC>(eglwLoad("eglQueryStreamu64KHR"));
#endif /* defined(EGL_KHR_stream) */
#if defined(EGL_KHR_stream_attrib)
eglCreateStreamAttribKHR = reinterpret_cast<PFNEGLCREATESTREAMATTRIBKHRPROC>(eglwLoad("eglCreateStreamAttribKHR"));
eglSetStreamAttribKHR = reinterpret_cast<PFNEGLSETSTREAMATTRIBKHRPROC>(eglwLoad("eglSetStreamAttribKHR"));
eglQueryStreamAttribKHR = reinterpret_cast<PFNEGLQUERYSTREAMATTRIBKHRPROC>(eglwLoad("eglQueryStreamAttribKHR"));
eglStreamConsumerAcquireAttribKHR = reinterpret_cast<PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC>(eglwLoad("eglStreamConsumerAcquireAttribKHR"));
eglStreamConsumerReleaseAttribKHR = reinterpret_cast<PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC>(eglwLoad("eglStreamConsumerReleaseAttribKHR"));
#endif /* defined(EGL_KHR_stream_attrib) */
#if defined(EGL_KHR_stream_consumer_gltexture)
eglStreamConsumerGLTextureExternalKHR = reinterpret_cast<PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC>(eglwLoad("eglStreamConsumerGLTextureExternalKHR"));
eglStreamConsumerAcquireKHR = reinterpret_cast<PFNEGLSTREAMCONSUMERACQUIREKHRPROC>(eglwLoad("eglStreamConsumerAcquireKHR"));
eglStreamConsumerReleaseKHR = reinterpret_cast<PFNEGLSTREAMCONSUMERRELEASEKHRPROC>(eglwLoad("eglStreamConsumerReleaseKHR"));
#endif /* defined(EGL_KHR_stream_consumer_gltexture) */
#if defined(EGL_KHR_stream_cross_process_fd)
eglGetStreamFileDescriptorKHR = reinterpret_cast<PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC>(eglwLoad("eglGetStreamFileDescriptorKHR"));
eglCreateStreamFromFileDescriptorKHR = reinterpret_cast<PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC>(eglwLoad("eglCreateStreamFromFileDescriptorKHR"));
#endif /* defined(EGL_KHR_stream_cross_process_fd) */
#if defined(EGL_KHR_stream_fifo)
eglQueryStreamTimeKHR = reinterpret_cast<PFNEGLQUERYSTREAMTIMEKHRPROC>(eglwLoad("eglQueryStreamTimeKHR"));
#endif /* defined(EGL_KHR_stream_fifo) */
#if defined(EGL_KHR_stream_producer_eglsurface)
eglCreateStreamProducerSurfaceKHR = reinterpret_cast<PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC>(eglwLoad("eglCreateStreamProducerSurfaceKHR"));
#endif /* defined(EGL_KHR_stream_producer_eglsurface) */
#if defined(EGL_KHR_swap_buffers_with_damage)
eglSwapBuffersWithDamageKHR = reinterpret_cast<PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC>(eglwLoad("eglSwapBuffersWithDamageKHR"));
#endif /* defined(EGL_KHR_swap_buffers_with_damage) */
#if defined(EGL_KHR_wait_sync)
eglWaitSyncKHR = reinterpret_cast<PFNEGLWAITSYNCKHRPROC>(eglwLoad("eglWaitSyncKHR"));
#endif /* defined(EGL_KHR_wait_sync) */
#if defined(EGL_MESA_drm_image)
eglCreateDRMImageMESA = reinterpret_cast<PFNEGLCREATEDRMIMAGEMESAPROC>(eglwLoad("eglCreateDRMImageMESA"));
eglExportDRMImageMESA = reinterpret_cast<PFNEGLEXPORTDRMIMAGEMESAPROC>(eglwLoad("eglExportDRMImageMESA"));
#endif /* defined(EGL_MESA_drm_image) */
#if defined(EGL_MESA_image_dma_buf_export)
eglExportDMABUFImageQueryMESA = reinterpret_cast<PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC>(eglwLoad("eglExportDMABUFImageQueryMESA"));
eglExportDMABUFImageMESA = reinterpret_cast<PFNEGLEXPORTDMABUFIMAGEMESAPROC>(eglwLoad("eglExportDMABUFImageMESA"));
#endif /* defined(EGL_MESA_image_dma_buf_export) */
#if defined(EGL_MESA_query_driver)
eglGetDisplayDriverConfig = reinterpret_cast<PFNEGLGETDISPLAYDRIVERCONFIGPROC>(eglwLoad("eglGetDisplayDriverConfig"));
eglGetDisplayDriverName = reinterpret_cast<PFNEGLGETDISPLAYDRIVERNAMEPROC>(eglwLoad("eglGetDisplayDriverName"));
#endif /* defined(EGL_MESA_query_driver) */
#if defined(EGL_NOK_swap_region)
eglSwapBuffersRegionNOK = reinterpret_cast<PFNEGLSWAPBUFFERSREGIONNOKPROC>(eglwLoad("eglSwapBuffersRegionNOK"));
#endif /* defined(EGL_NOK_swap_region) */
#if defined(EGL_NOK_swap_region2)
eglSwapBuffersRegion2NOK = reinterpret_cast<PFNEGLSWAPBUFFERSREGION2NOKPROC>(eglwLoad("eglSwapBuffersRegion2NOK"));
#endif /* defined(EGL_NOK_swap_region2) */
#if defined(EGL_NV_native_query)
eglQueryNativeDisplayNV = reinterpret_cast<PFNEGLQUERYNATIVEDISPLAYNVPROC>(eglwLoad("eglQueryNativeDisplayNV"));
eglQueryNativeWindowNV = reinterpret_cast<PFNEGLQUERYNATIVEWINDOWNVPROC>(eglwLoad("eglQueryNativeWindowNV"));
eglQueryNativePixmapNV = reinterpret_cast<PFNEGLQUERYNATIVEPIXMAPNVPROC>(eglwLoad("eglQueryNativePixmapNV"));
#endif /* defined(EGL_NV_native_query) */
#if defined(EGL_NV_post_sub_buffer)
eglPostSubBufferNV = reinterpret_cast<PFNEGLPOSTSUBBUFFERNVPROC>(eglwLoad("eglPostSubBufferNV"));
#endif /* defined(EGL_NV_post_sub_buffer) */
#if defined(EGL_NV_stream_consumer_gltexture_yuv)
eglStreamConsumerGLTextureExternalAttribsNV = reinterpret_cast<PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC>(eglwLoad("eglStreamConsumerGLTextureExternalAttribsNV"));
#endif /* defined(EGL_NV_stream_consumer_gltexture_yuv) */
#if defined(EGL_NV_stream_consumer_eglimage)
eglStreamImageConsumerConnectNV = reinterpret_cast<PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC>(eglwLoad("eglStreamImageConsumerConnectNV"));
eglQueryStreamConsumerEventNV = reinterpret_cast<PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC>(eglwLoad("eglQueryStreamConsumerEventNV"));
eglStreamAcquireImageNV = reinterpret_cast<PFNEGLSTREAMACQUIREIMAGENVPROC>(eglwLoad("eglStreamAcquireImageNV"));
eglStreamReleaseImageNV = reinterpret_cast<PFNEGLSTREAMRELEASEIMAGENVPROC>(eglwLoad("eglStreamReleaseImageNV"));
#endif /* defined(EGL_NV_stream_consumer_eglimage) */
#if defined(EGL_NV_stream_flush)
eglStreamFlushNV = reinterpret_cast<PFNEGLSTREAMFLUSHNVPROC>(eglwLoad("eglStreamFlushNV"));
#endif /* defined(EGL_NV_stream_flush) */
#if defined(EGL_NV_stream_metadata)
eglQueryDisplayAttribNV = reinterpret_cast<PFNEGLQUERYDISPLAYATTRIBNVPROC>(eglwLoad("eglQueryDisplayAttribNV"));
eglSetStreamMetadataNV = reinterpret_cast<PFNEGLSETSTREAMMETADATANVPROC>(eglwLoad("eglSetStreamMetadataNV"));
eglQueryStreamMetadataNV = reinterpret_cast<PFNEGLQUERYSTREAMMETADATANVPROC>(eglwLoad("eglQueryStreamMetadataNV"));
#endif /* defined(EGL_NV_stream_metadata) */
#if defined(EGL_NV_stream_reset)
eglResetStreamNV = reinterpret_cast<PFNEGLRESETSTREAMNVPROC>(eglwLoad("eglResetStreamNV"));
#endif /* defined(EGL_NV_stream_reset) */
#if defined(EGL_NV_stream_sync)
eglCreateStreamSyncNV = reinterpret_cast<PFNEGLCREATESTREAMSYNCNVPROC>(eglwLoad("eglCreateStreamSyncNV"));
#endif /* defined(EGL_NV_stream_sync) */
#if defined(EGL_NV_sync)
eglCreateFenceSyncNV = reinterpret_cast<PFNEGLCREATEFENCESYNCNVPROC>(eglwLoad("eglCreateFenceSyncNV"));
eglDestroySyncNV = reinterpret_cast<PFNEGLDESTROYSYNCNVPROC>(eglwLoad("eglDestroySyncNV"));
eglFenceNV = reinterpret_cast<PFNEGLFENCENVPROC>(eglwLoad("eglFenceNV"));
eglClientWaitSyncNV = reinterpret_cast<PFNEGLCLIENTWAITSYNCNVPROC>(eglwLoad("eglClientWaitSyncNV"));
eglSignalSyncNV = reinterpret_cast<PFNEGLSIGNALSYNCNVPROC>(eglwLoad("eglSignalSyncNV"));
eglGetSyncAttribNV = reinterpret_cast<PFNEGLGETSYNCATTRIBNVPROC>(eglwLoad("eglGetSyncAttribNV"));
#endif /* defined(EGL_NV_sync) */
#if defined(EGL_NV_system_time)
eglGetSystemTimeFrequencyNV = reinterpret_cast<PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC>(eglwLoad("eglGetSystemTimeFrequencyNV"));
eglGetSystemTimeNV = reinterpret_cast<PFNEGLGETSYSTEMTIMENVPROC>(eglwLoad("eglGetSystemTimeNV"));
#endif /* defined(EGL_NV_system_time) */
#if defined(EGL_EXT_compositor)
eglCompositorSetContextListEXT = reinterpret_cast<PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC>(eglwLoad("eglCompositorSetContextListEXT"));
eglCompositorSetContextAttributesEXT = reinterpret_cast<PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC>(eglwLoad("eglCompositorSetContextAttributesEXT"));
eglCompositorSetWindowListEXT = reinterpret_cast<PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC>(eglwLoad("eglCompositorSetWindowListEXT"));
eglCompositorSetWindowAttributesEXT = reinterpret_cast<PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC>(eglwLoad("eglCompositorSetWindowAttributesEXT"));
eglCompositorBindTexWindowEXT = reinterpret_cast<PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC>(eglwLoad("eglCompositorBindTexWindowEXT"));
eglCompositorSetSizeEXT = reinterpret_cast<PFNEGLCOMPOSITORSETSIZEEXTPROC>(eglwLoad("eglCompositorSetSizeEXT"));
eglCompositorSwapPolicyEXT = reinterpret_cast<PFNEGLCOMPOSITORSWAPPOLICYEXTPROC>(eglwLoad("eglCompositorSwapPolicyEXT"));
#endif /* defined(EGL_EXT_compositor) */
#if defined(EGL_WL_bind_wayland_display)
eglBindWaylandDisplayWL = reinterpret_cast<PFNEGLBINDWAYLANDDISPLAYWLPROC>(eglwLoad("eglBindWaylandDisplayWL"));
eglUnbindWaylandDisplayWL = reinterpret_cast<PFNEGLUNBINDWAYLANDDISPLAYWLPROC>(eglwLoad("eglUnbindWaylandDisplayWL"));
eglQueryWaylandBufferWL = reinterpret_cast<PFNEGLQUERYWAYLANDBUFFERWLPROC>(eglwLoad("eglQueryWaylandBufferWL"));
#endif /* defined(EGL_WL_bind_wayland_display) */
#if defined(EGL_WL_create_wayland_buffer_from_image)
eglCreateWaylandBufferFromImageWL = reinterpret_cast<PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC>(eglwLoad("eglCreateWaylandBufferFromImageWL"));
#endif /* defined(EGL_WL_create_wayland_buffer_from_image) */
/* EGLW_GENERATE_EGL_LOAD */
/**
* ========================= !DO NOT CHANGE THE ABOVE SECTION MANUALLY! =========================
* The above section is auto-generated from EGL spec by running:
* node tools/gles-wrangler-generator/generate.js
* ========================= !DO NOT CHANGE THE ABOVE SECTION MANUALLY! =========================
*/
#endif
}

View File

@@ -0,0 +1,384 @@
/****************************************************************************
Copyright (c) 2019-2023 Xiamen Yaji Software Co., Ltd.
http://www.cocos.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
****************************************************************************/
#pragma once
#if (CC_PLATFORM != CC_PLATFORM_IOS)
#if (CC_PLATFORM == CC_PLATFORM_QNX)
#define EGL_NO_X11 1
#endif
#define EGL_EGL_PROTOTYPES 0
#include <EGL/egl.h>
#include <EGL/eglext.h>
#include <EGL/eglplatform.h>
/**
* ========================= !DO NOT CHANGE THE FOLLOWING SECTION MANUALLY! =========================
* The following section is auto-generated from EGL spec by running:
* node tools/gles-wrangler-generator/generate.js
* ========================= !DO NOT CHANGE THE FOLLOWING SECTION MANUALLY! =========================
*/
/* EGLW_GENERATE_EGL_DECLARATION */
extern PFNEGLGETPROCADDRESSPROC eglGetProcAddress;
/* EGL_VERSION_1_0 */
extern PFNEGLCHOOSECONFIGPROC eglChooseConfig;
extern PFNEGLCOPYBUFFERSPROC eglCopyBuffers;
extern PFNEGLCREATECONTEXTPROC eglCreateContext;
extern PFNEGLCREATEPBUFFERSURFACEPROC eglCreatePbufferSurface;
extern PFNEGLCREATEPIXMAPSURFACEPROC eglCreatePixmapSurface;
extern PFNEGLCREATEWINDOWSURFACEPROC eglCreateWindowSurface;
extern PFNEGLDESTROYCONTEXTPROC eglDestroyContext;
extern PFNEGLDESTROYSURFACEPROC eglDestroySurface;
extern PFNEGLGETCONFIGATTRIBPROC eglGetConfigAttrib;
extern PFNEGLGETCONFIGSPROC eglGetConfigs;
extern PFNEGLGETCURRENTDISPLAYPROC eglGetCurrentDisplay;
extern PFNEGLGETCURRENTSURFACEPROC eglGetCurrentSurface;
extern PFNEGLGETDISPLAYPROC eglGetDisplay;
extern PFNEGLGETERRORPROC eglGetError;
extern PFNEGLINITIALIZEPROC eglInitialize;
extern PFNEGLMAKECURRENTPROC eglMakeCurrent;
extern PFNEGLQUERYCONTEXTPROC eglQueryContext;
extern PFNEGLQUERYSTRINGPROC eglQueryString;
extern PFNEGLQUERYSURFACEPROC eglQuerySurface;
extern PFNEGLSWAPBUFFERSPROC eglSwapBuffers;
extern PFNEGLTERMINATEPROC eglTerminate;
extern PFNEGLWAITGLPROC eglWaitGL;
extern PFNEGLWAITNATIVEPROC eglWaitNative;
/* EGL_VERSION_1_1 */
extern PFNEGLBINDTEXIMAGEPROC eglBindTexImage;
extern PFNEGLRELEASETEXIMAGEPROC eglReleaseTexImage;
extern PFNEGLSURFACEATTRIBPROC eglSurfaceAttrib;
extern PFNEGLSWAPINTERVALPROC eglSwapInterval;
/* EGL_VERSION_1_2 */
extern PFNEGLBINDAPIPROC eglBindAPI;
extern PFNEGLQUERYAPIPROC eglQueryAPI;
extern PFNEGLCREATEPBUFFERFROMCLIENTBUFFERPROC eglCreatePbufferFromClientBuffer;
extern PFNEGLRELEASETHREADPROC eglReleaseThread;
extern PFNEGLWAITCLIENTPROC eglWaitClient;
/* EGL_VERSION_1_3 */
/* EGL_VERSION_1_4 */
extern PFNEGLGETCURRENTCONTEXTPROC eglGetCurrentContext;
/* EGL_VERSION_1_5 */
extern PFNEGLCREATESYNCPROC eglCreateSync;
extern PFNEGLDESTROYSYNCPROC eglDestroySync;
extern PFNEGLCLIENTWAITSYNCPROC eglClientWaitSync;
extern PFNEGLGETSYNCATTRIBPROC eglGetSyncAttrib;
extern PFNEGLCREATEIMAGEPROC eglCreateImage;
extern PFNEGLDESTROYIMAGEPROC eglDestroyImage;
extern PFNEGLGETPLATFORMDISPLAYPROC eglGetPlatformDisplay;
extern PFNEGLCREATEPLATFORMWINDOWSURFACEPROC eglCreatePlatformWindowSurface;
extern PFNEGLCREATEPLATFORMPIXMAPSURFACEPROC eglCreatePlatformPixmapSurface;
extern PFNEGLWAITSYNCPROC eglWaitSync;
#if defined(EGL_ANDROID_blob_cache)
extern PFNEGLSETBLOBCACHEFUNCSANDROIDPROC eglSetBlobCacheFuncsANDROID;
#endif /* defined(EGL_ANDROID_blob_cache) */
#if defined(EGL_ANDROID_create_native_client_buffer)
extern PFNEGLCREATENATIVECLIENTBUFFERANDROIDPROC eglCreateNativeClientBufferANDROID;
#endif /* defined(EGL_ANDROID_create_native_client_buffer) */
#if defined(EGL_ANDROID_get_native_client_buffer)
extern PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC eglGetNativeClientBufferANDROID;
#endif /* defined(EGL_ANDROID_get_native_client_buffer) */
#if defined(EGL_ANDROID_native_fence_sync)
extern PFNEGLDUPNATIVEFENCEFDANDROIDPROC eglDupNativeFenceFDANDROID;
#endif /* defined(EGL_ANDROID_native_fence_sync) */
#if defined(EGL_ANDROID_presentation_time)
extern PFNEGLPRESENTATIONTIMEANDROIDPROC eglPresentationTimeANDROID;
#endif /* defined(EGL_ANDROID_presentation_time) */
#if defined(EGL_ANDROID_get_frame_timestamps)
extern PFNEGLGETCOMPOSITORTIMINGSUPPORTEDANDROIDPROC eglGetCompositorTimingSupportedANDROID;
extern PFNEGLGETCOMPOSITORTIMINGANDROIDPROC eglGetCompositorTimingANDROID;
extern PFNEGLGETNEXTFRAMEIDANDROIDPROC eglGetNextFrameIdANDROID;
extern PFNEGLGETFRAMETIMESTAMPSUPPORTEDANDROIDPROC eglGetFrameTimestampSupportedANDROID;
extern PFNEGLGETFRAMETIMESTAMPSANDROIDPROC eglGetFrameTimestampsANDROID;
#endif /* defined(EGL_ANDROID_get_frame_timestamps) */
#if defined(EGL_ANGLE_query_surface_pointer)
extern PFNEGLQUERYSURFACEPOINTERANGLEPROC eglQuerySurfacePointerANGLE;
#endif /* defined(EGL_ANGLE_query_surface_pointer) */
#if defined(EGL_ANGLE_sync_control_rate)
extern PFNEGLGETMSCRATEANGLEPROC eglGetMscRateANGLE;
#endif /* defined(EGL_ANGLE_sync_control_rate) */
#if defined(EGL_EXT_client_sync)
extern PFNEGLCLIENTSIGNALSYNCEXTPROC eglClientSignalSyncEXT;
#endif /* defined(EGL_EXT_client_sync) */
#if defined(EGL_EXT_device_base)
extern PFNEGLQUERYDEVICEATTRIBEXTPROC eglQueryDeviceAttribEXT;
extern PFNEGLQUERYDEVICESTRINGEXTPROC eglQueryDeviceStringEXT;
extern PFNEGLQUERYDEVICESEXTPROC eglQueryDevicesEXT;
extern PFNEGLQUERYDISPLAYATTRIBEXTPROC eglQueryDisplayAttribEXT;
#endif /* defined(EGL_EXT_device_base) */
#if defined(EGL_EXT_image_dma_buf_import_modifiers)
extern PFNEGLQUERYDMABUFFORMATSEXTPROC eglQueryDmaBufFormatsEXT;
extern PFNEGLQUERYDMABUFMODIFIERSEXTPROC eglQueryDmaBufModifiersEXT;
#endif /* defined(EGL_EXT_image_dma_buf_import_modifiers) */
#if defined(EGL_EXT_output_base)
extern PFNEGLGETOUTPUTLAYERSEXTPROC eglGetOutputLayersEXT;
extern PFNEGLGETOUTPUTPORTSEXTPROC eglGetOutputPortsEXT;
extern PFNEGLOUTPUTLAYERATTRIBEXTPROC eglOutputLayerAttribEXT;
extern PFNEGLQUERYOUTPUTLAYERATTRIBEXTPROC eglQueryOutputLayerAttribEXT;
extern PFNEGLQUERYOUTPUTLAYERSTRINGEXTPROC eglQueryOutputLayerStringEXT;
extern PFNEGLOUTPUTPORTATTRIBEXTPROC eglOutputPortAttribEXT;
extern PFNEGLQUERYOUTPUTPORTATTRIBEXTPROC eglQueryOutputPortAttribEXT;
extern PFNEGLQUERYOUTPUTPORTSTRINGEXTPROC eglQueryOutputPortStringEXT;
#endif /* defined(EGL_EXT_output_base) */
#if defined(EGL_EXT_platform_base)
extern PFNEGLGETPLATFORMDISPLAYEXTPROC eglGetPlatformDisplayEXT;
extern PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC eglCreatePlatformWindowSurfaceEXT;
extern PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC eglCreatePlatformPixmapSurfaceEXT;
#endif /* defined(EGL_EXT_platform_base) */
#if defined(EGL_EXT_stream_consumer_egloutput)
extern PFNEGLSTREAMCONSUMEROUTPUTEXTPROC eglStreamConsumerOutputEXT;
#endif /* defined(EGL_EXT_stream_consumer_egloutput) */
#if defined(EGL_EXT_swap_buffers_with_damage)
extern PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC eglSwapBuffersWithDamageEXT;
#endif /* defined(EGL_EXT_swap_buffers_with_damage) */
#if defined(EGL_EXT_sync_reuse)
extern PFNEGLUNSIGNALSYNCEXTPROC eglUnsignalSyncEXT;
#endif /* defined(EGL_EXT_sync_reuse) */
#if defined(EGL_HI_clientpixmap)
extern PFNEGLCREATEPIXMAPSURFACEHIPROC eglCreatePixmapSurfaceHI;
#endif /* defined(EGL_HI_clientpixmap) */
#if defined(EGL_KHR_cl_event2)
extern PFNEGLCREATESYNC64KHRPROC eglCreateSync64KHR;
#endif /* defined(EGL_KHR_cl_event2) */
#if defined(EGL_KHR_debug)
extern PFNEGLDEBUGMESSAGECONTROLKHRPROC eglDebugMessageControlKHR;
extern PFNEGLQUERYDEBUGKHRPROC eglQueryDebugKHR;
extern PFNEGLLABELOBJECTKHRPROC eglLabelObjectKHR;
#endif /* defined(EGL_KHR_debug) */
#if defined(EGL_KHR_display_reference)
extern PFNEGLQUERYDISPLAYATTRIBKHRPROC eglQueryDisplayAttribKHR;
#endif /* defined(EGL_KHR_display_reference) */
#if defined(EGL_KHR_fence_sync)
extern PFNEGLCREATESYNCKHRPROC eglCreateSyncKHR;
extern PFNEGLDESTROYSYNCKHRPROC eglDestroySyncKHR;
extern PFNEGLCLIENTWAITSYNCKHRPROC eglClientWaitSyncKHR;
extern PFNEGLGETSYNCATTRIBKHRPROC eglGetSyncAttribKHR;
#endif /* defined(EGL_KHR_fence_sync) */
#if defined(EGL_KHR_image)
extern PFNEGLCREATEIMAGEKHRPROC eglCreateImageKHR;
extern PFNEGLDESTROYIMAGEKHRPROC eglDestroyImageKHR;
#endif /* defined(EGL_KHR_image) */
#if defined(EGL_KHR_lock_surface)
extern PFNEGLLOCKSURFACEKHRPROC eglLockSurfaceKHR;
extern PFNEGLUNLOCKSURFACEKHRPROC eglUnlockSurfaceKHR;
#endif /* defined(EGL_KHR_lock_surface) */
#if defined(EGL_KHR_lock_surface3)
extern PFNEGLQUERYSURFACE64KHRPROC eglQuerySurface64KHR;
#endif /* defined(EGL_KHR_lock_surface3) */
#if defined(EGL_KHR_partial_update)
extern PFNEGLSETDAMAGEREGIONKHRPROC eglSetDamageRegionKHR;
#endif /* defined(EGL_KHR_partial_update) */
#if defined(EGL_KHR_reusable_sync)
extern PFNEGLSIGNALSYNCKHRPROC eglSignalSyncKHR;
#endif /* defined(EGL_KHR_reusable_sync) */
#if defined(EGL_KHR_stream)
extern PFNEGLCREATESTREAMKHRPROC eglCreateStreamKHR;
extern PFNEGLDESTROYSTREAMKHRPROC eglDestroyStreamKHR;
extern PFNEGLSTREAMATTRIBKHRPROC eglStreamAttribKHR;
extern PFNEGLQUERYSTREAMKHRPROC eglQueryStreamKHR;
extern PFNEGLQUERYSTREAMU64KHRPROC eglQueryStreamu64KHR;
#endif /* defined(EGL_KHR_stream) */
#if defined(EGL_KHR_stream_attrib)
extern PFNEGLCREATESTREAMATTRIBKHRPROC eglCreateStreamAttribKHR;
extern PFNEGLSETSTREAMATTRIBKHRPROC eglSetStreamAttribKHR;
extern PFNEGLQUERYSTREAMATTRIBKHRPROC eglQueryStreamAttribKHR;
extern PFNEGLSTREAMCONSUMERACQUIREATTRIBKHRPROC eglStreamConsumerAcquireAttribKHR;
extern PFNEGLSTREAMCONSUMERRELEASEATTRIBKHRPROC eglStreamConsumerReleaseAttribKHR;
#endif /* defined(EGL_KHR_stream_attrib) */
#if defined(EGL_KHR_stream_consumer_gltexture)
extern PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALKHRPROC eglStreamConsumerGLTextureExternalKHR;
extern PFNEGLSTREAMCONSUMERACQUIREKHRPROC eglStreamConsumerAcquireKHR;
extern PFNEGLSTREAMCONSUMERRELEASEKHRPROC eglStreamConsumerReleaseKHR;
#endif /* defined(EGL_KHR_stream_consumer_gltexture) */
#if defined(EGL_KHR_stream_cross_process_fd)
extern PFNEGLGETSTREAMFILEDESCRIPTORKHRPROC eglGetStreamFileDescriptorKHR;
extern PFNEGLCREATESTREAMFROMFILEDESCRIPTORKHRPROC eglCreateStreamFromFileDescriptorKHR;
#endif /* defined(EGL_KHR_stream_cross_process_fd) */
#if defined(EGL_KHR_stream_fifo)
extern PFNEGLQUERYSTREAMTIMEKHRPROC eglQueryStreamTimeKHR;
#endif /* defined(EGL_KHR_stream_fifo) */
#if defined(EGL_KHR_stream_producer_eglsurface)
extern PFNEGLCREATESTREAMPRODUCERSURFACEKHRPROC eglCreateStreamProducerSurfaceKHR;
#endif /* defined(EGL_KHR_stream_producer_eglsurface) */
#if defined(EGL_KHR_swap_buffers_with_damage)
extern PFNEGLSWAPBUFFERSWITHDAMAGEKHRPROC eglSwapBuffersWithDamageKHR;
#endif /* defined(EGL_KHR_swap_buffers_with_damage) */
#if defined(EGL_KHR_wait_sync)
extern PFNEGLWAITSYNCKHRPROC eglWaitSyncKHR;
#endif /* defined(EGL_KHR_wait_sync) */
#if defined(EGL_MESA_drm_image)
extern PFNEGLCREATEDRMIMAGEMESAPROC eglCreateDRMImageMESA;
extern PFNEGLEXPORTDRMIMAGEMESAPROC eglExportDRMImageMESA;
#endif /* defined(EGL_MESA_drm_image) */
#if defined(EGL_MESA_image_dma_buf_export)
extern PFNEGLEXPORTDMABUFIMAGEQUERYMESAPROC eglExportDMABUFImageQueryMESA;
extern PFNEGLEXPORTDMABUFIMAGEMESAPROC eglExportDMABUFImageMESA;
#endif /* defined(EGL_MESA_image_dma_buf_export) */
#if defined(EGL_MESA_query_driver)
extern PFNEGLGETDISPLAYDRIVERCONFIGPROC eglGetDisplayDriverConfig;
extern PFNEGLGETDISPLAYDRIVERNAMEPROC eglGetDisplayDriverName;
#endif /* defined(EGL_MESA_query_driver) */
#if defined(EGL_NOK_swap_region)
extern PFNEGLSWAPBUFFERSREGIONNOKPROC eglSwapBuffersRegionNOK;
#endif /* defined(EGL_NOK_swap_region) */
#if defined(EGL_NOK_swap_region2)
extern PFNEGLSWAPBUFFERSREGION2NOKPROC eglSwapBuffersRegion2NOK;
#endif /* defined(EGL_NOK_swap_region2) */
#if defined(EGL_NV_native_query)
extern PFNEGLQUERYNATIVEDISPLAYNVPROC eglQueryNativeDisplayNV;
extern PFNEGLQUERYNATIVEWINDOWNVPROC eglQueryNativeWindowNV;
extern PFNEGLQUERYNATIVEPIXMAPNVPROC eglQueryNativePixmapNV;
#endif /* defined(EGL_NV_native_query) */
#if defined(EGL_NV_post_sub_buffer)
extern PFNEGLPOSTSUBBUFFERNVPROC eglPostSubBufferNV;
#endif /* defined(EGL_NV_post_sub_buffer) */
#if defined(EGL_NV_stream_consumer_gltexture_yuv)
extern PFNEGLSTREAMCONSUMERGLTEXTUREEXTERNALATTRIBSNVPROC eglStreamConsumerGLTextureExternalAttribsNV;
#endif /* defined(EGL_NV_stream_consumer_gltexture_yuv) */
#if defined(EGL_NV_stream_consumer_eglimage)
extern PFNEGLSTREAMIMAGECONSUMERCONNECTNVPROC eglStreamImageConsumerConnectNV;
extern PFNEGLQUERYSTREAMCONSUMEREVENTNVPROC eglQueryStreamConsumerEventNV;
extern PFNEGLSTREAMACQUIREIMAGENVPROC eglStreamAcquireImageNV;
extern PFNEGLSTREAMRELEASEIMAGENVPROC eglStreamReleaseImageNV;
#endif /* defined(EGL_NV_stream_consumer_eglimage) */
#if defined(EGL_NV_stream_flush)
extern PFNEGLSTREAMFLUSHNVPROC eglStreamFlushNV;
#endif /* defined(EGL_NV_stream_flush) */
#if defined(EGL_NV_stream_metadata)
extern PFNEGLQUERYDISPLAYATTRIBNVPROC eglQueryDisplayAttribNV;
extern PFNEGLSETSTREAMMETADATANVPROC eglSetStreamMetadataNV;
extern PFNEGLQUERYSTREAMMETADATANVPROC eglQueryStreamMetadataNV;
#endif /* defined(EGL_NV_stream_metadata) */
#if defined(EGL_NV_stream_reset)
extern PFNEGLRESETSTREAMNVPROC eglResetStreamNV;
#endif /* defined(EGL_NV_stream_reset) */
#if defined(EGL_NV_stream_sync)
extern PFNEGLCREATESTREAMSYNCNVPROC eglCreateStreamSyncNV;
#endif /* defined(EGL_NV_stream_sync) */
#if defined(EGL_NV_sync)
extern PFNEGLCREATEFENCESYNCNVPROC eglCreateFenceSyncNV;
extern PFNEGLDESTROYSYNCNVPROC eglDestroySyncNV;
extern PFNEGLFENCENVPROC eglFenceNV;
extern PFNEGLCLIENTWAITSYNCNVPROC eglClientWaitSyncNV;
extern PFNEGLSIGNALSYNCNVPROC eglSignalSyncNV;
extern PFNEGLGETSYNCATTRIBNVPROC eglGetSyncAttribNV;
#endif /* defined(EGL_NV_sync) */
#if defined(EGL_NV_system_time)
extern PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC eglGetSystemTimeFrequencyNV;
extern PFNEGLGETSYSTEMTIMENVPROC eglGetSystemTimeNV;
#endif /* defined(EGL_NV_system_time) */
#if defined(EGL_EXT_compositor)
extern PFNEGLCOMPOSITORSETCONTEXTLISTEXTPROC eglCompositorSetContextListEXT;
extern PFNEGLCOMPOSITORSETCONTEXTATTRIBUTESEXTPROC eglCompositorSetContextAttributesEXT;
extern PFNEGLCOMPOSITORSETWINDOWLISTEXTPROC eglCompositorSetWindowListEXT;
extern PFNEGLCOMPOSITORSETWINDOWATTRIBUTESEXTPROC eglCompositorSetWindowAttributesEXT;
extern PFNEGLCOMPOSITORBINDTEXWINDOWEXTPROC eglCompositorBindTexWindowEXT;
extern PFNEGLCOMPOSITORSETSIZEEXTPROC eglCompositorSetSizeEXT;
extern PFNEGLCOMPOSITORSWAPPOLICYEXTPROC eglCompositorSwapPolicyEXT;
#endif /* defined(EGL_EXT_compositor) */
#if defined(EGL_WL_bind_wayland_display)
extern PFNEGLBINDWAYLANDDISPLAYWLPROC eglBindWaylandDisplayWL;
extern PFNEGLUNBINDWAYLANDDISPLAYWLPROC eglUnbindWaylandDisplayWL;
extern PFNEGLQUERYWAYLANDBUFFERWLPROC eglQueryWaylandBufferWL;
#endif /* defined(EGL_WL_bind_wayland_display) */
#if defined(EGL_WL_create_wayland_buffer_from_image)
extern PFNEGLCREATEWAYLANDBUFFERFROMIMAGEWLPROC eglCreateWaylandBufferFromImageWL;
#endif /* defined(EGL_WL_create_wayland_buffer_from_image) */
/* EGLW_GENERATE_EGL_DECLARATION */
/**
* ========================= !DO NOT CHANGE THE ABOVE SECTION MANUALLY! =========================
* The above section is auto-generated from EGL spec by running:
* node tools/gles-wrangler-generator/generate.js
* ========================= !DO NOT CHANGE THE ABOVE SECTION MANUALLY! =========================
*/
#endif
using PFNEGLWLOADPROC = void *(*)(const char *);
void eglwLoadProcs(PFNEGLWLOADPROC eglwLoad);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,543 @@
/****************************************************************************
Copyright (c) 2019-2023 Xiamen Yaji Software Co., Ltd.
http://www.cocos.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
****************************************************************************/
#include "gles3w.h"
/**
* ========================= !DO NOT CHANGE THE FOLLOWING SECTION MANUALLY! =========================
* The following section is auto-generated from GLES spec by running:
* node tools/gles-wrangler-generator/generate.js
* ========================= !DO NOT CHANGE THE FOLLOWING SECTION MANUALLY! =========================
*/
/* GLES3W_GENERATE_GLES_DEFINITION */
/* GL_ES_VERSION_3_0 */
PFNGLREADBUFFERPROC glReadBuffer;
PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
PFNGLTEXIMAGE3DPROC glTexImage3D;
PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D;
PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D;
PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D;
PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D;
PFNGLGENQUERIESPROC glGenQueries;
PFNGLDELETEQUERIESPROC glDeleteQueries;
PFNGLISQUERYPROC glIsQuery;
PFNGLBEGINQUERYPROC glBeginQuery;
PFNGLENDQUERYPROC glEndQuery;
PFNGLGETQUERYIVPROC glGetQueryiv;
PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv;
PFNGLUNMAPBUFFERPROC glUnmapBuffer;
PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv;
PFNGLDRAWBUFFERSPROC glDrawBuffers;
PFNGLUNIFORMMATRIX2X3FVPROC glUniformMatrix2x3fv;
PFNGLUNIFORMMATRIX3X2FVPROC glUniformMatrix3x2fv;
PFNGLUNIFORMMATRIX2X4FVPROC glUniformMatrix2x4fv;
PFNGLUNIFORMMATRIX4X2FVPROC glUniformMatrix4x2fv;
PFNGLUNIFORMMATRIX3X4FVPROC glUniformMatrix3x4fv;
PFNGLUNIFORMMATRIX4X3FVPROC glUniformMatrix4x3fv;
PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer;
PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample;
PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer;
PFNGLMAPBUFFERRANGEPROC glMapBufferRange;
PFNGLFLUSHMAPPEDBUFFERRANGEPROC glFlushMappedBufferRange;
PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
PFNGLISVERTEXARRAYPROC glIsVertexArray;
PFNGLGETINTEGERI_VPROC glGetIntegeri_v;
PFNGLBEGINTRANSFORMFEEDBACKPROC glBeginTransformFeedback;
PFNGLENDTRANSFORMFEEDBACKPROC glEndTransformFeedback;
PFNGLBINDBUFFERRANGEPROC glBindBufferRange;
PFNGLBINDBUFFERBASEPROC glBindBufferBase;
PFNGLTRANSFORMFEEDBACKVARYINGSPROC glTransformFeedbackVaryings;
PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glGetTransformFeedbackVarying;
PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
PFNGLGETVERTEXATTRIBIIVPROC glGetVertexAttribIiv;
PFNGLGETVERTEXATTRIBIUIVPROC glGetVertexAttribIuiv;
PFNGLVERTEXATTRIBI4IPROC glVertexAttribI4i;
PFNGLVERTEXATTRIBI4UIPROC glVertexAttribI4ui;
PFNGLVERTEXATTRIBI4IVPROC glVertexAttribI4iv;
PFNGLVERTEXATTRIBI4UIVPROC glVertexAttribI4uiv;
PFNGLGETUNIFORMUIVPROC glGetUniformuiv;
PFNGLGETFRAGDATALOCATIONPROC glGetFragDataLocation;
PFNGLUNIFORM1UIPROC glUniform1ui;
PFNGLUNIFORM2UIPROC glUniform2ui;
PFNGLUNIFORM3UIPROC glUniform3ui;
PFNGLUNIFORM4UIPROC glUniform4ui;
PFNGLUNIFORM1UIVPROC glUniform1uiv;
PFNGLUNIFORM2UIVPROC glUniform2uiv;
PFNGLUNIFORM3UIVPROC glUniform3uiv;
PFNGLUNIFORM4UIVPROC glUniform4uiv;
PFNGLCLEARBUFFERIVPROC glClearBufferiv;
PFNGLCLEARBUFFERUIVPROC glClearBufferuiv;
PFNGLCLEARBUFFERFVPROC glClearBufferfv;
PFNGLCLEARBUFFERFIPROC glClearBufferfi;
PFNGLGETSTRINGIPROC glGetStringi;
PFNGLCOPYBUFFERSUBDATAPROC glCopyBufferSubData;
PFNGLGETUNIFORMINDICESPROC glGetUniformIndices;
PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsiv;
PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex;
PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockiv;
PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glGetActiveUniformBlockName;
PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding;
PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced;
PFNGLDRAWELEMENTSINSTANCEDPROC glDrawElementsInstanced;
PFNGLFENCESYNCPROC glFenceSync;
PFNGLISSYNCPROC glIsSync;
PFNGLDELETESYNCPROC glDeleteSync;
PFNGLCLIENTWAITSYNCPROC glClientWaitSync;
PFNGLWAITSYNCPROC glWaitSync;
PFNGLGETINTEGER64VPROC glGetInteger64v;
PFNGLGETSYNCIVPROC glGetSynciv;
PFNGLGETINTEGER64I_VPROC glGetInteger64i_v;
PFNGLGETBUFFERPARAMETERI64VPROC glGetBufferParameteri64v;
PFNGLGENSAMPLERSPROC glGenSamplers;
PFNGLDELETESAMPLERSPROC glDeleteSamplers;
PFNGLISSAMPLERPROC glIsSampler;
PFNGLBINDSAMPLERPROC glBindSampler;
PFNGLSAMPLERPARAMETERIPROC glSamplerParameteri;
PFNGLSAMPLERPARAMETERIVPROC glSamplerParameteriv;
PFNGLSAMPLERPARAMETERFPROC glSamplerParameterf;
PFNGLSAMPLERPARAMETERFVPROC glSamplerParameterfv;
PFNGLGETSAMPLERPARAMETERIVPROC glGetSamplerParameteriv;
PFNGLGETSAMPLERPARAMETERFVPROC glGetSamplerParameterfv;
PFNGLVERTEXATTRIBDIVISORPROC glVertexAttribDivisor;
PFNGLBINDTRANSFORMFEEDBACKPROC glBindTransformFeedback;
PFNGLDELETETRANSFORMFEEDBACKSPROC glDeleteTransformFeedbacks;
PFNGLGENTRANSFORMFEEDBACKSPROC glGenTransformFeedbacks;
PFNGLISTRANSFORMFEEDBACKPROC glIsTransformFeedback;
PFNGLPAUSETRANSFORMFEEDBACKPROC glPauseTransformFeedback;
PFNGLRESUMETRANSFORMFEEDBACKPROC glResumeTransformFeedback;
PFNGLGETPROGRAMBINARYPROC glGetProgramBinary;
PFNGLPROGRAMBINARYPROC glProgramBinary;
PFNGLPROGRAMPARAMETERIPROC glProgramParameteri;
PFNGLINVALIDATEFRAMEBUFFERPROC glInvalidateFramebuffer;
PFNGLINVALIDATESUBFRAMEBUFFERPROC glInvalidateSubFramebuffer;
PFNGLTEXSTORAGE2DPROC glTexStorage2D;
PFNGLTEXSTORAGE3DPROC glTexStorage3D;
PFNGLGETINTERNALFORMATIVPROC glGetInternalformativ;
/* GL_ES_VERSION_3_1 */
PFNGLDISPATCHCOMPUTEPROC glDispatchCompute;
PFNGLDISPATCHCOMPUTEINDIRECTPROC glDispatchComputeIndirect;
PFNGLDRAWARRAYSINDIRECTPROC glDrawArraysIndirect;
PFNGLDRAWELEMENTSINDIRECTPROC glDrawElementsIndirect;
PFNGLFRAMEBUFFERPARAMETERIPROC glFramebufferParameteri;
PFNGLGETFRAMEBUFFERPARAMETERIVPROC glGetFramebufferParameteriv;
PFNGLGETPROGRAMINTERFACEIVPROC glGetProgramInterfaceiv;
PFNGLGETPROGRAMRESOURCEINDEXPROC glGetProgramResourceIndex;
PFNGLGETPROGRAMRESOURCENAMEPROC glGetProgramResourceName;
PFNGLGETPROGRAMRESOURCEIVPROC glGetProgramResourceiv;
PFNGLGETPROGRAMRESOURCELOCATIONPROC glGetProgramResourceLocation;
PFNGLUSEPROGRAMSTAGESPROC glUseProgramStages;
PFNGLACTIVESHADERPROGRAMPROC glActiveShaderProgram;
PFNGLCREATESHADERPROGRAMVPROC glCreateShaderProgramv;
PFNGLBINDPROGRAMPIPELINEPROC glBindProgramPipeline;
PFNGLDELETEPROGRAMPIPELINESPROC glDeleteProgramPipelines;
PFNGLGENPROGRAMPIPELINESPROC glGenProgramPipelines;
PFNGLISPROGRAMPIPELINEPROC glIsProgramPipeline;
PFNGLGETPROGRAMPIPELINEIVPROC glGetProgramPipelineiv;
PFNGLPROGRAMUNIFORM1IPROC glProgramUniform1i;
PFNGLPROGRAMUNIFORM2IPROC glProgramUniform2i;
PFNGLPROGRAMUNIFORM3IPROC glProgramUniform3i;
PFNGLPROGRAMUNIFORM4IPROC glProgramUniform4i;
PFNGLPROGRAMUNIFORM1UIPROC glProgramUniform1ui;
PFNGLPROGRAMUNIFORM2UIPROC glProgramUniform2ui;
PFNGLPROGRAMUNIFORM3UIPROC glProgramUniform3ui;
PFNGLPROGRAMUNIFORM4UIPROC glProgramUniform4ui;
PFNGLPROGRAMUNIFORM1FPROC glProgramUniform1f;
PFNGLPROGRAMUNIFORM2FPROC glProgramUniform2f;
PFNGLPROGRAMUNIFORM3FPROC glProgramUniform3f;
PFNGLPROGRAMUNIFORM4FPROC glProgramUniform4f;
PFNGLPROGRAMUNIFORM1IVPROC glProgramUniform1iv;
PFNGLPROGRAMUNIFORM2IVPROC glProgramUniform2iv;
PFNGLPROGRAMUNIFORM3IVPROC glProgramUniform3iv;
PFNGLPROGRAMUNIFORM4IVPROC glProgramUniform4iv;
PFNGLPROGRAMUNIFORM1UIVPROC glProgramUniform1uiv;
PFNGLPROGRAMUNIFORM2UIVPROC glProgramUniform2uiv;
PFNGLPROGRAMUNIFORM3UIVPROC glProgramUniform3uiv;
PFNGLPROGRAMUNIFORM4UIVPROC glProgramUniform4uiv;
PFNGLPROGRAMUNIFORM1FVPROC glProgramUniform1fv;
PFNGLPROGRAMUNIFORM2FVPROC glProgramUniform2fv;
PFNGLPROGRAMUNIFORM3FVPROC glProgramUniform3fv;
PFNGLPROGRAMUNIFORM4FVPROC glProgramUniform4fv;
PFNGLPROGRAMUNIFORMMATRIX2FVPROC glProgramUniformMatrix2fv;
PFNGLPROGRAMUNIFORMMATRIX3FVPROC glProgramUniformMatrix3fv;
PFNGLPROGRAMUNIFORMMATRIX4FVPROC glProgramUniformMatrix4fv;
PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glProgramUniformMatrix2x3fv;
PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glProgramUniformMatrix3x2fv;
PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glProgramUniformMatrix2x4fv;
PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glProgramUniformMatrix4x2fv;
PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glProgramUniformMatrix3x4fv;
PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glProgramUniformMatrix4x3fv;
PFNGLVALIDATEPROGRAMPIPELINEPROC glValidateProgramPipeline;
PFNGLGETPROGRAMPIPELINEINFOLOGPROC glGetProgramPipelineInfoLog;
PFNGLBINDIMAGETEXTUREPROC glBindImageTexture;
PFNGLGETBOOLEANI_VPROC glGetBooleani_v;
PFNGLMEMORYBARRIERPROC glMemoryBarrier;
PFNGLMEMORYBARRIERBYREGIONPROC glMemoryBarrierByRegion;
PFNGLTEXSTORAGE2DMULTISAMPLEPROC glTexStorage2DMultisample;
PFNGLGETMULTISAMPLEFVPROC glGetMultisamplefv;
PFNGLSAMPLEMASKIPROC glSampleMaski;
PFNGLGETTEXLEVELPARAMETERIVPROC glGetTexLevelParameteriv;
PFNGLGETTEXLEVELPARAMETERFVPROC glGetTexLevelParameterfv;
PFNGLBINDVERTEXBUFFERPROC glBindVertexBuffer;
PFNGLVERTEXATTRIBFORMATPROC glVertexAttribFormat;
PFNGLVERTEXATTRIBIFORMATPROC glVertexAttribIFormat;
PFNGLVERTEXATTRIBBINDINGPROC glVertexAttribBinding;
PFNGLVERTEXBINDINGDIVISORPROC glVertexBindingDivisor;
/* GL_ES_VERSION_3_2 */
PFNGLBLENDBARRIERPROC glBlendBarrier;
PFNGLCOPYIMAGESUBDATAPROC glCopyImageSubData;
PFNGLDEBUGMESSAGECONTROLPROC glDebugMessageControl;
PFNGLDEBUGMESSAGEINSERTPROC glDebugMessageInsert;
PFNGLDEBUGMESSAGECALLBACKPROC glDebugMessageCallback;
PFNGLGETDEBUGMESSAGELOGPROC glGetDebugMessageLog;
PFNGLPUSHDEBUGGROUPPROC glPushDebugGroup;
PFNGLPOPDEBUGGROUPPROC glPopDebugGroup;
PFNGLOBJECTLABELPROC glObjectLabel;
PFNGLGETOBJECTLABELPROC glGetObjectLabel;
PFNGLOBJECTPTRLABELPROC glObjectPtrLabel;
PFNGLGETOBJECTPTRLABELPROC glGetObjectPtrLabel;
PFNGLGETPOINTERVPROC glGetPointerv;
PFNGLENABLEIPROC glEnablei;
PFNGLDISABLEIPROC glDisablei;
PFNGLBLENDEQUATIONIPROC glBlendEquationi;
PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei;
PFNGLBLENDFUNCIPROC glBlendFunci;
PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei;
PFNGLCOLORMASKIPROC glColorMaski;
PFNGLISENABLEDIPROC glIsEnabledi;
PFNGLDRAWELEMENTSBASEVERTEXPROC glDrawElementsBaseVertex;
PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glDrawRangeElementsBaseVertex;
PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertex;
PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture;
PFNGLPRIMITIVEBOUNDINGBOXPROC glPrimitiveBoundingBox;
PFNGLGETGRAPHICSRESETSTATUSPROC glGetGraphicsResetStatus;
PFNGLREADNPIXELSPROC glReadnPixels;
PFNGLGETNUNIFORMFVPROC glGetnUniformfv;
PFNGLGETNUNIFORMIVPROC glGetnUniformiv;
PFNGLGETNUNIFORMUIVPROC glGetnUniformuiv;
PFNGLMINSAMPLESHADINGPROC glMinSampleShading;
PFNGLPATCHPARAMETERIPROC glPatchParameteri;
PFNGLTEXPARAMETERIIVPROC glTexParameterIiv;
PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv;
PFNGLGETTEXPARAMETERIIVPROC glGetTexParameterIiv;
PFNGLGETTEXPARAMETERIUIVPROC glGetTexParameterIuiv;
PFNGLSAMPLERPARAMETERIIVPROC glSamplerParameterIiv;
PFNGLSAMPLERPARAMETERIUIVPROC glSamplerParameterIuiv;
PFNGLGETSAMPLERPARAMETERIIVPROC glGetSamplerParameterIiv;
PFNGLGETSAMPLERPARAMETERIUIVPROC glGetSamplerParameterIuiv;
PFNGLTEXBUFFERPROC glTexBuffer;
PFNGLTEXBUFFERRANGEPROC glTexBufferRange;
PFNGLTEXSTORAGE3DMULTISAMPLEPROC glTexStorage3DMultisample;
/* GLES3W_GENERATE_GLES_DEFINITION */
/**
* ========================= !DO NOT CHANGE THE ABOVE SECTION MANUALLY! =========================
* The above section is auto-generated from GLES spec by running:
* node tools/gles-wrangler-generator/generate.js
* ========================= !DO NOT CHANGE THE ABOVE SECTION MANUALLY! =========================
*/
void gles3wLoadProcs(PFNGLES3WLOADPROC gles3wLoad) {
/**
* ========================= !DO NOT CHANGE THE FOLLOWING SECTION MANUALLY! =========================
* The following section is auto-generated from GLES spec by running:
* node tools/gles-wrangler-generator/generate.js
* ========================= !DO NOT CHANGE THE FOLLOWING SECTION MANUALLY! =========================
*/
/* GLES3W_GENERATE_GLES_LOAD */
/* GL_ES_VERSION_3_0 */
glReadBuffer = reinterpret_cast<PFNGLREADBUFFERPROC>(gles3wLoad("glReadBuffer"));
glDrawRangeElements = reinterpret_cast<PFNGLDRAWRANGEELEMENTSPROC>(gles3wLoad("glDrawRangeElements"));
glTexImage3D = reinterpret_cast<PFNGLTEXIMAGE3DPROC>(gles3wLoad("glTexImage3D"));
glTexSubImage3D = reinterpret_cast<PFNGLTEXSUBIMAGE3DPROC>(gles3wLoad("glTexSubImage3D"));
glCopyTexSubImage3D = reinterpret_cast<PFNGLCOPYTEXSUBIMAGE3DPROC>(gles3wLoad("glCopyTexSubImage3D"));
glCompressedTexImage3D = reinterpret_cast<PFNGLCOMPRESSEDTEXIMAGE3DPROC>(gles3wLoad("glCompressedTexImage3D"));
glCompressedTexSubImage3D = reinterpret_cast<PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC>(gles3wLoad("glCompressedTexSubImage3D"));
glGenQueries = reinterpret_cast<PFNGLGENQUERIESPROC>(gles3wLoad("glGenQueries"));
glDeleteQueries = reinterpret_cast<PFNGLDELETEQUERIESPROC>(gles3wLoad("glDeleteQueries"));
glIsQuery = reinterpret_cast<PFNGLISQUERYPROC>(gles3wLoad("glIsQuery"));
glBeginQuery = reinterpret_cast<PFNGLBEGINQUERYPROC>(gles3wLoad("glBeginQuery"));
glEndQuery = reinterpret_cast<PFNGLENDQUERYPROC>(gles3wLoad("glEndQuery"));
glGetQueryiv = reinterpret_cast<PFNGLGETQUERYIVPROC>(gles3wLoad("glGetQueryiv"));
glGetQueryObjectuiv = reinterpret_cast<PFNGLGETQUERYOBJECTUIVPROC>(gles3wLoad("glGetQueryObjectuiv"));
glUnmapBuffer = reinterpret_cast<PFNGLUNMAPBUFFERPROC>(gles3wLoad("glUnmapBuffer"));
glGetBufferPointerv = reinterpret_cast<PFNGLGETBUFFERPOINTERVPROC>(gles3wLoad("glGetBufferPointerv"));
glDrawBuffers = reinterpret_cast<PFNGLDRAWBUFFERSPROC>(gles3wLoad("glDrawBuffers"));
glUniformMatrix2x3fv = reinterpret_cast<PFNGLUNIFORMMATRIX2X3FVPROC>(gles3wLoad("glUniformMatrix2x3fv"));
glUniformMatrix3x2fv = reinterpret_cast<PFNGLUNIFORMMATRIX3X2FVPROC>(gles3wLoad("glUniformMatrix3x2fv"));
glUniformMatrix2x4fv = reinterpret_cast<PFNGLUNIFORMMATRIX2X4FVPROC>(gles3wLoad("glUniformMatrix2x4fv"));
glUniformMatrix4x2fv = reinterpret_cast<PFNGLUNIFORMMATRIX4X2FVPROC>(gles3wLoad("glUniformMatrix4x2fv"));
glUniformMatrix3x4fv = reinterpret_cast<PFNGLUNIFORMMATRIX3X4FVPROC>(gles3wLoad("glUniformMatrix3x4fv"));
glUniformMatrix4x3fv = reinterpret_cast<PFNGLUNIFORMMATRIX4X3FVPROC>(gles3wLoad("glUniformMatrix4x3fv"));
glBlitFramebuffer = reinterpret_cast<PFNGLBLITFRAMEBUFFERPROC>(gles3wLoad("glBlitFramebuffer"));
glRenderbufferStorageMultisample = reinterpret_cast<PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC>(gles3wLoad("glRenderbufferStorageMultisample"));
glFramebufferTextureLayer = reinterpret_cast<PFNGLFRAMEBUFFERTEXTURELAYERPROC>(gles3wLoad("glFramebufferTextureLayer"));
glMapBufferRange = reinterpret_cast<PFNGLMAPBUFFERRANGEPROC>(gles3wLoad("glMapBufferRange"));
glFlushMappedBufferRange = reinterpret_cast<PFNGLFLUSHMAPPEDBUFFERRANGEPROC>(gles3wLoad("glFlushMappedBufferRange"));
glBindVertexArray = reinterpret_cast<PFNGLBINDVERTEXARRAYPROC>(gles3wLoad("glBindVertexArray"));
glDeleteVertexArrays = reinterpret_cast<PFNGLDELETEVERTEXARRAYSPROC>(gles3wLoad("glDeleteVertexArrays"));
glGenVertexArrays = reinterpret_cast<PFNGLGENVERTEXARRAYSPROC>(gles3wLoad("glGenVertexArrays"));
glIsVertexArray = reinterpret_cast<PFNGLISVERTEXARRAYPROC>(gles3wLoad("glIsVertexArray"));
glGetIntegeri_v = reinterpret_cast<PFNGLGETINTEGERI_VPROC>(gles3wLoad("glGetIntegeri_v"));
glBeginTransformFeedback = reinterpret_cast<PFNGLBEGINTRANSFORMFEEDBACKPROC>(gles3wLoad("glBeginTransformFeedback"));
glEndTransformFeedback = reinterpret_cast<PFNGLENDTRANSFORMFEEDBACKPROC>(gles3wLoad("glEndTransformFeedback"));
glBindBufferRange = reinterpret_cast<PFNGLBINDBUFFERRANGEPROC>(gles3wLoad("glBindBufferRange"));
glBindBufferBase = reinterpret_cast<PFNGLBINDBUFFERBASEPROC>(gles3wLoad("glBindBufferBase"));
glTransformFeedbackVaryings = reinterpret_cast<PFNGLTRANSFORMFEEDBACKVARYINGSPROC>(gles3wLoad("glTransformFeedbackVaryings"));
glGetTransformFeedbackVarying = reinterpret_cast<PFNGLGETTRANSFORMFEEDBACKVARYINGPROC>(gles3wLoad("glGetTransformFeedbackVarying"));
glVertexAttribIPointer = reinterpret_cast<PFNGLVERTEXATTRIBIPOINTERPROC>(gles3wLoad("glVertexAttribIPointer"));
glGetVertexAttribIiv = reinterpret_cast<PFNGLGETVERTEXATTRIBIIVPROC>(gles3wLoad("glGetVertexAttribIiv"));
glGetVertexAttribIuiv = reinterpret_cast<PFNGLGETVERTEXATTRIBIUIVPROC>(gles3wLoad("glGetVertexAttribIuiv"));
glVertexAttribI4i = reinterpret_cast<PFNGLVERTEXATTRIBI4IPROC>(gles3wLoad("glVertexAttribI4i"));
glVertexAttribI4ui = reinterpret_cast<PFNGLVERTEXATTRIBI4UIPROC>(gles3wLoad("glVertexAttribI4ui"));
glVertexAttribI4iv = reinterpret_cast<PFNGLVERTEXATTRIBI4IVPROC>(gles3wLoad("glVertexAttribI4iv"));
glVertexAttribI4uiv = reinterpret_cast<PFNGLVERTEXATTRIBI4UIVPROC>(gles3wLoad("glVertexAttribI4uiv"));
glGetUniformuiv = reinterpret_cast<PFNGLGETUNIFORMUIVPROC>(gles3wLoad("glGetUniformuiv"));
glGetFragDataLocation = reinterpret_cast<PFNGLGETFRAGDATALOCATIONPROC>(gles3wLoad("glGetFragDataLocation"));
glUniform1ui = reinterpret_cast<PFNGLUNIFORM1UIPROC>(gles3wLoad("glUniform1ui"));
glUniform2ui = reinterpret_cast<PFNGLUNIFORM2UIPROC>(gles3wLoad("glUniform2ui"));
glUniform3ui = reinterpret_cast<PFNGLUNIFORM3UIPROC>(gles3wLoad("glUniform3ui"));
glUniform4ui = reinterpret_cast<PFNGLUNIFORM4UIPROC>(gles3wLoad("glUniform4ui"));
glUniform1uiv = reinterpret_cast<PFNGLUNIFORM1UIVPROC>(gles3wLoad("glUniform1uiv"));
glUniform2uiv = reinterpret_cast<PFNGLUNIFORM2UIVPROC>(gles3wLoad("glUniform2uiv"));
glUniform3uiv = reinterpret_cast<PFNGLUNIFORM3UIVPROC>(gles3wLoad("glUniform3uiv"));
glUniform4uiv = reinterpret_cast<PFNGLUNIFORM4UIVPROC>(gles3wLoad("glUniform4uiv"));
glClearBufferiv = reinterpret_cast<PFNGLCLEARBUFFERIVPROC>(gles3wLoad("glClearBufferiv"));
glClearBufferuiv = reinterpret_cast<PFNGLCLEARBUFFERUIVPROC>(gles3wLoad("glClearBufferuiv"));
glClearBufferfv = reinterpret_cast<PFNGLCLEARBUFFERFVPROC>(gles3wLoad("glClearBufferfv"));
glClearBufferfi = reinterpret_cast<PFNGLCLEARBUFFERFIPROC>(gles3wLoad("glClearBufferfi"));
glGetStringi = reinterpret_cast<PFNGLGETSTRINGIPROC>(gles3wLoad("glGetStringi"));
glCopyBufferSubData = reinterpret_cast<PFNGLCOPYBUFFERSUBDATAPROC>(gles3wLoad("glCopyBufferSubData"));
glGetUniformIndices = reinterpret_cast<PFNGLGETUNIFORMINDICESPROC>(gles3wLoad("glGetUniformIndices"));
glGetActiveUniformsiv = reinterpret_cast<PFNGLGETACTIVEUNIFORMSIVPROC>(gles3wLoad("glGetActiveUniformsiv"));
glGetUniformBlockIndex = reinterpret_cast<PFNGLGETUNIFORMBLOCKINDEXPROC>(gles3wLoad("glGetUniformBlockIndex"));
glGetActiveUniformBlockiv = reinterpret_cast<PFNGLGETACTIVEUNIFORMBLOCKIVPROC>(gles3wLoad("glGetActiveUniformBlockiv"));
glGetActiveUniformBlockName = reinterpret_cast<PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC>(gles3wLoad("glGetActiveUniformBlockName"));
glUniformBlockBinding = reinterpret_cast<PFNGLUNIFORMBLOCKBINDINGPROC>(gles3wLoad("glUniformBlockBinding"));
glDrawArraysInstanced = reinterpret_cast<PFNGLDRAWARRAYSINSTANCEDPROC>(gles3wLoad("glDrawArraysInstanced"));
glDrawElementsInstanced = reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDPROC>(gles3wLoad("glDrawElementsInstanced"));
glFenceSync = reinterpret_cast<PFNGLFENCESYNCPROC>(gles3wLoad("glFenceSync"));
glIsSync = reinterpret_cast<PFNGLISSYNCPROC>(gles3wLoad("glIsSync"));
glDeleteSync = reinterpret_cast<PFNGLDELETESYNCPROC>(gles3wLoad("glDeleteSync"));
glClientWaitSync = reinterpret_cast<PFNGLCLIENTWAITSYNCPROC>(gles3wLoad("glClientWaitSync"));
glWaitSync = reinterpret_cast<PFNGLWAITSYNCPROC>(gles3wLoad("glWaitSync"));
glGetInteger64v = reinterpret_cast<PFNGLGETINTEGER64VPROC>(gles3wLoad("glGetInteger64v"));
glGetSynciv = reinterpret_cast<PFNGLGETSYNCIVPROC>(gles3wLoad("glGetSynciv"));
glGetInteger64i_v = reinterpret_cast<PFNGLGETINTEGER64I_VPROC>(gles3wLoad("glGetInteger64i_v"));
glGetBufferParameteri64v = reinterpret_cast<PFNGLGETBUFFERPARAMETERI64VPROC>(gles3wLoad("glGetBufferParameteri64v"));
glGenSamplers = reinterpret_cast<PFNGLGENSAMPLERSPROC>(gles3wLoad("glGenSamplers"));
glDeleteSamplers = reinterpret_cast<PFNGLDELETESAMPLERSPROC>(gles3wLoad("glDeleteSamplers"));
glIsSampler = reinterpret_cast<PFNGLISSAMPLERPROC>(gles3wLoad("glIsSampler"));
glBindSampler = reinterpret_cast<PFNGLBINDSAMPLERPROC>(gles3wLoad("glBindSampler"));
glSamplerParameteri = reinterpret_cast<PFNGLSAMPLERPARAMETERIPROC>(gles3wLoad("glSamplerParameteri"));
glSamplerParameteriv = reinterpret_cast<PFNGLSAMPLERPARAMETERIVPROC>(gles3wLoad("glSamplerParameteriv"));
glSamplerParameterf = reinterpret_cast<PFNGLSAMPLERPARAMETERFPROC>(gles3wLoad("glSamplerParameterf"));
glSamplerParameterfv = reinterpret_cast<PFNGLSAMPLERPARAMETERFVPROC>(gles3wLoad("glSamplerParameterfv"));
glGetSamplerParameteriv = reinterpret_cast<PFNGLGETSAMPLERPARAMETERIVPROC>(gles3wLoad("glGetSamplerParameteriv"));
glGetSamplerParameterfv = reinterpret_cast<PFNGLGETSAMPLERPARAMETERFVPROC>(gles3wLoad("glGetSamplerParameterfv"));
glVertexAttribDivisor = reinterpret_cast<PFNGLVERTEXATTRIBDIVISORPROC>(gles3wLoad("glVertexAttribDivisor"));
glBindTransformFeedback = reinterpret_cast<PFNGLBINDTRANSFORMFEEDBACKPROC>(gles3wLoad("glBindTransformFeedback"));
glDeleteTransformFeedbacks = reinterpret_cast<PFNGLDELETETRANSFORMFEEDBACKSPROC>(gles3wLoad("glDeleteTransformFeedbacks"));
glGenTransformFeedbacks = reinterpret_cast<PFNGLGENTRANSFORMFEEDBACKSPROC>(gles3wLoad("glGenTransformFeedbacks"));
glIsTransformFeedback = reinterpret_cast<PFNGLISTRANSFORMFEEDBACKPROC>(gles3wLoad("glIsTransformFeedback"));
glPauseTransformFeedback = reinterpret_cast<PFNGLPAUSETRANSFORMFEEDBACKPROC>(gles3wLoad("glPauseTransformFeedback"));
glResumeTransformFeedback = reinterpret_cast<PFNGLRESUMETRANSFORMFEEDBACKPROC>(gles3wLoad("glResumeTransformFeedback"));
glGetProgramBinary = reinterpret_cast<PFNGLGETPROGRAMBINARYPROC>(gles3wLoad("glGetProgramBinary"));
glProgramBinary = reinterpret_cast<PFNGLPROGRAMBINARYPROC>(gles3wLoad("glProgramBinary"));
glProgramParameteri = reinterpret_cast<PFNGLPROGRAMPARAMETERIPROC>(gles3wLoad("glProgramParameteri"));
glInvalidateFramebuffer = reinterpret_cast<PFNGLINVALIDATEFRAMEBUFFERPROC>(gles3wLoad("glInvalidateFramebuffer"));
glInvalidateSubFramebuffer = reinterpret_cast<PFNGLINVALIDATESUBFRAMEBUFFERPROC>(gles3wLoad("glInvalidateSubFramebuffer"));
glTexStorage2D = reinterpret_cast<PFNGLTEXSTORAGE2DPROC>(gles3wLoad("glTexStorage2D"));
glTexStorage3D = reinterpret_cast<PFNGLTEXSTORAGE3DPROC>(gles3wLoad("glTexStorage3D"));
glGetInternalformativ = reinterpret_cast<PFNGLGETINTERNALFORMATIVPROC>(gles3wLoad("glGetInternalformativ"));
/* GL_ES_VERSION_3_1 */
glDispatchCompute = reinterpret_cast<PFNGLDISPATCHCOMPUTEPROC>(gles3wLoad("glDispatchCompute"));
glDispatchComputeIndirect = reinterpret_cast<PFNGLDISPATCHCOMPUTEINDIRECTPROC>(gles3wLoad("glDispatchComputeIndirect"));
glDrawArraysIndirect = reinterpret_cast<PFNGLDRAWARRAYSINDIRECTPROC>(gles3wLoad("glDrawArraysIndirect"));
glDrawElementsIndirect = reinterpret_cast<PFNGLDRAWELEMENTSINDIRECTPROC>(gles3wLoad("glDrawElementsIndirect"));
glFramebufferParameteri = reinterpret_cast<PFNGLFRAMEBUFFERPARAMETERIPROC>(gles3wLoad("glFramebufferParameteri"));
glGetFramebufferParameteriv = reinterpret_cast<PFNGLGETFRAMEBUFFERPARAMETERIVPROC>(gles3wLoad("glGetFramebufferParameteriv"));
glGetProgramInterfaceiv = reinterpret_cast<PFNGLGETPROGRAMINTERFACEIVPROC>(gles3wLoad("glGetProgramInterfaceiv"));
glGetProgramResourceIndex = reinterpret_cast<PFNGLGETPROGRAMRESOURCEINDEXPROC>(gles3wLoad("glGetProgramResourceIndex"));
glGetProgramResourceName = reinterpret_cast<PFNGLGETPROGRAMRESOURCENAMEPROC>(gles3wLoad("glGetProgramResourceName"));
glGetProgramResourceiv = reinterpret_cast<PFNGLGETPROGRAMRESOURCEIVPROC>(gles3wLoad("glGetProgramResourceiv"));
glGetProgramResourceLocation = reinterpret_cast<PFNGLGETPROGRAMRESOURCELOCATIONPROC>(gles3wLoad("glGetProgramResourceLocation"));
glUseProgramStages = reinterpret_cast<PFNGLUSEPROGRAMSTAGESPROC>(gles3wLoad("glUseProgramStages"));
glActiveShaderProgram = reinterpret_cast<PFNGLACTIVESHADERPROGRAMPROC>(gles3wLoad("glActiveShaderProgram"));
glCreateShaderProgramv = reinterpret_cast<PFNGLCREATESHADERPROGRAMVPROC>(gles3wLoad("glCreateShaderProgramv"));
glBindProgramPipeline = reinterpret_cast<PFNGLBINDPROGRAMPIPELINEPROC>(gles3wLoad("glBindProgramPipeline"));
glDeleteProgramPipelines = reinterpret_cast<PFNGLDELETEPROGRAMPIPELINESPROC>(gles3wLoad("glDeleteProgramPipelines"));
glGenProgramPipelines = reinterpret_cast<PFNGLGENPROGRAMPIPELINESPROC>(gles3wLoad("glGenProgramPipelines"));
glIsProgramPipeline = reinterpret_cast<PFNGLISPROGRAMPIPELINEPROC>(gles3wLoad("glIsProgramPipeline"));
glGetProgramPipelineiv = reinterpret_cast<PFNGLGETPROGRAMPIPELINEIVPROC>(gles3wLoad("glGetProgramPipelineiv"));
glProgramUniform1i = reinterpret_cast<PFNGLPROGRAMUNIFORM1IPROC>(gles3wLoad("glProgramUniform1i"));
glProgramUniform2i = reinterpret_cast<PFNGLPROGRAMUNIFORM2IPROC>(gles3wLoad("glProgramUniform2i"));
glProgramUniform3i = reinterpret_cast<PFNGLPROGRAMUNIFORM3IPROC>(gles3wLoad("glProgramUniform3i"));
glProgramUniform4i = reinterpret_cast<PFNGLPROGRAMUNIFORM4IPROC>(gles3wLoad("glProgramUniform4i"));
glProgramUniform1ui = reinterpret_cast<PFNGLPROGRAMUNIFORM1UIPROC>(gles3wLoad("glProgramUniform1ui"));
glProgramUniform2ui = reinterpret_cast<PFNGLPROGRAMUNIFORM2UIPROC>(gles3wLoad("glProgramUniform2ui"));
glProgramUniform3ui = reinterpret_cast<PFNGLPROGRAMUNIFORM3UIPROC>(gles3wLoad("glProgramUniform3ui"));
glProgramUniform4ui = reinterpret_cast<PFNGLPROGRAMUNIFORM4UIPROC>(gles3wLoad("glProgramUniform4ui"));
glProgramUniform1f = reinterpret_cast<PFNGLPROGRAMUNIFORM1FPROC>(gles3wLoad("glProgramUniform1f"));
glProgramUniform2f = reinterpret_cast<PFNGLPROGRAMUNIFORM2FPROC>(gles3wLoad("glProgramUniform2f"));
glProgramUniform3f = reinterpret_cast<PFNGLPROGRAMUNIFORM3FPROC>(gles3wLoad("glProgramUniform3f"));
glProgramUniform4f = reinterpret_cast<PFNGLPROGRAMUNIFORM4FPROC>(gles3wLoad("glProgramUniform4f"));
glProgramUniform1iv = reinterpret_cast<PFNGLPROGRAMUNIFORM1IVPROC>(gles3wLoad("glProgramUniform1iv"));
glProgramUniform2iv = reinterpret_cast<PFNGLPROGRAMUNIFORM2IVPROC>(gles3wLoad("glProgramUniform2iv"));
glProgramUniform3iv = reinterpret_cast<PFNGLPROGRAMUNIFORM3IVPROC>(gles3wLoad("glProgramUniform3iv"));
glProgramUniform4iv = reinterpret_cast<PFNGLPROGRAMUNIFORM4IVPROC>(gles3wLoad("glProgramUniform4iv"));
glProgramUniform1uiv = reinterpret_cast<PFNGLPROGRAMUNIFORM1UIVPROC>(gles3wLoad("glProgramUniform1uiv"));
glProgramUniform2uiv = reinterpret_cast<PFNGLPROGRAMUNIFORM2UIVPROC>(gles3wLoad("glProgramUniform2uiv"));
glProgramUniform3uiv = reinterpret_cast<PFNGLPROGRAMUNIFORM3UIVPROC>(gles3wLoad("glProgramUniform3uiv"));
glProgramUniform4uiv = reinterpret_cast<PFNGLPROGRAMUNIFORM4UIVPROC>(gles3wLoad("glProgramUniform4uiv"));
glProgramUniform1fv = reinterpret_cast<PFNGLPROGRAMUNIFORM1FVPROC>(gles3wLoad("glProgramUniform1fv"));
glProgramUniform2fv = reinterpret_cast<PFNGLPROGRAMUNIFORM2FVPROC>(gles3wLoad("glProgramUniform2fv"));
glProgramUniform3fv = reinterpret_cast<PFNGLPROGRAMUNIFORM3FVPROC>(gles3wLoad("glProgramUniform3fv"));
glProgramUniform4fv = reinterpret_cast<PFNGLPROGRAMUNIFORM4FVPROC>(gles3wLoad("glProgramUniform4fv"));
glProgramUniformMatrix2fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2FVPROC>(gles3wLoad("glProgramUniformMatrix2fv"));
glProgramUniformMatrix3fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3FVPROC>(gles3wLoad("glProgramUniformMatrix3fv"));
glProgramUniformMatrix4fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4FVPROC>(gles3wLoad("glProgramUniformMatrix4fv"));
glProgramUniformMatrix2x3fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC>(gles3wLoad("glProgramUniformMatrix2x3fv"));
glProgramUniformMatrix3x2fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC>(gles3wLoad("glProgramUniformMatrix3x2fv"));
glProgramUniformMatrix2x4fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC>(gles3wLoad("glProgramUniformMatrix2x4fv"));
glProgramUniformMatrix4x2fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC>(gles3wLoad("glProgramUniformMatrix4x2fv"));
glProgramUniformMatrix3x4fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC>(gles3wLoad("glProgramUniformMatrix3x4fv"));
glProgramUniformMatrix4x3fv = reinterpret_cast<PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC>(gles3wLoad("glProgramUniformMatrix4x3fv"));
glValidateProgramPipeline = reinterpret_cast<PFNGLVALIDATEPROGRAMPIPELINEPROC>(gles3wLoad("glValidateProgramPipeline"));
glGetProgramPipelineInfoLog = reinterpret_cast<PFNGLGETPROGRAMPIPELINEINFOLOGPROC>(gles3wLoad("glGetProgramPipelineInfoLog"));
glBindImageTexture = reinterpret_cast<PFNGLBINDIMAGETEXTUREPROC>(gles3wLoad("glBindImageTexture"));
glGetBooleani_v = reinterpret_cast<PFNGLGETBOOLEANI_VPROC>(gles3wLoad("glGetBooleani_v"));
glMemoryBarrier = reinterpret_cast<PFNGLMEMORYBARRIERPROC>(gles3wLoad("glMemoryBarrier"));
glMemoryBarrierByRegion = reinterpret_cast<PFNGLMEMORYBARRIERBYREGIONPROC>(gles3wLoad("glMemoryBarrierByRegion"));
glTexStorage2DMultisample = reinterpret_cast<PFNGLTEXSTORAGE2DMULTISAMPLEPROC>(gles3wLoad("glTexStorage2DMultisample"));
glGetMultisamplefv = reinterpret_cast<PFNGLGETMULTISAMPLEFVPROC>(gles3wLoad("glGetMultisamplefv"));
glSampleMaski = reinterpret_cast<PFNGLSAMPLEMASKIPROC>(gles3wLoad("glSampleMaski"));
glGetTexLevelParameteriv = reinterpret_cast<PFNGLGETTEXLEVELPARAMETERIVPROC>(gles3wLoad("glGetTexLevelParameteriv"));
glGetTexLevelParameterfv = reinterpret_cast<PFNGLGETTEXLEVELPARAMETERFVPROC>(gles3wLoad("glGetTexLevelParameterfv"));
glBindVertexBuffer = reinterpret_cast<PFNGLBINDVERTEXBUFFERPROC>(gles3wLoad("glBindVertexBuffer"));
glVertexAttribFormat = reinterpret_cast<PFNGLVERTEXATTRIBFORMATPROC>(gles3wLoad("glVertexAttribFormat"));
glVertexAttribIFormat = reinterpret_cast<PFNGLVERTEXATTRIBIFORMATPROC>(gles3wLoad("glVertexAttribIFormat"));
glVertexAttribBinding = reinterpret_cast<PFNGLVERTEXATTRIBBINDINGPROC>(gles3wLoad("glVertexAttribBinding"));
glVertexBindingDivisor = reinterpret_cast<PFNGLVERTEXBINDINGDIVISORPROC>(gles3wLoad("glVertexBindingDivisor"));
/* GL_ES_VERSION_3_2 */
glBlendBarrier = reinterpret_cast<PFNGLBLENDBARRIERPROC>(gles3wLoad("glBlendBarrier"));
glCopyImageSubData = reinterpret_cast<PFNGLCOPYIMAGESUBDATAPROC>(gles3wLoad("glCopyImageSubData"));
glDebugMessageControl = reinterpret_cast<PFNGLDEBUGMESSAGECONTROLPROC>(gles3wLoad("glDebugMessageControl"));
glDebugMessageInsert = reinterpret_cast<PFNGLDEBUGMESSAGEINSERTPROC>(gles3wLoad("glDebugMessageInsert"));
glDebugMessageCallback = reinterpret_cast<PFNGLDEBUGMESSAGECALLBACKPROC>(gles3wLoad("glDebugMessageCallback"));
glGetDebugMessageLog = reinterpret_cast<PFNGLGETDEBUGMESSAGELOGPROC>(gles3wLoad("glGetDebugMessageLog"));
glPushDebugGroup = reinterpret_cast<PFNGLPUSHDEBUGGROUPPROC>(gles3wLoad("glPushDebugGroup"));
glPopDebugGroup = reinterpret_cast<PFNGLPOPDEBUGGROUPPROC>(gles3wLoad("glPopDebugGroup"));
glObjectLabel = reinterpret_cast<PFNGLOBJECTLABELPROC>(gles3wLoad("glObjectLabel"));
glGetObjectLabel = reinterpret_cast<PFNGLGETOBJECTLABELPROC>(gles3wLoad("glGetObjectLabel"));
glObjectPtrLabel = reinterpret_cast<PFNGLOBJECTPTRLABELPROC>(gles3wLoad("glObjectPtrLabel"));
glGetObjectPtrLabel = reinterpret_cast<PFNGLGETOBJECTPTRLABELPROC>(gles3wLoad("glGetObjectPtrLabel"));
glGetPointerv = reinterpret_cast<PFNGLGETPOINTERVPROC>(gles3wLoad("glGetPointerv"));
glEnablei = reinterpret_cast<PFNGLENABLEIPROC>(gles3wLoad("glEnablei"));
glDisablei = reinterpret_cast<PFNGLDISABLEIPROC>(gles3wLoad("glDisablei"));
glBlendEquationi = reinterpret_cast<PFNGLBLENDEQUATIONIPROC>(gles3wLoad("glBlendEquationi"));
glBlendEquationSeparatei = reinterpret_cast<PFNGLBLENDEQUATIONSEPARATEIPROC>(gles3wLoad("glBlendEquationSeparatei"));
glBlendFunci = reinterpret_cast<PFNGLBLENDFUNCIPROC>(gles3wLoad("glBlendFunci"));
glBlendFuncSeparatei = reinterpret_cast<PFNGLBLENDFUNCSEPARATEIPROC>(gles3wLoad("glBlendFuncSeparatei"));
glColorMaski = reinterpret_cast<PFNGLCOLORMASKIPROC>(gles3wLoad("glColorMaski"));
glIsEnabledi = reinterpret_cast<PFNGLISENABLEDIPROC>(gles3wLoad("glIsEnabledi"));
glDrawElementsBaseVertex = reinterpret_cast<PFNGLDRAWELEMENTSBASEVERTEXPROC>(gles3wLoad("glDrawElementsBaseVertex"));
glDrawRangeElementsBaseVertex = reinterpret_cast<PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC>(gles3wLoad("glDrawRangeElementsBaseVertex"));
glDrawElementsInstancedBaseVertex = reinterpret_cast<PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC>(gles3wLoad("glDrawElementsInstancedBaseVertex"));
glFramebufferTexture = reinterpret_cast<PFNGLFRAMEBUFFERTEXTUREPROC>(gles3wLoad("glFramebufferTexture"));
glPrimitiveBoundingBox = reinterpret_cast<PFNGLPRIMITIVEBOUNDINGBOXPROC>(gles3wLoad("glPrimitiveBoundingBox"));
glGetGraphicsResetStatus = reinterpret_cast<PFNGLGETGRAPHICSRESETSTATUSPROC>(gles3wLoad("glGetGraphicsResetStatus"));
glReadnPixels = reinterpret_cast<PFNGLREADNPIXELSPROC>(gles3wLoad("glReadnPixels"));
glGetnUniformfv = reinterpret_cast<PFNGLGETNUNIFORMFVPROC>(gles3wLoad("glGetnUniformfv"));
glGetnUniformiv = reinterpret_cast<PFNGLGETNUNIFORMIVPROC>(gles3wLoad("glGetnUniformiv"));
glGetnUniformuiv = reinterpret_cast<PFNGLGETNUNIFORMUIVPROC>(gles3wLoad("glGetnUniformuiv"));
glMinSampleShading = reinterpret_cast<PFNGLMINSAMPLESHADINGPROC>(gles3wLoad("glMinSampleShading"));
glPatchParameteri = reinterpret_cast<PFNGLPATCHPARAMETERIPROC>(gles3wLoad("glPatchParameteri"));
glTexParameterIiv = reinterpret_cast<PFNGLTEXPARAMETERIIVPROC>(gles3wLoad("glTexParameterIiv"));
glTexParameterIuiv = reinterpret_cast<PFNGLTEXPARAMETERIUIVPROC>(gles3wLoad("glTexParameterIuiv"));
glGetTexParameterIiv = reinterpret_cast<PFNGLGETTEXPARAMETERIIVPROC>(gles3wLoad("glGetTexParameterIiv"));
glGetTexParameterIuiv = reinterpret_cast<PFNGLGETTEXPARAMETERIUIVPROC>(gles3wLoad("glGetTexParameterIuiv"));
glSamplerParameterIiv = reinterpret_cast<PFNGLSAMPLERPARAMETERIIVPROC>(gles3wLoad("glSamplerParameterIiv"));
glSamplerParameterIuiv = reinterpret_cast<PFNGLSAMPLERPARAMETERIUIVPROC>(gles3wLoad("glSamplerParameterIuiv"));
glGetSamplerParameterIiv = reinterpret_cast<PFNGLGETSAMPLERPARAMETERIIVPROC>(gles3wLoad("glGetSamplerParameterIiv"));
glGetSamplerParameterIuiv = reinterpret_cast<PFNGLGETSAMPLERPARAMETERIUIVPROC>(gles3wLoad("glGetSamplerParameterIuiv"));
glTexBuffer = reinterpret_cast<PFNGLTEXBUFFERPROC>(gles3wLoad("glTexBuffer"));
glTexBufferRange = reinterpret_cast<PFNGLTEXBUFFERRANGEPROC>(gles3wLoad("glTexBufferRange"));
glTexStorage3DMultisample = reinterpret_cast<PFNGLTEXSTORAGE3DMULTISAMPLEPROC>(gles3wLoad("glTexStorage3DMultisample"));
/* GLES3W_GENERATE_GLES_LOAD */
/**
* ========================= !DO NOT CHANGE THE ABOVE SECTION MANUALLY! =========================
* The above section is auto-generated from GLES spec by running:
* node tools/gles-wrangler-generator/generate.js
* ========================= !DO NOT CHANGE THE ABOVE SECTION MANUALLY! =========================
*/
}

View File

@@ -0,0 +1,289 @@
/****************************************************************************
Copyright (c) 2019-2023 Xiamen Yaji Software Co., Ltd.
http://www.cocos.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do so,
subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
****************************************************************************/
#pragma once
#define GL_GLES_PROTOTYPES 0
#include <GLES3/gl32.h>
/**
* ========================= !DO NOT CHANGE THE FOLLOWING SECTION MANUALLY! =========================
* The following section is auto-generated from GLES spec by running:
* node tools/gles-wrangler-generator/generate.js
* ========================= !DO NOT CHANGE THE FOLLOWING SECTION MANUALLY! =========================
*/
/* GLES3W_GENERATE_GLES_DECLARATION */
/* GL_ES_VERSION_3_0 */
extern PFNGLREADBUFFERPROC glReadBuffer;
extern PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
extern PFNGLTEXIMAGE3DPROC glTexImage3D;
extern PFNGLTEXSUBIMAGE3DPROC glTexSubImage3D;
extern PFNGLCOPYTEXSUBIMAGE3DPROC glCopyTexSubImage3D;
extern PFNGLCOMPRESSEDTEXIMAGE3DPROC glCompressedTexImage3D;
extern PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC glCompressedTexSubImage3D;
extern PFNGLGENQUERIESPROC glGenQueries;
extern PFNGLDELETEQUERIESPROC glDeleteQueries;
extern PFNGLISQUERYPROC glIsQuery;
extern PFNGLBEGINQUERYPROC glBeginQuery;
extern PFNGLENDQUERYPROC glEndQuery;
extern PFNGLGETQUERYIVPROC glGetQueryiv;
extern PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv;
extern PFNGLUNMAPBUFFERPROC glUnmapBuffer;
extern PFNGLGETBUFFERPOINTERVPROC glGetBufferPointerv;
extern PFNGLDRAWBUFFERSPROC glDrawBuffers;
extern PFNGLUNIFORMMATRIX2X3FVPROC glUniformMatrix2x3fv;
extern PFNGLUNIFORMMATRIX3X2FVPROC glUniformMatrix3x2fv;
extern PFNGLUNIFORMMATRIX2X4FVPROC glUniformMatrix2x4fv;
extern PFNGLUNIFORMMATRIX4X2FVPROC glUniformMatrix4x2fv;
extern PFNGLUNIFORMMATRIX3X4FVPROC glUniformMatrix3x4fv;
extern PFNGLUNIFORMMATRIX4X3FVPROC glUniformMatrix4x3fv;
extern PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer;
extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC glRenderbufferStorageMultisample;
extern PFNGLFRAMEBUFFERTEXTURELAYERPROC glFramebufferTextureLayer;
extern PFNGLMAPBUFFERRANGEPROC glMapBufferRange;
extern PFNGLFLUSHMAPPEDBUFFERRANGEPROC glFlushMappedBufferRange;
extern PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
extern PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
extern PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
extern PFNGLISVERTEXARRAYPROC glIsVertexArray;
extern PFNGLGETINTEGERI_VPROC glGetIntegeri_v; // NOLINT(readability-identifier-naming)
extern PFNGLBEGINTRANSFORMFEEDBACKPROC glBeginTransformFeedback;
extern PFNGLENDTRANSFORMFEEDBACKPROC glEndTransformFeedback;
extern PFNGLBINDBUFFERRANGEPROC glBindBufferRange;
extern PFNGLBINDBUFFERBASEPROC glBindBufferBase;
extern PFNGLTRANSFORMFEEDBACKVARYINGSPROC glTransformFeedbackVaryings;
extern PFNGLGETTRANSFORMFEEDBACKVARYINGPROC glGetTransformFeedbackVarying;
extern PFNGLVERTEXATTRIBIPOINTERPROC glVertexAttribIPointer;
extern PFNGLGETVERTEXATTRIBIIVPROC glGetVertexAttribIiv;
extern PFNGLGETVERTEXATTRIBIUIVPROC glGetVertexAttribIuiv;
extern PFNGLVERTEXATTRIBI4IPROC glVertexAttribI4i;
extern PFNGLVERTEXATTRIBI4UIPROC glVertexAttribI4ui;
extern PFNGLVERTEXATTRIBI4IVPROC glVertexAttribI4iv;
extern PFNGLVERTEXATTRIBI4UIVPROC glVertexAttribI4uiv;
extern PFNGLGETUNIFORMUIVPROC glGetUniformuiv;
extern PFNGLGETFRAGDATALOCATIONPROC glGetFragDataLocation;
extern PFNGLUNIFORM1UIPROC glUniform1ui;
extern PFNGLUNIFORM2UIPROC glUniform2ui;
extern PFNGLUNIFORM3UIPROC glUniform3ui;
extern PFNGLUNIFORM4UIPROC glUniform4ui;
extern PFNGLUNIFORM1UIVPROC glUniform1uiv;
extern PFNGLUNIFORM2UIVPROC glUniform2uiv;
extern PFNGLUNIFORM3UIVPROC glUniform3uiv;
extern PFNGLUNIFORM4UIVPROC glUniform4uiv;
extern PFNGLCLEARBUFFERIVPROC glClearBufferiv;
extern PFNGLCLEARBUFFERUIVPROC glClearBufferuiv;
extern PFNGLCLEARBUFFERFVPROC glClearBufferfv;
extern PFNGLCLEARBUFFERFIPROC glClearBufferfi;
extern PFNGLGETSTRINGIPROC glGetStringi;
extern PFNGLCOPYBUFFERSUBDATAPROC glCopyBufferSubData;
extern PFNGLGETUNIFORMINDICESPROC glGetUniformIndices;
extern PFNGLGETACTIVEUNIFORMSIVPROC glGetActiveUniformsiv;
extern PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex;
extern PFNGLGETACTIVEUNIFORMBLOCKIVPROC glGetActiveUniformBlockiv;
extern PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC glGetActiveUniformBlockName;
extern PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding;
extern PFNGLDRAWARRAYSINSTANCEDPROC glDrawArraysInstanced;
extern PFNGLDRAWELEMENTSINSTANCEDPROC glDrawElementsInstanced;
extern PFNGLFENCESYNCPROC glFenceSync;
extern PFNGLISSYNCPROC glIsSync;
extern PFNGLDELETESYNCPROC glDeleteSync;
extern PFNGLCLIENTWAITSYNCPROC glClientWaitSync;
extern PFNGLWAITSYNCPROC glWaitSync;
extern PFNGLGETINTEGER64VPROC glGetInteger64v;
extern PFNGLGETSYNCIVPROC glGetSynciv;
extern PFNGLGETINTEGER64I_VPROC glGetInteger64i_v; // NOLINT(readability-identifier-naming)
extern PFNGLGETBUFFERPARAMETERI64VPROC glGetBufferParameteri64v;
extern PFNGLGENSAMPLERSPROC glGenSamplers;
extern PFNGLDELETESAMPLERSPROC glDeleteSamplers;
extern PFNGLISSAMPLERPROC glIsSampler;
extern PFNGLBINDSAMPLERPROC glBindSampler;
extern PFNGLSAMPLERPARAMETERIPROC glSamplerParameteri;
extern PFNGLSAMPLERPARAMETERIVPROC glSamplerParameteriv;
extern PFNGLSAMPLERPARAMETERFPROC glSamplerParameterf;
extern PFNGLSAMPLERPARAMETERFVPROC glSamplerParameterfv;
extern PFNGLGETSAMPLERPARAMETERIVPROC glGetSamplerParameteriv;
extern PFNGLGETSAMPLERPARAMETERFVPROC glGetSamplerParameterfv;
extern PFNGLVERTEXATTRIBDIVISORPROC glVertexAttribDivisor;
extern PFNGLBINDTRANSFORMFEEDBACKPROC glBindTransformFeedback;
extern PFNGLDELETETRANSFORMFEEDBACKSPROC glDeleteTransformFeedbacks;
extern PFNGLGENTRANSFORMFEEDBACKSPROC glGenTransformFeedbacks;
extern PFNGLISTRANSFORMFEEDBACKPROC glIsTransformFeedback;
extern PFNGLPAUSETRANSFORMFEEDBACKPROC glPauseTransformFeedback;
extern PFNGLRESUMETRANSFORMFEEDBACKPROC glResumeTransformFeedback;
extern PFNGLGETPROGRAMBINARYPROC glGetProgramBinary;
extern PFNGLPROGRAMBINARYPROC glProgramBinary;
extern PFNGLPROGRAMPARAMETERIPROC glProgramParameteri;
extern PFNGLINVALIDATEFRAMEBUFFERPROC glInvalidateFramebuffer;
extern PFNGLINVALIDATESUBFRAMEBUFFERPROC glInvalidateSubFramebuffer;
extern PFNGLTEXSTORAGE2DPROC glTexStorage2D;
extern PFNGLTEXSTORAGE3DPROC glTexStorage3D;
extern PFNGLGETINTERNALFORMATIVPROC glGetInternalformativ;
/* GL_ES_VERSION_3_1 */
extern PFNGLDISPATCHCOMPUTEPROC glDispatchCompute;
extern PFNGLDISPATCHCOMPUTEINDIRECTPROC glDispatchComputeIndirect;
extern PFNGLDRAWARRAYSINDIRECTPROC glDrawArraysIndirect;
extern PFNGLDRAWELEMENTSINDIRECTPROC glDrawElementsIndirect;
extern PFNGLFRAMEBUFFERPARAMETERIPROC glFramebufferParameteri;
extern PFNGLGETFRAMEBUFFERPARAMETERIVPROC glGetFramebufferParameteriv;
extern PFNGLGETPROGRAMINTERFACEIVPROC glGetProgramInterfaceiv;
extern PFNGLGETPROGRAMRESOURCEINDEXPROC glGetProgramResourceIndex;
extern PFNGLGETPROGRAMRESOURCENAMEPROC glGetProgramResourceName;
extern PFNGLGETPROGRAMRESOURCEIVPROC glGetProgramResourceiv;
extern PFNGLGETPROGRAMRESOURCELOCATIONPROC glGetProgramResourceLocation;
extern PFNGLUSEPROGRAMSTAGESPROC glUseProgramStages;
extern PFNGLACTIVESHADERPROGRAMPROC glActiveShaderProgram;
extern PFNGLCREATESHADERPROGRAMVPROC glCreateShaderProgramv;
extern PFNGLBINDPROGRAMPIPELINEPROC glBindProgramPipeline;
extern PFNGLDELETEPROGRAMPIPELINESPROC glDeleteProgramPipelines;
extern PFNGLGENPROGRAMPIPELINESPROC glGenProgramPipelines;
extern PFNGLISPROGRAMPIPELINEPROC glIsProgramPipeline;
extern PFNGLGETPROGRAMPIPELINEIVPROC glGetProgramPipelineiv;
extern PFNGLPROGRAMUNIFORM1IPROC glProgramUniform1i;
extern PFNGLPROGRAMUNIFORM2IPROC glProgramUniform2i;
extern PFNGLPROGRAMUNIFORM3IPROC glProgramUniform3i;
extern PFNGLPROGRAMUNIFORM4IPROC glProgramUniform4i;
extern PFNGLPROGRAMUNIFORM1UIPROC glProgramUniform1ui;
extern PFNGLPROGRAMUNIFORM2UIPROC glProgramUniform2ui;
extern PFNGLPROGRAMUNIFORM3UIPROC glProgramUniform3ui;
extern PFNGLPROGRAMUNIFORM4UIPROC glProgramUniform4ui;
extern PFNGLPROGRAMUNIFORM1FPROC glProgramUniform1f;
extern PFNGLPROGRAMUNIFORM2FPROC glProgramUniform2f;
extern PFNGLPROGRAMUNIFORM3FPROC glProgramUniform3f;
extern PFNGLPROGRAMUNIFORM4FPROC glProgramUniform4f;
extern PFNGLPROGRAMUNIFORM1IVPROC glProgramUniform1iv;
extern PFNGLPROGRAMUNIFORM2IVPROC glProgramUniform2iv;
extern PFNGLPROGRAMUNIFORM3IVPROC glProgramUniform3iv;
extern PFNGLPROGRAMUNIFORM4IVPROC glProgramUniform4iv;
extern PFNGLPROGRAMUNIFORM1UIVPROC glProgramUniform1uiv;
extern PFNGLPROGRAMUNIFORM2UIVPROC glProgramUniform2uiv;
extern PFNGLPROGRAMUNIFORM3UIVPROC glProgramUniform3uiv;
extern PFNGLPROGRAMUNIFORM4UIVPROC glProgramUniform4uiv;
extern PFNGLPROGRAMUNIFORM1FVPROC glProgramUniform1fv;
extern PFNGLPROGRAMUNIFORM2FVPROC glProgramUniform2fv;
extern PFNGLPROGRAMUNIFORM3FVPROC glProgramUniform3fv;
extern PFNGLPROGRAMUNIFORM4FVPROC glProgramUniform4fv;
extern PFNGLPROGRAMUNIFORMMATRIX2FVPROC glProgramUniformMatrix2fv;
extern PFNGLPROGRAMUNIFORMMATRIX3FVPROC glProgramUniformMatrix3fv;
extern PFNGLPROGRAMUNIFORMMATRIX4FVPROC glProgramUniformMatrix4fv;
extern PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC glProgramUniformMatrix2x3fv;
extern PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC glProgramUniformMatrix3x2fv;
extern PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC glProgramUniformMatrix2x4fv;
extern PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC glProgramUniformMatrix4x2fv;
extern PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC glProgramUniformMatrix3x4fv;
extern PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC glProgramUniformMatrix4x3fv;
extern PFNGLVALIDATEPROGRAMPIPELINEPROC glValidateProgramPipeline;
extern PFNGLGETPROGRAMPIPELINEINFOLOGPROC glGetProgramPipelineInfoLog;
extern PFNGLBINDIMAGETEXTUREPROC glBindImageTexture;
extern PFNGLGETBOOLEANI_VPROC glGetBooleani_v; // NOLINT(readability-identifier-naming)
extern PFNGLMEMORYBARRIERPROC glMemoryBarrier;
extern PFNGLMEMORYBARRIERBYREGIONPROC glMemoryBarrierByRegion;
extern PFNGLTEXSTORAGE2DMULTISAMPLEPROC glTexStorage2DMultisample;
extern PFNGLGETMULTISAMPLEFVPROC glGetMultisamplefv;
extern PFNGLSAMPLEMASKIPROC glSampleMaski;
extern PFNGLGETTEXLEVELPARAMETERIVPROC glGetTexLevelParameteriv;
extern PFNGLGETTEXLEVELPARAMETERFVPROC glGetTexLevelParameterfv;
extern PFNGLBINDVERTEXBUFFERPROC glBindVertexBuffer;
extern PFNGLVERTEXATTRIBFORMATPROC glVertexAttribFormat;
extern PFNGLVERTEXATTRIBIFORMATPROC glVertexAttribIFormat;
extern PFNGLVERTEXATTRIBBINDINGPROC glVertexAttribBinding;
extern PFNGLVERTEXBINDINGDIVISORPROC glVertexBindingDivisor;
/* GL_ES_VERSION_3_2 */
extern PFNGLBLENDBARRIERPROC glBlendBarrier;
extern PFNGLCOPYIMAGESUBDATAPROC glCopyImageSubData;
extern PFNGLDEBUGMESSAGECONTROLPROC glDebugMessageControl;
extern PFNGLDEBUGMESSAGEINSERTPROC glDebugMessageInsert;
extern PFNGLDEBUGMESSAGECALLBACKPROC glDebugMessageCallback;
extern PFNGLGETDEBUGMESSAGELOGPROC glGetDebugMessageLog;
extern PFNGLPUSHDEBUGGROUPPROC glPushDebugGroup;
extern PFNGLPOPDEBUGGROUPPROC glPopDebugGroup;
extern PFNGLOBJECTLABELPROC glObjectLabel;
extern PFNGLGETOBJECTLABELPROC glGetObjectLabel;
extern PFNGLOBJECTPTRLABELPROC glObjectPtrLabel;
extern PFNGLGETOBJECTPTRLABELPROC glGetObjectPtrLabel;
extern PFNGLGETPOINTERVPROC glGetPointerv;
extern PFNGLENABLEIPROC glEnablei;
extern PFNGLDISABLEIPROC glDisablei;
extern PFNGLBLENDEQUATIONIPROC glBlendEquationi;
extern PFNGLBLENDEQUATIONSEPARATEIPROC glBlendEquationSeparatei;
extern PFNGLBLENDFUNCIPROC glBlendFunci;
extern PFNGLBLENDFUNCSEPARATEIPROC glBlendFuncSeparatei;
extern PFNGLCOLORMASKIPROC glColorMaski;
extern PFNGLISENABLEDIPROC glIsEnabledi;
extern PFNGLDRAWELEMENTSBASEVERTEXPROC glDrawElementsBaseVertex;
extern PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC glDrawRangeElementsBaseVertex;
extern PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC glDrawElementsInstancedBaseVertex;
extern PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture;
extern PFNGLPRIMITIVEBOUNDINGBOXPROC glPrimitiveBoundingBox;
extern PFNGLGETGRAPHICSRESETSTATUSPROC glGetGraphicsResetStatus;
extern PFNGLREADNPIXELSPROC glReadnPixels;
extern PFNGLGETNUNIFORMFVPROC glGetnUniformfv;
extern PFNGLGETNUNIFORMIVPROC glGetnUniformiv;
extern PFNGLGETNUNIFORMUIVPROC glGetnUniformuiv;
extern PFNGLMINSAMPLESHADINGPROC glMinSampleShading;
extern PFNGLPATCHPARAMETERIPROC glPatchParameteri;
extern PFNGLTEXPARAMETERIIVPROC glTexParameterIiv;
extern PFNGLTEXPARAMETERIUIVPROC glTexParameterIuiv;
extern PFNGLGETTEXPARAMETERIIVPROC glGetTexParameterIiv;
extern PFNGLGETTEXPARAMETERIUIVPROC glGetTexParameterIuiv;
extern PFNGLSAMPLERPARAMETERIIVPROC glSamplerParameterIiv;
extern PFNGLSAMPLERPARAMETERIUIVPROC glSamplerParameterIuiv;
extern PFNGLGETSAMPLERPARAMETERIIVPROC glGetSamplerParameterIiv;
extern PFNGLGETSAMPLERPARAMETERIUIVPROC glGetSamplerParameterIuiv;
extern PFNGLTEXBUFFERPROC glTexBuffer;
extern PFNGLTEXBUFFERRANGEPROC glTexBufferRange;
extern PFNGLTEXSTORAGE3DMULTISAMPLEPROC glTexStorage3DMultisample;
/* GLES3W_GENERATE_GLES_DECLARATION */
/**
* ========================= !DO NOT CHANGE THE ABOVE SECTION MANUALLY! =========================
* The above section is auto-generated from GLES spec by running:
* node tools/gles-wrangler-generator/generate.js
* ========================= !DO NOT CHANGE THE ABOVE SECTION MANUALLY! =========================
*/
using PFNGLES3WLOADPROC = void *(*)(const char *);
void gles3wLoadProcs(PFNGLES3WLOADPROC gles3wLoad);