mirror of
https://github.com/Orama-Interactive/Pixelorama.git
synced 2025-02-22 13:33:13 +00:00
Change shader color in the experimental shader feature
Feature not exposed to the end user yet
This commit is contained in:
parent
2a6c5b9ef6
commit
41d9add6a7
2 changed files with 36 additions and 1 deletions
|
@ -133,6 +133,19 @@ func change_shader(shader_tmp: Shader, name: String) -> void:
|
||||||
hbox.add_child(label)
|
hbox.add_child(label)
|
||||||
hbox.add_child(spinbox)
|
hbox.add_child(spinbox)
|
||||||
shader_params.add_child(hbox)
|
shader_params.add_child(hbox)
|
||||||
|
elif u_type == "vec4":
|
||||||
|
if "hint_color" in u_hint:
|
||||||
|
var label := Label.new()
|
||||||
|
label.text = u_name
|
||||||
|
var color = vec4str_to_color(u_value)
|
||||||
|
var color_button := ColorPickerButton.new()
|
||||||
|
color_button.rect_min_size = Vector2(20, 20)
|
||||||
|
color_button.color = color
|
||||||
|
color_button.connect("color_changed", self, "set_shader_param", [u_name])
|
||||||
|
var hbox := HBoxContainer.new()
|
||||||
|
hbox.add_child(label)
|
||||||
|
hbox.add_child(color_button)
|
||||||
|
shader_params.add_child(hbox)
|
||||||
|
|
||||||
|
|
||||||
# print("---")
|
# print("---")
|
||||||
|
@ -146,3 +159,24 @@ func change_shader(shader_tmp: Shader, name: String) -> void:
|
||||||
|
|
||||||
func set_shader_param(value, param: String) -> void:
|
func set_shader_param(value, param: String) -> void:
|
||||||
preview.material.set_shader_param(param, value)
|
preview.material.set_shader_param(param, value)
|
||||||
|
|
||||||
|
|
||||||
|
func vec4str_to_color(vec4: String) -> Color:
|
||||||
|
vec4 = vec4.replace("vec4(", "")
|
||||||
|
vec4 = vec4.replace(")", "")
|
||||||
|
var rgba_values: PoolStringArray = vec4.split(",")
|
||||||
|
var red := float(rgba_values[0])
|
||||||
|
|
||||||
|
var green := float(rgba_values[0])
|
||||||
|
if rgba_values.size() >= 2:
|
||||||
|
green = float(rgba_values[1])
|
||||||
|
|
||||||
|
var blue := float(rgba_values[0])
|
||||||
|
if rgba_values.size() >= 3:
|
||||||
|
blue = float(rgba_values[2])
|
||||||
|
|
||||||
|
var alpha := float(rgba_values[0])
|
||||||
|
if rgba_values.size() == 4:
|
||||||
|
alpha = float(rgba_values[3])
|
||||||
|
var color: Color = Color(red, green, blue, alpha)
|
||||||
|
return color
|
||||||
|
|
|
@ -69,7 +69,8 @@ window_title = "Open a File"
|
||||||
resizable = true
|
resizable = true
|
||||||
mode = 0
|
mode = 0
|
||||||
access = 2
|
access = 2
|
||||||
filters = PoolStringArray( "*shader" )
|
filters = PoolStringArray( "*shader; Godot Shader File" )
|
||||||
|
show_hidden_files = true
|
||||||
current_dir = "/"
|
current_dir = "/"
|
||||||
current_path = "/"
|
current_path = "/"
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue