Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
midi_region_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 <QColor>
9#include <QtCanvasPainter/qcanvaspainter.h>
10#include <QtCanvasPainter/qcanvaspainteritemrenderer.h>
11
12namespace zrythm::gui::qquick
13{
14
16
17class MidiRegionCanvasRenderer : public QCanvasPainterItemRenderer
18{
19public:
20 MidiRegionCanvasRenderer () = default;
21 Q_DISABLE_COPY_MOVE (MidiRegionCanvasRenderer)
22
23 void synchronize (QCanvasPainterItem * item) override;
24 void paint (QCanvasPainter * painter) override;
25
26private:
27 struct NoteRect
28 {
29 float x;
30 float y;
31 float width;
32 float height;
33 bool muted;
34 };
35
36 std::vector<NoteRect> note_rects_;
37 QColor note_color_;
38 QColor dimmed_color_;
39 float canvas_width_ = 0.0f;
40 float canvas_height_ = 0.0f;
41};
42
43} // namespace zrythm::gui::qquick