#ifndef VISUAL_SHADER_EDITOR_PLUGIN_H #define VISUAL_SHADER_EDITOR_PLUGIN_H #include "editor/editor_node.h" #include "editor/editor_plugin.h" #include "editor/property_editor.h" #include "scene/gui/button.h" #include "scene/gui/graph_edit.h" #include "scene/gui/popup.h" #include "scene/gui/tree.h" #include "scene/resources/visual_shader.h" class VisualShaderNodePlugin : public Reference { GDCLASS(VisualShaderNodePlugin, Reference) protected: static void _bind_methods(); public: virtual Control *create_editor(const Ref &p_node); }; class VisualShaderEditor : public VBoxContainer { GDCLASS(VisualShaderEditor, VBoxContainer); CustomPropertyEditor *property_editor; int editing_node; int editing_port; Ref visual_shader; GraphEdit *graph; MenuButton *add_node; OptionButton *edit_type; PanelContainer *error_panel; Label *error_label; UndoRedo *undo_redo; void _update_graph(); struct AddOption { String name; String category; String type; Ref