Skip to content
LeviMC
Home
Projects
Docs
6
LeviLamina
Mod loader for Minecraft Bedrock Edition
LegacyScriptEngine
Runs LLSE script plugins on LeviLamina
lip
General package installer
LeviLauncher
Bedrock launcher for Windows and Android
Be.D.D.
Scripted client input for mod tests
bedboo
Bedrock bots with a mineflayer-compatible API
All repositories on GitHub
Mods
Blog
Community
About
English
English
简体中文
繁體中文
Auto
Light
Dark
Auto
Light
Dark
LeviLamina
User Guides
Developer Guides
API Guides
API Reference
Maintainer Guides
Resources
LeviLamina on GitHub
LeviMC
Home
Projects
Docs
6
LeviLamina
Mod loader for Minecraft Bedrock Edition
LegacyScriptEngine
Runs LLSE script plugins on LeviLamina
lip
General package installer
LeviLauncher
Bedrock launcher for Windows and Android
Be.D.D.
Scripted client input for mod tests
bedboo
Bedrock bots with a mineflayer-compatible API
All repositories on GitHub
Mods
Blog
Community
About
API Reference
On this page
LeviLamina
User Guides
Developer Guides
API Guides
API Reference
Maintainer Guides
Search
Ctrl
K
Loading...
Searching...
No Matches
ResourceBlockTemplate.h
1
#pragma once
2
3
#include "mc/_HeaderOutputPredefine.h"
4
5
#include "mc/deps/core/checked_resource_service/PerFrameHandleTracker.h"
6
#include "mc/deps/core/checked_resource_service/UncheckedHandleTracker.h"
7
#include "mc/deps/minecraft_renderer/resources/ResourceServiceTextureDescription.h"
8
#include "mc/external/render_dragon/resources/BufferDescription.h"
9
#include "mc/external/render_dragon/resources/ImageDescription.h"
10
#include "mc/external/render_dragon/resources/MaterialDescription.h"
11
#include "mc/external/render_dragon/resources/TextureDescription.h"
12
13
14
namespace
dragon {
15
class
ResolvedTextureResource
;
16
class
ResolvedImageResource
;
17
class
ResolvedMaterialResource
;
18
struct
ResolvedVertexBufferResource
;
19
struct
ResolvedIndexBufferResource
;
20
struct
ResolvedShaderBufferResource
;
21
struct
ResolvedAccelerationStructureResource
;
22
}
// namespace dragon
23
24
25
namespace
mce {
26
27
class
Texture
;
28
class
ImmediateBuffer
;
29
30
template
<
typename
T>
31
class
ClientResourcePointer
;
32
33
template
<
typename
T>
34
class
ServerResourcePointer
;
35
36
class
Buffer
;
37
38
template
<
typename
T>
39
struct
ResourceHandleTrackerValidator
;
40
41
template
<
typename
T>
42
struct
ResourceBlockTemplate {
43
std::shared_ptr<typename ResourceHandleTrackerValidator<T>::DescriptionType> mDebugInfoBlock;
44
typename
ResourceHandleTrackerValidator<T>::TrackerType
mTrackingBlock;
45
std::unique_ptr<T> mResource;
46
47
ResourceBlockTemplate() : mDebugInfoBlock(), mTrackingBlock(), mResource(std::make_unique<T>()) {}
48
~ResourceBlockTemplate() =
default
;
49
50
void
reset();
51
T* get()
const
;
52
};
53
54
// ---- Texture ----
55
template
<>
56
struct
ResourceHandleTrackerValidator
<dragon::ResolvedTextureResource> {
57
using
DescriptionType =
dragon::TextureDescription
;
58
using
TrackerType =
PerFrameHandleTracker
;
59
};
60
61
// ---- Image ----
62
template
<>
63
struct
ResourceHandleTrackerValidator
<dragon::ResolvedImageResource> {
64
using
DescriptionType =
dragon::ImageDescription
;
65
using
TrackerType =
PerFrameHandleTracker
;
66
};
67
68
// ---- ImmediateBuffer ----
69
template
<>
70
struct
ResourceHandleTrackerValidator
<mce::
ImmediateBuffer
> {
71
using
DescriptionType =
dragon::BufferDescription
;
72
using
TrackerType =
PerFrameHandleTracker
;
73
};
74
75
76
template
<>
77
struct
ResourceHandleTrackerValidator
<
78
std
::variant<std::monostate, mce::Texture, mce::ClientResourcePointer<dragon::ResolvedTextureResource>>> {
79
using
DescriptionType =
mce::ResourceServiceTextureDescription
;
80
using
TrackerType =
PerFrameHandleTracker
;
81
};
82
83
84
template
<>
85
struct
ResourceHandleTrackerValidator
<
std
::variant<
86
std::monostate,
87
mce::Buffer,
88
mce::ClientResourcePointer<dragon::ResolvedVertexBufferResource>,
89
mce::ClientResourcePointer<dragon::ResolvedIndexBufferResource>>> {
90
using
DescriptionType =
dragon::BufferDescription
;
91
using
TrackerType =
PerFrameHandleTracker
;
92
};
93
94
template
<>
95
struct
ResourceHandleTrackerValidator
<dragon::ResolvedVertexBufferResource> {
96
using
DescriptionType =
dragon::BufferDescription
;
97
using
TrackerType =
UncheckedHandleTracker
;
98
};
99
100
template
<>
101
struct
ResourceHandleTrackerValidator
<dragon::ResolvedIndexBufferResource> {
102
using
DescriptionType =
dragon::BufferDescription
;
103
using
TrackerType =
UncheckedHandleTracker
;
104
};
105
106
template
<>
107
struct
ResourceHandleTrackerValidator
<dragon::ResolvedShaderBufferResource> {
108
using
DescriptionType =
dragon::BufferDescription
;
109
using
TrackerType =
UncheckedHandleTracker
;
110
};
111
112
template
<>
113
struct
ResourceHandleTrackerValidator
<dragon::ResolvedAccelerationStructureResource> {
114
using
DescriptionType =
dragon::BufferDescription
;
115
using
TrackerType =
UncheckedHandleTracker
;
116
};
117
118
template
<>
119
struct
ResourceHandleTrackerValidator
<dragon::ResolvedMaterialResource> {
120
using
DescriptionType =
dragon::MaterialDescription
;
121
using
TrackerType =
UncheckedHandleTracker
;
122
};
123
124
}
// namespace mce
dragon::ResolvedImageResource
Definition
ResolvedImageResource.h:7
dragon::ResolvedMaterialResource
Definition
ResolvedMaterialResource.h:7
dragon::ResolvedTextureResource
Definition
ResolvedTextureResource.h:7
mce::Buffer
Definition
Buffer.h:7
mce::ClientResourcePointer
Definition
ClientResourcePointer.h:10
mce::ImmediateBuffer
Definition
ImmediateBuffer.h:7
mce::PerFrameHandleTracker
Definition
PerFrameHandleTracker.h:9
mce::ServerResourcePointer
Definition
ServerResourcePointer.h:10
mce::Texture
Definition
Texture.h:7
mce::UncheckedHandleTracker
Definition
UncheckedHandleTracker.h:7
std
STL namespace.
dragon::BufferDescription
Definition
BufferDescription.h:7
dragon::ImageDescription
Definition
ImageDescription.h:7
dragon::MaterialDescription
Definition
MaterialDescription.h:7
dragon::ResolvedAccelerationStructureResource
Definition
ResolvedAccelerationStructureResource.h:7
dragon::ResolvedIndexBufferResource
Definition
ResolvedIndexBufferResource.h:7
dragon::ResolvedShaderBufferResource
Definition
ResolvedShaderBufferResource.h:7
dragon::ResolvedVertexBufferResource
Definition
ResolvedVertexBufferResource.h:7
dragon::TextureDescription
Definition
TextureDescription.h:7
mce::ResourceHandleTrackerValidator
Definition
ResourceBlockTemplate.h:39
mce::ResourceServiceTextureDescription
Definition
ResourceServiceTextureDescription.h:7
src
mc
external
render_dragon
resources
ResourceBlockTemplate.h
Generated on
for LeviLamina by
1.16.1