PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
render_analysis.h
1#pragma once
2
3#include "pixelbullet/scene/prefab_resolution.h"
4#include "pixelbullet/scene/render_data.h"
5#include "pixelbullet/scene/transform_resolution.h"
6
7#include <cstdint>
8#include <optional>
9#include <unordered_set>
10#include <vector>
11
12namespace pixelbullet
13{
14class Filesystem;
15class Scene;
16
18{
19 float resolve_scene_transforms_milliseconds = 0.0f;
20 float resolve_prefab_instances_milliseconds = 0.0f;
21 float load_prefab_assets_milliseconds = 0.0f;
22 float evaluate_prefab_animation_milliseconds = 0.0f;
23 float resolve_prefab_transforms_milliseconds = 0.0f;
24 float build_resolved_instances_milliseconds = 0.0f;
25 float extract_render_data_milliseconds = 0.0f;
26 PrefabAssetLoadStats prefab_asset_load_stats;
27 ScenePrefabResolvedInstanceStats prefab_resolved_instance_stats;
28 std::uint32_t scene_transform_resolve_passes = 0u;
29 std::uint32_t prefab_instance_resolve_passes = 0u;
30};
31
33{
34 SceneResolvedTransforms resolved_transforms;
35 std::vector<ResolvedPrefabInstance> prefab_instances;
36 SceneRenderData render_data;
37};
38
40{
41 std::unordered_set<EntityId::ValueType> hidden_render_sources;
42};
43
44[[nodiscard]] SceneRenderAnalysisResult AnalyzeSceneForRendering(
45 const Scene& scene, const Filesystem* filesystem, glm::uvec2 target_extent,
46 const SceneTransformOverrides* transform_overrides = nullptr, const SceneMorphWeightOverrides* morph_weight_overrides = nullptr,
47 const ScenePrefabTransformOverrides* prefab_transform_overrides = nullptr,
48 const ScenePrefabMorphWeightOverrides* prefab_morph_weight_overrides = nullptr, std::optional<float> prefab_time_seconds = std::nullopt,
49 SceneRenderAnalysisTimings* timings = nullptr, SceneRenderExtractionOptions extraction_options = {},
50 const ScenePrefabAnimationPreview* prefab_animation_preview = nullptr);
51} // namespace pixelbullet
Definition filesystem.h:20
Definition scene.h:31
Definition prefab_asset_io.h:59
Definition animation_evaluation.h:105
Definition prefab_resolution.h:123
Definition prefab_resolution.h:153
Definition prefab_resolution.h:93
Definition render_analysis.h:33
Definition render_analysis.h:18
Definition render_data.h:138
Definition render_analysis.h:40
Definition transform_resolution.h:17
Definition animation_evaluation.h:19