Loading...
Searching...
No Matches
ImageNode.hpp
1#pragma once
2
3#include <Gfx/Graph/Node.hpp>
4
5class QSvgRenderer;
6namespace score::gfx
7{
8enum ImageMode
9{
10 Single,
11 Clamped,
12 Tiled,
13 Mirrored
14};
15
20{
21public:
22 explicit ImagesNode();
23 virtual ~ImagesNode();
24
25 score::gfx::NodeRenderer* createRenderer(RenderList& r) const noexcept override;
26
28 class OnTheFlyRenderer;
29
30#pragma pack(push, 1)
31 struct UBO
32 {
33 int currentImageIndex{};
34 float opacity{1.};
35 float position[2]{0.5, 0.5};
36 float scale[2]{1., 1.};
37 } ubo;
38#pragma pack(pop)
39
40 std::atomic_int imagesChanged{};
41 std::atomic<ImageMode> tileMode{};
42 score::gfx::ScaleMode scaleMode{score::gfx::ScaleMode::Original};
43 float scale_w{1.0f};
44 float scale_h{1.0f};
45
46private:
47 void clear();
48 void process(Message&& msg) override;
49
50 using image_type = std::variant<QImage*, QSvgRenderer*>;
51 std::vector<score::gfx::Image> images;
52 std::vector<image_type> linearImages;
53};
55{
56public:
57 explicit FullScreenImageNode(QImage dec);
58 virtual ~FullScreenImageNode();
59
60 score::gfx::NodeRenderer* createRenderer(RenderList& r) const noexcept override;
61
62 class Renderer;
63
64private:
65 QImage m_image;
66};
67}
Definition ImageNode.cpp:321
Common base class for most single-pass, simple nodes.
Definition score-plugin-gfx/Gfx/Graph/Node.hpp:204
Renderer for a given node.
Definition NodeRenderer.hpp:11
List of nodes to be rendered to an output.
Definition RenderList.hpp:19
Graphics rendering pipeline for ossia score.
Definition Filter/PreviewWidget.hpp:12
ScaleMode
How to resize a texture to adapt it to a viewport.
Definition Scale.hpp:10
Definition ImageNode.hpp:55
score::gfx::NodeRenderer * createRenderer(RenderList &r) const noexcept override
Create a renderer in a given context for this node.
Definition ImageNode.cpp:980
Definition ImageNode.hpp:32
A node that renders an image to screen.
Definition ImageNode.hpp:20
score::gfx::NodeRenderer * createRenderer(RenderList &r) const noexcept override
Create a renderer in a given context for this node.
Definition ImageNode.cpp:843