From 991633dfcefb6621d4dab9fad52b41cb3436925b Mon Sep 17 00:00:00 2001 From: Marco Hladik Date: Wed, 13 Oct 2021 23:45:43 +0200 Subject: [PATCH] Add option to hide the fixed-Patch balls. --- src/camwindow.cpp | 26 ++++++++++++++++++++++++++ src/mainframe.cpp | 1 + src/patch.cpp | 3 +++ 3 files changed, 30 insertions(+) diff --git a/src/camwindow.cpp b/src/camwindow.cpp index fba9076..abddd27 100644 --- a/src/camwindow.cpp +++ b/src/camwindow.cpp @@ -86,6 +86,7 @@ struct camwindow_globals_private_t { bool m_showStats; bool m_showLighting; bool m_showAlpha; + bool m_showPatchBalls; int m_nStrafeMode; camwindow_globals_private_t() : @@ -98,6 +99,7 @@ struct camwindow_globals_private_t { m_showStats(false), m_showLighting(false), m_showAlpha(true), + m_showPatchBalls(true), m_nStrafeMode(0) { } @@ -1639,9 +1641,30 @@ FreeCaller &), ShowAlphaExport> g_show_alpha_cal Callback &)> g_show_alpha_callback(g_show_alpha_caller); ToggleItem g_show_alpha(g_show_alpha_callback); +/* Show Patch Balls */ +void ShowPatchBallsToggle() +{ + g_camwindow_globals_private.m_showPatchBalls ^= 1; +} +void ShowPatchBallsExport(const Callback &importer) +{ + importer(g_camwindow_globals_private.m_showPatchBalls); +} +FreeCaller &), ShowPatchBallsExport> g_show_patchballs_caller; +Callback &)> g_show_patchballs_callback(g_show_patchballs_caller); +ToggleItem g_show_patchballs(g_show_patchballs_callback); + +bool +PatchBalls_Visible(void) +{ + return g_camwindow_globals_private.m_showPatchBalls; +} + void CamWnd::Cam_Draw() { glViewport(0, 0, m_Camera.width, m_Camera.height); + glScissor(0, 0, m_Camera.width, m_Camera.height); + glEnable(GL_SCISSOR_TEST); #if 0 GLint viewprt[4]; glGetIntegerv( GL_VIEWPORT, viewprt ); @@ -2188,6 +2211,7 @@ void CamWnd_Construct() GlobalToggles_insert("ShowStats", makeCallbackF(ShowStatsToggle), ToggleItem::AddCallbackCaller(g_show_stats)); GlobalToggles_insert("ShowLighting", makeCallbackF(ShowLightToggle), ToggleItem::AddCallbackCaller(g_show_light)); GlobalToggles_insert("ShowAlpha", makeCallbackF(ShowAlphaToggle), ToggleItem::AddCallbackCaller(g_show_alpha)); + GlobalToggles_insert("ShowPatchBalls", makeCallbackF(ShowPatchBallsToggle), ToggleItem::AddCallbackCaller(g_show_patchballs)); GlobalPreferenceSystem().registerPreference("ShowStats", make_property_string(g_camwindow_globals_private.m_showStats)); @@ -2195,6 +2219,8 @@ void CamWnd_Construct() make_property_string(g_camwindow_globals_private.m_showLighting)); GlobalPreferenceSystem().registerPreference("ShowAlpha", make_property_string(g_camwindow_globals_private.m_showAlpha)); + GlobalPreferenceSystem().registerPreference("ShowPatchBalls", + make_property_string(g_camwindow_globals_private.m_showPatchBalls)); GlobalPreferenceSystem().registerPreference("MoveSpeed", make_property_string(g_camwindow_globals_private.m_nMoveSpeed)); GlobalPreferenceSystem().registerPreference("CamLinkSpeed", diff --git a/src/mainframe.cpp b/src/mainframe.cpp index 5039527..6401319 100644 --- a/src/mainframe.cpp +++ b/src/mainframe.cpp @@ -1976,6 +1976,7 @@ ui::MenuItem create_view_menu() create_check_menu_item_with_mnemonic(menu_in_menu, "Show Lighting", "ShowLighting"); create_check_menu_item_with_mnemonic(menu_in_menu, "Show Alpha", "ShowAlpha"); create_check_menu_item_with_mnemonic(menu_in_menu, "Show Stats", "ShowStats"); + create_check_menu_item_with_mnemonic(menu_in_menu, "Show Patch Balls", "ShowPatchBalls"); } { diff --git a/src/patch.cpp b/src/patch.cpp index 6d85b6f..28306ac 100644 --- a/src/patch.cpp +++ b/src/patch.cpp @@ -1540,6 +1540,7 @@ void patch_draw_sphere(const Vector3 origin, float radius, int sides) } } +bool PatchBalls_Visible(void); void RenderablePatchFixedSolid::RenderNormals() const { const std::size_t width = m_tess.m_numStrips + 1; @@ -1552,6 +1553,7 @@ void RenderablePatchFixedSolid::RenderNormals() const Vector4 colour = (m_tess.m_vertices.data() + (j * width + i))->colour; /* color the currently selected bit */ + if (PatchBalls_Visible()) { if (PatchInspector_IsSelected((int)i, (int)j)) { glColor3f(1,0,0); patch_draw_sphere(pos, 8, 4); @@ -1559,6 +1561,7 @@ void RenderablePatchFixedSolid::RenderNormals() const glColor3f(1,1,1); patch_draw_sphere(pos, 2, 4); } + } /*{ Vector3 vNormal(