/
StudioRender.h
31 lines (26 loc) · 895 Bytes
/
StudioRender.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#pragma once
#include <cstddef>
#include <string_view>
#include "Material.h"
#include "VirtualMethod.h"
enum class OverrideType {
Normal = 0,
BuildShadows,
DepthWrite,
CustomMaterial, // weapon skins
SsaoDepthWrite
};
class StudioRender {
std::byte pad_0[0x250];
Material* materialOverride;
std::byte pad_1[0xC];
OverrideType overrideType;
public:
VIRTUAL_METHOD(void, forcedMaterialOverride, 33, (Material* material, OverrideType type = OverrideType::Normal, int index = -1), (this, material, type, index))
bool isForcedMaterialOverride() noexcept
{
if (!materialOverride)
return overrideType == OverrideType::DepthWrite || overrideType == OverrideType::SsaoDepthWrite; // see CStudioRenderContext::IsForcedMaterialOverride
return std::string_view{ materialOverride->getName() }.starts_with("dev/glow");
}
};