UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
AndroidOpenGL.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 AndroidOpenGL.h: Public OpenGL ES definitions for Android-specific functionality
5=============================================================================*/
6#pragma once
7
8#include "OpenGLThirdParty.h"
10
11#include "AndroidEGL.h"
12#include "OpenGLES.h"
13
14struct FAndroidOpenGL : public FOpenGLES
15{
17
19
21 {
23 {
25 }
26 }
27
29 {
30 return GUseThreadedRendering ? glFenceSync( Condition, Flags ) : 0;
31 }
32
34 {
36 {
37 return (glIsSync( Sync ) == GL_TRUE) ? true : false;
38 }
39 return true;
40 }
41
43 {
45 {
47 switch (Result)
48 {
49 case GL_ALREADY_SIGNALED: return FR_AlreadySignaled;
50 case GL_TIMEOUT_EXPIRED: return FR_TimeoutExpired;
51 case GL_CONDITION_SATISFIED: return FR_ConditionSatisfied;
52 }
53 return FR_WaitFailed;
54 }
55 return FR_ConditionSatisfied;
56 }
57
58 // Disable all queries except occlusion
59 // Query is a limited resource on Android and we better spent them all on occlusion
60 static FORCEINLINE bool SupportsTimestampQueries() { return false; }
61 static FORCEINLINE bool SupportsDisjointTimeQueries() { return false; }
62
70
72
74
79 static FORCEINLINE GLint GetFirstPixelUAVUnit() { return 0; }
82
84 {
85 if (glFramebufferFetchBarrierQCOM)
86 {
87 glFramebufferFetchBarrierQCOM();
88 }
89 }
90
91 static void ProcessExtensions(const FString& ExtensionsString);
92 static void SetupDefaultGLContextState(const FString& ExtensionsString);
93
95 static void EnableAdrenoTilingModeHint(bool bEnable);
97
101
105
107 {
108 return GLMajorVerion;
109 }
110
112 {
113 return GLMinorVersion;
114 }
115
118
121
122 /* interface to remote GLES program compiler */
127};
128
GLsync UGLsync
Definition AndroidOpenGLPlatform.h:11
khronos_uint64_t GLuint64
Definition AndroidOpenGLPlatform.h:14
#define FORCEINLINE
Definition AndroidPlatform.h:140
#define check(expr)
Definition AssertionMacros.h:314
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
RENDERCORE_API bool GUseThreadedRendering
Definition RenderingThread.cpp:49
uint8_t uint8
Definition binka_ue_file_header.h:8
EPSOPrecacheCompileType
Definition RHIResources.h:4798
Definition ArrayView.h:139
Definition Array.h:670
Definition AndroidOpenGL.h:15
static FORCEINLINE EFenceResult ClientWaitSync(UGLsync Sync, GLbitfield Flags, GLuint64 Timeout)
Definition AndroidOpenGL.h:42
static FORCEINLINE GLuint GetMinorVersion()
Definition AndroidOpenGL.h:111
static bool bRequiresAdrenoTilingHint
Definition AndroidOpenGL.h:96
static void ProcessExtensions(const FString &ExtensionsString)
static TArray< uint8 > DispatchAndWaitForRemoteGLProgramCompile(FGraphicsPipelineStateInitializer::EPSOPrecacheCompileType PSOCompileType, const TArrayView< uint8 > ContextData, const TArray< ANSICHAR > &VertexGlslCode, const TArray< ANSICHAR > &PixelGlslCode, const TArray< ANSICHAR > &ComputeGlslCode, FString &FailureMessageOUT)
static FORCEINLINE GLint GetMaxComputeUAVUnits()
Definition AndroidOpenGL.h:77
static FORCEINLINE EImageExternalType GetImageExternalType()
Definition AndroidOpenGL.h:73
EImageExternalType
Definition AndroidOpenGL.h:64
static int32 GLMajorVerion
Definition AndroidOpenGL.h:103
static FORCEINLINE GLint GetMaxComputeUniformComponents()
Definition AndroidOpenGL.h:75
static FORCEINLINE GLint GetFirstPixelUAVUnit()
Definition AndroidOpenGL.h:79
static FORCEINLINE void FrameBufferFetchBarrier()
Definition AndroidOpenGL.h:83
static FORCEINLINE GLuint GetMajorVersion()
Definition AndroidOpenGL.h:106
static void EnableAdrenoTilingModeHint(bool bEnable)
static FORCEINLINE bool HasHardwareHiddenSurfaceRemoval()
Definition AndroidOpenGL.h:16
static FORCEINLINE UGLsync FenceSync(GLenum Condition, GLbitfield Flags)
Definition AndroidOpenGL.h:28
static FORCEINLINE bool IsSync(UGLsync Sync)
Definition AndroidOpenGL.h:33
static int32 GLMinorVersion
Definition AndroidOpenGL.h:104
static bool bDefaultStateNonCoherentFramebufferFetchEnabled
Definition AndroidOpenGL.h:100
static void StopRemoteCompileServices()
static bool SupportsFramebufferSRGBEnable()
static bool ResetNonCoherentFramebufferFetch()
static FORCEINLINE GLint GetFirstComputeUAVUnit()
Definition AndroidOpenGL.h:76
static void SetupDefaultGLContextState(const FString &ExtensionsString)
static FORCEINLINE bool SupportsDisjointTimeQueries()
Definition AndroidOpenGL.h:61
static FORCEINLINE GLint GetFirstVertexUAVUnit()
Definition AndroidOpenGL.h:78
static EImageExternalType ImageExternalType
Definition AndroidOpenGL.h:120
static bool StartRemoteCompileServices(int NumServices)
static FORCEINLINE bool SupportsImageExternal()
Definition AndroidOpenGL.h:71
static FORCEINLINE bool SupportsTimestampQueries()
Definition AndroidOpenGL.h:60
static bool AreRemoteCompileServicesActive()
static void DisableNonCoherentFramebufferFetch()
static bool bSupportsImageExternal
Definition AndroidOpenGL.h:117
static FORCEINLINE GLint GetMaxCombinedUAVUnits()
Definition AndroidOpenGL.h:81
static bool RequiresAdrenoTilingModeHint()
static FORCEINLINE void DeleteSync(UGLsync Sync)
Definition AndroidOpenGL.h:20
static FORCEINLINE GLint GetMaxPixelUAVUnits()
Definition AndroidOpenGL.h:80