1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-06 12:20:30 +00:00

Remakes particles in visual shaders

This commit is contained in:
Yuri Roubinsky
2020-09-07 10:28:13 +03:00
parent 365dbde25d
commit dc6685d28f
4 changed files with 259 additions and 106 deletions

View File

@@ -63,7 +63,9 @@ class VisualShaderEditor : public VBoxContainer {
Button *add_node;
Button *preview_shader;
OptionButton *edit_type;
OptionButton *edit_type = nullptr;
OptionButton *edit_type_standart;
OptionButton *edit_type_particles;
PanelContainer *error_panel;
Label *error_label;
@@ -84,13 +86,18 @@ class VisualShaderEditor : public VBoxContainer {
MenuButton *tools;
bool preview_showed;
bool particles_mode;
enum TypeFlags {
TYPE_FLAGS_VERTEX = 1,
TYPE_FLAGS_FRAGMENT = 2,
TYPE_FLAGS_LIGHT = 4,
TYPE_FLAGS_COMPUTE = 8,
TYPE_FLAGS_VERTEX_FRAGMENT_LIGHT = TYPE_FLAGS_VERTEX | TYPE_FLAGS_FRAGMENT | TYPE_FLAGS_LIGHT,
};
enum ParticlesTypeFlags {
TYPE_FLAGS_EMIT = 1,
TYPE_FLAGS_PROCESS = 2,
TYPE_FLAGS_END = 4
};
enum ToolsMenuOptions {
@@ -242,6 +249,8 @@ class VisualShaderEditor : public VBoxContainer {
void _input_select_item(Ref<VisualShaderNodeInput> input, String name);
void _uniform_select_item(Ref<VisualShaderNodeUniformRef> p_uniform, String p_name);
VisualShader::Type get_current_shader_type() const;
void _add_input_port(int p_node, int p_port, int p_port_type, const String &p_name);
void _remove_input_port(int p_node, int p_port);
void _change_input_port_type(int p_type, int p_node, int p_port);