Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qrhinull_p.h
Go to the documentation of this file.
1// Copyright (C) 2023 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QRHINULL_P_H
6#define QRHINULL_P_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists purely as an
13// implementation detail. This header file may change from version to
14// version without notice, or even be removed.
15//
16// We mean it.
17//
18
19#include "qrhi_p.h"
20
22
23struct QNullBuffer : public QRhiBuffer
24{
25 QNullBuffer(QRhiImplementation *rhi, Type type, UsageFlags usage, quint32 size);
26 ~QNullBuffer();
27 void destroy() override;
28 bool create() override;
30
31 char *data = nullptr;
32};
33
35{
36 QNullRenderBuffer(QRhiImplementation *rhi, Type type, const QSize &pixelSize,
37 int sampleCount, QRhiRenderBuffer::Flags flags,
38 QRhiTexture::Format backingFormatHint);
40 void destroy() override;
41 bool create() override;
42 QRhiTexture::Format backingFormat() const override;
43
44 bool valid = false;
45 uint generation = 0;
46};
47
49{
50 QNullTexture(QRhiImplementation *rhi, Format format, const QSize &pixelSize, int depth,
51 int arraySize, int sampleCount, Flags flags);
52 ~QNullTexture();
53 void destroy() override;
54 bool create() override;
55 bool createFrom(NativeTexture src) override;
56
57 bool valid = false;
59 uint generation = 0;
60};
61
63{
64 QNullSampler(QRhiImplementation *rhi, Filter magFilter, Filter minFilter, Filter mipmapMode,
65 AddressMode u, AddressMode v, AddressMode w);
66 ~QNullSampler();
67 void destroy() override;
68 bool create() override;
69};
70
72{
73 QNullRenderPassDescriptor(QRhiImplementation *rhi);
75 void destroy() override;
76 bool isCompatible(const QRhiRenderPassDescriptor *other) const override;
78 QVector<quint32> serializedFormat() const override;
79};
80
90
92{
93 QNullSwapChainRenderTarget(QRhiImplementation *rhi, QRhiSwapChain *swapchain);
95 void destroy() override;
96
97 QSize pixelSize() const override;
98 float devicePixelRatio() const override;
99 int sampleCount() const override;
100
102};
103
105{
106 QNullTextureRenderTarget(QRhiImplementation *rhi, const QRhiTextureRenderTargetDescription &desc, Flags flags);
108 void destroy() override;
109
110 QSize pixelSize() const override;
111 float devicePixelRatio() const override;
112 int sampleCount() const override;
113
115 bool create() override;
116
118};
119
121{
122 QNullShaderResourceBindings(QRhiImplementation *rhi);
124 void destroy() override;
125 bool create() override;
126 void updateResources(UpdateFlags flags) override;
127};
128
130{
131 QNullGraphicsPipeline(QRhiImplementation *rhi);
133 void destroy() override;
134 bool create() override;
135};
136
138{
139 QNullComputePipeline(QRhiImplementation *rhi);
141 void destroy() override;
142 bool create() override;
143};
144
146{
147 QNullCommandBuffer(QRhiImplementation *rhi);
149 void destroy() override;
150};
151
153{
154 QNullSwapChain(QRhiImplementation *rhi);
156 void destroy() override;
157
158 QRhiCommandBuffer *currentFrameCommandBuffer() override;
160
161 QSize surfacePixelSize() override;
162 bool isFormatSupported(Format f) override;
163
166
167 QWindow *window = nullptr;
170 int frameCount = 0;
171};
172
174{
175public:
176 QRhiNull(QRhiNullInitParams *params);
177
178 bool create(QRhi::Flags flags) override;
179 void destroy() override;
180
184 QRhiBuffer *createBuffer(QRhiBuffer::Type type,
185 QRhiBuffer::UsageFlags usage,
186 quint32 size) override;
187 QRhiRenderBuffer *createRenderBuffer(QRhiRenderBuffer::Type type,
188 const QSize &pixelSize,
189 int sampleCount,
190 QRhiRenderBuffer::Flags flags,
191 QRhiTexture::Format backingFormatHint) override;
192 QRhiTexture *createTexture(QRhiTexture::Format format,
193 const QSize &pixelSize,
194 int depth,
195 int arraySize,
196 int sampleCount,
197 QRhiTexture::Flags flags) override;
198 QRhiSampler *createSampler(QRhiSampler::Filter magFilter,
199 QRhiSampler::Filter minFilter,
200 QRhiSampler::Filter mipmapMode,
201 QRhiSampler:: AddressMode u,
202 QRhiSampler::AddressMode v,
203 QRhiSampler::AddressMode w) override;
204
205 QRhiTextureRenderTarget *createTextureRenderTarget(const QRhiTextureRenderTargetDescription &desc,
206 QRhiTextureRenderTarget::Flags flags) override;
207
208 QRhiShadingRateMap *createShadingRateMap() override;
209
210 QRhiSwapChain *createSwapChain() override;
211 QRhi::FrameOpResult beginFrame(QRhiSwapChain *swapChain, QRhi::BeginFrameFlags flags) override;
212 QRhi::FrameOpResult endFrame(QRhiSwapChain *swapChain, QRhi::EndFrameFlags flags) override;
213 QRhi::FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) override;
214 QRhi::FrameOpResult endOffscreenFrame(QRhi::EndFrameFlags flags) override;
215 QRhi::FrameOpResult finish() override;
216
217 void resourceUpdate(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override;
218
219 void beginPass(QRhiCommandBuffer *cb,
220 QRhiRenderTarget *rt,
221 const QColor &colorClearValue,
222 const QRhiDepthStencilClearValue &depthStencilClearValue,
223 QRhiResourceUpdateBatch *resourceUpdates,
224 QRhiCommandBuffer::BeginPassFlags flags) override;
225 void endPass(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override;
226
227 void setGraphicsPipeline(QRhiCommandBuffer *cb,
228 QRhiGraphicsPipeline *ps) override;
229
230 void setShaderResources(QRhiCommandBuffer *cb,
231 QRhiShaderResourceBindings *srb,
232 int dynamicOffsetCount,
233 const QRhiCommandBuffer::DynamicOffset *dynamicOffsets) override;
234
235 void setVertexInput(QRhiCommandBuffer *cb,
236 int startBinding, int bindingCount, const QRhiCommandBuffer::VertexInput *bindings,
237 QRhiBuffer *indexBuf, quint32 indexOffset,
238 QRhiCommandBuffer::IndexFormat indexFormat) override;
239
240 void setViewport(QRhiCommandBuffer *cb, const QRhiViewport &viewport) override;
241 void setScissor(QRhiCommandBuffer *cb, const QRhiScissor &scissor) override;
242 void setBlendConstants(QRhiCommandBuffer *cb, const QColor &c) override;
243 void setStencilRef(QRhiCommandBuffer *cb, quint32 refValue) override;
244 void setPushConstants(QRhiCommandBuffer *cb, quint32 offset, quint32 size, const void *data) override;
245 void setShadingRate(QRhiCommandBuffer *cb, const QSize &coarsePixelSize) override;
246
247 void draw(QRhiCommandBuffer *cb, quint32 vertexCount,
248 quint32 instanceCount, quint32 firstVertex, quint32 firstInstance) override;
249
250 void drawIndexed(QRhiCommandBuffer *cb, quint32 indexCount,
251 quint32 instanceCount, quint32 firstIndex,
252 qint32 vertexOffset, quint32 firstInstance) override;
253
254 void drawIndirect(QRhiCommandBuffer *cb, QRhiBuffer *indirectBuffer,
255 quint32 indirectBufferOffset, quint32 drawCount, quint32 stride) override;
256
257 void drawIndexedIndirect(QRhiCommandBuffer *cb, QRhiBuffer *indirectBuffer,
258 quint32 indirectBufferOffset, quint32 drawCount, quint32 stride) override;
259 void drawIndirectCount(QRhiCommandBuffer *cb,
260 QRhiBuffer *indirectBuffer, quint32 indirectBufferOffset,
261 QRhiBuffer *countBuffer, quint32 countBufferOffset,
262 quint32 maxDrawCount, quint32 stride) override;
263 void drawIndexedIndirectCount(QRhiCommandBuffer *cb,
264 QRhiBuffer *indirectBuffer, quint32 indirectBufferOffset,
265 QRhiBuffer *countBuffer, quint32 countBufferOffset,
266 quint32 maxDrawCount, quint32 stride) override;
267
268 void debugMarkBegin(QRhiCommandBuffer *cb, const QByteArray &name) override;
269 void debugMarkEnd(QRhiCommandBuffer *cb) override;
270 void debugMarkMsg(QRhiCommandBuffer *cb, const QByteArray &msg) override;
271
272 void beginComputePass(QRhiCommandBuffer *cb,
273 QRhiResourceUpdateBatch *resourceUpdates,
274 QRhiCommandBuffer::BeginPassFlags flags) override;
275 void endComputePass(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override;
276 void setComputePipeline(QRhiCommandBuffer *cb, QRhiComputePipeline *ps) override;
277 void dispatch(QRhiCommandBuffer *cb, int x, int y, int z) override;
278 void dispatchIndirect(QRhiCommandBuffer *cb, QRhiBuffer *indirectBuffer,
279 quint32 indirectBufferOffset) override;
280
281 const QRhiNativeHandles *nativeHandles(QRhiCommandBuffer *cb) override;
282 void beginExternal(QRhiCommandBuffer *cb) override;
283 void endExternal(QRhiCommandBuffer *cb) override;
284 double lastCompletedGpuTime(QRhiCommandBuffer *cb) override;
285
286 QList<int> supportedSampleCounts() const override;
287 QList<QSize> supportedShadingRates(int sampleCount) const override;
288 int ubufAlignment() const override;
289 bool isYUpInFramebuffer() const override;
290 bool isYUpInNDC() const override;
291 bool isClipDepthZeroToOne() const override;
292 QMatrix4x4 clipSpaceCorrMatrix() const override;
293 bool isTextureFormatSupported(QRhiTexture::Format format, QRhiTexture::Flags flags) const override;
294 bool isFeatureSupported(QRhi::Feature feature) const override;
295 int resourceLimit(QRhi::ResourceLimit limit) const override;
296 const QRhiNativeHandles *nativeHandles() override;
297 QRhiDriverInfo driverInfo() const override;
298 QRhiStats statistics() override;
300 void setQueueSubmitParams(QRhiNativeHandles *params) override;
302 bool isDeviceLost() const override;
303
304 QByteArray pipelineCacheData() override;
305 void setPipelineCacheData(const QByteArray &data) override;
306
310
312 QRhiSwapChain *currentSwapChain = nullptr;
314};
315
316QT_END_NAMESPACE
317
318#endif
friend bool operator==(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs) noexcept
Returns true if lhs and rhs are equal, otherwise returns false.
Definition qbytearray.h:842
friend bool operator!=(const QByteArray::FromBase64Result &lhs, const QByteArray::FromBase64Result &rhs) noexcept
Returns true if lhs and rhs are different, otherwise returns false.
Definition qbytearray.h:853
QRhiBackendCommandList()=default
T * cbegin() const
Definition qrhi_p.h:1001
bool isEmpty() const
Definition qrhi_p.h:987
void execute(QRhiCommandBuffer *cb, quint32 firstCommand, quint32 commandCount)
Definition qrhi.cpp:9337
QRhiBufferBackedIndirectCommandBuffer(QRhiImplementation *rhi, Type type, quint32 maxCommandCount)
\variable QRhiIndirectCommandBufferBuildInfo::topology
Definition qrhi.cpp:9247
void enqueueUpload(QRhiResourceUpdateBatch *u)
Definition qrhi.cpp:9301
QRhiIndirectCommandBufferBuildInfo buildInfo
Definition qrhi_p.h:385
void build(const QRhiIndirectCommandBufferBuildInfo &info)
Definition qrhi.cpp:9324
void destroy() override
Releases (or requests deferred releasing of) the underlying native graphics resources.
Definition qrhi.cpp:9259
bool create() override
Creates the corresponding native objects.
Definition qrhi.cpp:9282
void assign(QByteArray data)
Definition qrhi_p.h:508
QRhiBufferData()=default
void assign(const char *s, quint32 size)
Definition qrhi_p.h:489
quint32 size() const
Definition qrhi_p.h:481
QRhiBufferData(const QRhiBufferData &other)
Definition qrhi_p.h:460
quint32 largeAlloc() const
Definition qrhi_p.h:485
QRhiBufferData & operator=(const QRhiBufferData &other)
Definition qrhi_p.h:466
const char * constData() const
Definition qrhi_p.h:477
void setShaderResources(QRhiCommandBuffer *cb, QRhiShaderResourceBindings *srb, int dynamicOffsetCount, const QRhiCommandBuffer::DynamicOffset *dynamicOffsets) override
Definition qrhinull.cpp:264
double lastCompletedGpuTime(QRhiCommandBuffer *cb) override
Definition qrhinull.cpp:449
QRhi::FrameOpResult endOffscreenFrame(QRhi::EndFrameFlags flags) override
Definition qrhinull.cpp:478
void setPushConstants(QRhiCommandBuffer *cb, quint32 offset, quint32 size, const void *data) override
Definition qrhinull.cpp:311
void dispatchIndirect(QRhiCommandBuffer *cb, QRhiBuffer *indirectBuffer, quint32 indirectBufferOffset) override
Definition qrhinull.cpp:425
bool isFeatureSupported(QRhi::Feature feature) const override
Definition qrhinull.cpp:114
QRhiNull(QRhiNullInitParams *params)
Definition qrhinull.cpp:45
void debugMarkMsg(QRhiCommandBuffer *cb, const QByteArray &msg) override
Definition qrhinull.cpp:405
void dispatch(QRhiCommandBuffer *cb, int x, int y, int z) override
Definition qrhinull.cpp:417
QRhi::FrameOpResult beginFrame(QRhiSwapChain *swapChain, QRhi::BeginFrameFlags flags) override
Definition qrhinull.cpp:455
void resourceUpdate(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override
Definition qrhinull.cpp:563
void drawIndexed(QRhiCommandBuffer *cb, quint32 indexCount, quint32 instanceCount, quint32 firstIndex, qint32 vertexOffset, quint32 firstInstance) override
Definition qrhinull.cpp:335
void beginComputePass(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates, QRhiCommandBuffer::BeginPassFlags flags) override
Definition qrhinull.cpp:666
void beginPass(QRhiCommandBuffer *cb, QRhiRenderTarget *rt, const QColor &colorClearValue, const QRhiDepthStencilClearValue &depthStencilClearValue, QRhiResourceUpdateBatch *resourceUpdates, QRhiCommandBuffer::BeginPassFlags flags) override
Definition qrhinull.cpp:639
void setQueueSubmitParams(QRhiNativeHandles *params) override
Definition qrhinull.cpp:186
bool isClipDepthZeroToOne() const override
Definition qrhinull.cpp:97
void endComputePass(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override
Definition qrhinull.cpp:675
QNullCommandBuffer offscreenCommandBuffer
Definition qrhinull_p.h:313
void endPass(QRhiCommandBuffer *cb, QRhiResourceUpdateBatch *resourceUpdates) override
Definition qrhinull.cpp:660
QRhi::FrameOpResult endFrame(QRhiSwapChain *swapChain, QRhi::EndFrameFlags flags) override
Definition qrhinull.cpp:462
QRhi::FrameOpResult beginOffscreenFrame(QRhiCommandBuffer **cb, QRhi::BeginFrameFlags flags) override
Definition qrhinull.cpp:471
bool isYUpInNDC() const override
Definition qrhinull.cpp:92
QRhiDriverInfo driverInfo() const override
Definition qrhinull.cpp:168
void setScissor(QRhiCommandBuffer *cb, const QRhiScissor &scissor) override
Definition qrhinull.cpp:293
void simulateTextureUpload(const QRhiResourceUpdateBatchPrivate::TextureOp &u)
Definition qrhinull.cpp:489
QRhiComputePipeline * createComputePipeline() override
Definition qrhinull.cpp:248
void setPipelineCacheData(const QByteArray &data) override
Definition qrhinull.cpp:206
void setVertexInput(QRhiCommandBuffer *cb, int startBinding, int bindingCount, const QRhiCommandBuffer::VertexInput *bindings, QRhiBuffer *indexBuf, quint32 indexOffset, QRhiCommandBuffer::IndexFormat indexFormat) override
Definition qrhinull.cpp:274
void debugMarkBegin(QRhiCommandBuffer *cb, const QByteArray &name) override
Definition qrhinull.cpp:394
void draw(QRhiCommandBuffer *cb, quint32 vertexCount, quint32 instanceCount, quint32 firstVertex, quint32 firstInstance) override
Definition qrhinull.cpp:325
QByteArray pipelineCacheData() override
Definition qrhinull.cpp:201
void drawIndirectCount(QRhiCommandBuffer *cb, QRhiBuffer *indirectBuffer, quint32 indirectBufferOffset, QRhiBuffer *countBuffer, quint32 countBufferOffset, quint32 maxDrawCount, quint32 stride) override
Definition qrhinull.cpp:366
void drawIndexedIndirectCount(QRhiCommandBuffer *cb, QRhiBuffer *indirectBuffer, quint32 indirectBufferOffset, QRhiBuffer *countBuffer, quint32 countBufferOffset, quint32 maxDrawCount, quint32 stride) override
Definition qrhinull.cpp:380
void destroy() override
Definition qrhinull.cpp:57
const QRhiNativeHandles * nativeHandles() override
Definition qrhinull.cpp:163
void setGraphicsPipeline(QRhiCommandBuffer *cb, QRhiGraphicsPipeline *ps) override
Definition qrhinull.cpp:258
void releaseCachedResources() override
Definition qrhinull.cpp:191
void simulateTextureCopy(const QRhiResourceUpdateBatchPrivate::TextureOp &u)
Definition qrhinull.cpp:539
QRhiTexture * createTexture(QRhiTexture::Format format, const QSize &pixelSize, int depth, int arraySize, int sampleCount, QRhiTexture::Flags flags) override
Definition qrhinull.cpp:218
QList< QSize > supportedShadingRates(int sampleCount) const override
Definition qrhinull.cpp:66
void simulateTextureGenMips(const QRhiResourceUpdateBatchPrivate::TextureOp &u)
Definition qrhinull.cpp:554
void setShadingRate(QRhiCommandBuffer *cb, const QSize &coarsePixelSize) override
Definition qrhinull.cpp:319
QRhiRenderBuffer * createRenderBuffer(QRhiRenderBuffer::Type type, const QSize &pixelSize, int sampleCount, QRhiRenderBuffer::Flags flags, QRhiTexture::Format backingFormatHint) override
Definition qrhinull.cpp:211
bool makeThreadLocalNativeContextCurrent() override
Definition qrhinull.cpp:180
void drawIndirect(QRhiCommandBuffer *cb, QRhiBuffer *indirectBuffer, quint32 indirectBufferOffset, quint32 drawCount, quint32 stride) override
Definition qrhinull.cpp:346
const QRhiNativeHandles * nativeHandles(QRhiCommandBuffer *cb) override
Definition qrhinull.cpp:433
QRhiNullNativeHandles nativeHandlesStruct
Definition qrhinull_p.h:311
bool isYUpInFramebuffer() const override
Definition qrhinull.cpp:87
QRhi::FrameOpResult finish() override
Definition qrhinull.cpp:484
void setComputePipeline(QRhiCommandBuffer *cb, QRhiComputePipeline *ps) override
Definition qrhinull.cpp:411
QRhiBuffer * createBuffer(QRhiBuffer::Type type, QRhiBuffer::UsageFlags usage, quint32 size) override
Definition qrhinull.cpp:77
QRhiStats statistics() override
Definition qrhinull.cpp:175
QRhiShadingRateMap * createShadingRateMap() override
Definition qrhinull.cpp:238
void beginExternal(QRhiCommandBuffer *cb) override
Definition qrhinull.cpp:439
QRhiSwapChain * createSwapChain() override
Definition qrhinull.cpp:72
void setViewport(QRhiCommandBuffer *cb, const QRhiViewport &viewport) override
Definition qrhinull.cpp:287
QRhiTextureRenderTarget * createTextureRenderTarget(const QRhiTextureRenderTargetDescription &desc, QRhiTextureRenderTarget::Flags flags) override
Definition qrhinull.cpp:232
QRhiGraphicsPipeline * createGraphicsPipeline() override
Definition qrhinull.cpp:243
bool create(QRhi::Flags flags) override
Definition qrhinull.cpp:51
void setStencilRef(QRhiCommandBuffer *cb, quint32 refValue) override
Definition qrhinull.cpp:305
void debugMarkEnd(QRhiCommandBuffer *cb) override
Definition qrhinull.cpp:400
QList< int > supportedSampleCounts() const override
Definition qrhinull.cpp:61
QMatrix4x4 clipSpaceCorrMatrix() const override
Definition qrhinull.cpp:102
QRhiSampler * createSampler(QRhiSampler::Filter magFilter, QRhiSampler::Filter minFilter, QRhiSampler::Filter mipmapMode, QRhiSampler::AddressMode u, QRhiSampler::AddressMode v, QRhiSampler::AddressMode w) override
Definition qrhinull.cpp:225
void drawIndexedIndirect(QRhiCommandBuffer *cb, QRhiBuffer *indirectBuffer, quint32 indirectBufferOffset, quint32 drawCount, quint32 stride) override
Definition qrhinull.cpp:356
QRhiSwapChain * currentSwapChain
Definition qrhinull_p.h:312
int ubufAlignment() const override
Definition qrhinull.cpp:82
bool isTextureFormatSupported(QRhiTexture::Format format, QRhiTexture::Flags flags) const override
Definition qrhinull.cpp:107
int resourceLimit(QRhi::ResourceLimit limit) const override
Definition qrhinull.cpp:120
QRhiShaderResourceBindings * createShaderResourceBindings() override
Definition qrhinull.cpp:253
void setBlendConstants(QRhiCommandBuffer *cb, const QColor &c) override
Definition qrhinull.cpp:299
void endExternal(QRhiCommandBuffer *cb) override
Definition qrhinull.cpp:444
bool isDeviceLost() const override
Definition qrhinull.cpp:196
iterator end()
Definition qrhi_p.h:839
value_type * iterator
Definition qrhi_p.h:835
const value_type * const_iterator
Definition qrhi_p.h:836
bool isEmpty() const
Definition qrhi_p.h:845
iterator find(Key key)
Definition qrhi_p.h:864
const_iterator end() const
Definition qrhi_p.h:841
void append(Key key, const T &value)
Definition qrhi_p.h:873
const_iterator find(Key key) const
Definition qrhi_p.h:854
qsizetype size() const
Definition qrhi_p.h:846
std::pair< Key, T > value_type
Definition qrhi_p.h:834
const_iterator begin() const
Definition qrhi_p.h:840
bool contains(Key key) const
Definition qrhi_p.h:870
const_iterator cend() const
Definition qrhi_p.h:843
iterator begin()
Definition qrhi_p.h:838
const_iterator cbegin() const
Definition qrhi_p.h:842
static TextureStage toPassTrackerTextureStage(QRhiShaderResourceBinding::StageFlags stages)
Definition qrhi.cpp:13744
static BufferStage toPassTrackerBufferStage(QRhiShaderResourceBinding::StageFlags stages)
Definition qrhi.cpp:13725
bool isEmpty() const
Definition qrhi.cpp:13634
const QRhiPassResourceMap< QRhiTexture *, Texture, 12 > & textures() const
Definition qrhi_p.h:967
void registerBuffer(QRhiBuffer *buf, int slot, BufferAccess *access, BufferStage *stage, const UsageState &state)
Definition qrhi.cpp:13651
void registerTexture(QRhiTexture *tex, TextureAccess *access, TextureStage *stage, const UsageState &state)
Definition qrhi.cpp:13691
const QRhiPassResourceMap< QRhiBuffer *, Buffer, 12 > & buffers() const
Definition qrhi_p.h:959
QRhiPipelineCacheDataReader(const char *data, quint32 size)
Definition qrhi_p.h:1100
bool readByteArray(QByteArray *dst)
Definition qrhi_p.h:1115
bool readUInt32(quint32 *dst)
Definition qrhi_p.h:1105
QVarLengthArray< BufferOp, BUFFER_OPS_STATIC_ALLOC > bufferOps
Definition qrhi_p.h:730
QRhiImplementation * rhi
Definition qrhi_p.h:737
QVarLengthArray< TextureOp, TEXTURE_OPS_STATIC_ALLOC > textureOps
Definition qrhi_p.h:734
static const int BUFFER_OPS_STATIC_ALLOC
Definition qrhi_p.h:729
static QRhiResourceUpdateBatchPrivate * get(QRhiResourceUpdateBatch *b)
Definition qrhi_p.h:745
void merge(QRhiResourceUpdateBatchPrivate *other)
Definition qrhi.cpp:11408
QRhiResourceUpdateBatch * q
Definition qrhi_p.h:736
static const int TEXTURE_OPS_STATIC_ALLOC
Definition qrhi_p.h:733
Combined button and popup list for selecting options.
QDebug operator<<(QDebug dbg, const QFileInfo &fi)
static const char * resourceTypeStr(const QRhiResource *res)
Definition qrhi.cpp:9498
static QRhiPassResourceTracker::BufferStage earlierStage(QRhiPassResourceTracker::BufferStage a, QRhiPassResourceTracker::BufferStage b)
Definition qrhi.cpp:13645
QDebug operator<<(QDebug dbg, const QRhiSwapChainHdrInfo &info)
Definition qrhi.cpp:8550
static bool isImageLoadStore(QRhiPassResourceTracker::TextureAccess access)
Definition qrhi.cpp:13684
static const char * deviceTypeStr(QRhiDriverInfo::DeviceType type)
\variable QRhiDriverInfo::deviceName
Definition qrhi.cpp:10481
static QRhiPassResourceTracker::TextureStage earlierStage(QRhiPassResourceTracker::TextureStage a, QRhiPassResourceTracker::TextureStage b)
Definition qrhi.cpp:13678
QRhiTargetRectBoundMode
Definition qrhi_p.h:389
@ UnBounded
Definition qrhi_p.h:390
@ Bounded
Definition qrhi_p.h:391
Q_DECLARE_TYPEINFO(QRhiPassResourceTracker::Texture, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(QRhiBufferData, Q_RELOCATABLE_TYPE)
T * qrhi_objectFromProxyData(QRhiSwapChainProxyData *pd, QWindow *window, QRhi::Implementation impl, uint objectIndex)
Definition qrhi_p.h:1089
bool operator!=(const QRhiRenderTargetAttachmentTracker::ResId &a, const QRhiRenderTargetAttachmentTracker::ResId &b)
Definition qrhi_p.h:1029
Q_DECLARE_TYPEINFO(QRhiPassResourceTracker::Buffer, Q_RELOCATABLE_TYPE)
#define QRHI_RES(t, x)
Definition qrhi_p.h:32
bool operator==(const QRhiRenderTargetAttachmentTracker::ResId &a, const QRhiRenderTargetAttachmentTracker::ResId &b)
Definition qrhi_p.h:1024
quint32 qrhiBinaryCacheEntryByteSize(const QByteArray &data)
Definition qrhi_p.h:309
bool qrhi_toTopLeftRenderTargetRect(const QSize &outputSize, const std::array< T, N > &r, T *x, T *y, T *w, T *h)
Definition qrhi_p.h:395
constexpr size_t qHash(const QSize &s, size_t seed=0) noexcept
Definition qsize.h:192
char * data
Definition qrhinull_p.h:31
QNullBuffer(QRhiImplementation *rhi, Type type, UsageFlags usage, quint32 size)
Definition qrhinull.cpp:681
bool create() override
Creates the corresponding native graphics resources.
Definition qrhinull.cpp:701
void destroy() override
Releases (or requests deferred releasing of) the underlying native graphics resources.
Definition qrhinull.cpp:691
char * beginFullDynamicBufferUpdateForCurrentFrame() override
Definition qrhinull.cpp:715
QNullCommandBuffer(QRhiImplementation *rhi)
void destroy() override
Releases (or requests deferred releasing of) the underlying native graphics resources.
void destroy() override
Releases (or requests deferred releasing of) the underlying native graphics resources.
bool create() override
QNullComputePipeline(QRhiImplementation *rhi)
void destroy() override
Releases (or requests deferred releasing of) the underlying native graphics resources.
bool create() override
Creates the corresponding native graphics resources.
QNullGraphicsPipeline(QRhiImplementation *rhi)
void destroy() override
Releases (or requests deferred releasing of) the underlying native graphics resources.
Definition qrhinull.cpp:733
bool create() override
Creates the corresponding native graphics resources.
Definition qrhinull.cpp:742
QNullRenderBuffer(QRhiImplementation *rhi, Type type, const QSize &pixelSize, int sampleCount, QRhiRenderBuffer::Flags flags, QRhiTexture::Format backingFormatHint)
Definition qrhinull.cpp:721
QRhiTexture::Format backingFormat() const override
Definition qrhinull.cpp:756
QNullRenderPassDescriptor(QRhiImplementation *rhi)
Definition qrhinull.cpp:866
QRhiRenderPassDescriptor * newCompatibleRenderPassDescriptor() const override
Definition qrhinull.cpp:889
QVector< quint32 > serializedFormat() const override
Definition qrhinull.cpp:897
void destroy() override
Releases (or requests deferred releasing of) the underlying native graphics resources.
Definition qrhinull.cpp:876
bool isCompatible(const QRhiRenderPassDescriptor *other) const override
Definition qrhinull.cpp:883
QRhiRenderTargetAttachmentTracker::ResIdList currentResIdList
Definition qrhinull_p.h:88
QNullRenderPassDescriptor * rp
Definition qrhinull_p.h:85
QNullRenderTargetData(QRhiImplementation *)
Definition qrhinull_p.h:83
void destroy() override
Releases (or requests deferred releasing of) the underlying native graphics resources.
Definition qrhinull.cpp:852
QNullSampler(QRhiImplementation *rhi, Filter magFilter, Filter minFilter, Filter mipmapMode, AddressMode u, AddressMode v, AddressMode w)
Definition qrhinull.cpp:841
bool create() override
Definition qrhinull.cpp:859
QNullShaderResourceBindings(QRhiImplementation *rhi)
Definition qrhinull.cpp:997
bool create() override
Creates the corresponding resource binding set.
void updateResources(UpdateFlags flags) override
void destroy() override
Releases (or requests deferred releasing of) the underlying native graphics resources.
QSize pixelSize() const override
Definition qrhinull.cpp:917
float devicePixelRatio() const override
Definition qrhinull.cpp:922
QNullRenderTargetData d
Definition qrhinull_p.h:101
QNullSwapChainRenderTarget(QRhiImplementation *rhi, QRhiSwapChain *swapchain)
Definition qrhinull.cpp:902
int sampleCount() const override
Definition qrhinull.cpp:927
void destroy() override
Releases (or requests deferred releasing of) the underlying native graphics resources.
Definition qrhinull.cpp:913
bool createOrResize() override
Creates the swapchain if not already done and resizes the swapchain buffers to match the current size...
QWindow * window
Definition qrhinull_p.h:167
QSize surfacePixelSize() override
QNullSwapChainRenderTarget rt
Definition qrhinull_p.h:168
bool isFormatSupported(Format f) override
void destroy() override
Releases (or requests deferred releasing of) the underlying native graphics resources.
QRhiCommandBuffer * currentFrameCommandBuffer() override
QRhiRenderPassDescriptor * newCompatibleRenderPassDescriptor() override
QRhiRenderTarget * currentFrameRenderTarget() override
QNullSwapChain(QRhiImplementation *rhi)
QNullCommandBuffer cb
Definition qrhinull_p.h:169
QSize pixelSize() const override
Definition qrhinull.cpp:979
int sampleCount() const override
Definition qrhinull.cpp:992
void destroy() override
Releases (or requests deferred releasing of) the underlying native graphics resources.
Definition qrhinull.cpp:945
QRhiRenderPassDescriptor * newCompatibleRenderPassDescriptor() override
Definition qrhinull.cpp:952
bool create() override
Creates the corresponding native graphics resources.
Definition qrhinull.cpp:960
QNullTextureRenderTarget(QRhiImplementation *rhi, const QRhiTextureRenderTargetDescription &desc, Flags flags)
Definition qrhinull.cpp:932
QNullRenderTargetData d
Definition qrhinull_p.h:117
float devicePixelRatio() const override
Definition qrhinull.cpp:987
bool create() override
Creates the corresponding native graphics resources.
Definition qrhinull.cpp:781
bool createFrom(NativeTexture src) override
Similar to create(), except that no new native textures are created.
Definition qrhinull.cpp:825
QVarLengthArray< std::array< QImage, QRhi::MAX_MIP_LEVELS >, 6 > image
Definition qrhinull_p.h:58
QNullTexture(QRhiImplementation *rhi, Format format, const QSize &pixelSize, int depth, int arraySize, int sampleCount, Flags flags)
Definition qrhinull.cpp:761
uint generation
Definition qrhinull_p.h:59
void destroy() override
Releases (or requests deferred releasing of) the underlying native graphics resources.
Definition qrhinull.cpp:772
bool operator!=(const Batch &other) const
Definition qrhi_p.h:785
QVector< T > resources
Definition qrhi_p.h:778
bool operator==(const Batch &other) const
Definition qrhi_p.h:780
void feed(int binding, T resource)
Definition qrhi_p.h:751
QVector< Batch > batches
Definition qrhi_p.h:794
bool operator!=(const QRhiBatchedBindings< T > &other) const
Definition qrhi_p.h:801
bool operator==(const QRhiBatchedBindings< T > &other) const
Definition qrhi_p.h:796
void insertWithCapacityLimit(const Key &key, const Value &value)
Definition qrhi_p.h:330
quint32 dataByteSize
Definition qrhi_p.h:321
void clear()
Definition qrhi_p.h:324
const char * name
Definition qrhi_p.h:322
QHash< Key, Value > data
Definition qrhi_p.h:320
QRhiBinaryCache(const char *name)
Definition qrhi_p.h:318
char smallData[SMALL_DATA_SIZE]
Definition qrhi_p.h:447
QByteArray largeData
Definition qrhi_p.h:445
static constexpr quint32 SMALL_DATA_SIZE
Definition qrhi_p.h:446
void(* frameEnd)(QRhiImplementation *d, QRhiSwapChain *swapChain, QRhiCommandBuffer *cb)
Definition qrhi_p.h:361
void(* rhiAboutToBeDestroyed)(QRhiImplementation *d)
Definition qrhi_p.h:362
static void updateResIdList(const QRhiTextureRenderTargetDescription &desc, ResIdList *dst)
Definition qrhi_p.h:1035
static bool isUpToDate(const QRhiTextureRenderTargetDescription &desc, const ResIdList &currentResIdList)
Definition qrhi_p.h:1073
static void changeToDynamicUpdate(BufferOp *op, QRhiBuffer *buf, quint32 offset, QByteArray data)
Definition qrhi_p.h:575
static void changeToStaticUpload(BufferOp *op, QRhiBuffer *buf, quint32 offset, QByteArray data)
Definition qrhi_p.h:606
static BufferOp clear(QRhiBuffer *buf, quint32 offset, quint32 size, quint8 value)
Definition qrhi_p.h:638
static void changeToStaticUpload(BufferOp *op, QRhiBuffer *buf, quint32 offset, quint32 size, const void *data)
Definition qrhi_p.h:590
static BufferOp dynamicUpdate(QRhiBuffer *buf, quint32 offset, QByteArray data)
Definition qrhi_p.h:568
static BufferOp staticUpload(QRhiBuffer *buf, quint32 offset, QByteArray data)
Definition qrhi_p.h:599
static BufferOp copy(QRhiBuffer *dst, QRhiBuffer *src, quint32 dstOffset, quint32 srcOffset, quint32 size)
Definition qrhi_p.h:625
static BufferOp staticUpload(QRhiBuffer *buf, quint32 offset, quint32 size, const void *data)
Definition qrhi_p.h:583
static BufferOp read(QRhiBuffer *buf, quint32 offset, quint32 size, QRhiReadbackResult *result)
Definition qrhi_p.h:614
static BufferOp dynamicUpdate(QRhiBuffer *buf, quint32 offset, quint32 size, const void *data)
Definition qrhi_p.h:552
static void changeToDynamicUpdate(BufferOp *op, QRhiBuffer *buf, quint32 offset, quint32 size, const void *data)
Definition qrhi_p.h:559
QRhiTextureSubresourceUploadDescription desc
Definition qrhi_p.h:678
QRhiTextureCopyDescription desc
Definition qrhi_p.h:682
static TextureOp copy(QRhiTexture *dst, QRhiTexture *src, const QRhiTextureCopyDescription &desc)
Definition qrhi_p.h:700
QVarLengthArray< SubresourceUpload, 4 > subresDesc
Definition qrhi_p.h:680
static TextureOp upload(QRhiTexture *tex, const QRhiTextureUploadDescription &desc)
Definition qrhi_p.h:686
static TextureOp genMips(QRhiTexture *tex)
Definition qrhi_p.h:719
static TextureOp read(const QRhiReadbackDescription &rb, QRhiReadbackResult *result)
Definition qrhi_p.h:710
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
Definition qrhi.h:1588
LimitsType limitsType
Definition qrhi.h:1599
float maxPotentialColorComponentValue
Definition qrhi.h:1607
LuminanceBehavior luminanceBehavior
Definition qrhi.h:1610
float maxColorComponentValue
Definition qrhi.h:1606
\inmodule QtGuiPrivate \inheaderfile rhi/qrhi.h
Definition qrhi.h:1621
void * reserved[2]
Definition qrhi.h:1622