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