diff --git a/scenes/main.tscn b/scenes/main.tscn index b43b0c8..5365da3 100644 --- a/scenes/main.tscn +++ b/scenes/main.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=10 format=3 uid="uid://bjah7k4bxo044"] [ext_resource type="Script" path="res://src/Main.gd" id="1_2625y"] -[ext_resource type="Script" path="res://src/Compositor.gd" id="2_hvo65"] +[ext_resource type="Script" path="res://src/ImageCompositor.gd" id="2_4thch"] [ext_resource type="Shader" path="res://src/shader/ivd_outline.gdshader" id="3_6xihe"] [ext_resource type="Script" path="res://src/ImageViewportDisplay.gd" id="3_n4itb"] [ext_resource type="Script" path="res://src/UIWindow.gd" id="6_8k0ha"] @@ -20,14 +20,7 @@ script = ExtResource("1_2625y") [node name="Compositor" type="SubViewport" parent="."] unique_name_in_owner = true -disable_3d = true -transparent_bg = true -canvas_item_default_texture_filter = 0 -render_target_update_mode = 4 -script = ExtResource("2_hvo65") - -[node name="ImageSprite" type="Sprite2D" parent="Compositor"] -unique_name_in_owner = true +script = ExtResource("2_4thch") [node name="ImageViewportDisplay" type="Sprite2D" parent="."] unique_name_in_owner = true diff --git a/src/Compositor.gd b/src/ImageCompositor.gd similarity index 88% rename from src/Compositor.gd rename to src/ImageCompositor.gd index 0a8bf14..9fe58ec 100644 --- a/src/Compositor.gd +++ b/src/ImageCompositor.gd @@ -1,9 +1,22 @@ -extends SubViewport +class_name ImageCompositor extends SubViewport + +var image_sprite: Sprite2D + +func _init() -> void: + # Overwrite some variables + self.render_target_update_mode = SubViewport.UPDATE_ALWAYS + self.disable_3d = true + self.transparent_bg = true + self.canvas_item_default_texture_filter = Viewport.DEFAULT_CANVAS_ITEM_TEXTURE_FILTER_NEAREST + self.image_sprite = Sprite2D.new() @onready var camera = %Camera -@onready var image_sprite = %ImageSprite @onready var image_viewport_display = %ImageViewportDisplay +func _ready() -> void: + # Add image sprite as child to be rendered + self.add_child(image_sprite) + var _fragment_function_regex: RegEx = RegEx.create_from_string(r'\s*void\s+fragment\s*\(\s*\)\s*{\s*') func validate_shader_compilation(shader: Shader) -> bool: