15#define SUBALLOCATED_CONSTANT_BUFFER 0
17#define GL_CHECK(x) x; do { GLint Err = glGetError(); if (Err != 0) {FPlatformMisc::LowLevelOutputDebugStringf(TEXT("(%s:%d) GL_CHECK Failed '%s'! %d (%x)\n"), ANSI_TO_TCHAR(__FILE__), __LINE__, ANSI_TO_TCHAR( #x ), Err, Err); check(!Err);}} while (0)
29#if !defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) && !(defined(_MSC_VER) && _MSC_VER >= 1900)
30#define LOG_AND_GET_GL_INT(IntEnum, Default, Dest) \
34 extern bool GDisableOpenGLDebugOutput; \
35 GDisableOpenGLDebugOutput = true; \
36 glGetIntegerv(IntEnum, &Dest); \
37 GDisableOpenGLDebugOutput = false; \
39 UE_LOG(LogRHI, Log, TEXT(" ") ## TEXT(#IntEnum) ## TEXT(": %d"), Dest); \
43 #define LOG_AND_GET_GL_INT(IntEnum, Default, Dest) \
47 extern bool GDisableOpenGLDebugOutput; \
48 GDisableOpenGLDebugOutput = true; \
49 glGetIntegerv(IntEnum, &Dest); \
50 GDisableOpenGLDebugOutput = false; \
51 UE_LOG(LogRHI, Log, TEXT(" " #IntEnum ": %d"), Dest); \
56#define GET_GL_INT(IntEnum, Default, Dest) \
60 extern bool GDisableOpenGLDebugOutput; \
61 GDisableOpenGLDebugOutput = true; \
62 glGetIntegerv(IntEnum, &Dest); \
63 GDisableOpenGLDebugOutput = false; \
105#if OPENGLRHI_DETAILED_STATS
307 return sizeof(
float);
309 return sizeof(
float) * 2;
311 return sizeof(
float) * 3;
313 return sizeof(
float) * 4;
320 return sizeof(
uint32) * 2;
323 return sizeof(
uint32) * 3;
326 return sizeof(
uint32) * 4;
329 return sizeof(
float) * 4;
331 return sizeof(
float) * 9;
333 return sizeof(
float) * 16;
335 return sizeof(
float) * 6;
337 return sizeof(
float) * 8;
339 return sizeof(
float) * 6;
341 return sizeof(
float) * 12;
343 return sizeof(
float) * 8;
345 return sizeof(
float) * 12;
constexpr T Align(T Val, uint64 Alignment)
Definition AlignmentTemplates.h:18
#define DECLARE_CYCLE_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:679
#define DECLARE_DWORD_COUNTER_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:682
#define DECLARE_DWORD_ACCUMULATOR_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:684
#define DECLARE_MEMORY_STAT_EXTERN(CounterName, StatId, GroupId, API)
Definition Stats.h:687
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define UE_LOG(CategoryName, Verbosity, Format,...)
Definition LogMacros.h:270
int32 PlatformGlGetError()
Definition LinuxOpenGLPlatform.cpp:807
class FOpenGLTexture * PlatformCreateBuiltinBackBuffer(FOpenGLDynamicRHI *OpenGLRHI, uint32 SizeX, uint32 SizeY)
Definition LinuxOpenGLPlatform.cpp:819
void PlatformRenderingContextSetup(FPlatformOpenGLDevice *Device)
Definition LinuxOpenGLPlatform.cpp:512
uint32 CalcDynamicBufferSize(uint32 Size)
Definition OpenGLDrvPrivate.h:361
bool GUseEmulatedUniformBuffers
Definition OpenGLDevice.cpp:52
uint32 FindUniformElementSize(GLenum UniformType)
Definition OpenGLDrvPrivate.h:302
bool PlatformGetAvailableResolutions(FScreenResolutionArray &Resolutions, bool bIgnoreRefreshRate)
Definition LinuxOpenGLPlatform.cpp:609
void * PlatformGetWindow(FPlatformOpenGLContext *Context, void **AddParam)
Definition LinuxOpenGLPlatform.cpp:320
bool PlatformInitOpenGL()
Definition LinuxOpenGLPlatform.cpp:694
void PlatformGetSupportedResolution(uint32 &Width, uint32 &Height)
Definition LinuxOpenGLPlatform.cpp:577
void PlatformNULLContextSetup()
Definition LinuxOpenGLPlatform.cpp:524
FOpenGLTextureFormat OPENGLDRV_API GOpenGLTextureFormats[PF_MAX]
Definition OpenGLDevice.cpp:46
bool PlatformOpenGLThreadHasRenderingContext()
Definition LinuxOpenGLPlatform.cpp:812
bool PlatformCanEnableGPUCapture()
Definition LinuxOpenGLPlatform.cpp:237
void PlatformFlushIfNeeded()
Definition LinuxOpenGLPlatform.cpp:507
void InitDefaultGLContextState(void)
Definition OpenGLDrv.cpp:771
void PlatformResizeGLContext(FPlatformOpenGLDevice *Device, FPlatformOpenGLContext *Context, uint32 SizeX, uint32 SizeY, bool bFullscreen, bool bWasFullscreen, GLenum BackBufferTarget, GLuint BackBufferResource)
Definition LinuxOpenGLPlatform.cpp:537
bool PlatformBlitToViewport(IRHICommandContext &RHICmdContext, FPlatformOpenGLDevice *Device, const FOpenGLViewport &Viewport, uint32 BackbufferSizeX, uint32 BackbufferSizeY, bool bPresent, bool bLockToVsync)
Definition LinuxOpenGLPlatform.cpp:351
void PlatformRestoreDesktopDisplayMode()
Definition LinuxOpenGLPlatform.cpp:689
uint32 FindMaxMipmapLevel(uint32 Size)
Definition OpenGLDrvPrivate.h:253
FPlatformOpenGLContext * PlatformCreateOpenGLContext(FPlatformOpenGLDevice *Device, void *InWindowHandle)
Definition LinuxOpenGLPlatform.cpp:250
void FindPrimitiveType(uint32 InPrimitiveType, uint32 InNumPrimitives, GLenum &DrawMode, GLsizei &NumElements)
Definition OpenGLDrvPrivate.h:273
void PlatformDestroyOpenGLDevice(FPlatformOpenGLDevice *Device)
Definition LinuxOpenGLPlatform.cpp:242
FPlatformOpenGLDevice * PlatformCreateOpenGLDevice()
Definition LinuxOpenGLPlatform.cpp:232
void PlatformDestroyOpenGLContext(FPlatformOpenGLDevice *Device, FPlatformOpenGLContext *Context)
Definition LinuxOpenGLPlatform.cpp:314
@ PT_PointList
Definition RHIDefinitions.h:837
@ PT_LineList
Definition RHIDefinitions.h:830
@ PT_TriangleList
Definition RHIDefinitions.h:824
@ PT_TriangleStrip
Definition RHIDefinitions.h:827
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
uint32 Size
Definition VulkanMemory.cpp:4034
Definition OpenGLDrv.h:254
Definition OpenGLResources.h:918
Definition OpenGLResources.h:1365
Definition RHIContext.h:693
Definition OpenGLDrvPrivate.h:227
FOpenGLTextureFormat(GLenum InInternalFormat, GLenum InInternalFormatSRGB, GLenum InFormat, GLenum InType, bool bInCompressed, bool bInBGRA)
Definition OpenGLDrvPrivate.h:238
FOpenGLTextureFormat()=default
bool bCompressed
Definition OpenGLDrvPrivate.h:232
GLenum Format
Definition OpenGLDrvPrivate.h:230
GLenum Type
Definition OpenGLDrvPrivate.h:231
bool bBGRA
Definition OpenGLDrvPrivate.h:234
GLenum InternalFormat[2]
Definition OpenGLDrvPrivate.h:229
Definition LinuxOpenGLPlatform.cpp:39