chrono_batch_render/
Coverage:
low: ≥ 0%
medium: ≥ 75.0%
high: ≥ 90.0%
Lines:
1 / 1
100.0%
Branches:
65 / 169
38.5%
Functions:
-
-%

render/renderer.h
Line Branch Exec Source
1 // SPDX-License-Identifier: BSD-3-Clause
2 #pragma once
3
4 #include <cstdint>
5 #include <memory>
6 #include <string>
7 #include <string_view>
8 #include <vector>
9
10 #include "chrono_batch_render/device/ref.h"
11 #include "chrono_batch_render/device/stream.h"
12 #include "chrono_batch_render/export.h"
13 #include "chrono_batch_render/overlay/overlay.h"
14 #include "chrono_batch_render/render/render_output.h"
15 #include "chrono_batch_render/util/span.h"
16
17 namespace chrono::batch_render {
18
19 class RendererImpl;
20 class Scene;
21
22 enum class Streaming : uint8_t {
23 Blocking,
24 Progressive,
25 };
26
27
65/169
✗ Branch 0 not taken.
✗ Branch 0 not taken.
✓ Branch 1 taken 2 times.
✓ Branch 1 taken 31 times.
✓ Branch 2 taken 1 time.
✗ Branch 2 not taken.
✓ Branch 3 taken 15 times.
✗ Branch 3 not taken.
✗ Branch 4 not taken.
✗ Branch 4 not taken.
✗ Branch 4 not taken.
✗ Branch 4 not taken.
✗ Branch 5 not taken.
✓ Branch 5 taken 2 times.
✓ Branch 5 taken 1 time.
✓ Branch 6 taken 2 times.
✓ Branch 6 taken 12 times.
✓ Branch 6 taken 1 time.
✗ Branch 7 not taken.
✗ Branch 7 not taken.
✗ Branch 7 not taken.
✓ Branch 8 taken 2 times.
✓ Branch 8 taken 15 times.
✗ Branch 8 not taken.
✓ Branch 8 taken 1 time.
✗ Branch 9 not taken.
✗ Branch 9 not taken.
✗ Branch 9 not taken.
✗ Branch 10 not taken.
✓ Branch 10 taken 12 times.
✗ Branch 10 not taken.
✗ Branch 10 not taken.
✗ Branch 11 not taken.
✗ Branch 11 not taken.
✓ Branch 11 taken 1 time.
✗ Branch 11 not taken.
✗ Branch 12 not taken.
✗ Branch 12 not taken.
✗ Branch 12 not taken.
✗ Branch 13 not taken.
✗ Branch 13 not taken.
✓ Branch 13 taken 1 time.
✗ Branch 13 not taken.
✗ Branch 13 not taken.
✓ Branch 14 taken 1 time.
✗ Branch 14 not taken.
✓ Branch 14 taken 1 time.
✓ Branch 15 taken 21 times.
✗ Branch 15 not taken.
✓ Branch 15 taken 1 time.
✗ Branch 15 not taken.
✓ Branch 16 taken 1 time.
✗ Branch 16 not taken.
✗ Branch 16 not taken.
✓ Branch 17 taken 21 times.
✗ Branch 17 not taken.
✗ Branch 17 not taken.
✗ Branch 18 not taken.
✓ Branch 18 taken 1 time.
✗ Branch 19 not taken.
✗ Branch 19 not taken.
✗ Branch 19 not taken.
✗ Branch 20 not taken.
✗ Branch 20 not taken.
✗ Branch 21 not taken.
✗ Branch 21 not taken.
✗ Branch 21 not taken.
✓ Branch 22 taken 1 time.
✓ Branch 22 taken 11 times.
✓ Branch 22 taken 1 time.
✗ Branch 23 not taken.
✓ Branch 24 taken 10 times.
✗ Branch 24 not taken.
✓ Branch 24 taken 1 time.
✗ Branch 25 not taken.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✗ Branch 26 not taken.
✗ Branch 27 not taken.
✓ Branch 27 taken 5 times.
✗ Branch 27 not taken.
✗ Branch 28 not taken.
✗ Branch 28 not taken.
✓ Branch 29 taken 13 times.
✓ Branch 29 taken 1 time.
✓ Branch 31 taken 8 times.
✓ Branch 31 taken 1 time.
✗ Branch 32 not taken.
✗ Branch 33 not taken.
✗ Branch 33 not taken.
✗ Branch 33 not taken.
✗ Branch 34 not taken.
✓ Branch 34 taken 1 time.
✗ Branch 34 not taken.
✗ Branch 35 not taken.
✗ Branch 35 not taken.
✓ Branch 36 taken 7 times.
✓ Branch 36 taken 1 time.
✓ Branch 38 taken 6 times.
✓ Branch 38 taken 1 time.
✗ Branch 39 not taken.
✗ Branch 40 not taken.
✗ Branch 40 not taken.
✓ Branch 41 taken 1 time.
✗ Branch 41 not taken.
✗ Branch 42 not taken.
✗ Branch 42 not taken.
✓ Branch 43 taken 1 time.
✓ Branch 43 taken 4 times.
✓ Branch 43 taken 1 time.
✓ Branch 44 taken 1 time.
✗ Branch 45 not taken.
✓ Branch 45 taken 3 times.
✗ Branch 45 not taken.
✓ Branch 45 taken 1 time.
✗ Branch 46 not taken.
✓ Branch 46 taken 1 time.
✗ Branch 46 not taken.
✗ Branch 47 not taken.
✗ Branch 47 not taken.
✗ Branch 48 not taken.
✗ Branch 48 not taken.
✗ Branch 48 not taken.
✗ Branch 48 not taken.
✓ Branch 49 taken 1 time.
✗ Branch 49 not taken.
✓ Branch 49 taken 1 time.
✓ Branch 50 taken 3 times.
✓ Branch 51 taken 1 time.
✓ Branch 51 taken 1 time.
✓ Branch 51 taken 1 time.
✓ Branch 52 taken 3 times.
✗ Branch 53 not taken.
✓ Branch 53 taken 1 time.
✗ Branch 53 not taken.
✗ Branch 54 not taken.
✗ Branch 54 not taken.
✗ Branch 55 not taken.
✗ Branch 55 not taken.
✗ Branch 56 not taken.
✗ Branch 56 not taken.
✓ Branch 56 taken 2 times.
✓ Branch 57 taken 1 time.
✓ Branch 57 taken 2 times.
✓ Branch 58 taken 2 times.
✗ Branch 58 not taken.
✓ Branch 59 taken 1 time.
✓ Branch 59 taken 1 time.
✗ Branch 59 not taken.
✗ Branch 60 not taken.
✗ Branch 61 not taken.
✗ Branch 61 not taken.
✗ Branch 62 not taken.
✗ Branch 62 not taken.
✗ Branch 63 not taken.
✗ Branch 63 not taken.
✓ Branch 64 taken 1 time.
✓ Branch 64 taken 1 time.
✓ Branch 66 taken 1 time.
✓ Branch 66 taken 1 time.
✗ Branch 68 not taken.
✗ Branch 68 not taken.
✗ Branch 69 not taken.
✗ Branch 69 not taken.
✗ Branch 71 not taken.
✓ Branch 72 taken 2 times.
✓ Branch 74 taken 2 times.
✗ Branch 76 not taken.
✗ Branch 77 not taken.
151 struct CHRONO_BATCH_RENDER_API RendererDesc {
28 uint64_t maxPixelsPerLaunch = uint64_t(1) << 30;
29 Ref<Overlays> overlays;
30 Streaming streaming = Streaming::Blocking;
31 };
32
33 class CHRONO_BATCH_RENDER_API Renderer {
34 public:
35 explicit Renderer(Ref<Scene> scene, const RendererDesc& desc = {});
36 ~Renderer();
37 Renderer(Renderer&&) noexcept;
38 Renderer& operator=(Renderer&&) noexcept;
39
40 RenderOutput Step(Span<const std::string> products, Stream stream = Stream::None());
41 RenderOutput Step(std::string_view product, Stream stream = Stream::None());
42
43 const Ref<Overlays>& GetOverlays() const;
44
45 private:
46 std::unique_ptr<RendererImpl> m_impl;
47 };
48
49 }
50