Path: blob/main_old/src/libEGL/libEGL_autogen.cpp
1693 views
// GENERATED FILE - DO NOT EDIT.1// Generated by generate_entry_points.py using data from egl.xml and egl_angle_ext.xml.2//3// Copyright 2020 The ANGLE Project Authors. All rights reserved.4// Use of this source code is governed by a BSD-style license that can be5// found in the LICENSE file.6//7// libEGL_autogen.cpp: Implements the exported EGL functions.89#include "anglebase/no_destructor.h"10#include "common/system_utils.h"1112#include <memory>1314#if defined(ANGLE_USE_EGL_LOADER)15# include "libEGL/egl_loader_autogen.h"16#else17# include "libGLESv2/entry_points_egl_autogen.h"18# include "libGLESv2/entry_points_egl_ext_autogen.h"19#endif // defined(ANGLE_USE_EGL_LOADER)2021namespace22{23#if defined(ANGLE_USE_EGL_LOADER)24bool gLoaded = false;2526std::unique_ptr<angle::Library> &EntryPointsLib()27{28static angle::base::NoDestructor<std::unique_ptr<angle::Library>> sEntryPointsLib;29return *sEntryPointsLib;30}3132angle::GenericProc KHRONOS_APIENTRY GlobalLoad(const char *symbol)33{34return reinterpret_cast<angle::GenericProc>(EntryPointsLib()->getSymbol(symbol));35}3637void EnsureEGLLoaded()38{39if (gLoaded)40{41return;42}4344EntryPointsLib().reset(45angle::OpenSharedLibrary(ANGLE_GLESV2_LIBRARY_NAME, angle::SearchType::ModuleDir));46angle::LoadEGL_EGL(GlobalLoad);47if (!EGL_GetPlatformDisplay)48{49fprintf(stderr, "Error loading EGL entry points.\n");50}51else52{53gLoaded = true;54}55}56#else57void EnsureEGLLoaded() {}58#endif // defined(ANGLE_USE_EGL_LOADER)59} // anonymous namespace6061extern "C" {6263// EGL 1.064EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy,65const EGLint *attrib_list,66EGLConfig *configs,67EGLint config_size,68EGLint *num_config)69{70EnsureEGLLoaded();71return EGL_ChooseConfig(dpy, attrib_list, configs, config_size, num_config);72}7374EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy,75EGLSurface surface,76EGLNativePixmapType target)77{78EnsureEGLLoaded();79return EGL_CopyBuffers(dpy, surface, target);80}8182EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy,83EGLConfig config,84EGLContext share_context,85const EGLint *attrib_list)86{87EnsureEGLLoaded();88return EGL_CreateContext(dpy, config, share_context, attrib_list);89}9091EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy,92EGLConfig config,93const EGLint *attrib_list)94{95EnsureEGLLoaded();96return EGL_CreatePbufferSurface(dpy, config, attrib_list);97}9899EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy,100EGLConfig config,101EGLNativePixmapType pixmap,102const EGLint *attrib_list)103{104EnsureEGLLoaded();105return EGL_CreatePixmapSurface(dpy, config, pixmap, attrib_list);106}107108EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy,109EGLConfig config,110EGLNativeWindowType win,111const EGLint *attrib_list)112{113EnsureEGLLoaded();114return EGL_CreateWindowSurface(dpy, config, win, attrib_list);115}116117EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx)118{119EnsureEGLLoaded();120return EGL_DestroyContext(dpy, ctx);121}122123EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface)124{125EnsureEGLLoaded();126return EGL_DestroySurface(dpy, surface);127}128129EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy,130EGLConfig config,131EGLint attribute,132EGLint *value)133{134EnsureEGLLoaded();135return EGL_GetConfigAttrib(dpy, config, attribute, value);136}137138EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy,139EGLConfig *configs,140EGLint config_size,141EGLint *num_config)142{143EnsureEGLLoaded();144return EGL_GetConfigs(dpy, configs, config_size, num_config);145}146147EGLDisplay EGLAPIENTRY eglGetCurrentDisplay()148{149EnsureEGLLoaded();150return EGL_GetCurrentDisplay();151}152153EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw)154{155EnsureEGLLoaded();156return EGL_GetCurrentSurface(readdraw);157}158159EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id)160{161EnsureEGLLoaded();162return EGL_GetDisplay(display_id);163}164165EGLint EGLAPIENTRY eglGetError()166{167EnsureEGLLoaded();168return EGL_GetError();169}170171__eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress(const char *procname)172{173EnsureEGLLoaded();174return EGL_GetProcAddress(procname);175}176177EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)178{179EnsureEGLLoaded();180return EGL_Initialize(dpy, major, minor);181}182183EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy,184EGLSurface draw,185EGLSurface read,186EGLContext ctx)187{188EnsureEGLLoaded();189return EGL_MakeCurrent(dpy, draw, read, ctx);190}191192EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy,193EGLContext ctx,194EGLint attribute,195EGLint *value)196{197EnsureEGLLoaded();198return EGL_QueryContext(dpy, ctx, attribute, value);199}200201const char *EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name)202{203EnsureEGLLoaded();204return EGL_QueryString(dpy, name);205}206207EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy,208EGLSurface surface,209EGLint attribute,210EGLint *value)211{212EnsureEGLLoaded();213return EGL_QuerySurface(dpy, surface, attribute, value);214}215216EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)217{218EnsureEGLLoaded();219return EGL_SwapBuffers(dpy, surface);220}221222EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy)223{224EnsureEGLLoaded();225return EGL_Terminate(dpy);226}227228EGLBoolean EGLAPIENTRY eglWaitGL()229{230EnsureEGLLoaded();231return EGL_WaitGL();232}233234EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine)235{236EnsureEGLLoaded();237return EGL_WaitNative(engine);238}239240// EGL 1.1241EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)242{243EnsureEGLLoaded();244return EGL_BindTexImage(dpy, surface, buffer);245}246247EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)248{249EnsureEGLLoaded();250return EGL_ReleaseTexImage(dpy, surface, buffer);251}252253EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy,254EGLSurface surface,255EGLint attribute,256EGLint value)257{258EnsureEGLLoaded();259return EGL_SurfaceAttrib(dpy, surface, attribute, value);260}261262EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval)263{264EnsureEGLLoaded();265return EGL_SwapInterval(dpy, interval);266}267268// EGL 1.2269EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api)270{271EnsureEGLLoaded();272return EGL_BindAPI(api);273}274275EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(EGLDisplay dpy,276EGLenum buftype,277EGLClientBuffer buffer,278EGLConfig config,279const EGLint *attrib_list)280{281EnsureEGLLoaded();282return EGL_CreatePbufferFromClientBuffer(dpy, buftype, buffer, config, attrib_list);283}284285EGLenum EGLAPIENTRY eglQueryAPI()286{287EnsureEGLLoaded();288return EGL_QueryAPI();289}290291EGLBoolean EGLAPIENTRY eglReleaseThread()292{293EnsureEGLLoaded();294return EGL_ReleaseThread();295}296297EGLBoolean EGLAPIENTRY eglWaitClient()298{299EnsureEGLLoaded();300return EGL_WaitClient();301}302303// EGL 1.4304EGLContext EGLAPIENTRY eglGetCurrentContext()305{306EnsureEGLLoaded();307return EGL_GetCurrentContext();308}309310// EGL 1.5311EGLint EGLAPIENTRY eglClientWaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags, EGLTime timeout)312{313EnsureEGLLoaded();314return EGL_ClientWaitSync(dpy, sync, flags, timeout);315}316317EGLImage EGLAPIENTRY eglCreateImage(EGLDisplay dpy,318EGLContext ctx,319EGLenum target,320EGLClientBuffer buffer,321const EGLAttrib *attrib_list)322{323EnsureEGLLoaded();324return EGL_CreateImage(dpy, ctx, target, buffer, attrib_list);325}326327EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurface(EGLDisplay dpy,328EGLConfig config,329void *native_pixmap,330const EGLAttrib *attrib_list)331{332EnsureEGLLoaded();333return EGL_CreatePlatformPixmapSurface(dpy, config, native_pixmap, attrib_list);334}335336EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurface(EGLDisplay dpy,337EGLConfig config,338void *native_window,339const EGLAttrib *attrib_list)340{341EnsureEGLLoaded();342return EGL_CreatePlatformWindowSurface(dpy, config, native_window, attrib_list);343}344345EGLSync EGLAPIENTRY eglCreateSync(EGLDisplay dpy, EGLenum type, const EGLAttrib *attrib_list)346{347EnsureEGLLoaded();348return EGL_CreateSync(dpy, type, attrib_list);349}350351EGLBoolean EGLAPIENTRY eglDestroyImage(EGLDisplay dpy, EGLImage image)352{353EnsureEGLLoaded();354return EGL_DestroyImage(dpy, image);355}356357EGLBoolean EGLAPIENTRY eglDestroySync(EGLDisplay dpy, EGLSync sync)358{359EnsureEGLLoaded();360return EGL_DestroySync(dpy, sync);361}362363EGLDisplay EGLAPIENTRY eglGetPlatformDisplay(EGLenum platform,364void *native_display,365const EGLAttrib *attrib_list)366{367EnsureEGLLoaded();368return EGL_GetPlatformDisplay(platform, native_display, attrib_list);369}370371EGLBoolean EGLAPIENTRY eglGetSyncAttrib(EGLDisplay dpy,372EGLSync sync,373EGLint attribute,374EGLAttrib *value)375{376EnsureEGLLoaded();377return EGL_GetSyncAttrib(dpy, sync, attribute, value);378}379380EGLBoolean EGLAPIENTRY eglWaitSync(EGLDisplay dpy, EGLSync sync, EGLint flags)381{382EnsureEGLLoaded();383return EGL_WaitSync(dpy, sync, flags);384}385386// EGL_ANDROID_blob_cache387void EGLAPIENTRY eglSetBlobCacheFuncsANDROID(EGLDisplay dpy,388EGLSetBlobFuncANDROID set,389EGLGetBlobFuncANDROID get)390{391EnsureEGLLoaded();392return EGL_SetBlobCacheFuncsANDROID(dpy, set, get);393}394395// EGL_ANDROID_create_native_client_buffer396EGLClientBuffer EGLAPIENTRY eglCreateNativeClientBufferANDROID(const EGLint *attrib_list)397{398EnsureEGLLoaded();399return EGL_CreateNativeClientBufferANDROID(attrib_list);400}401402// EGL_ANDROID_get_frame_timestamps403EGLBoolean EGLAPIENTRY eglGetCompositorTimingSupportedANDROID(EGLDisplay dpy,404EGLSurface surface,405EGLint name)406{407EnsureEGLLoaded();408return EGL_GetCompositorTimingSupportedANDROID(dpy, surface, name);409}410411EGLBoolean EGLAPIENTRY eglGetCompositorTimingANDROID(EGLDisplay dpy,412EGLSurface surface,413EGLint numTimestamps,414const EGLint *names,415EGLnsecsANDROID *values)416{417EnsureEGLLoaded();418return EGL_GetCompositorTimingANDROID(dpy, surface, numTimestamps, names, values);419}420421EGLBoolean EGLAPIENTRY eglGetNextFrameIdANDROID(EGLDisplay dpy,422EGLSurface surface,423EGLuint64KHR *frameId)424{425EnsureEGLLoaded();426return EGL_GetNextFrameIdANDROID(dpy, surface, frameId);427}428429EGLBoolean EGLAPIENTRY eglGetFrameTimestampSupportedANDROID(EGLDisplay dpy,430EGLSurface surface,431EGLint timestamp)432{433EnsureEGLLoaded();434return EGL_GetFrameTimestampSupportedANDROID(dpy, surface, timestamp);435}436437EGLBoolean EGLAPIENTRY eglGetFrameTimestampsANDROID(EGLDisplay dpy,438EGLSurface surface,439EGLuint64KHR frameId,440EGLint numTimestamps,441const EGLint *timestamps,442EGLnsecsANDROID *values)443{444EnsureEGLLoaded();445return EGL_GetFrameTimestampsANDROID(dpy, surface, frameId, numTimestamps, timestamps, values);446}447448// EGL_ANDROID_get_native_client_buffer449EGLClientBuffer EGLAPIENTRY eglGetNativeClientBufferANDROID(const struct AHardwareBuffer *buffer)450{451EnsureEGLLoaded();452return EGL_GetNativeClientBufferANDROID(buffer);453}454455// EGL_ANDROID_native_fence_sync456EGLint EGLAPIENTRY eglDupNativeFenceFDANDROID(EGLDisplay dpy, EGLSyncKHR sync)457{458EnsureEGLLoaded();459return EGL_DupNativeFenceFDANDROID(dpy, sync);460}461462// EGL_ANDROID_presentation_time463EGLBoolean EGLAPIENTRY eglPresentationTimeANDROID(EGLDisplay dpy,464EGLSurface surface,465EGLnsecsANDROID time)466{467EnsureEGLLoaded();468return EGL_PresentationTimeANDROID(dpy, surface, time);469}470471// EGL_ANGLE_device_creation472EGLDeviceEXT EGLAPIENTRY eglCreateDeviceANGLE(EGLint device_type,473void *native_device,474const EGLAttrib *attrib_list)475{476EnsureEGLLoaded();477return EGL_CreateDeviceANGLE(device_type, native_device, attrib_list);478}479480EGLBoolean EGLAPIENTRY eglReleaseDeviceANGLE(EGLDeviceEXT device)481{482EnsureEGLLoaded();483return EGL_ReleaseDeviceANGLE(device);484}485486// EGL_ANGLE_feature_control487const char *EGLAPIENTRY eglQueryStringiANGLE(EGLDisplay dpy, EGLint name, EGLint index)488{489EnsureEGLLoaded();490return EGL_QueryStringiANGLE(dpy, name, index);491}492493EGLBoolean EGLAPIENTRY eglQueryDisplayAttribANGLE(EGLDisplay dpy,494EGLint attribute,495EGLAttrib *value)496{497EnsureEGLLoaded();498return EGL_QueryDisplayAttribANGLE(dpy, attribute, value);499}500501// EGL_ANGLE_power_preference502void EGLAPIENTRY eglReleaseHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx)503{504EnsureEGLLoaded();505return EGL_ReleaseHighPowerGPUANGLE(dpy, ctx);506}507508void EGLAPIENTRY eglReacquireHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx)509{510EnsureEGLLoaded();511return EGL_ReacquireHighPowerGPUANGLE(dpy, ctx);512}513514void EGLAPIENTRY eglHandleGPUSwitchANGLE(EGLDisplay dpy)515{516EnsureEGLLoaded();517return EGL_HandleGPUSwitchANGLE(dpy);518}519520// EGL_ANGLE_program_cache_control521EGLint EGLAPIENTRY eglProgramCacheGetAttribANGLE(EGLDisplay dpy, EGLenum attrib)522{523EnsureEGLLoaded();524return EGL_ProgramCacheGetAttribANGLE(dpy, attrib);525}526527void EGLAPIENTRY eglProgramCacheQueryANGLE(EGLDisplay dpy,528EGLint index,529void *key,530EGLint *keysize,531void *binary,532EGLint *binarysize)533{534EnsureEGLLoaded();535return EGL_ProgramCacheQueryANGLE(dpy, index, key, keysize, binary, binarysize);536}537538void EGLAPIENTRY eglProgramCachePopulateANGLE(EGLDisplay dpy,539const void *key,540EGLint keysize,541const void *binary,542EGLint binarysize)543{544EnsureEGLLoaded();545return EGL_ProgramCachePopulateANGLE(dpy, key, keysize, binary, binarysize);546}547548EGLint EGLAPIENTRY eglProgramCacheResizeANGLE(EGLDisplay dpy, EGLint limit, EGLint mode)549{550EnsureEGLLoaded();551return EGL_ProgramCacheResizeANGLE(dpy, limit, mode);552}553554// EGL_ANGLE_query_surface_pointer555EGLBoolean EGLAPIENTRY eglQuerySurfacePointerANGLE(EGLDisplay dpy,556EGLSurface surface,557EGLint attribute,558void **value)559{560EnsureEGLLoaded();561return EGL_QuerySurfacePointerANGLE(dpy, surface, attribute, value);562}563564// EGL_ANGLE_stream_producer_d3d_texture565EGLBoolean EGLAPIENTRY eglCreateStreamProducerD3DTextureANGLE(EGLDisplay dpy,566EGLStreamKHR stream,567const EGLAttrib *attrib_list)568{569EnsureEGLLoaded();570return EGL_CreateStreamProducerD3DTextureANGLE(dpy, stream, attrib_list);571}572573EGLBoolean EGLAPIENTRY eglStreamPostD3DTextureANGLE(EGLDisplay dpy,574EGLStreamKHR stream,575void *texture,576const EGLAttrib *attrib_list)577{578EnsureEGLLoaded();579return EGL_StreamPostD3DTextureANGLE(dpy, stream, texture, attrib_list);580}581582// EGL_ANGLE_swap_with_frame_token583EGLBoolean EGLAPIENTRY eglSwapBuffersWithFrameTokenANGLE(EGLDisplay dpy,584EGLSurface surface,585EGLFrameTokenANGLE frametoken)586{587EnsureEGLLoaded();588return EGL_SwapBuffersWithFrameTokenANGLE(dpy, surface, frametoken);589}590591// EGL_ANGLE_sync_control_rate592EGLBoolean EGLAPIENTRY eglGetMscRateANGLE(EGLDisplay dpy,593EGLSurface surface,594EGLint *numerator,595EGLint *denominator)596{597EnsureEGLLoaded();598return EGL_GetMscRateANGLE(dpy, surface, numerator, denominator);599}600601// EGL_CHROMIUM_sync_control602EGLBoolean EGLAPIENTRY eglGetSyncValuesCHROMIUM(EGLDisplay dpy,603EGLSurface surface,604EGLuint64KHR *ust,605EGLuint64KHR *msc,606EGLuint64KHR *sbc)607{608EnsureEGLLoaded();609return EGL_GetSyncValuesCHROMIUM(dpy, surface, ust, msc, sbc);610}611612// EGL_EXT_device_query613EGLBoolean EGLAPIENTRY eglQueryDeviceAttribEXT(EGLDeviceEXT device,614EGLint attribute,615EGLAttrib *value)616{617EnsureEGLLoaded();618return EGL_QueryDeviceAttribEXT(device, attribute, value);619}620621const char *EGLAPIENTRY eglQueryDeviceStringEXT(EGLDeviceEXT device, EGLint name)622{623EnsureEGLLoaded();624return EGL_QueryDeviceStringEXT(device, name);625}626627EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT(EGLDisplay dpy, EGLint attribute, EGLAttrib *value)628{629EnsureEGLLoaded();630return EGL_QueryDisplayAttribEXT(dpy, attribute, value);631}632633// EGL_EXT_platform_base634EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT(EGLDisplay dpy,635EGLConfig config,636void *native_pixmap,637const EGLint *attrib_list)638{639EnsureEGLLoaded();640return EGL_CreatePlatformPixmapSurfaceEXT(dpy, config, native_pixmap, attrib_list);641}642643EGLSurface EGLAPIENTRY eglCreatePlatformWindowSurfaceEXT(EGLDisplay dpy,644EGLConfig config,645void *native_window,646const EGLint *attrib_list)647{648EnsureEGLLoaded();649return EGL_CreatePlatformWindowSurfaceEXT(dpy, config, native_window, attrib_list);650}651652EGLDisplay EGLAPIENTRY eglGetPlatformDisplayEXT(EGLenum platform,653void *native_display,654const EGLint *attrib_list)655{656EnsureEGLLoaded();657return EGL_GetPlatformDisplayEXT(platform, native_display, attrib_list);658}659660// EGL_KHR_debug661EGLint EGLAPIENTRY eglDebugMessageControlKHR(EGLDEBUGPROCKHR callback, const EGLAttrib *attrib_list)662{663EnsureEGLLoaded();664return EGL_DebugMessageControlKHR(callback, attrib_list);665}666667EGLint EGLAPIENTRY eglLabelObjectKHR(EGLDisplay display,668EGLenum objectType,669EGLObjectKHR object,670EGLLabelKHR label)671{672EnsureEGLLoaded();673return EGL_LabelObjectKHR(display, objectType, object, label);674}675676EGLBoolean EGLAPIENTRY eglQueryDebugKHR(EGLint attribute, EGLAttrib *value)677{678EnsureEGLLoaded();679return EGL_QueryDebugKHR(attribute, value);680}681682// EGL_KHR_fence_sync683EGLint EGLAPIENTRY eglClientWaitSyncKHR(EGLDisplay dpy,684EGLSyncKHR sync,685EGLint flags,686EGLTimeKHR timeout)687{688EnsureEGLLoaded();689return EGL_ClientWaitSyncKHR(dpy, sync, flags, timeout);690}691692EGLSyncKHR EGLAPIENTRY eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list)693{694EnsureEGLLoaded();695return EGL_CreateSyncKHR(dpy, type, attrib_list);696}697698EGLBoolean EGLAPIENTRY eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync)699{700EnsureEGLLoaded();701return EGL_DestroySyncKHR(dpy, sync);702}703704EGLBoolean EGLAPIENTRY eglGetSyncAttribKHR(EGLDisplay dpy,705EGLSyncKHR sync,706EGLint attribute,707EGLint *value)708{709EnsureEGLLoaded();710return EGL_GetSyncAttribKHR(dpy, sync, attribute, value);711}712713// EGL_KHR_image714EGLImageKHR EGLAPIENTRY eglCreateImageKHR(EGLDisplay dpy,715EGLContext ctx,716EGLenum target,717EGLClientBuffer buffer,718const EGLint *attrib_list)719{720EnsureEGLLoaded();721return EGL_CreateImageKHR(dpy, ctx, target, buffer, attrib_list);722}723724EGLBoolean EGLAPIENTRY eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)725{726EnsureEGLLoaded();727return EGL_DestroyImageKHR(dpy, image);728}729730// EGL_KHR_reusable_sync731EGLBoolean EGLAPIENTRY eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode)732{733EnsureEGLLoaded();734return EGL_SignalSyncKHR(dpy, sync, mode);735}736737// EGL_KHR_stream738EGLStreamKHR EGLAPIENTRY eglCreateStreamKHR(EGLDisplay dpy, const EGLint *attrib_list)739{740EnsureEGLLoaded();741return EGL_CreateStreamKHR(dpy, attrib_list);742}743744EGLBoolean EGLAPIENTRY eglDestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream)745{746EnsureEGLLoaded();747return EGL_DestroyStreamKHR(dpy, stream);748}749750EGLBoolean EGLAPIENTRY eglQueryStreamKHR(EGLDisplay dpy,751EGLStreamKHR stream,752EGLenum attribute,753EGLint *value)754{755EnsureEGLLoaded();756return EGL_QueryStreamKHR(dpy, stream, attribute, value);757}758759EGLBoolean EGLAPIENTRY eglQueryStreamu64KHR(EGLDisplay dpy,760EGLStreamKHR stream,761EGLenum attribute,762EGLuint64KHR *value)763{764EnsureEGLLoaded();765return EGL_QueryStreamu64KHR(dpy, stream, attribute, value);766}767768EGLBoolean EGLAPIENTRY eglStreamAttribKHR(EGLDisplay dpy,769EGLStreamKHR stream,770EGLenum attribute,771EGLint value)772{773EnsureEGLLoaded();774return EGL_StreamAttribKHR(dpy, stream, attribute, value);775}776777// EGL_KHR_stream_consumer_gltexture778EGLBoolean EGLAPIENTRY eglStreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR stream)779{780EnsureEGLLoaded();781return EGL_StreamConsumerAcquireKHR(dpy, stream);782}783784EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalKHR(EGLDisplay dpy, EGLStreamKHR stream)785{786EnsureEGLLoaded();787return EGL_StreamConsumerGLTextureExternalKHR(dpy, stream);788}789790EGLBoolean EGLAPIENTRY eglStreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR stream)791{792EnsureEGLLoaded();793return EGL_StreamConsumerReleaseKHR(dpy, stream);794}795796// EGL_KHR_swap_buffers_with_damage797EGLBoolean EGLAPIENTRY eglSwapBuffersWithDamageKHR(EGLDisplay dpy,798EGLSurface surface,799const EGLint *rects,800EGLint n_rects)801{802EnsureEGLLoaded();803return EGL_SwapBuffersWithDamageKHR(dpy, surface, rects, n_rects);804}805806// EGL_KHR_wait_sync807EGLint EGLAPIENTRY eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags)808{809EnsureEGLLoaded();810return EGL_WaitSyncKHR(dpy, sync, flags);811}812813// EGL_NV_post_sub_buffer814EGLBoolean EGLAPIENTRY eglPostSubBufferNV(EGLDisplay dpy,815EGLSurface surface,816EGLint x,817EGLint y,818EGLint width,819EGLint height)820{821EnsureEGLLoaded();822return EGL_PostSubBufferNV(dpy, surface, x, y, width, height);823}824825// EGL_NV_stream_consumer_gltexture_yuv826EGLBoolean EGLAPIENTRY eglStreamConsumerGLTextureExternalAttribsNV(EGLDisplay dpy,827EGLStreamKHR stream,828const EGLAttrib *attrib_list)829{830EnsureEGLLoaded();831return EGL_StreamConsumerGLTextureExternalAttribsNV(dpy, stream, attrib_list);832}833834} // extern "C"835836837