UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
OpenGL4.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 OpenGL4.h: Public OpenGL 4.3 definitions for non-common functionality
5=============================================================================*/
6
7#pragma once
8
9#include "OpenGLPlatform.h"
10
11#if UGL_PLATFORM_SUPPORTS_GL4
12
15#include "OpenGL3.h"
16
17struct FOpenGL4 : public FOpenGL3
18{
19 static FORCEINLINE bool SupportsDrawIndirect() { return true; }
20
21 // Optional
22
23 // Required
25 {
27 }
29 {
31 }
32 static FORCEINLINE void BlendFunci(GLuint Buf, GLenum Src, GLenum Dst)
33 {
34 glBlendFunci(Buf, Src, Dst);
35 }
36 static FORCEINLINE void BlendEquationi(GLuint Buf, GLenum Mode)
37 {
38 glBlendEquationi(Buf, Mode);
39 }
40 static FORCEINLINE void PatchParameteri(GLenum Pname, GLint Value)
41 {
43 }
45 {
46 glBindImageTexture(Unit, Texture, Level, Layered, Layer, Access, Format);
47 }
49 {
51 }
53 {
55 }
56 static FORCEINLINE void MemoryBarrier(GLbitfield Barriers)
57 {
58 glMemoryBarrier(Barriers);
59 }
60 static FORCEINLINE void DrawArraysIndirect (GLenum Mode, const void *Offset)
61 {
63 }
64 static FORCEINLINE void DrawElementsIndirect (GLenum Mode, GLenum Type, const void *Offset)
65 {
66 glDrawElementsIndirect( Mode, Type, Offset);
67 }
68 static FORCEINLINE void BindVertexBuffer(GLuint BindingIndex, GLuint Buffer, GLintptr Offset, GLsizei Stride)
69 {
70 glBindVertexBuffer(BindingIndex, Buffer, Offset, Stride);
71 }
73 {
74 glVertexAttribFormat(AttribIndex, Size, Type, Normalized, RelativeOffset);
75 }
76 static FORCEINLINE void VertexAttribIFormat(GLuint AttribIndex, GLint Size, GLenum Type, GLuint RelativeOffset)
77 {
78 glVertexAttribIFormat(AttribIndex, Size, Type, RelativeOffset);
79 }
81 {
83 }
84 static FORCEINLINE void VertexBindingDivisor(GLuint BindingIndex, GLuint Divisor)
85 {
86 glVertexBindingDivisor(BindingIndex, Divisor);
87 }
88 static FORCEINLINE void TexBufferRange(GLenum Target, GLenum InternalFormat, GLuint Buffer, GLintptr Offset, GLsizeiptr Size)
89 {
90 glTexBufferRange(Target, InternalFormat, Buffer, Offset, Size);
91 }
92 static FORCEINLINE void TextureView(GLuint ViewName, GLenum ViewTarget, GLuint SrcName, GLenum InternalFormat, GLuint MinLevel, GLuint NumLevels, GLuint MinLayer, GLuint NumLayers)
93 {
94 glTextureView(ViewName, ViewTarget, SrcName, InternalFormat, MinLevel, NumLevels, MinLayer, NumLayers);
95 }
96 static FORCEINLINE void ClearBufferData(GLenum Target, GLenum InternalFormat, GLenum Format, GLenum Type, const uint32* Data)
97 {
98 glClearBufferData(Target, InternalFormat, Format, Type, Data);
99 }
100
101 static void ProcessQueryGLInt();
102 static void ProcessExtensions( const FString& ExtensionsString );
103
104 static FORCEINLINE GLint GetMaxComputeUniformComponents() { check(MaxComputeUniformComponents != -1); return MaxComputeUniformComponents; }
105
106 static FORCEINLINE GLint GetFirstComputeUAVUnit() { return 0; }
107 static FORCEINLINE GLint GetMaxComputeUAVUnits() { check(MaxComputeUAVUnits != -1); return MaxComputeUAVUnits; }
108 static FORCEINLINE GLint GetFirstVertexUAVUnit() { return 0; }
109 static FORCEINLINE GLint GetFirstPixelUAVUnit() { return 0; }
110 static FORCEINLINE GLint GetMaxPixelUAVUnits() { check(MaxPixelUAVUnits != -1); return MaxPixelUAVUnits; }
111 static FORCEINLINE GLint GetMaxCombinedUAVUnits() { return MaxCombinedUAVUnits; }
112
113 static uint64 GetVideoMemorySize();
114
115 static FORCEINLINE int32 GetReadHalfFloatPixelsEnum() { return GL_HALF_FLOAT; }
116
117protected:
119
122 static GLint MaxPixelUAVUnits;
123
124 static bool bSupportsGPUMemoryInfo;
125};
126
127#endif // UGL_PLATFORM_SUPPORTS_GL4
typedef GLboolean(GL_APIENTRYP PFNeglPresentationTimeANDROID)(EGLDisplay dpy
#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
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define GL_HALF_FLOAT
Definition OpenGLPlatform.h:13
uint32 Offset
Definition VulkanMemory.cpp:4033
uint32 Size
Definition VulkanMemory.cpp:4034
uint32_t uint32
Definition binka_ue_file_header.h:6