Refactored Main/%Compositor into a standalone ImageCompositor class; implements #38

This commit is contained in:
ChaoticByte 2025-01-10 22:18:43 +01:00
parent 3b47d57353
commit 85d33d5d77
No known key found for this signature in database
2 changed files with 17 additions and 11 deletions

View file

@ -1,7 +1,7 @@
[gd_scene load_steps=10 format=3 uid="uid://bjah7k4bxo044"] [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/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="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/ImageViewportDisplay.gd" id="3_n4itb"]
[ext_resource type="Script" path="res://src/UIWindow.gd" id="6_8k0ha"] [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="."] [node name="Compositor" type="SubViewport" parent="."]
unique_name_in_owner = true unique_name_in_owner = true
disable_3d = true script = ExtResource("2_4thch")
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
[node name="ImageViewportDisplay" type="Sprite2D" parent="."] [node name="ImageViewportDisplay" type="Sprite2D" parent="."]
unique_name_in_owner = true unique_name_in_owner = true

View file

@ -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 camera = %Camera
@onready var image_sprite = %ImageSprite
@onready var image_viewport_display = %ImageViewportDisplay @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*') 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: func validate_shader_compilation(shader: Shader) -> bool: