Loading...
Searching...
No Matches
ImageNode.hpp
1#pragma once
2
3#include <Gfx/Graph/Node.hpp>
4namespace score {
5struct DocumentContext;
6}
7class QSvgRenderer;
8namespace score::gfx
9{
10enum ImageMode
11{
12 Single,
13 Clamped,
14 Tiled,
15 Mirrored
16};
17
22{
23public:
24 explicit ImagesNode(const score::DocumentContext& ctx);
25 virtual ~ImagesNode();
26
27 score::gfx::NodeRenderer* createRenderer(RenderList& r) const noexcept override;
28
30 class OnTheFlyRenderer;
31
32#pragma pack(push, 1)
33 struct UBO
34 {
35 int currentImageIndex{};
36 float opacity{1.};
37 float position[2]{0.5, 0.5};
38 float scale[2]{1., 1.};
39 } ubo;
40#pragma pack(pop)
41
42 std::atomic_int imagesChanged{};
43 std::atomic<ImageMode> tileMode{};
44 score::gfx::ScaleMode scaleMode{score::gfx::ScaleMode::Original};
45 float scale_w{1.0f};
46 float scale_h{1.0f};
47
48private:
49 void clear();
50 void process(Message&& msg) override;
51
52 using image_type = std::variant<QImage*, QSvgRenderer*>;
53 const score::DocumentContext& ctx;
54 std::vector<score::gfx::Image> images;
55 std::vector<image_type> linearImages;
56};
58{
59public:
60 explicit FullScreenImageNode(QImage dec);
61 virtual ~FullScreenImageNode();
62
63 score::gfx::NodeRenderer* createRenderer(RenderList& r) const noexcept override;
64
65 class Renderer;
66
67private:
68 QImage m_image;
69};
70}
Definition ImageNode.cpp:322
Common base class for most single-pass, simple nodes.
Definition score-plugin-gfx/Gfx/Graph/Node.hpp:200
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
Base toolkit upon which the software is built.
Definition Application.cpp:99
Definition DocumentContext.hpp:18
Definition ImageNode.hpp:58
score::gfx::NodeRenderer * createRenderer(RenderList &r) const noexcept override
Create a renderer in a given context for this node.
Definition ImageNode.cpp:1000
Definition ImageNode.hpp:34
A node that renders an image to screen.
Definition ImageNode.hpp:22
score::gfx::NodeRenderer * createRenderer(RenderList &r) const noexcept override
Create a renderer in a given context for this node.
Definition ImageNode.cpp:863