Files
UnrealEngine/Engine/Source/Runtime/OpenGLDrv/Private/Android/AndroidOpenGLFunctions.h
2025-05-18 13:04:45 +08:00

98 lines
4.6 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "OpenGLPlatform.h"
typedef khronos_stime_nanoseconds_t EGLnsecsANDROID;
typedef GLboolean(GL_APIENTRYP PFNeglPresentationTimeANDROID) (EGLDisplay dpy, EGLSurface surface, EGLnsecsANDROID time);
typedef GLboolean(GL_APIENTRYP PFNeglGetNextFrameIdANDROID) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR* frameId);
typedef GLboolean(GL_APIENTRYP PFNeglGetCompositorTimingANDROID) (EGLDisplay dpy, EGLSurface surface, EGLint numTimestamps, const EGLint* names, EGLnsecsANDROID* values);
typedef GLboolean(GL_APIENTRYP PFNeglGetFrameTimestampsANDROID) (EGLDisplay dpy, EGLSurface surface, EGLuint64KHR frameId, EGLint numTimestamps, const EGLint* timestamps, EGLnsecsANDROID* values);
typedef GLboolean(GL_APIENTRYP PFNeglQueryTimestampSupportedANDROID) (EGLDisplay dpy, EGLSurface surface, EGLint timestamp);
typedef EGLClientBuffer(GL_APIENTRYP PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC) (const struct AHardwareBuffer* buffer);
extern "C"
{
extern PFNEGLGETSYSTEMTIMENVPROC eglGetSystemTimeNV_p;
extern PFNEGLCREATESYNCKHRPROC eglCreateSyncKHR_p;
extern PFNEGLDESTROYSYNCKHRPROC eglDestroySyncKHR_p;
extern PFNEGLCLIENTWAITSYNCKHRPROC eglClientWaitSyncKHR_p;
extern PFNEGLGETSYNCATTRIBKHRPROC eglGetSyncAttribKHR_p;
extern PFNeglPresentationTimeANDROID eglPresentationTimeANDROID_p;
extern PFNeglGetNextFrameIdANDROID eglGetNextFrameIdANDROID_p;
extern PFNeglGetCompositorTimingANDROID eglGetCompositorTimingANDROID_p;
extern PFNeglGetFrameTimestampsANDROID eglGetFrameTimestampsANDROID_p;
extern PFNeglQueryTimestampSupportedANDROID eglQueryTimestampSupportedANDROID_p;
extern PFNeglQueryTimestampSupportedANDROID eglGetCompositorTimingSupportedANDROID_p;
extern PFNeglQueryTimestampSupportedANDROID eglGetFrameTimestampsSupportedANDROID_p;
extern PFNEGLGETNATIVECLIENTBUFFERANDROIDPROC eglGetNativeClientBufferANDROID_p;
extern PFNEGLCREATEIMAGEKHRPROC eglCreateImageKHR_p;
extern PFNEGLDESTROYIMAGEKHRPROC eglDestroyImageKHR_p;
extern PFNGLEGLIMAGETARGETTEXTURE2DOESPROC glEGLImageTargetTexture2DOES_p;
}
namespace GLFuncPointers
{
// GL_QCOM_shader_framebuffer_fetch_noncoherent
extern PFNGLFRAMEBUFFERFETCHBARRIERQCOMPROC glFramebufferFetchBarrierQCOM;
}
// FIXME: include gl32.h
typedef void (GL_APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level);
namespace GLFuncPointers
{
// GL_EXT_multisampled_render_to_texture
extern PFNGLFRAMEBUFFERTEXTURE2DMULTISAMPLEEXTPROC glFramebufferTexture2DMultisampleEXT;
extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC glRenderbufferStorageMultisampleEXT;
// GL_EXT_debug_marker
extern PFNGLPUSHGROUPMARKEREXTPROC glPushGroupMarkerEXT;
extern PFNGLPOPGROUPMARKEREXTPROC glPopGroupMarkerEXT;
// GL_EXT_debug_label
extern PFNGLLABELOBJECTEXTPROC glLabelObjectEXT;
extern PFNGLGETOBJECTLABELEXTPROC glGetObjectLabelEXT;
//GL_EXT_buffer_storage
extern PFNGLBUFFERSTORAGEEXTPROC glBufferStorageEXT;
extern PFNGLDEBUGMESSAGECONTROLKHRPROC glDebugMessageControlKHR;
extern PFNGLDEBUGMESSAGEINSERTKHRPROC glDebugMessageInsertKHR;
extern PFNGLDEBUGMESSAGECALLBACKKHRPROC glDebugMessageCallbackKHR;
extern PFNGLGETDEBUGMESSAGELOGKHRPROC glDebugMessageLogKHR;
extern PFNGLGETPOINTERVKHRPROC glGetPointervKHR;
extern PFNGLPUSHDEBUGGROUPKHRPROC glPushDebugGroupKHR;
extern PFNGLPOPDEBUGGROUPKHRPROC glPopDebugGroupKHR;
extern PFNGLOBJECTLABELKHRPROC glObjectLabelKHR;
extern PFNGLGETOBJECTLABELKHRPROC glGetObjectLabelKHR;
extern PFNGLOBJECTPTRLABELKHRPROC glObjectPtrLabelKHR;
extern PFNGLGETOBJECTPTRLABELKHRPROC glGetObjectPtrLabelKHR;
// GL_EXT_disjoint_timer_query
extern PFNGLQUERYCOUNTEREXTPROC glQueryCounterEXT;
extern PFNGLGETQUERYOBJECTUI64VEXTPROC glGetQueryObjectui64vEXT;
// ES 3.2
extern PFNGLTEXBUFFEREXTPROC glTexBufferEXT;
extern PFNGLTEXBUFFERRANGEEXTPROC glTexBufferRangeEXT;
extern PFNGLCOPYIMAGESUBDATAEXTPROC glCopyImageSubData;
extern PFNGLENABLEIEXTPROC glEnableiEXT;
extern PFNGLDISABLEIEXTPROC glDisableiEXT;
extern PFNGLBLENDEQUATIONIEXTPROC glBlendEquationiEXT;
extern PFNGLBLENDEQUATIONSEPARATEIEXTPROC glBlendEquationSeparateiEXT;
extern PFNGLBLENDFUNCIEXTPROC glBlendFunciEXT;
extern PFNGLBLENDFUNCSEPARATEIEXTPROC glBlendFuncSeparateiEXT;
extern PFNGLCOLORMASKIEXTPROC glColorMaskiEXT;
extern PFNGLFRAMEBUFFERTEXTUREPROC glFramebufferTexture;
// Mobile multi-view
extern PFNGLFRAMEBUFFERTEXTUREMULTIVIEWOVRPROC glFramebufferTextureMultiviewOVR;
extern PFNGLFRAMEBUFFERTEXTUREMULTISAMPLEMULTIVIEWOVRPROC glFramebufferTextureMultisampleMultiviewOVR;
};
using namespace GLFuncPointers;