Loading...
Searching...
No Matches
RenderState.hpp
1#pragma once
2#include <QOffscreenSurface>
3#include <QtGui/private/qrhi_p.h>
4
5#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0)
6using QRhiBufferReadbackResult = QRhiReadbackResult;
7#endif
8
9class QOffscreenSurface;
10namespace score::gfx
11{
12class RenderList;
17{
18 Null,
19 OpenGL,
20 Vulkan,
21 D3D11,
22 Metal,
23 D3D12
24};
25
26class Window;
27
32{
33 RenderState() = default;
34 RenderState(const RenderState&) = delete;
35 RenderState(RenderState&&) = delete;
36 RenderState& operator=(const RenderState&) = delete;
37 RenderState& operator=(RenderState&&) = delete;
38
39 QRhi* rhi{};
40 QRhiRenderPassDescriptor* renderPassDescriptor{};
41 std::weak_ptr<RenderList> renderer{};
42
43 QOffscreenSurface* surface{};
44 std::weak_ptr<score::gfx::Window>
45 window{}; // Not always set, only used to get mouse events & such.
46 QSize renderSize{};
47 QSize outputSize{};
48 int samples{1};
49 GraphicsApi api{};
50 QShaderVersion version{};
51
52 void destroy()
53 {
54 window.reset();
55
56 delete rhi;
57 rhi = nullptr;
58
59 delete surface;
60 surface = nullptr;
61 }
62};
63}
Graphics rendering pipeline for ossia score.
Definition Filter/PreviewWidget.hpp:12
GraphicsApi
Available graphics APIs to use.
Definition RenderState.hpp:17
Global state associated to a rendering context.
Definition RenderState.hpp:32