Path: blob/main_old/src/libGLESv2/entry_points_egl_ext_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// entry_points_egl_ext_autogen.cpp:8// Defines the EGL Extension entry points.910#include "libGLESv2/entry_points_egl_ext_autogen.h"1112#include "libANGLE/entry_points_utils.h"13#include "libANGLE/validationEGL_autogen.h"14#include "libGLESv2/egl_ext_stubs_autogen.h"15#include "libGLESv2/global_state.h"1617using namespace egl;1819extern "C" {2021// EGL_ANDROID_blob_cache22void EGLAPIENTRY EGL_SetBlobCacheFuncsANDROID(EGLDisplay dpy,23EGLSetBlobFuncANDROID set,24EGLGetBlobFuncANDROID get)25{26ANGLE_SCOPED_GLOBAL_LOCK();27EGL_EVENT(SetBlobCacheFuncsANDROID,28"dpy = 0x%016" PRIxPTR ", set = 0x%016" PRIxPTR ", get = 0x%016" PRIxPTR "",29(uintptr_t)dpy, (uintptr_t)set, (uintptr_t)get);3031Thread *thread = egl::GetCurrentThread();3233egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);3435ANGLE_EGL_VALIDATE_VOID(thread, SetBlobCacheFuncsANDROID, GetDisplayIfValid(dpyPacked),36dpyPacked, set, get);3738SetBlobCacheFuncsANDROID(thread, dpyPacked, set, get);39}4041// EGL_ANDROID_create_native_client_buffer42EGLClientBuffer EGLAPIENTRY EGL_CreateNativeClientBufferANDROID(const EGLint *attrib_list)43{44ANGLE_SCOPED_GLOBAL_LOCK();45EGL_EVENT(CreateNativeClientBufferANDROID, "attrib_list = 0x%016" PRIxPTR "",46(uintptr_t)attrib_list);4748Thread *thread = egl::GetCurrentThread();4950const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);5152ANGLE_EGL_VALIDATE(thread, CreateNativeClientBufferANDROID, nullptr, EGLClientBuffer,53attrib_listPacked);5455return CreateNativeClientBufferANDROID(thread, attrib_listPacked);56}5758// EGL_ANDROID_get_frame_timestamps59EGLBoolean EGLAPIENTRY EGL_GetCompositorTimingSupportedANDROID(EGLDisplay dpy,60EGLSurface surface,61EGLint name)62{63ANGLE_SCOPED_GLOBAL_LOCK();64EGL_EVENT(GetCompositorTimingSupportedANDROID,65"dpy = 0x%016" PRIxPTR ", surface = 0x%016" PRIxPTR ", name = %d", (uintptr_t)dpy,66(uintptr_t)surface, name);6768Thread *thread = egl::GetCurrentThread();6970egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);71Surface *surfacePacked = PackParam<Surface *>(surface);72CompositorTiming namePacked = PackParam<CompositorTiming>(name);7374ANGLE_EGL_VALIDATE(thread, GetCompositorTimingSupportedANDROID, GetDisplayIfValid(dpyPacked),75EGLBoolean, dpyPacked, surfacePacked, namePacked);7677return GetCompositorTimingSupportedANDROID(thread, dpyPacked, surfacePacked, namePacked);78}7980EGLBoolean EGLAPIENTRY EGL_GetCompositorTimingANDROID(EGLDisplay dpy,81EGLSurface surface,82EGLint numTimestamps,83const EGLint *names,84EGLnsecsANDROID *values)85{86ANGLE_SCOPED_GLOBAL_LOCK();87EGL_EVENT(GetCompositorTimingANDROID,88"dpy = 0x%016" PRIxPTR ", surface = 0x%016" PRIxPTR89", numTimestamps = %d, names = 0x%016" PRIxPTR ", values = 0x%016" PRIxPTR "",90(uintptr_t)dpy, (uintptr_t)surface, numTimestamps, (uintptr_t)names,91(uintptr_t)values);9293Thread *thread = egl::GetCurrentThread();9495egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);96Surface *surfacePacked = PackParam<Surface *>(surface);9798ANGLE_EGL_VALIDATE(thread, GetCompositorTimingANDROID, GetDisplayIfValid(dpyPacked), EGLBoolean,99dpyPacked, surfacePacked, numTimestamps, names, values);100101return GetCompositorTimingANDROID(thread, dpyPacked, surfacePacked, numTimestamps, names,102values);103}104105EGLBoolean EGLAPIENTRY EGL_GetNextFrameIdANDROID(EGLDisplay dpy,106EGLSurface surface,107EGLuint64KHR *frameId)108{109ANGLE_SCOPED_GLOBAL_LOCK();110EGL_EVENT(GetNextFrameIdANDROID,111"dpy = 0x%016" PRIxPTR ", surface = 0x%016" PRIxPTR ", frameId = 0x%016" PRIxPTR "",112(uintptr_t)dpy, (uintptr_t)surface, (uintptr_t)frameId);113114Thread *thread = egl::GetCurrentThread();115116egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);117Surface *surfacePacked = PackParam<Surface *>(surface);118119ANGLE_EGL_VALIDATE(thread, GetNextFrameIdANDROID, GetDisplayIfValid(dpyPacked), EGLBoolean,120dpyPacked, surfacePacked, frameId);121122return GetNextFrameIdANDROID(thread, dpyPacked, surfacePacked, frameId);123}124125EGLBoolean EGLAPIENTRY EGL_GetFrameTimestampSupportedANDROID(EGLDisplay dpy,126EGLSurface surface,127EGLint timestamp)128{129ANGLE_SCOPED_GLOBAL_LOCK();130EGL_EVENT(GetFrameTimestampSupportedANDROID,131"dpy = 0x%016" PRIxPTR ", surface = 0x%016" PRIxPTR ", timestamp = %d",132(uintptr_t)dpy, (uintptr_t)surface, timestamp);133134Thread *thread = egl::GetCurrentThread();135136egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);137Surface *surfacePacked = PackParam<Surface *>(surface);138Timestamp timestampPacked = PackParam<Timestamp>(timestamp);139140ANGLE_EGL_VALIDATE(thread, GetFrameTimestampSupportedANDROID, GetDisplayIfValid(dpyPacked),141EGLBoolean, dpyPacked, surfacePacked, timestampPacked);142143return GetFrameTimestampSupportedANDROID(thread, dpyPacked, surfacePacked, timestampPacked);144}145146EGLBoolean EGLAPIENTRY EGL_GetFrameTimestampsANDROID(EGLDisplay dpy,147EGLSurface surface,148EGLuint64KHR frameId,149EGLint numTimestamps,150const EGLint *timestamps,151EGLnsecsANDROID *values)152{153ANGLE_SCOPED_GLOBAL_LOCK();154EGL_EVENT(GetFrameTimestampsANDROID,155"dpy = 0x%016" PRIxPTR ", surface = 0x%016" PRIxPTR156", frameId = %llu, numTimestamps = %d, timestamps = 0x%016" PRIxPTR157", values = 0x%016" PRIxPTR "",158(uintptr_t)dpy, (uintptr_t)surface, static_cast<unsigned long long>(frameId),159numTimestamps, (uintptr_t)timestamps, (uintptr_t)values);160161Thread *thread = egl::GetCurrentThread();162163egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);164Surface *surfacePacked = PackParam<Surface *>(surface);165166ANGLE_EGL_VALIDATE(thread, GetFrameTimestampsANDROID, GetDisplayIfValid(dpyPacked), EGLBoolean,167dpyPacked, surfacePacked, frameId, numTimestamps, timestamps, values);168169return GetFrameTimestampsANDROID(thread, dpyPacked, surfacePacked, frameId, numTimestamps,170timestamps, values);171}172173// EGL_ANDROID_get_native_client_buffer174EGLClientBuffer EGLAPIENTRY EGL_GetNativeClientBufferANDROID(const struct AHardwareBuffer *buffer)175{176ANGLE_SCOPED_GLOBAL_LOCK();177EGL_EVENT(GetNativeClientBufferANDROID, "buffer = 0x%016" PRIxPTR "", (uintptr_t)buffer);178179Thread *thread = egl::GetCurrentThread();180181ANGLE_EGL_VALIDATE(thread, GetNativeClientBufferANDROID, nullptr, EGLClientBuffer, buffer);182183return GetNativeClientBufferANDROID(thread, buffer);184}185186// EGL_ANDROID_native_fence_sync187EGLint EGLAPIENTRY EGL_DupNativeFenceFDANDROID(EGLDisplay dpy, EGLSyncKHR sync)188{189ANGLE_SCOPED_GLOBAL_LOCK();190EGL_EVENT(DupNativeFenceFDANDROID, "dpy = 0x%016" PRIxPTR ", sync = 0x%016" PRIxPTR "",191(uintptr_t)dpy, (uintptr_t)sync);192193Thread *thread = egl::GetCurrentThread();194195egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);196Sync *syncPacked = PackParam<Sync *>(sync);197198ANGLE_EGL_VALIDATE(thread, DupNativeFenceFDANDROID, GetDisplayIfValid(dpyPacked), EGLint,199dpyPacked, syncPacked);200201return DupNativeFenceFDANDROID(thread, dpyPacked, syncPacked);202}203204// EGL_ANDROID_presentation_time205EGLBoolean EGLAPIENTRY EGL_PresentationTimeANDROID(EGLDisplay dpy,206EGLSurface surface,207EGLnsecsANDROID time)208{209ANGLE_SCOPED_GLOBAL_LOCK();210EGL_EVENT(PresentationTimeANDROID,211"dpy = 0x%016" PRIxPTR ", surface = 0x%016" PRIxPTR ", time = %llu", (uintptr_t)dpy,212(uintptr_t)surface, static_cast<unsigned long long>(time));213214Thread *thread = egl::GetCurrentThread();215216egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);217Surface *surfacePacked = PackParam<Surface *>(surface);218219ANGLE_EGL_VALIDATE(thread, PresentationTimeANDROID, GetDisplayIfValid(dpyPacked), EGLBoolean,220dpyPacked, surfacePacked, time);221222return PresentationTimeANDROID(thread, dpyPacked, surfacePacked, time);223}224225// EGL_ANGLE_device_creation226EGLDeviceEXT EGLAPIENTRY EGL_CreateDeviceANGLE(EGLint device_type,227void *native_device,228const EGLAttrib *attrib_list)229{230ANGLE_SCOPED_GLOBAL_LOCK();231EGL_EVENT(CreateDeviceANGLE,232"device_type = %d, native_device = 0x%016" PRIxPTR ", attrib_list = 0x%016" PRIxPTR233"",234device_type, (uintptr_t)native_device, (uintptr_t)attrib_list);235236Thread *thread = egl::GetCurrentThread();237238ANGLE_EGL_VALIDATE(thread, CreateDeviceANGLE, nullptr, EGLDeviceEXT, device_type, native_device,239attrib_list);240241return CreateDeviceANGLE(thread, device_type, native_device, attrib_list);242}243244EGLBoolean EGLAPIENTRY EGL_ReleaseDeviceANGLE(EGLDeviceEXT device)245{246ANGLE_SCOPED_GLOBAL_LOCK();247EGL_EVENT(ReleaseDeviceANGLE, "device = 0x%016" PRIxPTR "", (uintptr_t)device);248249Thread *thread = egl::GetCurrentThread();250251Device *devicePacked = PackParam<Device *>(device);252253ANGLE_EGL_VALIDATE(thread, ReleaseDeviceANGLE, nullptr, EGLBoolean, devicePacked);254255return ReleaseDeviceANGLE(thread, devicePacked);256}257258// EGL_ANGLE_feature_control259const char *EGLAPIENTRY EGL_QueryStringiANGLE(EGLDisplay dpy, EGLint name, EGLint index)260{261ANGLE_SCOPED_GLOBAL_LOCK();262EGL_EVENT(QueryStringiANGLE, "dpy = 0x%016" PRIxPTR ", name = %d, index = %d", (uintptr_t)dpy,263name, index);264265Thread *thread = egl::GetCurrentThread();266267egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);268269ANGLE_EGL_VALIDATE(thread, QueryStringiANGLE, GetDisplayIfValid(dpyPacked), const char *,270dpyPacked, name, index);271272return QueryStringiANGLE(thread, dpyPacked, name, index);273}274275EGLBoolean EGLAPIENTRY EGL_QueryDisplayAttribANGLE(EGLDisplay dpy,276EGLint attribute,277EGLAttrib *value)278{279ANGLE_SCOPED_GLOBAL_LOCK();280EGL_EVENT(QueryDisplayAttribANGLE,281"dpy = 0x%016" PRIxPTR ", attribute = %d, value = 0x%016" PRIxPTR "", (uintptr_t)dpy,282attribute, (uintptr_t)value);283284Thread *thread = egl::GetCurrentThread();285286egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);287288ANGLE_EGL_VALIDATE(thread, QueryDisplayAttribANGLE, GetDisplayIfValid(dpyPacked), EGLBoolean,289dpyPacked, attribute, value);290291return QueryDisplayAttribANGLE(thread, dpyPacked, attribute, value);292}293294// EGL_ANGLE_power_preference295void EGLAPIENTRY EGL_ReleaseHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx)296{297ANGLE_SCOPED_GLOBAL_LOCK();298EGL_EVENT(ReleaseHighPowerGPUANGLE, "dpy = 0x%016" PRIxPTR ", ctx = 0x%016" PRIxPTR "",299(uintptr_t)dpy, (uintptr_t)ctx);300301Thread *thread = egl::GetCurrentThread();302303egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);304gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);305306ANGLE_EGL_VALIDATE_VOID(thread, ReleaseHighPowerGPUANGLE, GetDisplayIfValid(dpyPacked),307dpyPacked, ctxPacked);308309ReleaseHighPowerGPUANGLE(thread, dpyPacked, ctxPacked);310}311312void EGLAPIENTRY EGL_ReacquireHighPowerGPUANGLE(EGLDisplay dpy, EGLContext ctx)313{314ANGLE_SCOPED_GLOBAL_LOCK();315EGL_EVENT(ReacquireHighPowerGPUANGLE, "dpy = 0x%016" PRIxPTR ", ctx = 0x%016" PRIxPTR "",316(uintptr_t)dpy, (uintptr_t)ctx);317318Thread *thread = egl::GetCurrentThread();319320egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);321gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);322323ANGLE_EGL_VALIDATE_VOID(thread, ReacquireHighPowerGPUANGLE, GetDisplayIfValid(dpyPacked),324dpyPacked, ctxPacked);325326ReacquireHighPowerGPUANGLE(thread, dpyPacked, ctxPacked);327}328329void EGLAPIENTRY EGL_HandleGPUSwitchANGLE(EGLDisplay dpy)330{331ANGLE_SCOPED_GLOBAL_LOCK();332EGL_EVENT(HandleGPUSwitchANGLE, "dpy = 0x%016" PRIxPTR "", (uintptr_t)dpy);333334Thread *thread = egl::GetCurrentThread();335336egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);337338ANGLE_EGL_VALIDATE_VOID(thread, HandleGPUSwitchANGLE, GetDisplayIfValid(dpyPacked), dpyPacked);339340HandleGPUSwitchANGLE(thread, dpyPacked);341}342343// EGL_ANGLE_program_cache_control344EGLint EGLAPIENTRY EGL_ProgramCacheGetAttribANGLE(EGLDisplay dpy, EGLenum attrib)345{346ANGLE_SCOPED_GLOBAL_LOCK();347EGL_EVENT(ProgramCacheGetAttribANGLE, "dpy = 0x%016" PRIxPTR ", attrib = 0x%X", (uintptr_t)dpy,348attrib);349350Thread *thread = egl::GetCurrentThread();351352egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);353354ANGLE_EGL_VALIDATE(thread, ProgramCacheGetAttribANGLE, GetDisplayIfValid(dpyPacked), EGLint,355dpyPacked, attrib);356357return ProgramCacheGetAttribANGLE(thread, dpyPacked, attrib);358}359360void EGLAPIENTRY EGL_ProgramCacheQueryANGLE(EGLDisplay dpy,361EGLint index,362void *key,363EGLint *keysize,364void *binary,365EGLint *binarysize)366{367ANGLE_SCOPED_GLOBAL_LOCK();368EGL_EVENT(ProgramCacheQueryANGLE,369"dpy = 0x%016" PRIxPTR ", index = %d, key = 0x%016" PRIxPTR370", keysize = 0x%016" PRIxPTR ", binary = 0x%016" PRIxPTR371", binarysize = 0x%016" PRIxPTR "",372(uintptr_t)dpy, index, (uintptr_t)key, (uintptr_t)keysize, (uintptr_t)binary,373(uintptr_t)binarysize);374375Thread *thread = egl::GetCurrentThread();376377egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);378379ANGLE_EGL_VALIDATE_VOID(thread, ProgramCacheQueryANGLE, GetDisplayIfValid(dpyPacked), dpyPacked,380index, key, keysize, binary, binarysize);381382ProgramCacheQueryANGLE(thread, dpyPacked, index, key, keysize, binary, binarysize);383}384385void EGLAPIENTRY EGL_ProgramCachePopulateANGLE(EGLDisplay dpy,386const void *key,387EGLint keysize,388const void *binary,389EGLint binarysize)390{391ANGLE_SCOPED_GLOBAL_LOCK();392EGL_EVENT(ProgramCachePopulateANGLE,393"dpy = 0x%016" PRIxPTR ", key = 0x%016" PRIxPTR394", keysize = %d, binary = 0x%016" PRIxPTR ", binarysize = %d",395(uintptr_t)dpy, (uintptr_t)key, keysize, (uintptr_t)binary, binarysize);396397Thread *thread = egl::GetCurrentThread();398399egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);400401ANGLE_EGL_VALIDATE_VOID(thread, ProgramCachePopulateANGLE, GetDisplayIfValid(dpyPacked),402dpyPacked, key, keysize, binary, binarysize);403404ProgramCachePopulateANGLE(thread, dpyPacked, key, keysize, binary, binarysize);405}406407EGLint EGLAPIENTRY EGL_ProgramCacheResizeANGLE(EGLDisplay dpy, EGLint limit, EGLint mode)408{409ANGLE_SCOPED_GLOBAL_LOCK();410EGL_EVENT(ProgramCacheResizeANGLE, "dpy = 0x%016" PRIxPTR ", limit = %d, mode = %d",411(uintptr_t)dpy, limit, mode);412413Thread *thread = egl::GetCurrentThread();414415egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);416417ANGLE_EGL_VALIDATE(thread, ProgramCacheResizeANGLE, GetDisplayIfValid(dpyPacked), EGLint,418dpyPacked, limit, mode);419420return ProgramCacheResizeANGLE(thread, dpyPacked, limit, mode);421}422423// EGL_ANGLE_query_surface_pointer424EGLBoolean EGLAPIENTRY EGL_QuerySurfacePointerANGLE(EGLDisplay dpy,425EGLSurface surface,426EGLint attribute,427void **value)428{429ANGLE_SCOPED_GLOBAL_LOCK();430EGL_EVENT(QuerySurfacePointerANGLE,431"dpy = 0x%016" PRIxPTR ", surface = 0x%016" PRIxPTR432", attribute = %d, value = 0x%016" PRIxPTR "",433(uintptr_t)dpy, (uintptr_t)surface, attribute, (uintptr_t)value);434435Thread *thread = egl::GetCurrentThread();436437egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);438Surface *surfacePacked = PackParam<Surface *>(surface);439440ANGLE_EGL_VALIDATE(thread, QuerySurfacePointerANGLE, GetDisplayIfValid(dpyPacked), EGLBoolean,441dpyPacked, surfacePacked, attribute, value);442443return QuerySurfacePointerANGLE(thread, dpyPacked, surfacePacked, attribute, value);444}445446// EGL_ANGLE_stream_producer_d3d_texture447EGLBoolean EGLAPIENTRY EGL_CreateStreamProducerD3DTextureANGLE(EGLDisplay dpy,448EGLStreamKHR stream,449const EGLAttrib *attrib_list)450{451ANGLE_SCOPED_GLOBAL_LOCK();452EGL_EVENT(CreateStreamProducerD3DTextureANGLE,453"dpy = 0x%016" PRIxPTR ", stream = 0x%016" PRIxPTR ", attrib_list = 0x%016" PRIxPTR454"",455(uintptr_t)dpy, (uintptr_t)stream, (uintptr_t)attrib_list);456457Thread *thread = egl::GetCurrentThread();458459egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);460Stream *streamPacked = PackParam<Stream *>(stream);461const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);462463ANGLE_EGL_VALIDATE(thread, CreateStreamProducerD3DTextureANGLE, GetDisplayIfValid(dpyPacked),464EGLBoolean, dpyPacked, streamPacked, attrib_listPacked);465466return CreateStreamProducerD3DTextureANGLE(thread, dpyPacked, streamPacked, attrib_listPacked);467}468469EGLBoolean EGLAPIENTRY EGL_StreamPostD3DTextureANGLE(EGLDisplay dpy,470EGLStreamKHR stream,471void *texture,472const EGLAttrib *attrib_list)473{474ANGLE_SCOPED_GLOBAL_LOCK();475EGL_EVENT(StreamPostD3DTextureANGLE,476"dpy = 0x%016" PRIxPTR ", stream = 0x%016" PRIxPTR ", texture = 0x%016" PRIxPTR477", attrib_list = 0x%016" PRIxPTR "",478(uintptr_t)dpy, (uintptr_t)stream, (uintptr_t)texture, (uintptr_t)attrib_list);479480Thread *thread = egl::GetCurrentThread();481482egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);483Stream *streamPacked = PackParam<Stream *>(stream);484const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);485486ANGLE_EGL_VALIDATE(thread, StreamPostD3DTextureANGLE, GetDisplayIfValid(dpyPacked), EGLBoolean,487dpyPacked, streamPacked, texture, attrib_listPacked);488489return StreamPostD3DTextureANGLE(thread, dpyPacked, streamPacked, texture, attrib_listPacked);490}491492// EGL_ANGLE_swap_with_frame_token493EGLBoolean EGLAPIENTRY EGL_SwapBuffersWithFrameTokenANGLE(EGLDisplay dpy,494EGLSurface surface,495EGLFrameTokenANGLE frametoken)496{497ANGLE_SCOPED_GLOBAL_LOCK();498EGL_EVENT(SwapBuffersWithFrameTokenANGLE,499"dpy = 0x%016" PRIxPTR ", surface = 0x%016" PRIxPTR ", frametoken = 0x%llX",500(uintptr_t)dpy, (uintptr_t)surface, static_cast<unsigned long long>(frametoken));501502Thread *thread = egl::GetCurrentThread();503504egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);505Surface *surfacePacked = PackParam<Surface *>(surface);506507ANGLE_EGL_VALIDATE(thread, SwapBuffersWithFrameTokenANGLE, GetDisplayIfValid(dpyPacked),508EGLBoolean, dpyPacked, surfacePacked, frametoken);509510return SwapBuffersWithFrameTokenANGLE(thread, dpyPacked, surfacePacked, frametoken);511}512513// EGL_ANGLE_sync_control_rate514EGLBoolean EGLAPIENTRY EGL_GetMscRateANGLE(EGLDisplay dpy,515EGLSurface surface,516EGLint *numerator,517EGLint *denominator)518{519ANGLE_SCOPED_GLOBAL_LOCK();520EGL_EVENT(GetMscRateANGLE,521"dpy = 0x%016" PRIxPTR ", surface = 0x%016" PRIxPTR ", numerator = 0x%016" PRIxPTR522", denominator = 0x%016" PRIxPTR "",523(uintptr_t)dpy, (uintptr_t)surface, (uintptr_t)numerator, (uintptr_t)denominator);524525Thread *thread = egl::GetCurrentThread();526527egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);528Surface *surfacePacked = PackParam<Surface *>(surface);529530ANGLE_EGL_VALIDATE(thread, GetMscRateANGLE, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,531surfacePacked, numerator, denominator);532533return GetMscRateANGLE(thread, dpyPacked, surfacePacked, numerator, denominator);534}535536// EGL_CHROMIUM_sync_control537EGLBoolean EGLAPIENTRY EGL_GetSyncValuesCHROMIUM(EGLDisplay dpy,538EGLSurface surface,539EGLuint64KHR *ust,540EGLuint64KHR *msc,541EGLuint64KHR *sbc)542{543ANGLE_SCOPED_GLOBAL_LOCK();544EGL_EVENT(GetSyncValuesCHROMIUM,545"dpy = 0x%016" PRIxPTR ", surface = 0x%016" PRIxPTR ", ust = 0x%016" PRIxPTR546", msc = 0x%016" PRIxPTR ", sbc = 0x%016" PRIxPTR "",547(uintptr_t)dpy, (uintptr_t)surface, (uintptr_t)ust, (uintptr_t)msc, (uintptr_t)sbc);548549Thread *thread = egl::GetCurrentThread();550551egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);552Surface *surfacePacked = PackParam<Surface *>(surface);553554ANGLE_EGL_VALIDATE(thread, GetSyncValuesCHROMIUM, GetDisplayIfValid(dpyPacked), EGLBoolean,555dpyPacked, surfacePacked, ust, msc, sbc);556557return GetSyncValuesCHROMIUM(thread, dpyPacked, surfacePacked, ust, msc, sbc);558}559560// EGL_EXT_device_query561EGLBoolean EGLAPIENTRY EGL_QueryDeviceAttribEXT(EGLDeviceEXT device,562EGLint attribute,563EGLAttrib *value)564{565ANGLE_SCOPED_GLOBAL_LOCK();566EGL_EVENT(QueryDeviceAttribEXT,567"device = 0x%016" PRIxPTR ", attribute = %d, value = 0x%016" PRIxPTR "",568(uintptr_t)device, attribute, (uintptr_t)value);569570Thread *thread = egl::GetCurrentThread();571572Device *devicePacked = PackParam<Device *>(device);573574ANGLE_EGL_VALIDATE(thread, QueryDeviceAttribEXT, nullptr, EGLBoolean, devicePacked, attribute,575value);576577return QueryDeviceAttribEXT(thread, devicePacked, attribute, value);578}579580const char *EGLAPIENTRY EGL_QueryDeviceStringEXT(EGLDeviceEXT device, EGLint name)581{582ANGLE_SCOPED_GLOBAL_LOCK();583EGL_EVENT(QueryDeviceStringEXT, "device = 0x%016" PRIxPTR ", name = %d", (uintptr_t)device,584name);585586Thread *thread = egl::GetCurrentThread();587588Device *devicePacked = PackParam<Device *>(device);589590ANGLE_EGL_VALIDATE(thread, QueryDeviceStringEXT, nullptr, const char *, devicePacked, name);591592return QueryDeviceStringEXT(thread, devicePacked, name);593}594595EGLBoolean EGLAPIENTRY EGL_QueryDisplayAttribEXT(EGLDisplay dpy, EGLint attribute, EGLAttrib *value)596{597ANGLE_SCOPED_GLOBAL_LOCK();598EGL_EVENT(QueryDisplayAttribEXT,599"dpy = 0x%016" PRIxPTR ", attribute = %d, value = 0x%016" PRIxPTR "", (uintptr_t)dpy,600attribute, (uintptr_t)value);601602Thread *thread = egl::GetCurrentThread();603604egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);605606ANGLE_EGL_VALIDATE(thread, QueryDisplayAttribEXT, GetDisplayIfValid(dpyPacked), EGLBoolean,607dpyPacked, attribute, value);608609return QueryDisplayAttribEXT(thread, dpyPacked, attribute, value);610}611612// EGL_EXT_platform_base613EGLSurface EGLAPIENTRY EGL_CreatePlatformPixmapSurfaceEXT(EGLDisplay dpy,614EGLConfig config,615void *native_pixmap,616const EGLint *attrib_list)617{618ANGLE_SCOPED_GLOBAL_LOCK();619EGL_EVENT(CreatePlatformPixmapSurfaceEXT,620"dpy = 0x%016" PRIxPTR ", config = 0x%016" PRIxPTR ", native_pixmap = 0x%016" PRIxPTR621", attrib_list = 0x%016" PRIxPTR "",622(uintptr_t)dpy, (uintptr_t)config, (uintptr_t)native_pixmap, (uintptr_t)attrib_list);623624Thread *thread = egl::GetCurrentThread();625626egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);627Config *configPacked = PackParam<Config *>(config);628const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);629630ANGLE_EGL_VALIDATE(thread, CreatePlatformPixmapSurfaceEXT, GetDisplayIfValid(dpyPacked),631EGLSurface, dpyPacked, configPacked, native_pixmap, attrib_listPacked);632633return CreatePlatformPixmapSurfaceEXT(thread, dpyPacked, configPacked, native_pixmap,634attrib_listPacked);635}636637EGLSurface EGLAPIENTRY EGL_CreatePlatformWindowSurfaceEXT(EGLDisplay dpy,638EGLConfig config,639void *native_window,640const EGLint *attrib_list)641{642ANGLE_SCOPED_GLOBAL_LOCK();643EGL_EVENT(CreatePlatformWindowSurfaceEXT,644"dpy = 0x%016" PRIxPTR ", config = 0x%016" PRIxPTR ", native_window = 0x%016" PRIxPTR645", attrib_list = 0x%016" PRIxPTR "",646(uintptr_t)dpy, (uintptr_t)config, (uintptr_t)native_window, (uintptr_t)attrib_list);647648Thread *thread = egl::GetCurrentThread();649650egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);651Config *configPacked = PackParam<Config *>(config);652const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);653654ANGLE_EGL_VALIDATE(thread, CreatePlatformWindowSurfaceEXT, GetDisplayIfValid(dpyPacked),655EGLSurface, dpyPacked, configPacked, native_window, attrib_listPacked);656657return CreatePlatformWindowSurfaceEXT(thread, dpyPacked, configPacked, native_window,658attrib_listPacked);659}660661EGLDisplay EGLAPIENTRY EGL_GetPlatformDisplayEXT(EGLenum platform,662void *native_display,663const EGLint *attrib_list)664{665ANGLE_SCOPED_GLOBAL_LOCK();666EGL_EVENT(GetPlatformDisplayEXT,667"platform = 0x%X, native_display = 0x%016" PRIxPTR ", attrib_list = 0x%016" PRIxPTR668"",669platform, (uintptr_t)native_display, (uintptr_t)attrib_list);670671Thread *thread = egl::GetCurrentThread();672673const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);674675ANGLE_EGL_VALIDATE(thread, GetPlatformDisplayEXT, nullptr, EGLDisplay, platform, native_display,676attrib_listPacked);677678return GetPlatformDisplayEXT(thread, platform, native_display, attrib_listPacked);679}680681// EGL_KHR_debug682EGLint EGLAPIENTRY EGL_DebugMessageControlKHR(EGLDEBUGPROCKHR callback,683const EGLAttrib *attrib_list)684{685ANGLE_SCOPED_GLOBAL_LOCK();686EGL_EVENT(DebugMessageControlKHR,687"callback = 0x%016" PRIxPTR ", attrib_list = 0x%016" PRIxPTR "", (uintptr_t)callback,688(uintptr_t)attrib_list);689690Thread *thread = egl::GetCurrentThread();691692const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);693694ANGLE_EGL_VALIDATE(thread, DebugMessageControlKHR, nullptr, EGLint, callback,695attrib_listPacked);696697return DebugMessageControlKHR(thread, callback, attrib_listPacked);698}699700EGLint EGLAPIENTRY EGL_LabelObjectKHR(EGLDisplay display,701EGLenum objectType,702EGLObjectKHR object,703EGLLabelKHR label)704{705ANGLE_SCOPED_GLOBAL_LOCK();706EGL_EVENT(LabelObjectKHR,707"display = 0x%016" PRIxPTR ", objectType = 0x%X, object = 0x%016" PRIxPTR708", label = 0x%016" PRIxPTR "",709(uintptr_t)display, objectType, (uintptr_t)object, (uintptr_t)label);710711Thread *thread = egl::GetCurrentThread();712713egl::Display *displayPacked = PackParam<egl::Display *>(display);714ObjectType objectTypePacked = PackParam<ObjectType>(objectType);715716ANGLE_EGL_VALIDATE(thread, LabelObjectKHR, GetDisplayIfValid(displayPacked), EGLint,717displayPacked, objectTypePacked, object, label);718719return LabelObjectKHR(thread, displayPacked, objectTypePacked, object, label);720}721722EGLBoolean EGLAPIENTRY EGL_QueryDebugKHR(EGLint attribute, EGLAttrib *value)723{724ANGLE_SCOPED_GLOBAL_LOCK();725EGL_EVENT(QueryDebugKHR, "attribute = %d, value = 0x%016" PRIxPTR "", attribute,726(uintptr_t)value);727728Thread *thread = egl::GetCurrentThread();729730ANGLE_EGL_VALIDATE(thread, QueryDebugKHR, nullptr, EGLBoolean, attribute, value);731732return QueryDebugKHR(thread, attribute, value);733}734735// EGL_KHR_fence_sync736EGLint EGLAPIENTRY EGL_ClientWaitSyncKHR(EGLDisplay dpy,737EGLSyncKHR sync,738EGLint flags,739EGLTimeKHR timeout)740{741ANGLE_SCOPED_GLOBAL_LOCK();742EGL_EVENT(ClientWaitSyncKHR,743"dpy = 0x%016" PRIxPTR ", sync = 0x%016" PRIxPTR ", flags = %d, timeout = %llu",744(uintptr_t)dpy, (uintptr_t)sync, flags, static_cast<unsigned long long>(timeout));745746Thread *thread = egl::GetCurrentThread();747748egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);749Sync *syncPacked = PackParam<Sync *>(sync);750751ANGLE_EGL_VALIDATE(thread, ClientWaitSyncKHR, GetDisplayIfValid(dpyPacked), EGLint, dpyPacked,752syncPacked, flags, timeout);753754return ClientWaitSyncKHR(thread, dpyPacked, syncPacked, flags, timeout);755}756757EGLSyncKHR EGLAPIENTRY EGL_CreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list)758{759ANGLE_SCOPED_GLOBAL_LOCK();760EGL_EVENT(CreateSyncKHR,761"dpy = 0x%016" PRIxPTR ", type = 0x%X, attrib_list = 0x%016" PRIxPTR "",762(uintptr_t)dpy, type, (uintptr_t)attrib_list);763764Thread *thread = egl::GetCurrentThread();765766egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);767const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);768769ANGLE_EGL_VALIDATE(thread, CreateSyncKHR, GetDisplayIfValid(dpyPacked), EGLSyncKHR, dpyPacked,770type, attrib_listPacked);771772return CreateSyncKHR(thread, dpyPacked, type, attrib_listPacked);773}774775EGLBoolean EGLAPIENTRY EGL_DestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync)776{777ANGLE_SCOPED_GLOBAL_LOCK();778EGL_EVENT(DestroySyncKHR, "dpy = 0x%016" PRIxPTR ", sync = 0x%016" PRIxPTR "", (uintptr_t)dpy,779(uintptr_t)sync);780781Thread *thread = egl::GetCurrentThread();782783egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);784Sync *syncPacked = PackParam<Sync *>(sync);785786ANGLE_EGL_VALIDATE(thread, DestroySyncKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,787syncPacked);788789return DestroySyncKHR(thread, dpyPacked, syncPacked);790}791792EGLBoolean EGLAPIENTRY EGL_GetSyncAttribKHR(EGLDisplay dpy,793EGLSyncKHR sync,794EGLint attribute,795EGLint *value)796{797ANGLE_SCOPED_GLOBAL_LOCK();798EGL_EVENT(GetSyncAttribKHR,799"dpy = 0x%016" PRIxPTR ", sync = 0x%016" PRIxPTR800", attribute = %d, value = 0x%016" PRIxPTR "",801(uintptr_t)dpy, (uintptr_t)sync, attribute, (uintptr_t)value);802803Thread *thread = egl::GetCurrentThread();804805egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);806Sync *syncPacked = PackParam<Sync *>(sync);807808ANGLE_EGL_VALIDATE(thread, GetSyncAttribKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,809dpyPacked, syncPacked, attribute, value);810811return GetSyncAttribKHR(thread, dpyPacked, syncPacked, attribute, value);812}813814// EGL_KHR_image815EGLImageKHR EGLAPIENTRY EGL_CreateImageKHR(EGLDisplay dpy,816EGLContext ctx,817EGLenum target,818EGLClientBuffer buffer,819const EGLint *attrib_list)820{821ANGLE_SCOPED_GLOBAL_LOCK();822EGL_EVENT(CreateImageKHR,823"dpy = 0x%016" PRIxPTR ", ctx = 0x%016" PRIxPTR824", target = 0x%X, buffer = 0x%016" PRIxPTR ", attrib_list = 0x%016" PRIxPTR "",825(uintptr_t)dpy, (uintptr_t)ctx, target, (uintptr_t)buffer, (uintptr_t)attrib_list);826827Thread *thread = egl::GetCurrentThread();828829egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);830gl::Context *ctxPacked = PackParam<gl::Context *>(ctx);831const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);832833ANGLE_EGL_VALIDATE(thread, CreateImageKHR, GetDisplayIfValid(dpyPacked), EGLImageKHR, dpyPacked,834ctxPacked, target, buffer, attrib_listPacked);835836return CreateImageKHR(thread, dpyPacked, ctxPacked, target, buffer, attrib_listPacked);837}838839EGLBoolean EGLAPIENTRY EGL_DestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)840{841ANGLE_SCOPED_GLOBAL_LOCK();842EGL_EVENT(DestroyImageKHR, "dpy = 0x%016" PRIxPTR ", image = 0x%016" PRIxPTR "", (uintptr_t)dpy,843(uintptr_t)image);844845Thread *thread = egl::GetCurrentThread();846847egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);848Image *imagePacked = PackParam<Image *>(image);849850ANGLE_EGL_VALIDATE(thread, DestroyImageKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,851imagePacked);852853return DestroyImageKHR(thread, dpyPacked, imagePacked);854}855856// EGL_KHR_reusable_sync857EGLBoolean EGLAPIENTRY EGL_SignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode)858{859ANGLE_SCOPED_GLOBAL_LOCK();860EGL_EVENT(SignalSyncKHR, "dpy = 0x%016" PRIxPTR ", sync = 0x%016" PRIxPTR ", mode = 0x%X",861(uintptr_t)dpy, (uintptr_t)sync, mode);862863Thread *thread = egl::GetCurrentThread();864865egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);866Sync *syncPacked = PackParam<Sync *>(sync);867868ANGLE_EGL_VALIDATE(thread, SignalSyncKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,869syncPacked, mode);870871return SignalSyncKHR(thread, dpyPacked, syncPacked, mode);872}873874// ClientWaitSyncKHR is already defined.875876// CreateSyncKHR is already defined.877878// DestroySyncKHR is already defined.879880// GetSyncAttribKHR is already defined.881882// EGL_KHR_stream883EGLStreamKHR EGLAPIENTRY EGL_CreateStreamKHR(EGLDisplay dpy, const EGLint *attrib_list)884{885ANGLE_SCOPED_GLOBAL_LOCK();886EGL_EVENT(CreateStreamKHR, "dpy = 0x%016" PRIxPTR ", attrib_list = 0x%016" PRIxPTR "",887(uintptr_t)dpy, (uintptr_t)attrib_list);888889Thread *thread = egl::GetCurrentThread();890891egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);892const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);893894ANGLE_EGL_VALIDATE(thread, CreateStreamKHR, GetDisplayIfValid(dpyPacked), EGLStreamKHR,895dpyPacked, attrib_listPacked);896897return CreateStreamKHR(thread, dpyPacked, attrib_listPacked);898}899900EGLBoolean EGLAPIENTRY EGL_DestroyStreamKHR(EGLDisplay dpy, EGLStreamKHR stream)901{902ANGLE_SCOPED_GLOBAL_LOCK();903EGL_EVENT(DestroyStreamKHR, "dpy = 0x%016" PRIxPTR ", stream = 0x%016" PRIxPTR "",904(uintptr_t)dpy, (uintptr_t)stream);905906Thread *thread = egl::GetCurrentThread();907908egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);909Stream *streamPacked = PackParam<Stream *>(stream);910911ANGLE_EGL_VALIDATE(thread, DestroyStreamKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,912dpyPacked, streamPacked);913914return DestroyStreamKHR(thread, dpyPacked, streamPacked);915}916917EGLBoolean EGLAPIENTRY EGL_QueryStreamKHR(EGLDisplay dpy,918EGLStreamKHR stream,919EGLenum attribute,920EGLint *value)921{922ANGLE_SCOPED_GLOBAL_LOCK();923EGL_EVENT(QueryStreamKHR,924"dpy = 0x%016" PRIxPTR ", stream = 0x%016" PRIxPTR925", attribute = 0x%X, value = 0x%016" PRIxPTR "",926(uintptr_t)dpy, (uintptr_t)stream, attribute, (uintptr_t)value);927928Thread *thread = egl::GetCurrentThread();929930egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);931Stream *streamPacked = PackParam<Stream *>(stream);932933ANGLE_EGL_VALIDATE(thread, QueryStreamKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,934streamPacked, attribute, value);935936return QueryStreamKHR(thread, dpyPacked, streamPacked, attribute, value);937}938939EGLBoolean EGLAPIENTRY EGL_QueryStreamu64KHR(EGLDisplay dpy,940EGLStreamKHR stream,941EGLenum attribute,942EGLuint64KHR *value)943{944ANGLE_SCOPED_GLOBAL_LOCK();945EGL_EVENT(QueryStreamu64KHR,946"dpy = 0x%016" PRIxPTR ", stream = 0x%016" PRIxPTR947", attribute = 0x%X, value = 0x%016" PRIxPTR "",948(uintptr_t)dpy, (uintptr_t)stream, attribute, (uintptr_t)value);949950Thread *thread = egl::GetCurrentThread();951952egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);953Stream *streamPacked = PackParam<Stream *>(stream);954955ANGLE_EGL_VALIDATE(thread, QueryStreamu64KHR, GetDisplayIfValid(dpyPacked), EGLBoolean,956dpyPacked, streamPacked, attribute, value);957958return QueryStreamu64KHR(thread, dpyPacked, streamPacked, attribute, value);959}960961EGLBoolean EGLAPIENTRY EGL_StreamAttribKHR(EGLDisplay dpy,962EGLStreamKHR stream,963EGLenum attribute,964EGLint value)965{966ANGLE_SCOPED_GLOBAL_LOCK();967EGL_EVENT(StreamAttribKHR,968"dpy = 0x%016" PRIxPTR ", stream = 0x%016" PRIxPTR ", attribute = 0x%X, value = %d",969(uintptr_t)dpy, (uintptr_t)stream, attribute, value);970971Thread *thread = egl::GetCurrentThread();972973egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);974Stream *streamPacked = PackParam<Stream *>(stream);975976ANGLE_EGL_VALIDATE(thread, StreamAttribKHR, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,977streamPacked, attribute, value);978979return StreamAttribKHR(thread, dpyPacked, streamPacked, attribute, value);980}981982// EGL_KHR_stream_consumer_gltexture983EGLBoolean EGLAPIENTRY EGL_StreamConsumerAcquireKHR(EGLDisplay dpy, EGLStreamKHR stream)984{985ANGLE_SCOPED_GLOBAL_LOCK();986EGL_EVENT(StreamConsumerAcquireKHR, "dpy = 0x%016" PRIxPTR ", stream = 0x%016" PRIxPTR "",987(uintptr_t)dpy, (uintptr_t)stream);988989Thread *thread = egl::GetCurrentThread();990991egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);992Stream *streamPacked = PackParam<Stream *>(stream);993994ANGLE_EGL_VALIDATE(thread, StreamConsumerAcquireKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,995dpyPacked, streamPacked);996997return StreamConsumerAcquireKHR(thread, dpyPacked, streamPacked);998}9991000EGLBoolean EGLAPIENTRY EGL_StreamConsumerGLTextureExternalKHR(EGLDisplay dpy, EGLStreamKHR stream)1001{1002ANGLE_SCOPED_GLOBAL_LOCK();1003EGL_EVENT(StreamConsumerGLTextureExternalKHR,1004"dpy = 0x%016" PRIxPTR ", stream = 0x%016" PRIxPTR "", (uintptr_t)dpy,1005(uintptr_t)stream);10061007Thread *thread = egl::GetCurrentThread();10081009egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);1010Stream *streamPacked = PackParam<Stream *>(stream);10111012ANGLE_EGL_VALIDATE(thread, StreamConsumerGLTextureExternalKHR, GetDisplayIfValid(dpyPacked),1013EGLBoolean, dpyPacked, streamPacked);10141015return StreamConsumerGLTextureExternalKHR(thread, dpyPacked, streamPacked);1016}10171018EGLBoolean EGLAPIENTRY EGL_StreamConsumerReleaseKHR(EGLDisplay dpy, EGLStreamKHR stream)1019{1020ANGLE_SCOPED_GLOBAL_LOCK();1021EGL_EVENT(StreamConsumerReleaseKHR, "dpy = 0x%016" PRIxPTR ", stream = 0x%016" PRIxPTR "",1022(uintptr_t)dpy, (uintptr_t)stream);10231024Thread *thread = egl::GetCurrentThread();10251026egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);1027Stream *streamPacked = PackParam<Stream *>(stream);10281029ANGLE_EGL_VALIDATE(thread, StreamConsumerReleaseKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,1030dpyPacked, streamPacked);10311032return StreamConsumerReleaseKHR(thread, dpyPacked, streamPacked);1033}10341035// EGL_KHR_swap_buffers_with_damage1036EGLBoolean EGLAPIENTRY EGL_SwapBuffersWithDamageKHR(EGLDisplay dpy,1037EGLSurface surface,1038const EGLint *rects,1039EGLint n_rects)1040{1041ANGLE_SCOPED_GLOBAL_LOCK();1042EGL_EVENT(SwapBuffersWithDamageKHR,1043"dpy = 0x%016" PRIxPTR ", surface = 0x%016" PRIxPTR ", rects = 0x%016" PRIxPTR1044", n_rects = %d",1045(uintptr_t)dpy, (uintptr_t)surface, (uintptr_t)rects, n_rects);10461047Thread *thread = egl::GetCurrentThread();10481049egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);1050Surface *surfacePacked = PackParam<Surface *>(surface);10511052ANGLE_EGL_VALIDATE(thread, SwapBuffersWithDamageKHR, GetDisplayIfValid(dpyPacked), EGLBoolean,1053dpyPacked, surfacePacked, rects, n_rects);10541055return SwapBuffersWithDamageKHR(thread, dpyPacked, surfacePacked, rects, n_rects);1056}10571058// EGL_KHR_wait_sync1059EGLint EGLAPIENTRY EGL_WaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags)1060{1061ANGLE_SCOPED_GLOBAL_LOCK();1062EGL_EVENT(WaitSyncKHR, "dpy = 0x%016" PRIxPTR ", sync = 0x%016" PRIxPTR ", flags = %d",1063(uintptr_t)dpy, (uintptr_t)sync, flags);10641065Thread *thread = egl::GetCurrentThread();10661067egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);1068Sync *syncPacked = PackParam<Sync *>(sync);10691070ANGLE_EGL_VALIDATE(thread, WaitSyncKHR, GetDisplayIfValid(dpyPacked), EGLint, dpyPacked,1071syncPacked, flags);10721073return WaitSyncKHR(thread, dpyPacked, syncPacked, flags);1074}10751076// EGL_NV_post_sub_buffer1077EGLBoolean EGLAPIENTRY EGL_PostSubBufferNV(EGLDisplay dpy,1078EGLSurface surface,1079EGLint x,1080EGLint y,1081EGLint width,1082EGLint height)1083{1084ANGLE_SCOPED_GLOBAL_LOCK();1085EGL_EVENT(PostSubBufferNV,1086"dpy = 0x%016" PRIxPTR ", surface = 0x%016" PRIxPTR1087", x = %d, y = %d, width = %d, height = %d",1088(uintptr_t)dpy, (uintptr_t)surface, x, y, width, height);10891090Thread *thread = egl::GetCurrentThread();10911092egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);1093Surface *surfacePacked = PackParam<Surface *>(surface);10941095ANGLE_EGL_VALIDATE(thread, PostSubBufferNV, GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked,1096surfacePacked, x, y, width, height);10971098return PostSubBufferNV(thread, dpyPacked, surfacePacked, x, y, width, height);1099}11001101// EGL_NV_stream_consumer_gltexture_yuv1102EGLBoolean EGLAPIENTRY EGL_StreamConsumerGLTextureExternalAttribsNV(EGLDisplay dpy,1103EGLStreamKHR stream,1104const EGLAttrib *attrib_list)1105{1106ANGLE_SCOPED_GLOBAL_LOCK();1107EGL_EVENT(StreamConsumerGLTextureExternalAttribsNV,1108"dpy = 0x%016" PRIxPTR ", stream = 0x%016" PRIxPTR ", attrib_list = 0x%016" PRIxPTR1109"",1110(uintptr_t)dpy, (uintptr_t)stream, (uintptr_t)attrib_list);11111112Thread *thread = egl::GetCurrentThread();11131114egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);1115Stream *streamPacked = PackParam<Stream *>(stream);1116const AttributeMap &attrib_listPacked = PackParam<const AttributeMap &>(attrib_list);11171118ANGLE_EGL_VALIDATE(thread, StreamConsumerGLTextureExternalAttribsNV,1119GetDisplayIfValid(dpyPacked), EGLBoolean, dpyPacked, streamPacked,1120attrib_listPacked);11211122return StreamConsumerGLTextureExternalAttribsNV(thread, dpyPacked, streamPacked,1123attrib_listPacked);1124}11251126} // extern "C"112711281129