LeviLamina
Loading...
Searching...
No Matches
FrameBuilder.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/deps/core/checked_resource_service/CheckedResourceService.h"
7#include "mc/deps/core/checked_resource_service/ClientResourcePointer.h"
8#include "mc/deps/core/file/PathBuffer.h"
9#include "mc/deps/core/utility/EnableNonOwnerReferences.h"
10#include "mc/deps/minecraft_renderer/framebuilder/AsyncLoadResult.h"
11#include "mc/deps/minecraft_renderer/game/FrustumCullerType.h"
12#include "mc/deps/minecraft_renderer/game/LevelCullerType.h"
13#include "mc/deps/minecraft_renderer/game/TerrainLayerLOD.h"
14#include "mc/deps/renderer/hal/enums/RenderFeature.h"
15#include "mc/external/render_dragon/mesh/IndexSize.h"
16#include "mc/external/render_dragon/platform/DebugModeFlags.h"
17#include "mc/external/render_dragon/platform/RenderAPI.h"
18#include "mc/external/render_dragon/platform/VerticalSync.h"
19#include "mc/external/render_dragon/rendering/ClipSpaceDepthMode.h"
20#include "mc/external/render_dragon/rendering/LightingModels.h"
21#include "mc/external/render_dragon/resources/ServerResourcePointer.h"
22#include "mc/external/render_dragon/tasks/DeferredResult.h"
23#include "mc/external/render_dragon/texture_streaming/DebugPolicy.h"
24#include "mc/external/render_dragon/texture_streaming/texture_cache/TextureCache.h"
25
26// auto generated forward declare list
27// clang-format off
28class Scheduler;
29class WorkerPool;
30struct RangeIndices;
33struct TerrainLayer;
34namespace cg { struct ImageDescription; }
35namespace dragon { class ResolvedImageResource; }
36namespace dragon { class ResolvedMaterialResource; }
37namespace dragon { class ResolvedTextureResource; }
38namespace dragon { struct RenderMetadata; }
39namespace dragon { struct ResolvedIndexBufferResource; }
40namespace dragon { struct ResolvedShaderBufferResource; }
41namespace dragon { struct ResolvedVertexBufferResource; }
42namespace dragon { struct TextureDescription; }
43namespace dragon::materials { class MaterialResourceManager; }
44namespace dragon::platform { struct GLTextureWrapper; }
45namespace dragon::platform { struct Statistics; }
46namespace dragon::platform { struct SurfaceParameters; }
47namespace dragon::rendering { class RayTracingFeatureConfiguration; }
48namespace dragon::rendering { class RayTracingResources; }
49namespace dragon::rendering { struct SharedTextureHandle; }
50namespace dragon::texturestreaming { struct DragonTextureCacheContext; }
51namespace mce { class VertexFormat; }
52namespace mce { struct ClientTexture; }
53namespace mce { struct TextureShiftBuffer; }
54namespace mce { struct VertexLayout; }
55namespace mce::framebuilder { class DynamicResolutionController; }
56namespace mce::framebuilder { class FrameBuilderContext; }
57namespace mce::framebuilder { class PBRTextureDataManager; }
58namespace mce::framebuilder { class RenderingFeatureConfiguration; }
59namespace mce::framebuilder { struct ActiveShadowTileInfo; }
60namespace mce::framebuilder { struct BiomeBlendingData; }
61namespace mce::framebuilder { struct BlitFlipbookTextureDescription; }
62namespace mce::framebuilder { struct BlockChangesDescription; }
63namespace mce::framebuilder { struct BufferClearDescription; }
64namespace mce::framebuilder { struct CameraDescriptionOrthographic; }
65namespace mce::framebuilder { struct CameraDescriptionPerspective; }
66namespace mce::framebuilder { struct FadeToBlackDescription; }
67namespace mce::framebuilder { struct FrameBuilderInitDependencies; }
68namespace mce::framebuilder { struct FrameLightingModelCapabilities; }
69namespace mce::framebuilder { struct FramePacingConfig; }
70namespace mce::framebuilder { struct FullscreenEffectDescription; }
71namespace mce::framebuilder { struct LightAmbientDescription; }
72namespace mce::framebuilder { struct LightDirectionalDescription; }
73namespace mce::framebuilder { struct LightPointDescription; }
74namespace mce::framebuilder { struct RenderAtmosphereDescription; }
75namespace mce::framebuilder { struct RenderBatchActorDescription; }
76namespace mce::framebuilder { struct RenderBlockSelectionOverlayBlockEntityDescription; }
77namespace mce::framebuilder { struct RenderCameraAimAssistHighlightDescription; }
78namespace mce::framebuilder { struct RenderCelestialBodyDescription; }
79namespace mce::framebuilder { struct RenderChunkGeometryDescription; }
80namespace mce::framebuilder { struct RenderChunkOccludersDescription; }
81namespace mce::framebuilder { struct RenderCloudsDescription; }
82namespace mce::framebuilder { struct RenderCrackDescription; }
83namespace mce::framebuilder { struct RenderCubemapDescription; }
84namespace mce::framebuilder { struct RenderEditorBlockVolumeBoundingBoxDescription; }
85namespace mce::framebuilder { struct RenderEditorBlockVolumeOutlineDescription; }
86namespace mce::framebuilder { struct RenderEditorGizmoHandleArrowDescription; }
87namespace mce::framebuilder { struct RenderEditorGizmoHandleCubeDescription; }
88namespace mce::framebuilder { struct RenderEditorGizmoHandlePaneDescription; }
89namespace mce::framebuilder { struct RenderEditorRenderPlaneDescription; }
90namespace mce::framebuilder { struct RenderEditorSelectionCursorDescription; }
91namespace mce::framebuilder { struct RenderEndSkyDescription; }
92namespace mce::framebuilder { struct RenderEnvironmentalTextDescription; }
93namespace mce::framebuilder { struct RenderFlameBillboardDescription; }
94namespace mce::framebuilder { struct RenderItemInHandDescription; }
95namespace mce::framebuilder { struct RenderLegacyCubemapDescription; }
96namespace mce::framebuilder { struct RenderMeshFallbackDescription; }
97namespace mce::framebuilder { struct RenderNametagDescription; }
98namespace mce::framebuilder { struct RenderParticleDescription; }
99namespace mce::framebuilder { struct RenderPlayerVisionDescription; }
100namespace mce::framebuilder { struct RenderShadowDescription; }
101namespace mce::framebuilder { struct RenderSkinnedMeshDescription; }
102namespace mce::framebuilder { struct RenderSkyDescription; }
103namespace mce::framebuilder { struct RenderStarsDescription; }
104namespace mce::framebuilder { struct RenderUIGamefaceDescription; }
105namespace mce::framebuilder { struct RenderUIHudIconDescription; }
106namespace mce::framebuilder { struct RenderUIImGuiDescription; }
107namespace mce::framebuilder { struct RenderUIMeshDescription; }
108namespace mce::framebuilder { struct RenderUITextDescription; }
109namespace mce::framebuilder { struct RenderVolumetricFogDescription; }
110namespace mce::framebuilder { struct RenderWeatherDescription; }
111namespace mce::framebuilder { struct ShadowAtlasFrameDescription; }
112namespace mce::framebuilder { struct SkyAmbientSamplesDescription; }
113namespace mce::framebuilder { struct VoxelVolumeDescription; }
114namespace mce::framebuilder::bgfxbridge { struct EntityCreationContext; }
115namespace mce::framebuilder::gamecomponents { struct EditorHighlightConfiguration; }
116namespace mce::framebuilder::gamecomponents { struct GameplayMetadata; }
117namespace mce::framebuilder::gamecomponents { struct ServerGraphicsOverrideParameters; }
118// clang-format on
119
120namespace mce::framebuilder {
121
122class FrameBuilder : public ::Bedrock::EnableNonOwnerReferences {
123public:
124 // FrameBuilder inner types declare
125 // clang-format off
126 struct FrameTimings;
128 // clang-format on
129
130 // FrameBuilder inner types define
131 struct FrameTimings {
132 public:
133 // member variables
134 // NOLINTBEGIN
135 ::ll::TypedStorage<8, 8, double> renderThreadDurationInSeconds;
136 ::ll::TypedStorage<8, 8, double> waitUntilCompletedDurationInSeconds;
137 ::ll::TypedStorage<8, 8, double> flipTimestampInMilliseconds;
138 // NOLINTEND
139 };
140
141 class InitializationState {
142 public:
143 // virtual functions
144 // NOLINTBEGIN
145 virtual ~InitializationState() = default;
146 // NOLINTEND
147 };
148
149 using InitializationStatePointer = ::std::shared_ptr<::mce::framebuilder::FrameBuilder::InitializationState>;
150
151 using LayerRanges = ::std::function<::RangeIndices(::TerrainLayer const&, ::TerrainLayerLOD)>;
152
153public:
154 // virtual functions
155 // NOLINTBEGIN
156 virtual ~FrameBuilder() /*override*/ = default;
157
158 virtual bool enabled() const = 0;
159
160 virtual ::std::optional<::dragon::platform::Statistics> getStatistics() = 0;
161
162 virtual ::std::optional<::dragon::platform::Statistics> getPreviousFrameStatistics() const = 0;
163
164 virtual double getAverageGPUTime() const = 0;
165
166 virtual void resetGPUTimeData() = 0;
167
168 virtual bool supportsRenderFeature(::mce::RenderFeature const feature) const = 0;
169
170 virtual ::mce::framebuilder::FrameBuilder::FrameTimings getLastFrameTimings() const = 0;
171
172 virtual ::std::weak_ptr<::mce::framebuilder::DynamicResolutionController> getDynamicResolutionController() = 0;
173
174 virtual bool isDeviceRemoved();
175
176 virtual ::std::optional<::std::shared_ptr<::mce::framebuilder::FrameBuilder::InitializationState>>
177 init(::mce::framebuilder::FrameBuilderInitDependencies&& deps) = 0;
178
179 virtual ::std::optional<::std::shared_ptr<::mce::framebuilder::FrameBuilder::InitializationState>>
180 continueInit(::std::shared_ptr<::mce::framebuilder::FrameBuilder::InitializationState> state) = 0;
181
182 virtual bool initialized() const = 0;
183
184 virtual void destroy() = 0;
185
186 virtual void loadCoreAssets(
187 ::Core::PathBuffer<::std::string> const& dataDirectory,
188 ::std::function<::std::string(::std::string const&, ::std::string const&)> loadFileDataCallback
189 ) = 0;
190
191 virtual ::mce::framebuilder::AsyncLoadResult loadAsyncAssets() = 0;
192
193 virtual void startFrame() = 0;
194
195 virtual void endFrame(::mce::framebuilder::FrameBuilderContext&& frameBuilderContext) = 0;
196
197 virtual void discardFrame(bool wait) = 0;
198
199 virtual void setTerrainAtlasTexture(::mce::ClientTexture const& texture) = 0;
200
201 virtual float getTargetFrameTime() const = 0;
202
203 virtual ::mce::framebuilder::FramePacingConfig getFramePacingConfig() const = 0;
204
205 virtual void setFramePacingConfig(::mce::framebuilder::FramePacingConfig const& config) = 0;
206
207 virtual void setDefaultActorMERSUniforms(
208 float const metalnessUniform,
209 float const emissiveUniform,
210 float const roughnessUniform,
211 float const subsurfaceUniform
212 ) = 0;
213
214 virtual void setDefaultParticleMERSUniforms(
215 float const metalnessUniform,
216 float const emissiveUniform,
217 float const roughnessUniform,
218 float const subsurfaceUniform
219 ) = 0;
220
221 virtual void setBiomeBlendingData(::mce::framebuilder::BiomeBlendingData const& biomeBlendingData) = 0;
222
223 virtual void setActiveShadowTiles(::std::vector<::mce::framebuilder::ActiveShadowTileInfo> const& activeTiles) = 0;
224
225 virtual void updateSurfaceParameters(::dragon::platform::SurfaceParameters const& surfaceParams) = 0;
226
227 virtual void updateWindowSize(uint const width, uint const height) = 0;
228
229 virtual void updateClientViewSize(::glm::vec2 const& clientViewSize) = 0;
230
231 virtual bool updateMsaaLevel(uchar const level) = 0;
232
233 virtual void updateFrameRateLimit(::std::optional<int> const frameRate) = 0;
234
235 virtual void updateVSync(::dragon::platform::VerticalSync verticalSync) = 0;
236
237 virtual void updateFramePacing(bool enabled) = 0;
238
239 virtual bool enableDynamicTextureHandles() = 0;
240
241 virtual void setDebugMode(::dragon::platform::DebugModeFlags debugFlags) = 0;
242
243 virtual void suspend() = 0;
244
245 virtual void resume() = 0;
246
247 virtual ::dragon::tasks::DeferredResult<::dragon::rendering::SharedTextureHandle> createExternalTexture(
248 ::std::optional<::std::variant<::std::monostate, ::dragon::platform::GLTextureWrapper>> nativeTexture
249 ) = 0;
250
251 virtual void updateExternalTexture(
252 ::dragon::tasks::DeferredResult<::dragon::rendering::SharedTextureHandle> texture,
253 ::std::optional<::std::variant<::std::monostate, ::dragon::platform::GLTextureWrapper>> nativeTexture,
254 ::std::function<void(::dragon::rendering::SharedTextureHandle)> rendererCallbackUpdateDelegate
255 ) = 0;
256
257 virtual ::mce::ServerResourcePointer<::dragon::ResolvedTextureResource> wrapExternalTexture(
258 ::dragon::platform::RenderAPI api,
259 ::dragon::TextureDescription const& desc,
260 void* externalTexture
261 ) = 0;
262
263 virtual void createRenderChunk(::dragon::RenderMetadata const& renderMetadata) = 0;
264
265 virtual void destroyRenderChunk(::dragon::RenderMetadata const& renderMetadata) = 0;
266
267 virtual void generateRenderChunkVertexData(
268 ::RenderChunkDirectVertexData& renderChunkDirectVertexData,
269 ::std::function<::RangeIndices(::TerrainLayer const&, ::TerrainLayerLOD)> layerRanges,
270 ::gsl::span<uchar const> const& chunkData,
271 uint64 const& vertexCount,
272 ::mce::VertexLayout const& mceLayout,
273 int const* absoluteBlockPosition
274 ) = 0;
275
276 virtual void generateRenderChunkIndexData(
277 ::RenderChunkDirectIndexData& renderChunkDirectIndexData,
278 ::std::function<::RangeIndices(::TerrainLayer const&, ::TerrainLayerLOD)> layerRanges,
279 ::gsl::span<uchar const> const& indexData,
280 ::dragon::mesh::IndexSize const indexSize
281 ) = 0;
282
283 virtual void generateRenderChunkAdditionalVertexData(
284 ::RenderChunkDirectVertexData& renderChunkDirectVertexData,
285 ::gsl::span<uchar const> const& additionalData,
286 uint64 const& vertexCount,
287 ::mce::VertexFormat const& additionalDataFormat
288 ) = 0;
289
290 virtual void freeRenderChunkVertexData(::RenderChunkDirectVertexData& renderChunkDirectVertexData) = 0;
291
292 virtual void freeRenderChunkIndexData(::RenderChunkDirectIndexData& renderChunkDirectIndexData) = 0;
293
294 virtual void debugPrintToScreen(::std::function<void(char const*)> printFunction) = 0;
295
296 virtual void debugDeclareSceneCamera(
297 ::mce::framebuilder::CameraDescriptionPerspective const& cameraDescription,
298 ::mce::framebuilder::BufferClearDescription const& bufferClearDescription
299 ) = 0;
300
301 virtual void debugDeclareSceneCamera(
302 ::mce::framebuilder::CameraDescriptionOrthographic const& cameraDescription,
303 ::mce::framebuilder::BufferClearDescription const& bufferClearDescription
304 ) = 0;
305
306 virtual ::glm::vec3 getSunDir() const = 0;
307
308 virtual void setSunDir(::glm::vec3 const& sunDir) = 0;
309
310 virtual ::dragon::rendering::ClipSpaceDepthMode getClipSpace() const = 0;
311
312 virtual ::mce::CheckedResourceService<::dragon::ResolvedVertexBufferResource>* getVertexBufferResourceService() = 0;
313
314 virtual ::mce::CheckedResourceService<::dragon::ResolvedIndexBufferResource>* getIndexBufferResourceService() = 0;
315
316 virtual ::mce::CheckedResourceService<::dragon::ResolvedShaderBufferResource>* getShaderBufferResourceService() = 0;
317
318 virtual ::mce::CheckedResourceService<::dragon::ResolvedMaterialResource>* getMaterialResourceService() = 0;
319
320 virtual void
321 initializeTextureCache(::gsl::not_null<::WorkerPool*> workerPool, ::gsl::not_null<::Scheduler*> scheduler) = 0;
322
323 virtual void initializeTextureStreamer() = 0;
324
325 virtual bool isTextureStreamingEnabled() const = 0;
326
327 virtual ::std::shared_ptr<
328 ::dragon::texturestreaming::TextureCache<::dragon::texturestreaming::DragonTextureCacheContext>>
329 getTextureCache() = 0;
330
331 virtual ::dragon::texturestreaming::unimplemented::DebugPolicy::TextureStreamingDebugControl
332 getTextureStreamingDebugControl() = 0;
333
334 virtual ::dragon::materials::MaterialResourceManager* getMaterialResourceManager() = 0;
335
336 virtual ::mce::framebuilder::FrameLightingModelCapabilities getFrameLightingModelCapabilities() const = 0;
337
338 virtual bool isRayTracingCapable() const = 0;
339
340 virtual bool isRayTracingEnabled() const = 0;
341
342 virtual bool isDeferredEnabled() const = 0;
343
344 virtual bool isVSyncEnabled_DEPRECATED() const = 0;
345
346 virtual bool isFrameDiscardWhileRenderingCapable() const = 0;
347
348 virtual bool isFrameDiscardWhileRenderingEnabled() const = 0;
349
350 virtual ::std::shared_ptr<::dragon::rendering::RayTracingResources> const getRayTracingResources() const = 0;
351
352 virtual ::std::shared_ptr<::dragon::rendering::RayTracingResources> getRayTracingResources() = 0;
353
354 virtual ::std::shared_ptr<::dragon::rendering::RayTracingFeatureConfiguration> const
355 getRayTracingFeatureConfiguration() const = 0;
356
357 virtual ::std::shared_ptr<::dragon::rendering::RayTracingFeatureConfiguration>
358 getRayTracingFeatureConfiguration() = 0;
359
360 virtual ::std::shared_ptr<::mce::framebuilder::RenderingFeatureConfiguration> const
361 getRenderingFeatureConfiguration() const = 0;
362
363 virtual ::std::shared_ptr<::mce::framebuilder::RenderingFeatureConfiguration>
364 getRenderingFeatureConfiguration() = 0;
365
366 virtual void setLightingModel(::dragon::rendering::LightingModels lightingModel, bool& modified) = 0;
367
368 virtual ::glm::vec<2, ushort> getRenderResolution() const = 0;
369
370 virtual ::std::vector<::dragon::platform::RenderAPI> getSupportedRenderers() const = 0;
371
372 virtual bool isUpscalingAvailable() const = 0;
373
374 virtual void setUpscaling(bool upscale) = 0;
375
376 virtual bool isUpscalingEnabled() const = 0;
377
378 virtual float getUpscalingFactor() const = 0;
379
380 virtual ::std::string_view const getUpscalingInfo() const = 0;
381
382 virtual void custom(
383 ::std::function<void(::mce::framebuilder::bgfxbridge::EntityCreationContext const&)> const& insertCallback
384 ) = 0;
385
386 virtual void queuePreFrameTask(::std::function<void()> const& task) = 0;
387
388 virtual ::LevelCullerType getLevelCullerType() const = 0;
389
390 virtual ::LevelCullerType getShadowLevelCullerType() const = 0;
391
392 virtual ::FrustumCullerType getFrustumCullerType() const = 0;
393
394 virtual void clearRenderingResourcesCache() = 0;
395
396 virtual void updatePBRData(::mce::framebuilder::PBRTextureDataManager& pbrTextureDataManager) = 0;
397
398 virtual void updateTextureShiftData(::std::vector<::mce::TextureShiftBuffer> const& shiftBuffers) = 0;
399
400 virtual bool shouldRenderPersistentUI(uint64 viewCount) const = 0;
401
402 virtual bool shouldFlipTextureOrigin() const = 0;
403
404 virtual uint getMaxVertexCount() const = 0;
405
406 virtual void queueMaterialReload() = 0;
407
408 virtual void
409 registerWindowHandle(::dragon::platform::SurfaceParameters const&, ushort const, int const, int const) = 0;
410
411 virtual void unregisterWindowHandle(ushort const viewId) = 0;
412
413 virtual ::std::string getGraphicsCapabilitiesJsonString() = 0;
414
415 virtual bool hasGpuTimerSupport() const = 0;
416
417 virtual ::mce::ClientResourcePointer<::dragon::ResolvedImageResource>
418 readBackTexture(::cg::ImageDescription const& destinationImageDescription, ::std::string const& name) = 0;
419
420 virtual ::mce::CheckedResourceService<::dragon::ResolvedTextureResource>* _getTextureResourceService() = 0;
421
422 virtual void _insert(
423 ::std::variant<
424 ::std::reference_wrapper<::mce::framebuilder::LightAmbientDescription const>,
425 ::std::reference_wrapper<::mce::framebuilder::LightDirectionalDescription const>,
426 ::std::reference_wrapper<::mce::framebuilder::gamecomponents::GameplayMetadata const>,
427 ::std::reference_wrapper<::mce::framebuilder::LightPointDescription const>,
428 ::std::reference_wrapper<::mce::framebuilder::ShadowAtlasFrameDescription const>,
429 ::std::reference_wrapper<::mce::framebuilder::gamecomponents::ServerGraphicsOverrideParameters const>,
430 ::std::reference_wrapper<::mce::framebuilder::VoxelVolumeDescription const>> description
431 ) = 0;
432
433 virtual void _insert(
434 ::std::variant<
435 ::std::reference_wrapper<::mce::framebuilder::RenderEnvironmentalTextDescription const>,
436 ::std::reference_wrapper<::mce::framebuilder::RenderNametagDescription const>,
437 ::std::reference_wrapper<::mce::framebuilder::RenderMeshFallbackDescription const>,
438 ::std::reference_wrapper<::mce::framebuilder::RenderChunkGeometryDescription const>,
439 ::std::reference_wrapper<::mce::framebuilder::RenderChunkOccludersDescription const>,
440 ::std::reference_wrapper<::mce::framebuilder::RenderCrackDescription const>,
441 ::std::reference_wrapper<::mce::framebuilder::RenderItemInHandDescription const>,
442 ::std::reference_wrapper<::mce::framebuilder::RenderSkinnedMeshDescription const>,
443 ::std::reference_wrapper<::mce::framebuilder::RenderBlockSelectionOverlayBlockEntityDescription const>,
444 ::std::reference_wrapper<::mce::framebuilder::BlockChangesDescription const>,
445 ::std::reference_wrapper<::mce::framebuilder::RenderBatchActorDescription const>> description
446 ) = 0;
447
448 virtual void _insert(
449 ::std::variant<
450 ::std::reference_wrapper<::mce::framebuilder::RenderAtmosphereDescription const>,
451 ::std::reference_wrapper<::mce::framebuilder::RenderCloudsDescription const>,
452 ::std::reference_wrapper<::mce::framebuilder::RenderCubemapDescription const>,
453 ::std::reference_wrapper<::mce::framebuilder::RenderEndSkyDescription const>,
454 ::std::reference_wrapper<::mce::framebuilder::RenderLegacyCubemapDescription const>,
455 ::std::reference_wrapper<::mce::framebuilder::RenderSkyDescription const>,
456 ::std::reference_wrapper<::mce::framebuilder::RenderStarsDescription const>,
457 ::std::reference_wrapper<::mce::framebuilder::RenderCelestialBodyDescription const>,
458 ::std::reference_wrapper<::mce::framebuilder::RenderVolumetricFogDescription const>,
459 ::std::reference_wrapper<::mce::framebuilder::RenderWeatherDescription const>,
460 ::std::reference_wrapper<::mce::framebuilder::SkyAmbientSamplesDescription const>> description
461 ) = 0;
462
463 virtual void _insert(
464 ::std::variant<
465 ::std::reference_wrapper<::mce::framebuilder::RenderUIGamefaceDescription const>,
466 ::std::reference_wrapper<::mce::framebuilder::RenderUIHudIconDescription const>,
467 ::std::reference_wrapper<::mce::framebuilder::RenderUIMeshDescription const>,
468 ::std::reference_wrapper<::mce::framebuilder::RenderUITextDescription const>,
469 ::std::reference_wrapper<::mce::framebuilder::RenderUIImGuiDescription const>> description
470 ) = 0;
471
472 virtual void _insert(
473 ::std::variant<
474 ::std::reference_wrapper<::mce::framebuilder::RenderFlameBillboardDescription const>,
475 ::std::reference_wrapper<::mce::framebuilder::BlitFlipbookTextureDescription const>,
476 ::std::reference_wrapper<::mce::framebuilder::RenderParticleDescription const>,
477 ::std::reference_wrapper<::mce::framebuilder::RenderPlayerVisionDescription const>,
478 ::std::reference_wrapper<::mce::framebuilder::RenderShadowDescription const>,
479 ::std::reference_wrapper<::mce::framebuilder::FadeToBlackDescription const>,
480 ::std::reference_wrapper<::mce::framebuilder::RenderCameraAimAssistHighlightDescription const>,
481 ::std::reference_wrapper<::mce::framebuilder::FullscreenEffectDescription const>,
482 ::std::reference_wrapper<::mce::framebuilder::gamecomponents::EditorHighlightConfiguration const>>
483 description
484 ) = 0;
485
486 virtual void _insert(
487 ::std::variant<
488 ::std::reference_wrapper<::mce::framebuilder::RenderEditorBlockVolumeBoundingBoxDescription const>,
489 ::std::reference_wrapper<::mce::framebuilder::RenderEditorGizmoHandleArrowDescription const>,
490 ::std::reference_wrapper<::mce::framebuilder::RenderEditorGizmoHandleCubeDescription const>,
491 ::std::reference_wrapper<::mce::framebuilder::RenderEditorGizmoHandlePaneDescription const>,
492 ::std::reference_wrapper<::mce::framebuilder::RenderEditorSelectionCursorDescription const>,
493 ::std::reference_wrapper<::mce::framebuilder::RenderEditorBlockVolumeOutlineDescription const>,
494 ::std::reference_wrapper<::mce::framebuilder::RenderEditorRenderPlaneDescription const>> description
495 ) = 0;
496
497 virtual void _initiateTDR() = 0;
498 // NOLINTEND
499};
500
501} // namespace mce::framebuilder
Definition Scheduler.h:14
Definition WorkerPool.h:16
Definition ResolvedImageResource.h:7
Definition ResolvedMaterialResource.h:7
Definition ResolvedTextureResource.h:7
Definition MaterialResourceManager.h:7
Definition RayTracingFeatureConfiguration.h:7
Definition RayTracingResources.h:7
Definition VertexFormat.h:7
Definition DynamicResolutionController.h:7
Definition FrameBuilderContext.h:7
Definition FrameBuilder.h:7
Definition PBRTextureDataManager.h:7
Definition RenderingFeatureConfiguration.h:7
Definition RangeIndices.h:5
Definition RenderChunkDirectIndexData.h:5
Definition RenderChunkDirectVertexData.h:5
Definition TerrainLayer.h:5
Definition ImageDescription.h:14
Definition RenderMetadata.h:7
Definition ResolvedIndexBufferResource.h:7
Definition ResolvedShaderBufferResource.h:7
Definition ResolvedVertexBufferResource.h:7
Definition TextureDescription.h:7
Definition GLTextureWrapper.h:7
Definition Statistics.h:7
Definition SurfaceParameters.h:7
Definition SharedTextureHandle.h:7
Definition DragonTextureCacheContext.h:7
Definition ClientTexture.h:7
Definition TextureShiftBuffer.h:7
Definition VertexLayout.h:7
Definition ActiveShadowTileInfo.h:7
Definition BiomeBlendingData.h:7
Definition BlitFlipbookTextureDescription.h:7
Definition BlockChangesDescription.h:7
Definition BufferClearDescription.h:7
Definition CameraDescriptionOrthographic.h:7
Definition CameraDescriptionPerspective.h:7
Definition FadeToBlackDescription.h:7
Definition FrameBuilderInitDependencies.h:7
Definition FrameLightingModelCapabilities.h:7
Definition FramePacingConfig.h:7
Definition FullscreenEffectDescription.h:7
Definition LightAmbientDescription.h:7
Definition LightDirectionalDescription.h:7
Definition LightPointDescription.h:7
Definition RenderAtmosphereDescription.h:7
Definition RenderBatchActorDescription.h:7
Definition RenderBlockSelectionOverlayBlockEntityDescription.h:7
Definition RenderCameraAimAssistHighlightDescription.h:7
Definition RenderCelestialBodyDescription.h:7
Definition RenderChunkGeometryDescription.h:7
Definition RenderChunkOccludersDescription.h:7
Definition RenderCloudsDescription.h:7
Definition RenderCrackDescription.h:7
Definition RenderCubemapDescription.h:7
Definition RenderEditorBlockVolumeBoundingBoxDescription.h:7
Definition RenderEditorBlockVolumeOutlineDescription.h:7
Definition RenderEditorGizmoHandleArrowDescription.h:7
Definition RenderEditorGizmoHandleCubeDescription.h:7
Definition RenderEditorGizmoHandlePaneDescription.h:7
Definition RenderEditorRenderPlaneDescription.h:7
Definition RenderEditorSelectionCursorDescription.h:7
Definition RenderEndSkyDescription.h:7
Definition RenderEnvironmentalTextDescription.h:7
Definition RenderFlameBillboardDescription.h:7
Definition RenderItemInHandDescription.h:7
Definition RenderLegacyCubemapDescription.h:7
Definition RenderMeshFallbackDescription.h:7
Definition RenderNametagDescription.h:7
Definition RenderParticleDescription.h:7
Definition RenderPlayerVisionDescription.h:7
Definition RenderShadowDescription.h:7
Definition RenderSkinnedMeshDescription.h:7
Definition RenderSkyDescription.h:7
Definition RenderStarsDescription.h:7
Definition RenderUIGamefaceDescription.h:7
Definition RenderUIHudIconDescription.h:7
Definition RenderUIImGuiDescription.h:7
Definition RenderUIMeshDescription.h:7
Definition RenderUITextDescription.h:7
Definition RenderVolumetricFogDescription.h:7
Definition RenderWeatherDescription.h:7
Definition ShadowAtlasFrameDescription.h:7
Definition SkyAmbientSamplesDescription.h:7
Definition VoxelVolumeDescription.h:7
Definition EntityCreationContext.h:7
Definition EditorHighlightConfiguration.h:7
Definition ServerGraphicsOverrideParameters.h:7