Skip to content

Commit c21aadc

Browse files
committed
Background Layer options
Fix for #2424 Added adjustable settings to the background layer to override project settings for texture filtering and texture repeating.
1 parent 306fe95 commit c21aadc

2 files changed

Lines changed: 40 additions & 1 deletion

File tree

addons/dialogic/Modules/Background/subsystem_backgrounds.gd

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@ func update_background(scene := "", argument := "", fade_time := 0.0, transition
9292
old_viewport = background_holder.get_meta('current_viewport', null)
9393

9494
var new_viewport: SubViewportContainer
95+
9596
if scene.ends_with('.tscn') and ResourceLoader.exists(scene):
9697
new_viewport = add_background_node(load(scene), background_holder)
9798
elif argument:
@@ -175,7 +176,16 @@ func add_background_node(scene:PackedScene, parent:DialogicNode_BackgroundHolder
175176
viewport.transparent_bg = true
176177
viewport.disable_3d = true
177178
viewport.render_target_update_mode = SubViewport.UPDATE_ALWAYS
178-
viewport.canvas_item_default_texture_filter = ProjectSettings.get_setting("rendering/textures/canvas_textures/default_texture_filter")
179+
180+
if parent.get_parent().get('bg_texture_filter') != null and parent.get_parent().bg_texture_filter > -1:
181+
viewport.canvas_item_default_texture_filter = parent.get_parent().bg_texture_filter
182+
else:
183+
viewport.canvas_item_default_texture_filter = ProjectSettings.get_setting("rendering/textures/canvas_textures/default_texture_filter")
184+
185+
if parent.get_parent().get('bg_texture_repeat') != null and parent.get_parent().bg_texture_repeat > -1:
186+
viewport.canvas_item_default_texture_repeat = parent.get_parent().bg_texture_repeat
187+
else:
188+
viewport.canvas_item_default_texture_repeat = ProjectSettings.get_setting("rendering/textures/canvas_textures/default_texture_repeat")
179189

180190
viewport.add_child(b_scene)
181191
b_scene.viewport = viewport
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,31 @@
11
@tool
22
extends DialogicLayoutLayer
3+
4+
# Awkward way of doing this, but we need a 'none' default to preserve compatiblity
5+
# These enums are just copies of Viewport.DefaultCanvasItemTextureFilter
6+
enum DefaultCanvasItemTextureFilter {
7+
USE_PROJECT_SETTINGS,
8+
NEAREST,
9+
LINEAR,
10+
LINEAR_WITH_MIPMAPS,
11+
NEAREST_WITH_MIPMAPS
12+
}
13+
14+
# These enums are just copies of Viewport.DefaultCanvasItemTextureRepeat
15+
enum DefaultCanvasItemTextureRepeat {
16+
USE_PROJECT_SETTINGS,
17+
DISABLED,
18+
ENABLED,
19+
REPEAT_MIRROR
20+
}
21+
22+
23+
@export var bg_texture_filter : DefaultCanvasItemTextureFilter = DefaultCanvasItemTextureFilter.USE_PROJECT_SETTINGS
24+
@export var bg_texture_repeat : DefaultCanvasItemTextureRepeat = DefaultCanvasItemTextureRepeat.USE_PROJECT_SETTINGS
25+
26+
27+
func _ready() -> void:
28+
# This is a work around to the style editor not accepting negative numbered enums
29+
# This allows the enum values to properly match the Viewport defaults
30+
bg_texture_filter = bg_texture_filter -1
31+
bg_texture_repeat = bg_texture_repeat -1

0 commit comments

Comments
 (0)