84 halp_meta(name,
"Texture view")
85 halp_meta(c_name,
"TextureView")
86 halp_meta(category,
"Monitoring/Visuals")
87 halp_meta(author,
"ossia score")
88 halp_meta(manual_url,
"")
91 "Show a texture: channels, luma, false colour, zebras, focus peaking, "
92 "out of gamut and NaN values, or a wipe or difference with a reference")
93 halp_meta(uuid,
"ede620d7-9f3f-4a0a-a6f0-27297cfe7801")
94 halp_flag(fully_custom_item);
99 halp::gpu_texture_input<
"In"> image;
100 halp::gpu_texture_input<
"Reference"> reference;
101 struct : halp::combobox_t<
"Mode", Mode>
105 std::string_view values[12]{
106 mode_names[0], mode_names[1], mode_names[2], mode_names[3],
107 mode_names[4], mode_names[5], mode_names[6], mode_names[7],
108 mode_names[8], mode_names[9], mode_names[10], mode_names[11]};
109 Mode init{Mode::View};
112 struct : halp::spinbox_f32<
"Exposure", halp::range{-10., 10., 0.}>
114 halp_meta(description,
"Stops of gain applied before display, to read floating point images")
116 struct : halp::toggle_t<bool,
"NaN", halp::toggle_setup{.init =
true}>
118 halp_meta(description,
"Flash pixels that are NaN or infinite, in every mode")
120 struct : halp::combobox_t<
"Background", Background>
122 halp_meta(description,
"What transparent pixels are shown over in View mode")
125 std::string_view values[6]{
"Checkerboard",
"Black",
"Grey",
"White",
"Magenta",
"Ignore alpha"};
126 Background init{Background::Checkerboard};
129 struct : halp::combobox_t<
"Luma", LumaStandard>
133 std::string_view values[2]{
"Rec. 709",
"Rec. 2020"};
134 LumaStandard init{LumaStandard::Rec709};
137 struct : halp::hslider_f32<
"Zebra high", halp::range{0.5, 1.5, 0.95}>
140 struct : halp::hslider_f32<
"Zebra low", halp::range{0., 0.1, 0.02}>
143 struct : halp::hslider_f32<
"Peaking", halp::range{0.01, 1., 0.15}>
145 halp_meta(description,
"Edge strength above which focus peaking marks a pixel")
147 struct : halp::hslider_f32<
"Blend", halp::range{0., 1., 0.6}>
149 halp_meta(description,
"How much the overlays cover the image")
151 struct : halp::hslider_f32<
"Wipe", halp::range{0., 1., 0.5}>
153 halp_meta(description,
"Where the reference starts, from the left, in Wipe mode")
162 halp::gpu_texture_output<
"Out"> texture;
163 struct : halp::val_port<
"Resolution", std::array<float, 2>>
165 halp_meta(description,
"Width and height the input is rendered at, in pixels: the graph renders an input at the size its consumer shows it")
173 std::shared_ptr<Ui::Monitor::TextureShapeMonitor> monitor
174 = std::make_shared<Ui::Monitor::TextureShapeMonitor>();
180 void runInitialPasses(
184 void operator()() { }
187 void setBindings(QRhiTexture* input, QRhiTexture* reference);
188 bool resizeOutput(QSize sz);
193 QRhiBuffer* m_params{};
194 QRhiTexture* m_out{};
195 QRhiSampler* m_sampler{};
196 QRhiShaderResourceBindings* m_srb{};
197 std::array<QRhiComputePipeline*, score::gfx::texture_kind_count> m_pipelines{};
199 std::array<bool, score::gfx::texture_kind_count> m_failed{};
200 void* m_boundInput{};
201 void* m_boundReference{};
Definition TextureView.cpp:14
Definition ProcessContext.hpp:12
Definition TextureView.hpp:206
void paintOverlay(QPainter *p, const QRectF &image) const override
Drawn over the image.
Definition TextureView.cpp:407
Definition TextureView.hpp:83
Definition TextureKind.hpp:31