Added Open & Save buttons for the shader, some code improvements and bugfixes, open window maximized per default - closes #3

This commit is contained in:
ChaoticByte 2024-06-08 11:23:21 +02:00
parent 3a5451a4f6
commit d7a4b05e85
No known key found for this signature in database
5 changed files with 94 additions and 28 deletions

View file

@ -18,14 +18,15 @@ func _input(event):
global_position -= event.relative / zoom
func fit_image():
var ui_container_size = user_interface_container.size
var image_size = image_viewport.image_original_tex.get_size()
var viewport_size = get_viewport_rect().size
var zoomf = (viewport_size.x - ui_container_size.x) / image_size.x / 1.1
if zoomf * image_size.y > viewport_size.y:
zoomf = viewport_size.y / image_size.y / 1.1
zoom = Vector2(zoomf, zoomf)
global_position = Vector2(-((ui_container_size.x) / 2 / zoom.x), 0)
if image_viewport.image_original_tex != null:
var ui_container_size = user_interface_container.size
var image_size = image_viewport.image_original_tex.get_size()
var viewport_size = get_viewport_rect().size
var zoomf = (viewport_size.x - ui_container_size.x) / image_size.x / 1.1
if zoomf * image_size.y > viewport_size.y:
zoomf = viewport_size.y / image_size.y / 1.1
zoom = Vector2(zoomf, zoomf)
global_position = Vector2(-((ui_container_size.x) / 2 / zoom.x), 0)
func zoom_in():
var old_mouse_pos = get_global_mouse_position()

View file

@ -2,6 +2,8 @@ extends Control
@onready var preset_options = $PresetOptions
@onready var code_editor = $CodeEdit
@onready var open_shader_dialog = $OpenShaderDialog
@onready var save_shader_dialog = $SaveShaderDialog
var selected_preset_name = ShaderPresets.default_preset
# # # # # # # # # # #
@ -210,3 +212,24 @@ func update():
preset_options.select(current_p_idx)
# weirdness ends here
code_editor.text = Globals.shader.code
func _on_open_shader_button_pressed():
open_shader_dialog.show()
func _on_save_shader_button_pressed():
save_shader_dialog.current_file = selected_preset_name + "_custom.gdshader"
save_shader_dialog.show()
func _on_open_shader_dialog_file_selected(path):
var file = FileAccess.open(path, FileAccess.READ)
var shader_code = file.get_as_text()
var shader = Shader.new()
shader.code = shader_code
Globals.shader = shader
Globals.target_viewport.update()
update()
func _on_save_shader_dialog_file_selected(path):
var file = FileAccess.open(path, FileAccess.WRITE)
var content = Globals.shader.code
file.store_string(content)

View file

@ -3,19 +3,16 @@ extends Node2D
@onready var camera = $Camera
@onready var image_viewport = $ImageViewport
@onready var ui_container = $UI_Layer/UserInterfaceContainer
@onready var ui_control_fileopen = $UI_Layer/UserInterfaceContainer/OpenFileDialog
@onready var ui_control_filesave = $UI_Layer/UserInterfaceContainer/SaveFileDialog
@onready var ui_control_fileopen = $UI_Layer/UserInterfaceContainer/OpenImageDialog
@onready var ui_control_filesave = $UI_Layer/UserInterfaceContainer/SaveImageDialog
func _ready():
Globals.target_viewport = image_viewport
func _on_open_image_button_pressed():
if OS.get_name() == "Android":
Engine.get_singleton("GodotGetImage").getGalleryImage()
else:
ui_control_fileopen.show()
ui_control_fileopen.show()
func _on_open_file_dialog_file_selected(path):
func _on_open_image_dialog_file_selected(path):
var img = Image.new()
var err = img.load(path)
if err == OK:
@ -26,9 +23,11 @@ func _on_open_file_dialog_file_selected(path):
print("An error occured!")
func _on_save_image_button_pressed():
ui_control_filesave.show()
if image_viewport.get_result() != null:
ui_control_filesave.current_file = "image.png"
ui_control_filesave.show()
func _on_save_file_dialog_file_selected(path):
func _on_save_image_dialog_file_selected(path):
var err = image_viewport.get_result().save_png(path)
if err != OK:
print("An error occured!")