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};
69ReadbackPath readbackPath(QRhi& rhi) noexcept;
70
77SCORE_PLUGIN_GFX_EXPORT
78std::size_t readbackHostMemoryAlignment(QRhi& rhi) noexcept;
79
84SCORE_PLUGIN_GFX_EXPORT
85bool readbackTextureSupported(QRhi& rhi, QRhiTexture& src, std::size_t dstBytes) noexcept;
86
91SCORE_PLUGIN_GFX_EXPORT
92std::size_t readbackDstOffsetAlignment(QRhi& rhi, QRhiTexture& src) noexcept;
93
98SCORE_PLUGIN_GFX_EXPORT
99ReadbackTarget* createReadbackTarget(QRhi& rhi, void* dst, std::size_t bytes);
100
101SCORE_PLUGIN_GFX_EXPORT
102void destroyReadbackTarget(ReadbackTarget*);
103
112SCORE_PLUGIN_GFX_EXPORT
114 QRhi& rhi, QRhiCommandBuffer& cb, QRhiTexture& src, ReadbackTarget& dst,
115 std::size_t dstOffset = 0);
116
122SCORE_PLUGIN_GFX_EXPORT
123bool finishReadbackToHost(QRhi& rhi, ReadbackTarget& dst);
124}
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