![]() |
Qt 6.x
The Qt SDK
|
#include <qssgrendershaderlibrarymanager_p.h>
Public Types | |
typedef QHash< QByteArray, QByteArray > | TPathDataMap |
typedef QSet< QString > | TPathSet |
Public Member Functions | |
QSSGShaderLibraryManager () | |
~QSSGShaderLibraryManager () | |
void | setShaderSource (const QByteArray &inShaderPathKey, QSSGShaderCache::ShaderType type, const QByteArray &inSource, const QSSGCustomShaderMetaData &meta) |
void | loadPregeneratedShaderInfo () |
void | resolveIncludeFiles (QByteArray &theReadBuffer, const QByteArray &inMaterialInfoString) |
QByteArray | getIncludeContents (const QByteArray &inShaderPathKey) |
QByteArray | getShaderSource (const QByteArray &inShaderPathKey, QSSGShaderCache::ShaderType type) |
QSSGCustomShaderMetaData | getShaderMetaData (const QByteArray &inShaderPathKey, QSSGShaderCache::ShaderType type) |
void | setShaderCodeLibraryVersion (const QByteArray &version) |
Static Public Member Functions | |
static QString | getShaderCodeLibraryDirectory () |
static bool | compare (const QSSGShaderDefaultMaterialKey &key1, const QSSGShaderDefaultMaterialKey &key2) |
Definition at line 61 of file qssgrendershaderlibrarymanager_p.h.
Definition at line 65 of file qssgrendershaderlibrarymanager_p.h.
Definition at line 66 of file qssgrendershaderlibrarymanager_p.h.
|
explicit |
Definition at line 26 of file qssgrendershaderlibrarymanager.cpp.
QSSGShaderLibraryManager::~QSSGShaderLibraryManager | ( | ) |
Definition at line 28 of file qssgrendershaderlibrarymanager.cpp.
|
static |
Definition at line 187 of file qssgrendershaderlibrarymanager.cpp.
References calcLightPoint(), COMPARE_PROP, i, QSSGShaderDefaultMaterialKeyProperties::ImageMapCount, QSSGShaderDefaultMaterialKeyProperties::LightCount, and QSSGShaderDefaultMaterialKeyProperties::SingleChannelImageCount.
QByteArray QSSGShaderLibraryManager::getIncludeContents | ( | const QByteArray & | inShaderPathKey | ) |
Definition at line 97 of file qssgrendershaderlibrarymanager.cpp.
References QByteArray::append(), QHash< Key, T >::cend(), QString::clear(), QHash< Key, T >::constFind(), QString::fromLocal8Bit(), getShaderCodeLibraryDirectory(), QSSGInputUtil::getStreamForFile(), QHash< Key, T >::insert(), QSharedPointer< T >::isNull(), m_expandedFiles, m_lock, Q_ASSERT, QByteArrayLiteral, qCCritical, qPrintable, and resolveIncludeFiles().
Referenced by resolveIncludeFiles().
|
static |
Definition at line 18 of file qssgrendershaderlibrarymanager.cpp.
References QStringLiteral.
Referenced by getIncludeContents().
QSSGCustomShaderMetaData QSSGShaderLibraryManager::getShaderMetaData | ( | const QByteArray & | inShaderPathKey, |
QSSGShaderCache::ShaderType | type | ||
) |
Definition at line 156 of file qssgrendershaderlibrarymanager.cpp.
References QHash< Key, T >::cend(), QByteArray::constData(), QHash< Key, T >::constFind(), it, m_lock, m_metadata, qWarning, and stageKey().
Referenced by QSSGRhiEffectSystem::buildShaderForEffect(), and QSSGShaderCustomMaterialAdapter::hasCustomShaderFunction().
QByteArray QSSGShaderLibraryManager::getShaderSource | ( | const QByteArray & | inShaderPathKey, |
QSSGShaderCache::ShaderType | type | ||
) |
Definition at line 143 of file qssgrendershaderlibrarymanager.cpp.
References QHash< Key, T >::cend(), QByteArray::constData(), QHash< Key, T >::constFind(), it, m_expandedFiles, m_lock, qWarning, and stageKey().
Referenced by QSSGRhiEffectSystem::buildShaderForEffect(), and QSSGShaderCustomMaterialAdapter::customShaderSnippet().
void QSSGShaderLibraryManager::loadPregeneratedShaderInfo | ( | ) |
Definition at line 169 of file qssgrendershaderlibrarymanager.cpp.
References QQsbIODeviceCollection::availableEntries(), QFile::exists(), file, QString::fromLatin1(), m_preGeneratedShaderEntries, QQsbIODeviceCollection::map(), QQsbIODeviceCollection::Read, QSSGShaderCache::resourceFolder(), QSSGShaderCache::shaderCollectionFile(), and QQsbIODeviceCollection::unmap().
void QSSGShaderLibraryManager::resolveIncludeFiles | ( | QByteArray & | theReadBuffer, |
const QByteArray & | inMaterialInfoString | ||
) |
Definition at line 66 of file qssgrendershaderlibrarymanager.cpp.
References QByteArray::clear(), QByteArray::constData(), contents, copyrightHeaderEnd(), copyrightHeaderStart(), getIncludeContents(), includeSearch(), QByteArray::indexOf(), QByteArray::mid(), QByteArrayLiteral, qCCritical, QByteArray::replace(), and QByteArray::size().
Referenced by QSSGProgramGenerator::compileGeneratedRhiShader(), and getIncludeContents().
void QSSGShaderLibraryManager::setShaderCodeLibraryVersion | ( | const QByteArray & | version | ) |
void QSSGShaderLibraryManager::setShaderSource | ( | const QByteArray & | inShaderPathKey, |
QSSGShaderCache::ShaderType | type, | ||
const QByteArray & | inSource, | ||
const QSSGCustomShaderMetaData & | meta | ||
) |
Definition at line 43 of file qssgrendershaderlibrarymanager.cpp.
References QHash< Key, T >::end(), QHash< Key, T >::find(), QHash< Key, T >::insert(), it, m_expandedFiles, m_lock, m_metadata, and stageKey().
TPathDataMap QSSGShaderLibraryManager::m_expandedFiles |
Definition at line 68 of file qssgrendershaderlibrarymanager_p.h.
Referenced by getIncludeContents(), getShaderSource(), and setShaderSource().
QByteArray QSSGShaderLibraryManager::m_fragShader |
Definition at line 71 of file qssgrendershaderlibrarymanager_p.h.
QReadWriteLock QSSGShaderLibraryManager::m_lock |
Definition at line 75 of file qssgrendershaderlibrarymanager_p.h.
Referenced by getIncludeContents(), getShaderMetaData(), getShaderSource(), and setShaderSource().
QHash<QByteArray, QSSGCustomShaderMetaData> QSSGShaderLibraryManager::m_metadata |
Definition at line 69 of file qssgrendershaderlibrarymanager_p.h.
Referenced by getShaderMetaData(), and setShaderSource().
QQsbCollection::EntryMap QSSGShaderLibraryManager::m_preGeneratedShaderEntries |
Definition at line 73 of file qssgrendershaderlibrarymanager_p.h.
Referenced by QSSGRenderer::generateRhiShaderPipelineImpl(), and loadPregeneratedShaderInfo().
QByteArray QSSGShaderLibraryManager::m_vertShader |
Definition at line 70 of file qssgrendershaderlibrarymanager_p.h.