QShaderProgramBuilder Class
class Qt3DRender::QShaderProgramBuilder読み込んだグラフからシェーダープログラムの内容を生成します。詳細...
Header: | #include <QShaderProgramBuilder> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
In QML: | ShaderProgramBuilder |
Inherits: | Qt3DCore::QNode |
Status: | Deprecated |
プロパティ
|
|
パブリック関数
QByteArray | computeShaderCode() const |
QUrl | computeShaderGraph() const |
QStringList | enabledLayers() const |
QByteArray | fragmentShaderCode() const |
QUrl | fragmentShaderGraph() const |
QByteArray | geometryShaderCode() const |
QUrl | geometryShaderGraph() const |
Qt3DRender::QShaderProgram * | shaderProgram() const |
QByteArray | tessellationControlShaderCode() const |
QUrl | tessellationControlShaderGraph() const |
QByteArray | tessellationEvaluationShaderCode() const |
QUrl | tessellationEvaluationShaderGraph() const |
QByteArray | vertexShaderCode() const |
QUrl | vertexShaderGraph() const |
パブリックスロット
void | setComputeShaderGraph(const QUrl &computeShaderGraph) |
void | setEnabledLayers(const QStringList &layers) |
void | setFragmentShaderGraph(const QUrl &fragmentShaderGraph) |
void | setGeometryShaderGraph(const QUrl &geometryShaderGraph) |
void | setShaderProgram(Qt3DRender::QShaderProgram *program) |
void | setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph) |
void | setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph) |
void | setVertexShaderGraph(const QUrl &vertexShaderGraph) |
シグナル
void | computeShaderCodeChanged(const QByteArray &computeShaderCode) |
void | computeShaderGraphChanged(const QUrl &computeShaderGraph) |
void | enabledLayersChanged(const QStringList &layers) |
void | fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode) |
void | fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph) |
void | geometryShaderCodeChanged(const QByteArray &geometryShaderCode) |
void | geometryShaderGraphChanged(const QUrl &geometryShaderGraph) |
void | shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram) |
void | tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode) |
void | tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph) |
void | tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode) |
void | tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph) |
void | vertexShaderCodeChanged(const QByteArray &vertexShaderCode) |
void | vertexShaderGraphChanged(const QUrl &vertexShaderGraph) |
詳細説明
シェーダープログラムビルダは、シェーダコードを生成するために使用される複数の異なるシェーダグラフから構成される。
生成されたシェーダーコードのキャッシュが維持されます。生成されたシェーダーは、デフォルトでQStandardPaths::writableLocation(QStandardPaths::TempLocation)) に保存されます。このパスは、環境変数 QT3D_WRITABLE_CACHE_PATH を有効な書き込み可能パスに設定することで上書きできます。
環境変数 QT3D_DISABLE_SHADER_CACHE を設定することで、キャッシュの使用を無効にできます。
ほとんどの場合、グラフに加えられた変更は Qt 3D によって検出され、新しいキャッシュエントリが生成されます。これが起こらないケースとして、グラフに含まれるコードスニペットが変更された場合があります。これを回避するには、キャッシュディレクトリをクリアするか、環境変数 QT3D_REBUILD_SHADER_CACHE を設定することで、強制的にシェーダーコードを生成し直すことができます。
プロパティのドキュメント
[read-only]
computeShaderCode : const QByteArray
生成されたコンピュートシェーダーコードを保持します。
アクセス関数:
QByteArray | computeShaderCode() const |
通知シグナル:
void | computeShaderCodeChanged(const QByteArray &computeShaderCode) |
computeShaderGraph : QUrl
このシェーダープログラムビルダが使用するコンピュートシェーダグラフへの URL を保持します。
アクセス関数:
QUrl | computeShaderGraph() const |
void | setComputeShaderGraph(const QUrl &computeShaderGraph) |
通知シグナル
void | computeShaderGraphChanged(const QUrl &computeShaderGraph) |
enabledLayers : QStringList
コード生成中にこのビルダーがシェーダー グラフ上でアクティブにするレイヤーのリストを保持します。
関数にアクセスします:
QStringList | enabledLayers() const |
void | setEnabledLayers(const QStringList &layers) |
通知シグナル:
void | enabledLayersChanged(const QStringList &layers) |
[read-only]
fragmentShaderCode : const QByteArray
フラグメントシェーダーの生成コードを保持します。
関数にアクセスします:
QByteArray | fragmentShaderCode() const |
通知シグナル:
void | fragmentShaderCodeChanged(const QByteArray &fragmentShaderCode) |
fragmentShaderGraph : QUrl
このシェーダープログラムビルダが使用するフラグメントシェーダグラフの URL を保持します。
アクセス関数:
QUrl | fragmentShaderGraph() const |
void | setFragmentShaderGraph(const QUrl &fragmentShaderGraph) |
通知シグナル
void | fragmentShaderGraphChanged(const QUrl &fragmentShaderGraph) |
[read-only]
geometryShaderCode : const QByteArray
生成ジオメトリシェーダコードを保持します。
関数にアクセスします:
QByteArray | geometryShaderCode() const |
ノーティファイアシグナル:
void | geometryShaderCodeChanged(const QByteArray &geometryShaderCode) |
geometryShaderGraph : QUrl
このシェーダープログラムビルダが使用するジオメトリシェーダグラフの URL を保持します。
アクセス関数:
QUrl | geometryShaderGraph() const |
void | setGeometryShaderGraph(const QUrl &geometryShaderGraph) |
通知シグナル
void | geometryShaderGraphChanged(const QUrl &geometryShaderGraph) |
shaderProgram : Qt3DRender::QShaderProgram*
このビルダーがコードを生成するシェーダープログラムを保持する。
関数にアクセスします:
Qt3DRender::QShaderProgram * | shaderProgram() const |
void | setShaderProgram(Qt3DRender::QShaderProgram *program) |
通知シグナル
void | shaderProgramChanged(Qt3DRender::QShaderProgram *shaderProgram) |
[read-only]
tessellationControlShaderCode : const QByteArray
生成テッセレーションコントロールシェーダーコードを保持します。
アクセス関数:
QByteArray | tessellationControlShaderCode() const |
通知シグナル:
void | tessellationControlShaderCodeChanged(const QByteArray &tessellationControlShaderCode) |
tessellationControlShaderGraph : QUrl
このシェーダプログラムビルダが使用するテッセレーションコントロールシェーダグラフのURLを保持します。
アクセス関数:
QUrl | tessellationControlShaderGraph() const |
void | setTessellationControlShaderGraph(const QUrl &tessellationControlShaderGraph) |
通知シグナル
void | tessellationControlShaderGraphChanged(const QUrl &tessellationControlShaderGraph) |
[read-only]
tessellationEvaluationShaderCode : const QByteArray
生成テッセレーション評価シェーダーコードを保持します。
アクセス関数:
QByteArray | tessellationEvaluationShaderCode() const |
ノーティファイア・シグナル:
void | tessellationEvaluationShaderCodeChanged(const QByteArray &tessellationEvaluationShaderCode) |
tessellationEvaluationShaderGraph : QUrl
このシェーダプログラムビルダが使用するテッセレーション評価シェーダグラフのURLを保持します。
アクセス関数:
QUrl | tessellationEvaluationShaderGraph() const |
void | setTessellationEvaluationShaderGraph(const QUrl &tessellationEvaluationShaderGraph) |
通知シグナル
void | tessellationEvaluationShaderGraphChanged(const QUrl &tessellationEvaluationShaderGraph) |
[read-only]
vertexShaderCode : const QByteArray
頂点シェーダーの生成コードを保持します。
関数にアクセスします:
QByteArray | vertexShaderCode() const |
通知シグナル:
void | vertexShaderCodeChanged(const QByteArray &vertexShaderCode) |
vertexShaderGraph : QUrl
このシェーダプログラムビルダが使用する頂点シェーダグラフの URL を保持します。
アクセス機能
QUrl | vertexShaderGraph() const |
void | setVertexShaderGraph(const QUrl &vertexShaderGraph) |
通知シグナル
void | vertexShaderGraphChanged(const QUrl &vertexShaderGraph) |
本書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。