Qt3DRender::QShaderProgramBuilder Class
class Qt3DRender::QShaderProgramBuilder読み込まれたグラフからシェーダープログラムの内容を生成します。詳細...
| ヘッダー: | #include <qshaderprogrambuilder.h> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS 3drender) target_link_libraries(mytarget PRIVATE Qt6::3drender) |
| qmake: | QT += 3drender |
| QML内: | ShaderProgramBuilder |
| 継承元: | Qt3DCore::QNode |
| ステータス: | 非推奨 |
このクラスは非推奨です。新しいコードでの使用は強く推奨しません。
プロパティ
|
|
パブリック関数
| 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 : 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 : 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 : 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 : 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 : 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 : 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) |
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.