mirror of
https://github.com/godotengine/godot.git
synced 2024-12-09 10:09:20 +08:00
Merge pull request #54126 from Chaosus/vs_fix_curve_texture
This commit is contained in:
commit
83eb214bcf
@ -31,6 +31,7 @@
|
||||
#include "visual_shader_editor_plugin.h"
|
||||
|
||||
#include "core/config/project_settings.h"
|
||||
#include "core/core_string_names.h"
|
||||
#include "core/input/input.h"
|
||||
#include "core/io/resource_loader.h"
|
||||
#include "core/math/math_defs.h"
|
||||
@ -212,19 +213,27 @@ void VisualShaderGraphPlugin::set_uniform_name(VisualShader::Type p_type, int p_
|
||||
|
||||
void VisualShaderGraphPlugin::update_curve(int p_node_id) {
|
||||
if (links.has(p_node_id) && links[p_node_id].curve_editors[0]) {
|
||||
if (((VisualShaderNodeCurveTexture *)links[p_node_id].visual_node)->get_texture().is_valid()) {
|
||||
links[p_node_id].curve_editors[0]->set_curve(((VisualShaderNodeCurveTexture *)links[p_node_id].visual_node)->get_texture()->get_curve());
|
||||
Ref<VisualShaderNodeCurveTexture> tex = Object::cast_to<VisualShaderNodeCurveTexture>(links[p_node_id].visual_node);
|
||||
ERR_FAIL_COND(!tex.is_valid());
|
||||
|
||||
if (tex->get_texture().is_valid()) {
|
||||
links[p_node_id].curve_editors[0]->set_curve(tex->get_texture()->get_curve());
|
||||
}
|
||||
tex->emit_signal(CoreStringNames::get_singleton()->changed);
|
||||
}
|
||||
}
|
||||
|
||||
void VisualShaderGraphPlugin::update_curve_xyz(int p_node_id) {
|
||||
if (links.has(p_node_id) && links[p_node_id].curve_editors[0] && links[p_node_id].curve_editors[1] && links[p_node_id].curve_editors[2]) {
|
||||
if (((VisualShaderNodeCurveXYZTexture *)links[p_node_id].visual_node)->get_texture().is_valid()) {
|
||||
links[p_node_id].curve_editors[0]->set_curve(((VisualShaderNodeCurveXYZTexture *)links[p_node_id].visual_node)->get_texture()->get_curve_x());
|
||||
links[p_node_id].curve_editors[1]->set_curve(((VisualShaderNodeCurveXYZTexture *)links[p_node_id].visual_node)->get_texture()->get_curve_y());
|
||||
links[p_node_id].curve_editors[2]->set_curve(((VisualShaderNodeCurveXYZTexture *)links[p_node_id].visual_node)->get_texture()->get_curve_z());
|
||||
Ref<VisualShaderNodeCurveXYZTexture> tex = Object::cast_to<VisualShaderNodeCurveXYZTexture>(links[p_node_id].visual_node);
|
||||
ERR_FAIL_COND(!tex.is_valid());
|
||||
|
||||
if (tex->get_texture().is_valid()) {
|
||||
links[p_node_id].curve_editors[0]->set_curve(tex->get_texture()->get_curve_x());
|
||||
links[p_node_id].curve_editors[1]->set_curve(tex->get_texture()->get_curve_y());
|
||||
links[p_node_id].curve_editors[2]->set_curve(tex->get_texture()->get_curve_z());
|
||||
}
|
||||
tex->emit_signal(CoreStringNames::get_singleton()->changed);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user