/
redgpu
/
ezEngine
Обзор
Документация
Войти
/
redgpu
/
ezEngine
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
dev
Code/EditorPlugins/Assets/EditorPluginAssets/VisualShader/VisualShaderNodeManager.h
46 строк
2 KB
Jan Krassnigg
Visual graph infrastructure cleanup (#1821)
19 фев 2026, 09:02
Не верифицирован
19 фев 2026, 09:02
7f7f12f
Код
Авторство
О чём код?
#pragma once #include <EditorPluginAssets/VisualShader/VisualShaderTypeRegistry.h> #include <ToolsFoundation/VisualGraph/VisualGraphObjectManager.h> struct ezVisualShaderPinDescriptor; /// Visual graph pin for visual shader nodes. /// /// Extends the base pin class with shader-specific metadata such as data type and tooltip information /// derived from the pin descriptor. class ezVisualShaderPin : public ezVisualGraphPin { EZ_ADD_DYNAMIC_REFLECTION(ezVisualShaderPin, ezVisualGraphPin); public: ezVisualShaderPin(Type type, const ezVisualShaderPinDescriptor* pDescriptor, const ezDocumentObject* pObject); const ezRTTI* GetDataType() const; const ezString& GetTooltip() const; const ezVisualShaderPinDescriptor* GetDescriptor() const { return m_pDescriptor; } private: const ezVisualShaderPinDescriptor* m_pDescriptor; }; /// Object manager for visual shader graphs. /// /// Manages the document representation of visual shader nodes and their connections. /// Creates pins based on shader node type descriptors and validates connections based on data type compatibility. /// Enforces constraints such as limiting the number of certain node types in a shader. class ezVisualShaderNodeManager : public ezVisualGraphObjectManager { public: virtual bool InternalIsNode(const ezDocumentObject* pObject) const override; virtual void InternalCreatePins(const ezDocumentObject* pObject, NodeInternal& ref_node) override; virtual void GetNodeCreationTemplates(ezDynamicArray<ezVisualGraphNodeDesc>& out_templates) const override; virtual ezStatus InternalCanConnect(const ezVisualGraphPin& source, const ezVisualGraphPin& target, CanConnectResult& out_result) const override; private: virtual ezStatus InternalCanAdd( const ezRTTI* pRtti, const ezDocumentObject* pParent, ezStringView sParentProperty, const ezVariant& index) const override; ezUInt32 CountNodesOfType(ezVisualShaderNodeType::Enum type) const; };