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 std::uint32_t scene_transform_resolve_passes = 0u;
27 std::uint32_t prefab_instance_resolve_passes = 0u;
28};
29
31{
32 SceneResolvedTransforms resolved_transforms;
33 std::vector<ResolvedPrefabInstance> prefab_instances;
34 SceneRenderData render_data;
35};
36
38{
39 std::unordered_set<EntityId::ValueType> hidden_render_sources;
40};
41
42[[nodiscard]] SceneRenderAnalysisResult AnalyzeSceneForRendering(
43 const Scene& scene, const Filesystem* filesystem, glm::uvec2 target_extent,
44 const SceneTransformOverrides* transform_overrides = nullptr, const SceneMorphWeightOverrides* morph_weight_overrides = nullptr,
45 const ScenePrefabTransformOverrides* prefab_transform_overrides = nullptr,
46 const ScenePrefabMorphWeightOverrides* prefab_morph_weight_overrides = nullptr, std::optional<float> prefab_time_seconds = std::nullopt,
47 SceneRenderAnalysisTimings* timings = nullptr, SceneRenderExtractionOptions extraction_options = {},
48 const ScenePrefabAnimationPreview* prefab_animation_preview = nullptr);
49} // namespace pixelbullet
Definition filesystem.h:19
Definition scene.h:30
Definition animation_evaluation.h:105
Definition prefab_resolution.h:121
Definition prefab_resolution.h:91
Definition render_analysis.h:31
Definition render_analysis.h:18
Definition render_data.h:138
Definition render_analysis.h:38
Definition transform_resolution.h:17
Definition animation_evaluation.h:19