@@ -65,14 +65,15 @@ public class DebugTab : Window, ITab
65
65
private readonly TextureManager _textureManager ;
66
66
private readonly SkinFixer _skinFixer ;
67
67
private readonly IdentifierService _identifier ;
68
+ private readonly RedrawService _redraws ;
68
69
69
70
public DebugTab ( StartTracker timer , PerformanceTracker performance , Configuration config , CollectionManager collectionManager ,
70
71
ValidityChecker validityChecker , ModManager modManager , HttpApi httpApi , ActorService actorService ,
71
72
DalamudServices dalamud , StainService stains , CharacterUtility characterUtility , ResidentResourceManager residentResources ,
72
73
ResourceManagerService resourceManager , PenumbraIpcProviders ipc , CollectionResolver collectionResolver ,
73
74
DrawObjectState drawObjectState , PathState pathState , SubfileHelper subfileHelper , IdentifiedCollectionCache identifiedCollectionCache ,
74
75
CutsceneService cutsceneService , ModImportManager modImporter , ImportPopup importPopup , FrameworkManager framework ,
75
- TextureManager textureManager , SkinFixer skinFixer , IdentifierService identifier )
76
+ TextureManager textureManager , SkinFixer skinFixer , IdentifierService identifier , RedrawService redraws )
76
77
: base ( "Penumbra Debug Window" , ImGuiWindowFlags . NoCollapse )
77
78
{
78
79
IsOpen = true ;
@@ -107,6 +108,7 @@ public DebugTab(StartTracker timer, PerformanceTracker performance, Configuratio
107
108
_textureManager = textureManager ;
108
109
_skinFixer = skinFixer ;
109
110
_identifier = identifier ;
111
+ _redraws = redraws ;
110
112
}
111
113
112
114
public ReadOnlySpan < byte > Label
@@ -317,6 +319,48 @@ private void DrawDebugTabGeneral()
317
319
}
318
320
}
319
321
}
322
+
323
+ using ( var tree = TreeNode ( "Redraw Service" ) )
324
+ {
325
+ if ( tree )
326
+ {
327
+ using var table = Table ( "##redraws" , 3 , ImGuiTableFlags . RowBg ) ;
328
+ if ( table )
329
+ {
330
+ ImGuiUtil . DrawTableColumn ( "In GPose" ) ;
331
+ ImGuiUtil . DrawTableColumn ( _redraws . InGPose . ToString ( ) ) ;
332
+ ImGui . TableNextColumn ( ) ;
333
+
334
+ ImGuiUtil . DrawTableColumn ( "Target" ) ;
335
+ ImGuiUtil . DrawTableColumn ( _redraws . Target . ToString ( ) ) ;
336
+ ImGui . TableNextColumn ( ) ;
337
+
338
+ foreach ( var ( objectIdx , idx ) in _redraws . Queue . WithIndex ( ) )
339
+ {
340
+ var ( actualIdx , state ) = objectIdx < 0 ? ( ~ objectIdx , "Queued" ) : ( objectIdx , "Invisible" ) ;
341
+ ImGuiUtil . DrawTableColumn ( $ "Redraw Queue #{ idx } ") ;
342
+ ImGuiUtil . DrawTableColumn ( actualIdx . ToString ( ) ) ;
343
+ ImGuiUtil . DrawTableColumn ( state ) ;
344
+ }
345
+
346
+ foreach ( var ( objectIdx , idx ) in _redraws . AfterGPoseQueue . WithIndex ( ) )
347
+ {
348
+ var ( actualIdx , state ) = objectIdx < 0 ? ( ~ objectIdx , "Queued" ) : ( objectIdx , "Invisible" ) ;
349
+ ImGuiUtil . DrawTableColumn ( $ "GPose Queue #{ idx } ") ;
350
+ ImGuiUtil . DrawTableColumn ( actualIdx . ToString ( ) ) ;
351
+ ImGuiUtil . DrawTableColumn ( state ) ;
352
+ }
353
+
354
+ foreach ( var ( name , idx ) in _redraws . GPoseNames . OfType < string > ( ) . WithIndex ( ) )
355
+ {
356
+ ImGuiUtil . DrawTableColumn ( $ "GPose Name #{ idx } ") ;
357
+ ImGuiUtil . DrawTableColumn ( name ) ;
358
+ ImGui . TableNextColumn ( ) ;
359
+ }
360
+
361
+ }
362
+ }
363
+ }
320
364
}
321
365
322
366
private void DrawPerformanceTab ( )
0 commit comments