UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
OpenGLBinaryProgramUtils.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 OpenGLBinaryProgramUtils.h
5=============================================================================*/
6
7#pragma once
8#include "OpenGLDrvPrivate.h"
9
11{
12public:
20
21 // No ownership, just a view to a region within the mmapped PSO cache.
28
30
32
34 {
35 if(IsOwned())
36 {
38 }
39 else
40 {
41 // This should only change when shutting down the PSO cache, i.e. DataView.IsEmpty() during normal use.
43 }
44 }
45
46 bool IsValid() const { return DataView.Num() > 0; }
47 bool IsOwned() const { return OwnedData.Num() > 0; }
48 const TArrayView<const uint8> GetDataView() const { return DataView; }
49private:
50 // The data when programs are owned.
51 TArray<uint8> OwnedData;
52 // a view to the raw program binary, either points to OwnedData or an array view within the mmapped prebuilt PSO cache.
54};
55
56namespace UE
57{
58 namespace OpenGL
59 {
60 // Program Binary helpers.
61
63
64 struct FCompressedProgramBinaryHeader
65 {
66 static const uint32 NotCompressed = 0xFFFFFFFF;
68 };
69
75 }
76}
#define check(expr)
Definition AssertionMacros.h:314
#define INC_MEMORY_STAT_BY(StatId, Amount)
Definition Stats.h:700
#define DEC_MEMORY_STAT_BY(StatId, Amount)
Definition Stats.h:705
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition OpenGLBinaryProgramUtils.h:11
FOpenGLProgramBinary(TArrayView< const uint8 > ProgramMemory)
Definition OpenGLBinaryProgramUtils.h:22
~FOpenGLProgramBinary()
Definition OpenGLBinaryProgramUtils.h:33
FOpenGLProgramBinary(FOpenGLProgramBinary &&Src)=default
FOpenGLProgramBinary & operator=(FOpenGLProgramBinary &&rhs)=default
bool IsValid() const
Definition OpenGLBinaryProgramUtils.h:46
FOpenGLProgramBinary()
Definition OpenGLBinaryProgramUtils.h:13
const TArrayView< const uint8 > GetDataView() const
Definition OpenGLBinaryProgramUtils.h:48
bool IsOwned() const
Definition OpenGLBinaryProgramUtils.h:47
FOpenGLProgramBinary(TArray< uint8 > &&ProgramMemory)
Definition OpenGLBinaryProgramUtils.h:14
Definition ArrayView.h:139
UE_FORCEINLINE_HINT constexpr SizeType Num() const
Definition ArrayView.h:380
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void CompressProgramBinary(const TArrayView< const uint8 > &UncompressedProgramBinary, TArray< uint8 > &ProgramBinaryOUT)
Definition OpenGLBinaryProgramUtils.cpp:71
bool GetCompressedProgramBinaryFromGLProgram(GLuint Program, TArray< uint8 > &ProgramBinaryOUT)
Definition OpenGLBinaryProgramUtils.cpp:98
bool GetUncompressedProgramBinaryFromGLProgram(GLuint Program, TArray< uint8 > &ProgramBinaryOUT)
Definition OpenGLBinaryProgramUtils.cpp:53
bool UncompressCompressedBinaryProgram(const TArrayView< const uint8 > &CompressedProgramBinary, TArray< uint8 > &UncompressedProgramBinaryOUT)
Definition OpenGLBinaryProgramUtils.cpp:26
bool IsStoringCompressedBinaryPrograms()
Definition OpenGLBinaryProgramUtils.cpp:21
FOpenGLProgramBinary GetProgramBinaryFromGLProgram(GLuint Program)
Definition OpenGLBinaryProgramUtils.cpp:110
Definition AdvancedWidgetsModule.cpp:13