// Copyright (C) 2025 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only #pragma once #include "effectcodeeditorwidget.h" #include #include #include namespace EffectComposer { class EffectComposerUniformsTableModel; struct ShaderEditorData { using Creator = std::function< ShaderEditorData *(const QString &fragmentShader, const QString &vertexShader)>; EffectComposerUniformsTableModel *tableModel = nullptr; std::function uniformsCallback = nullptr; std::function exitEditorCallback = nullptr; TextEditor::TextDocumentPtr fragmentDocument; TextEditor::TextDocumentPtr vertexDocument; ~ShaderEditorData() { if (exitEditorCallback) exitEditorCallback(); } private: friend class EffectShadersCodeEditor; Utils::UniqueObjectLatePtr fragmentEditor; Utils::UniqueObjectLatePtr vertexEditor; ShaderEditorData() = default; }; } // namespace EffectComposer