Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
fade_overlay_canvas_renderer.h
1// SPDX-FileCopyrightText: © 2026 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include <vector>
7
8#include <QtCanvasPainter/qcanvaspainter.h>
9#include <QtCanvasPainter/qcanvaspainteritemrenderer.h>
10
11namespace zrythm::gui::qquick
12{
13
15
16class FadeOverlayCanvasRenderer : public QCanvasPainterItemRenderer
17{
18public:
19 FadeOverlayCanvasRenderer () = default;
20 ~FadeOverlayCanvasRenderer () override = default;
21
22 void initializeResources (QCanvasPainter * painter) override;
23 void synchronize (QCanvasPainterItem * item) override;
24 void paint (QCanvasPainter * painter) override;
25
26private:
27 int fade_type_ = 0;
28 bool hovered_ = false;
29 QColor overlay_color_{ 51, 51, 51, 153 };
30 QColor curve_color_{ 255, 255, 255, 200 };
31 float canvas_width_ = 0.0f;
32 float canvas_height_ = 0.0f;
33 bool has_valid_fade_ = false;
34
35 // Pre-computed curve Y values (copied from item during synchronize)
36 std::vector<double> cached_curve_y_;
37};
38
39} // namespace zrythm::gui::qquick
QML-visible canvas item that renders a single fade overlay.