MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
Inspector.cpp
Go to the documentation of this file.
1#include "Inspector.hpp"
2
4
6
7namespace {
8 constexpr size_t k_row_buffer_capacity = 4096;
9}
10
11std::shared_ptr<Buffers::FormaBuffer> Inspector::make_header_buffer(
12 const std::shared_ptr<Core::Window>& window) const
13{
14 auto buf = std::make_shared<Buffers::FormaBuffer>(
15 k_row_buffer_capacity, Graphics::PrimitiveTopology::TRIANGLE_LIST);
17 buf->setup_rendering({
18 .target_window = window,
19 .additional_textures = { { "text", nullptr } },
20 });
21 return buf;
22}
23
24std::vector<EntryBuffer> Inspector::make_row_buffers(
25 const std::shared_ptr<Core::Window>& window,
26 size_t count) const
27{
28 std::vector<EntryBuffer> rows;
29 if (count == 0) {
30 return rows;
31 }
32
33 const auto buf = make_header_buffer(window);
34
35 rows.reserve(count);
36 for (size_t i = 0; i < count; ++i) {
38 }
39 return rows;
40}
41
43{
44 if (m_node_graph_result && &result == &*m_node_graph_result) {
45 m_node_graph_result.reset();
46 return;
47 }
48 if (m_buffer_result && &result == &*m_buffer_result) {
49 m_buffer_result.reset();
50 return;
51 }
52 if (m_scheduler_result && &result == &*m_scheduler_result) {
53 m_scheduler_result.reset();
54 return;
55 }
56 if (m_event_result && &result == &*m_event_result) {
57 m_event_result.reset();
58 return;
59 }
60 result = InspectResult {};
61}
62
63} // namespace MayaFlux::Portal::Forma
uint32_t rows
std::weak_ptr< Core::Window > window
Definition Picker.cpp:23
size_t count
void add_buffer(const std::shared_ptr< Buffer > &buffer, ProcessingToken token, uint32_t channel=0)
Adds a buffer to a token and channel.
static FormaTarget slice_of(const std::shared_ptr< Buffers::FormaBuffer > &buffer, std::optional< Graphics::PrimitiveTopology > topology=std::nullopt)
A new empty slice of buffer, drawn after the others.
Definition Target.cpp:19
std::shared_ptr< Buffers::FormaBuffer > make_header_buffer(const std::shared_ptr< Core::Window > &window) const
A "text"-slotted buffer, registered with the BufferManager.
Definition Inspector.cpp:11
std::vector< EntryBuffer > make_row_buffers(const std::shared_ptr< Core::Window > &window, size_t count) const
count row targets, slices of one "text"-slotted buffer, for make_entry_group's rows.
Definition Inspector.cpp:24
std::optional< InspectResult > m_scheduler_result
std::optional< InspectResult > m_node_graph_result
void destroy(InspectResult &result)
Destroy an InspectResult and release its resources.
Definition Inspector.cpp:42
std::optional< InspectResult > m_event_result
Buffers::BufferManager & m_bm
std::optional< InspectResult > m_buffer_result
@ GRAPHICS_BACKEND
Standard graphics processing backend configuration.
Result of an introspect call.