![]() |
Qt 6.x
The Qt SDK
|
Classes | |
struct | BufferReadback |
struct | DeferredReleaseEntry |
struct | OffscreenFrame |
struct | TextureReadback |
Public Member Functions | |
QRhiMetalData (QRhiMetal *rhi) | |
API_AVAILABLE (macosx(11.0), ios(14.0)) id< MTLBinaryArchive > binArch | |
MTLRenderPassDescriptor * | createDefaultRenderPass (bool hasDepthStencil, const QColor &colorClearValue, const QRhiDepthStencilClearValue &depthStencilClearValue, int colorAttCount) |
id< MTLLibrary > | createMetalLib (const QShader &shader, QShader::Variant shaderVariant, QString *error, QByteArray *entryPoint, QShaderKey *activeKey) |
id< MTLFunction > | createMSLShaderFunction (id< MTLLibrary > lib, const QByteArray &entryPoint) |
bool | setupBinaryArchive (NSURL *sourceFileUrl=nil) |
void | addRenderPipelineToBinaryArchive (MTLRenderPipelineDescriptor *rpDesc) |
void | trySeedingRenderPipelineFromBinaryArchive (MTLRenderPipelineDescriptor *rpDesc) |
void | addComputePipelineToBinaryArchive (MTLComputePipelineDescriptor *cpDesc) |
void | trySeedingComputePipelineFromBinaryArchive (MTLComputePipelineDescriptor *cpDesc) |
Public Attributes | |
QRhiMetal * | q |
id< MTLDevice > | dev = nil |
id< MTLCommandQueue > | cmdQueue = nil |
bool | binArchWasEmpty = false |
QVector< DeferredReleaseEntry > | releaseQueue |
struct QRhiMetalData::OffscreenFrame | ofr |
QVarLengthArray< TextureReadback, 2 > | activeTextureReadbacks |
QVarLengthArray< BufferReadback, 2 > | activeBufferReadbacks |
MTLCaptureManager * | captureMgr |
id< MTLCaptureScope > | captureScope = nil |
QHash< QRhiShaderStage, QMetalShader > | shaderCache |
Static Public Attributes | |
static const int | TEXBUF_ALIGN = 256 |
Definition at line 153 of file qrhimetal.mm.
|
inline |
Definition at line 155 of file qrhimetal.mm.
void QRhiMetalData::addComputePipelineToBinaryArchive | ( | MTLComputePipelineDescriptor * | cpDesc | ) |
Definition at line 5900 of file qrhimetal.mm.
References canAddToBinaryArchive(), error, iOS, qPrintable, and qWarning.
Referenced by QMetalGraphicsPipelineData::Tessellation::tescCompPipeline(), and QMetalGraphicsPipelineData::Tessellation::vsCompPipeline().
void QRhiMetalData::addRenderPipelineToBinaryArchive | ( | MTLRenderPipelineDescriptor * | rpDesc | ) |
Definition at line 4914 of file qrhimetal.mm.
References canAddToBinaryArchive(), error, iOS, qPrintable, and qWarning.
Referenced by QMetalGraphicsPipelineData::Tessellation::teseFragRenderPipeline().
QRhiMetalData::API_AVAILABLE | ( | macosx(11.0) | , |
ios(14.0) | |||
) |
MTLRenderPassDescriptor * QRhiMetalData::createDefaultRenderPass | ( | bool | hasDepthStencil, |
const QColor & | colorClearValue, | ||
const QRhiDepthStencilClearValue & | depthStencilClearValue, | ||
int | colorAttCount | ||
) |
Definition at line 2510 of file qrhimetal.mm.
References QColor::alphaF(), QColor::blueF(), QRhiDepthStencilClearValue::depthClearValue(), QColor::greenF(), i, QColor::redF(), and QRhiDepthStencilClearValue::stencilClearValue().
Referenced by QRhiMetal::beginPass().
id< MTLLibrary > QRhiMetalData::createMetalLib | ( | const QShader & | shader, |
QShader::Variant | shaderVariant, | ||
QString * | error, | ||
QByteArray * | entryPoint, | ||
QShaderKey * | activeKey | ||
) |
Definition at line 4654 of file qrhimetal.mm.
References QByteArray::constData(), dev, QShaderCode::entryPoint(), error, init(), iOS, QByteArray::isEmpty(), QShader::MetalLibShader, QShader::MslShader, qPrintable, qWarning, release(), QShaderCode::shader(), QByteArray::size(), and toMetalLanguageVersion().
id< MTLFunction > QRhiMetalData::createMSLShaderFunction | ( | id< MTLLibrary > | lib, |
const QByteArray & | entryPoint | ||
) |
Definition at line 4733 of file qrhimetal.mm.
References QByteArray::constData().
bool QRhiMetalData::setupBinaryArchive | ( | NSURL * | sourceFileUrl = nil | ) |
Definition at line 499 of file qrhimetal.mm.
References binArchWasEmpty, dev, error, iOS, qPrintable, qWarning, and release().
Referenced by QRhiMetal::create(), and QRhiMetal::setPipelineCacheData().
void QRhiMetalData::trySeedingComputePipelineFromBinaryArchive | ( | MTLComputePipelineDescriptor * | cpDesc | ) |
Definition at line 5890 of file qrhimetal.mm.
References iOS.
Referenced by QMetalGraphicsPipelineData::Tessellation::tescCompPipeline(), and QMetalGraphicsPipelineData::Tessellation::vsCompPipeline().
void QRhiMetalData::trySeedingRenderPipelineFromBinaryArchive | ( | MTLRenderPipelineDescriptor * | rpDesc | ) |
Definition at line 4881 of file qrhimetal.mm.
References iOS.
Referenced by QMetalGraphicsPipelineData::Tessellation::teseFragRenderPipeline().
QVarLengthArray<BufferReadback, 2> QRhiMetalData::activeBufferReadbacks |
Definition at line 246 of file qrhimetal.mm.
Referenced by QRhiMetal::enqueueResourceUpdates(), and QRhiMetal::finishActiveReadbacks().
QVarLengthArray<TextureReadback, 2> QRhiMetalData::activeTextureReadbacks |
Definition at line 235 of file qrhimetal.mm.
Referenced by QRhiMetal::finishActiveReadbacks().
bool QRhiMetalData::binArchWasEmpty = false |
Definition at line 161 of file qrhimetal.mm.
Referenced by setupBinaryArchive().
MTLCaptureManager* QRhiMetalData::captureMgr |
Definition at line 248 of file qrhimetal.mm.
Referenced by QRhiMetal::create().
id<MTLCaptureScope> QRhiMetalData::captureScope = nil |
Definition at line 249 of file qrhimetal.mm.
Referenced by QRhiMetal::beginFrame(), QRhiMetal::create(), QRhiMetal::destroy(), and QRhiMetal::endFrame().
id<MTLCommandQueue> QRhiMetalData::cmdQueue = nil |
Definition at line 159 of file qrhimetal.mm.
Referenced by QRhiMetal::QRhiMetal(), QRhiMetal::beginFrame(), QRhiMetal::beginOffscreenFrame(), QRhiMetal::create(), QRhiMetal::destroy(), and QRhiMetal::finish().
id<MTLDevice> QRhiMetalData::dev = nil |
Definition at line 158 of file qrhimetal.mm.
Referenced by QRhiMetal::QRhiMetal(), QRhiMetal::create(), createMetalLib(), QRhiMetal::destroy(), setupBinaryArchive(), QMetalGraphicsPipelineData::Tessellation::tescCompPipeline(), QMetalGraphicsPipelineData::Tessellation::teseFragRenderPipeline(), and QMetalGraphicsPipelineData::Tessellation::vsCompPipeline().
struct QRhiMetalData::OffscreenFrame QRhiMetalData::ofr |
Referenced by QRhiMetal::beginOffscreenFrame(), QRhiMetal::endOffscreenFrame(), and QRhiMetal::finish().
QRhiMetal* QRhiMetalData::q |
Definition at line 157 of file qrhimetal.mm.
QVector<DeferredReleaseEntry> QRhiMetalData::releaseQueue |
Definition at line 217 of file qrhimetal.mm.
Referenced by QRhiMetal::executeDeferredReleases().
QHash<QRhiShaderStage, QMetalShader> QRhiMetalData::shaderCache |
Definition at line 253 of file qrhimetal.mm.
Referenced by QRhiMetal::destroy(), and QRhiMetal::releaseCachedResources().
|
static |
Definition at line 251 of file qrhimetal.mm.
Referenced by QRhiMetal::enqueueSubresUpload(), and QRhiMetal::subresUploadByteSize().