1515import net .wurstclient .hack .AboveGroundFilterManager ;
1616import net .wurstclient .hack .CheckboxOverrideManager ;
1717import net .wurstclient .hack .Hack ;
18+ import net .wurstclient .render .globalesp .GlobalEspRenderMode ;
1819import net .wurstclient .settings .CheckboxSetting ;
1920import net .wurstclient .settings .EnumSetting ;
2021import net .wurstclient .settings .SliderSetting ;
@@ -54,6 +55,11 @@ public final class GlobalToggleHack extends Hack implements UpdateListener
5455 "FULL: Update only when full area scan is done (old behavior).\n "
5556 + "PARTIAL: Update from ready chunks immediately (faster detection)." ,
5657 ChunkScanMode .values (), ChunkScanMode .FULL );
58+ private final EnumSetting <GlobalEspRenderMode > globalEspRenderMode =
59+ new EnumSetting <>("Global ESP render mode" ,
60+ "LEGACY: existing per-hack draw path.\n "
61+ + "SHADER_OUTLINE: centralized global ESP pipeline." ,
62+ GlobalEspRenderMode .values (), GlobalEspRenderMode .LEGACY );
5763
5864 private Map <CheckboxSetting , Boolean > stickySnapshot = Map .of ();
5965 private Map <CheckboxSetting , Boolean > yLimitSnapshot = Map .of ();
@@ -79,6 +85,7 @@ public GlobalToggleHack()
7985 addSetting (searchThreadPriority );
8086 addSetting (setSliderLimitOverride );
8187 addSetting (chunkScanMode );
88+ addSetting (globalEspRenderMode );
8289
8390 lastYLimitValue = yLimitValue .getValueI ();
8491 lastSearchThreadPriority = searchThreadPriority .getValueI ();
@@ -237,6 +244,11 @@ public boolean isSetSliderLimitOverrideAllowed()
237244 return setSliderLimitOverride .isChecked ();
238245 }
239246
247+ public GlobalEspRenderMode getGlobalEspRenderMode ()
248+ {
249+ return globalEspRenderMode .getSelected ();
250+ }
251+
240252 private enum OverrideState
241253 {
242254 NONE ,
0 commit comments