feat(迭代26 T2): 全局纹理过滤设邻近采样+平滑渐变件 LINEAR 白名单

- project.godot [rendering] 增 textures/canvas_textures/default_texture_filter=0(Nearest——
  翻转面=立绘/瓦片/格面/图标/九宫格 UI 皮 crisp,即本批意图;T0 枚举闭合无漏枚举面)
- ui_kit.gd 白名单三件显式 LINEAR:vignette_rect 暗角/beams_rect 光柱(Q7 裁,连续 alpha 同血统)/
  gradient_base 地图渐变;既有脚影/状态图标 LINEAR 不动
- 冒烟新增 _smoke_texture_filter() 6 断言(V3:工程设置=0+白名单三件在位+既有两处不丢);
  冒烟 1022→1028/0;probe --click 全绿残留 0
This commit is contained in:
DKChan committed 2026-10-14 05:15:32 +08:00
1 parent b6f0c66183
commit 9ddb571d87
3 files changed
+29

No files matched your search

+3
View File
@@ -253,6 +253,7 @@ static func vignette_rect() -> TextureRect:
var tr := TextureRect.new()
tr.texture = t
tr.stretch_mode = TextureRect.STRETCH_SCALE
tr.texture_filter = CanvasItem.TEXTURE_FILTER_LINEAR # 平滑渐变件白名单(迭代 26 T2——全局 Nearest 下显式豁免)
tr.set_anchors_preset(Control.PRESET_FULL_RECT)
tr.mouse_filter = Control.MOUSE_FILTER_IGNORE
return tr
@@ -272,6 +273,7 @@ static func beams_rect() -> TextureRect:
var tr := TextureRect.new()
tr.texture = ImageTexture.create_from_image(img)
tr.stretch_mode = TextureRect.STRETCH_TILE
tr.texture_filter = CanvasItem.TEXTURE_FILTER_LINEAR # 平滑渐变件白名单(迭代 26 T2 Q7 裁——连续 alpha 与暗角/地图渐变同血统)
tr.set_anchors_preset(Control.PRESET_FULL_RECT)
tr.mouse_filter = Control.MOUSE_FILTER_IGNORE
return tr
@@ -291,6 +293,7 @@ static func gradient_base(top: Color, low: Color, stop := 0.4) -> TextureRect:
var tr := TextureRect.new()
tr.texture = t
tr.stretch_mode = TextureRect.STRETCH_SCALE
tr.texture_filter = CanvasItem.TEXTURE_FILTER_LINEAR # 平滑渐变件白名单(迭代 26 T2——全局 Nearest 下显式豁免)
tr.set_anchors_preset(Control.PRESET_FULL_RECT)
tr.mouse_filter = Control.MOUSE_FILTER_IGNORE
return tr
+1
View File
@@ -34,3 +34,4 @@ theme/custom="res://assets/theme/main_theme.tres"
renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility"
textures/canvas_textures/default_texture_filter=0
+25
View File
@@ -108,6 +108,7 @@ func _run_core_smoke(db, rng) -> void:
_smoke_battle_log_view()
_smoke_global_theme()
_smoke_button_five_states()
_smoke_texture_filter()
_smoke_encounter_roll()
_smoke_attack_chain_fresh_pool()
_smoke_clear_reward_chain()
@@ -5531,6 +5532,30 @@ func _smoke_button_five_states() -> void:
check(focus_hits == "", "V2 红线维持 focus 族词条零定义%s" % ("" if focus_hits == "" else "(违例:" + focus_hits + ")"))
# ---- 全局纹理过滤冒烟(迭代 26 T2——工程设置 Nearest+平滑渐变件 LINEAR 白名单;V3)----
func _smoke_texture_filter() -> void:
print("--- UI 全局纹理过滤(Nearest+白名单三件)---")
var v = ProjectSettings.get_setting("rendering/textures/canvas_textures/default_texture_filter")
check(v != null and int(v) == 0, "V3 工程设置 default_texture_filter=0(Nearest,翻转面=立绘/瓦片/九宫格 crisp)")
var uikit_s = load("res://presentation/views/ui_kit.gd")
var vg = uikit_s.vignette_rect()
check(vg.texture_filter == CanvasItem.TEXTURE_FILTER_LINEAR, "V3 白名单在位:暗角 vignette 显式 LINEAR")
vg.free()
var bm = uikit_s.beams_rect()
check(bm.texture_filter == CanvasItem.TEXTURE_FILTER_LINEAR, "V3 白名单在位:光柱 beams 显式 LINEAR")
bm.free()
var gb = uikit_s.gradient_base(Color.BLACK, Color.WHITE)
check(gb.texture_filter == CanvasItem.TEXTURE_FILTER_LINEAR, "V3 白名单在位:地图渐变 gradient_base 显式 LINEAR")
gb.free()
# 既有显式 LINEAR 两处不丢(源码锚定——脚影/状态图标)
var bw_src: String = FileAccess.get_file_as_string("res://presentation/views/board_world.gd")
check(bw_src.contains("shadow.texture_filter = CanvasItem.TEXTURE_FILTER_LINEAR"),
"V3 脚影显式 LINEAR 不丢(board_world.gd)")
var ss_src: String = FileAccess.get_file_as_string("res://presentation/views/status_slot_row.gd")
check(ss_src.contains("icon.texture_filter = CanvasItem.TEXTURE_FILTER_LINEAR"),
"V3 状态图标显式 LINEAR 不丢(status_slot_row.gd)")
# ---- 存档序列化冒烟(SaveManager——读写往返/新档合法/余额拒花/锻造出域拒/高版本拒读禁写/
# 损坏兜底/迁移链/域界干净/摘要 cap/摘要集成/生涯终身计数域 v6)。测试文件统一 user://smoke_save_*.json 隔离,
# 段首清场+段尾清理——绝不碰 user://save.json(红线)。