checkpoint: progressing on frosted glass panels
This commit is contained in:
@@ -1,28 +1,89 @@
|
||||
import pytest
|
||||
import time
|
||||
from unittest.mock import patch, MagicMock
|
||||
|
||||
def test_gui_frosted_background_call():
|
||||
# Mock ShaderManager and OpenGL functions
|
||||
with patch("src.gui_2.ShaderManager") as mock_sm_class, \
|
||||
patch("src.gui_2.gl") as mock_gl, \
|
||||
patch("src.gui_2.imgui") as mock_imgui:
|
||||
patch("src.gui_2.imgui") as mock_imgui, \
|
||||
patch("src.gui_2.theme") as mock_theme:
|
||||
|
||||
mock_sm = mock_sm_class.return_value
|
||||
mock_sm.fbo_width = 0
|
||||
mock_sm.fbo_height = 0
|
||||
mock_sm.capture_tex = 1
|
||||
mock_sm.blur_tex = 2
|
||||
mock_theme.get_frosted_glass_enabled.return_value = True
|
||||
|
||||
mock_imgui.get_io().display_size = MagicMock(x=1920, y=1080)
|
||||
|
||||
from src.gui_2 import App
|
||||
app = App()
|
||||
with patch.object(App, '__init__', return_value=None):
|
||||
app = App()
|
||||
app.shader_manager = mock_sm
|
||||
|
||||
# Simulate frame
|
||||
app._render_frosted_background(pos=MagicMock(x=10, y=10), size=MagicMock(x=100, y=100))
|
||||
|
||||
# Now it should only call add_image
|
||||
assert mock_imgui.get_window_draw_list().add_image.called
|
||||
# It no longer calls these
|
||||
assert not mock_sm.setup_capture_fbo.called
|
||||
assert not mock_sm.render_blur.called
|
||||
assert not mock_sm.capture_begin.called
|
||||
assert not mock_sm.capture_end.called
|
||||
|
||||
def test_gui_global_blur_call():
|
||||
with patch("src.gui_2.ShaderManager") as mock_sm_class, \
|
||||
patch("src.gui_2.imgui") as mock_imgui, \
|
||||
patch("src.gui_2.theme") as mock_theme, \
|
||||
patch("src.gui_2.bg_shader") as mock_bg:
|
||||
|
||||
# Simulate frame
|
||||
app._render_frosted_background(pos=MagicMock(x=10, y=10), size=MagicMock(x=100, y=100))
|
||||
mock_sm = mock_sm_class.return_value
|
||||
mock_theme.get_frosted_glass_enabled.return_value = True
|
||||
mock_theme.is_nerv_active.return_value = False
|
||||
mock_imgui.get_io().display_size = MagicMock(x=1920, y=1080)
|
||||
mock_bg.get_bg.return_value = MagicMock(enabled=False)
|
||||
|
||||
assert mock_sm.setup_capture_fbo.called
|
||||
assert mock_gl.glCopyTexImage2D.called
|
||||
assert mock_sm.render_blur.called
|
||||
assert mock_sm.capture_begin.called
|
||||
assert mock_sm.capture_end.called
|
||||
from src.gui_2 import App
|
||||
with patch.object(App, '__init__', return_value=None):
|
||||
app = App()
|
||||
app.shader_manager = mock_sm
|
||||
app.shader_uniforms = {
|
||||
'frosted_blur_radius': 10.0,
|
||||
'frosted_tint_intensity': 0.5,
|
||||
'frosted_opacity': 0.8
|
||||
}
|
||||
app.ai_status = "idle"
|
||||
app.ui_crt_filter = False
|
||||
app.controller = MagicMock()
|
||||
app.perf_profiling_enabled = False
|
||||
app.is_viewing_prior_session = False
|
||||
app.config = {}
|
||||
app.project = {}
|
||||
app.show_windows = {}
|
||||
app.ui_auto_scroll_comms = False
|
||||
app._comms_log_dirty = False
|
||||
app._tool_log_dirty = False
|
||||
app._pending_comms_lock = MagicMock()
|
||||
app._pending_comms = []
|
||||
app.ui_focus_agent = None
|
||||
app._last_ui_focus_agent = None
|
||||
app.perf_monitor = MagicMock()
|
||||
app._process_pending_gui_tasks = MagicMock()
|
||||
app._process_pending_history_adds = MagicMock()
|
||||
app._render_track_proposal_modal = MagicMock()
|
||||
app._render_patch_modal = MagicMock()
|
||||
app._render_save_preset_modal = MagicMock()
|
||||
app._render_preset_manager_window = MagicMock()
|
||||
app._render_tool_preset_manager_window = MagicMock()
|
||||
app._render_persona_editor_window = MagicMock()
|
||||
app._last_autosave = time.time()
|
||||
app._autosave_interval = 60
|
||||
app._render_custom_title_bar = MagicMock()
|
||||
app._render_shader_live_editor = MagicMock()
|
||||
|
||||
try:
|
||||
app._gui_func()
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
assert mock_sm.prepare_global_blur.called
|
||||
|
||||
Reference in New Issue
Block a user