Loading...
Searching...
No Matches
RhiTextureReadback.hpp
1#pragma once
2#include <score_plugin_gfx_export.h>
3
4#include <cstddef>
5
6class QRhi;
7class QRhiCommandBuffer;
8class QRhiTexture;
9
10namespace score::gfx
11{
48struct ReadbackTarget;
49
52SCORE_PLUGIN_GFX_EXPORT
53bool canReadbackToHostMemory(QRhi& rhi) noexcept;
54
63enum class ReadbackPath
64{
65 Unsupported,
66 HostCopy,
67 Import
68};
69SCORE_PLUGIN_GFX_EXPORT
70ReadbackPath readbackPath(QRhi& rhi) noexcept;
71
78SCORE_PLUGIN_GFX_EXPORT
79std::size_t readbackHostMemoryAlignment(QRhi& rhi) noexcept;
80
85SCORE_PLUGIN_GFX_EXPORT
86bool readbackTextureSupported(QRhi& rhi, QRhiTexture& src, std::size_t dstBytes) noexcept;
87
92SCORE_PLUGIN_GFX_EXPORT
93std::size_t readbackDstOffsetAlignment(QRhi& rhi, QRhiTexture& src) noexcept;
94
99SCORE_PLUGIN_GFX_EXPORT
100ReadbackTarget* createReadbackTarget(QRhi& rhi, void* dst, std::size_t bytes);
101
102SCORE_PLUGIN_GFX_EXPORT
103void destroyReadbackTarget(ReadbackTarget*);
104
113SCORE_PLUGIN_GFX_EXPORT
115 QRhi& rhi, QRhiCommandBuffer& cb, QRhiTexture& src, ReadbackTarget& dst,
116 std::size_t dstOffset = 0);
117
123SCORE_PLUGIN_GFX_EXPORT
124bool finishReadbackToHost(QRhi& rhi, ReadbackTarget& dst);
125}
Graphics rendering pipeline for ossia score.
Definition Filter/PreviewWidget.hpp:11
std::size_t readbackDstOffsetAlignment(QRhi &rhi, QRhiTexture &src) noexcept
Definition RhiTextureReadback.cpp:649
bool readbackTextureToHost(QRhi &rhi, QRhiCommandBuffer &cb, QRhiTexture &src, ReadbackTarget &t, std::size_t dstOffset)
Definition RhiTextureReadback.cpp:672
bool canReadbackToHostMemory(QRhi &rhi) noexcept
Definition RhiTextureReadback.cpp:221
bool finishReadbackToHost(QRhi &rhi, ReadbackTarget &t)
Definition RhiTextureReadback.cpp:957
std::size_t readbackHostMemoryAlignment(QRhi &rhi) noexcept
Definition RhiTextureReadback.cpp:278
bool readbackTextureSupported(QRhi &rhi, QRhiTexture &src, std::size_t dstBytes) noexcept
Definition RhiTextureReadback.cpp:312
ReadbackPath
Definition RhiTextureReadback.hpp:64
@ Import
caller pages imported; GPU writes them directly
@ HostCopy
driver buffer + memcpy + fence on the render thread
ReadbackTarget * createReadbackTarget(QRhi &rhi, void *dst, std::size_t bytes)
Definition RhiTextureReadback.cpp:352