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 <vector>
10
11namespace pixelbullet
12{
13class Filesystem;
14class Scene;
15
17{
18 float resolve_scene_transforms_milliseconds = 0.0f;
19 float resolve_prefab_instances_milliseconds = 0.0f;
20 float load_prefab_assets_milliseconds = 0.0f;
21 float evaluate_prefab_animation_milliseconds = 0.0f;
22 float resolve_prefab_transforms_milliseconds = 0.0f;
23 float build_resolved_instances_milliseconds = 0.0f;
24 float extract_render_data_milliseconds = 0.0f;
25 std::uint32_t scene_transform_resolve_passes = 0u;
26 std::uint32_t prefab_instance_resolve_passes = 0u;
27};
28
30{
31 SceneResolvedTransforms resolved_transforms;
32 std::vector<ResolvedPrefabInstance> prefab_instances;
33 SceneRenderData render_data;
34};
35
36[[nodiscard]] SceneRenderAnalysisResult AnalyzeSceneForRendering(
37 const Scene& scene, const Filesystem* filesystem, glm::uvec2 target_extent,
38 const SceneTransformOverrides* transform_overrides = nullptr,
39 const SceneMorphWeightOverrides* morph_weight_overrides = nullptr,
40 const ScenePrefabTransformOverrides* prefab_transform_overrides = nullptr,
41 const ScenePrefabMorphWeightOverrides* prefab_morph_weight_overrides = nullptr,
42 std::optional<float> prefab_time_seconds = std::nullopt, SceneRenderAnalysisTimings* timings = nullptr);
43} // namespace pixelbullet
Definition filesystem.h:16
Definition scene.h:23
Definition animation_evaluation.h:46
Definition prefab_resolution.h:46
Definition prefab_resolution.h:30
Definition render_analysis.h:30
Definition render_analysis.h:17
Definition render_data.h:117
Definition transform_resolution.h:17
Definition animation_evaluation.h:16