reduce hitches and do some other changes to FSW

This commit is contained in:
Stanley Dimant
2024-02-15 11:22:18 +01:00
parent 549a93654a
commit 5233ce860b
20 changed files with 156 additions and 103 deletions

View File

@@ -9,6 +9,7 @@ using MareSynchronos.API.Dto.Group;
using MareSynchronos.MareConfiguration;
using MareSynchronos.PlayerData.Handlers;
using MareSynchronos.PlayerData.Pairs;
using MareSynchronos.Services;
using MareSynchronos.Services.Mediator;
using MareSynchronos.Services.ServerConfiguration;
using MareSynchronos.UI.Components;
@@ -53,8 +54,9 @@ public class CompactUi : WindowMediatorSubscriberBase
public CompactUi(ILogger<CompactUi> logger, UiSharedService uiShared, MareConfigService configService, ApiController apiController, PairManager pairManager,
ServerConfigurationManager serverManager, MareMediator mediator, FileUploadManager fileTransferManager,
TagHandler tagHandler, DrawEntityFactory drawEntityFactory, SelectTagForPairUi selectTagForPairUi, SelectPairForTagUi selectPairForTagUi)
: base(logger, mediator, "###MareSynchronosMainUI")
TagHandler tagHandler, DrawEntityFactory drawEntityFactory, SelectTagForPairUi selectTagForPairUi, SelectPairForTagUi selectPairForTagUi,
PerformanceCollectorService performanceCollectorService)
: base(logger, mediator, "###MareSynchronosMainUI", performanceCollectorService)
{
_uiShared = uiShared;
_configService = configService;
@@ -132,7 +134,7 @@ public class CompactUi : WindowMediatorSubscriberBase
};
}
public override void Draw()
protected override void DrawInternal()
{
_windowContentWidth = UiSharedService.GetWindowContentRegionWidth();
if (!_apiController.IsCurrentVersion)

View File

@@ -2,6 +2,7 @@
using Dalamud.Interface.Utility;
using Dalamud.Interface.Utility.Raii;
using ImGuiNET;
using MareSynchronos.Services;
using MareSynchronos.Services.Mediator;
using Microsoft.Extensions.Logging;
using System.Numerics;
@@ -14,8 +15,8 @@ public class PopupHandler : WindowMediatorSubscriberBase
private readonly HashSet<IPopupHandler> _handlers;
private IPopupHandler? _currentHandler = null;
public PopupHandler(ILogger<PopupHandler> logger, MareMediator mediator, IEnumerable<IPopupHandler> popupHandlers)
: base(logger, mediator, "MarePopupHandler")
public PopupHandler(ILogger<PopupHandler> logger, MareMediator mediator, IEnumerable<IPopupHandler> popupHandlers, PerformanceCollectorService performanceCollectorService)
: base(logger, mediator, "MarePopupHandler", performanceCollectorService)
{
Flags = ImGuiWindowFlags.NoBringToFrontOnFocus
| ImGuiWindowFlags.NoDecoration
@@ -53,7 +54,7 @@ public class PopupHandler : WindowMediatorSubscriberBase
});
}
public override void Draw()
protected override void DrawInternal()
{
if (_currentHandler == null) return;

View File

@@ -4,6 +4,7 @@ using Dalamud.Interface.Utility.Raii;
using ImGuiNET;
using MareSynchronos.API.Data.Extensions;
using MareSynchronos.API.Dto.Group;
using MareSynchronos.Services;
using MareSynchronos.Services.Mediator;
using MareSynchronos.WebAPI;
using Microsoft.Extensions.Logging;
@@ -18,8 +19,9 @@ public class CreateSyncshellUI : WindowMediatorSubscriberBase
private bool _errorGroupCreate;
private GroupJoinDto? _lastCreatedGroup;
public CreateSyncshellUI(ILogger<CreateSyncshellUI> logger, MareMediator mareMediator, ApiController apiController, UiSharedService uiSharedService)
: base(logger, mareMediator, "Create new Syncshell###MareSynchronosCreateSyncshell")
public CreateSyncshellUI(ILogger<CreateSyncshellUI> logger, MareMediator mareMediator, ApiController apiController, UiSharedService uiSharedService,
PerformanceCollectorService performanceCollectorService)
: base(logger, mareMediator, "Create new Syncshell###MareSynchronosCreateSyncshell", performanceCollectorService)
{
_apiController = apiController;
_uiSharedService = uiSharedService;
@@ -34,7 +36,7 @@ public class CreateSyncshellUI : WindowMediatorSubscriberBase
Mediator.Subscribe<DisconnectedMessage>(this, (_) => IsOpen = false);
}
public override void Draw()
protected override void DrawInternal()
{
using (ImRaii.PushFont(_uiSharedService.UidFont))
ImGui.TextUnformatted("Create new Syncshell");

View File

@@ -31,7 +31,8 @@ public class DataAnalysisUi : WindowMediatorSubscriberBase
private ObjectKind _selectedObjectTab;
private bool _showModal = false;
public DataAnalysisUi(ILogger<DataAnalysisUi> logger, MareMediator mediator, CharacterAnalyzer characterAnalyzer, IpcManager ipcManager) : base(logger, mediator, "Mare Character Data Analysis")
public DataAnalysisUi(ILogger<DataAnalysisUi> logger, MareMediator mediator, CharacterAnalyzer characterAnalyzer, IpcManager ipcManager, PerformanceCollectorService performanceCollectorService)
: base(logger, mediator, "Mare Character Data Analysis", performanceCollectorService)
{
_characterAnalyzer = characterAnalyzer;
_ipcManager = ipcManager;
@@ -56,7 +57,7 @@ public class DataAnalysisUi : WindowMediatorSubscriberBase
_conversionProgress.ProgressChanged += ConversionProgress_ProgressChanged;
}
public override void Draw()
protected override void DrawInternal()
{
if (_conversionTask != null && !_conversionTask.IsCompleted)
{
@@ -333,7 +334,7 @@ public class DataAnalysisUi : WindowMediatorSubscriberBase
private void DrawTable(IGrouping<string, CharacterAnalyzer.FileDataEntry> fileGroup)
{
using var table = ImRaii.Table("Analysis", string.Equals(fileGroup.Key, "tex", StringComparison.Ordinal) ?
using var table = ImRaii.Table("Analysis", string.Equals(fileGroup.Key, "tex", StringComparison.Ordinal) ?
(_enableBc7ConversionMode ? 7 : 6) : 5, ImGuiTableFlags.Sortable | ImGuiTableFlags.RowBg | ImGuiTableFlags.ScrollY | ImGuiTableFlags.SizingFixedFit,
new Vector2(0, 300));
if (!table.Success) return;

View File

@@ -22,7 +22,8 @@ public class DownloadUi : WindowMediatorSubscriberBase
private readonly ConcurrentDictionary<GameObjectHandler, bool> _uploadingPlayers = new();
public DownloadUi(ILogger<DownloadUi> logger, DalamudUtilService dalamudUtilService, MareConfigService configService,
FileUploadManager fileTransferManager, MareMediator mediator, UiSharedService uiShared) : base(logger, mediator, "Mare Synchronos Downloads")
FileUploadManager fileTransferManager, MareMediator mediator, UiSharedService uiShared, PerformanceCollectorService performanceCollectorService)
: base(logger, mediator, "Mare Synchronos Downloads", performanceCollectorService)
{
_dalamudUtilService = dalamudUtilService;
_configService = configService;
@@ -66,7 +67,7 @@ public class DownloadUi : WindowMediatorSubscriberBase
});
}
public override void Draw()
protected override void DrawInternal()
{
if (_configService.Current.ShowTransferWindow)
{

View File

@@ -32,7 +32,9 @@ public class EditProfileUi : WindowMediatorSubscriberBase
public EditProfileUi(ILogger<EditProfileUi> logger, MareMediator mediator,
ApiController apiController, UiBuilder uiBuilder, UiSharedService uiSharedService,
FileDialogManager fileDialogManager, MareProfileManager mareProfileManager) : base(logger, mediator, "Mare Synchronos Edit Profile###MareSynchronosEditProfileUI")
FileDialogManager fileDialogManager, MareProfileManager mareProfileManager,
PerformanceCollectorService performanceCollectorService)
: base(logger, mediator, "Mare Synchronos Edit Profile###MareSynchronosEditProfileUI", performanceCollectorService)
{
IsOpen = false;
this.SizeConstraints = new()
@@ -59,7 +61,7 @@ public class EditProfileUi : WindowMediatorSubscriberBase
});
}
public override void Draw()
protected override void DrawInternal()
{
_uiSharedService.BigText("Current Profile (as saved on server)");

View File

@@ -2,6 +2,7 @@
using Dalamud.Interface.Colors;
using Dalamud.Interface.Utility.Raii;
using ImGuiNET;
using MareSynchronos.Services;
using MareSynchronos.Services.Events;
using MareSynchronos.Services.Mediator;
using Microsoft.Extensions.Logging;
@@ -37,7 +38,8 @@ internal class EventViewerUI : WindowMediatorSubscriberBase
}
public EventViewerUI(ILogger<EventViewerUI> logger, MareMediator mediator,
EventAggregator eventAggregator, UiSharedService uiSharedService) : base(logger, mediator, "Event Viewer")
EventAggregator eventAggregator, UiSharedService uiSharedService, PerformanceCollectorService performanceCollectorService)
: base(logger, mediator, "Event Viewer", performanceCollectorService)
{
_eventAggregator = eventAggregator;
_uiSharedService = uiSharedService;
@@ -94,7 +96,7 @@ internal class EventViewerUI : WindowMediatorSubscriberBase
ClearFilters();
}
public override void Draw()
protected override void DrawInternal()
{
using (ImRaii.Disabled(!_eventAggregator.NewEventsAvailable))
{

View File

@@ -20,7 +20,8 @@ public class GposeUi : WindowMediatorSubscriberBase
public GposeUi(ILogger<GposeUi> logger, MareCharaFileManager mareCharaFileManager,
DalamudUtilService dalamudUtil, FileDialogManager fileDialogManager, MareConfigService configService,
MareMediator mediator) : base(logger, mediator, "Mare Synchronos Gpose Import UI###MareSynchronosGposeUI")
MareMediator mediator, PerformanceCollectorService performanceCollectorService)
: base(logger, mediator, "Mare Synchronos Gpose Import UI###MareSynchronosGposeUI", performanceCollectorService)
{
_mareCharaFileManager = mareCharaFileManager;
_dalamudUtil = dalamudUtil;
@@ -37,7 +38,7 @@ public class GposeUi : WindowMediatorSubscriberBase
};
}
public override void Draw()
protected override void DrawInternal()
{
if (!_dalamudUtil.IsInGpose) IsOpen = false;

View File

@@ -6,6 +6,7 @@ using MareSynchronos.FileCache;
using MareSynchronos.Localization;
using MareSynchronos.MareConfiguration;
using MareSynchronos.MareConfiguration.Models;
using MareSynchronos.Services;
using MareSynchronos.Services.Mediator;
using MareSynchronos.Services.ServerConfiguration;
using Microsoft.Extensions.Logging;
@@ -29,7 +30,8 @@ public class IntroUi : WindowMediatorSubscriberBase
private string[]? _tosParagraphs;
public IntroUi(ILogger<IntroUi> logger, UiSharedService uiShared, MareConfigService configService,
CacheMonitor fileCacheManager, ServerConfigurationManager serverConfigurationManager, MareMediator mareMediator) : base(logger, mareMediator, "Mare Synchronos Setup")
CacheMonitor fileCacheManager, ServerConfigurationManager serverConfigurationManager, MareMediator mareMediator,
PerformanceCollectorService performanceCollectorService) : base(logger, mareMediator, "Mare Synchronos Setup", performanceCollectorService)
{
_uiShared = uiShared;
_configService = configService;
@@ -56,7 +58,7 @@ public class IntroUi : WindowMediatorSubscriberBase
});
}
public override void Draw()
protected override void DrawInternal()
{
if (_uiShared.IsInGpose) return;

View File

@@ -6,6 +6,7 @@ using MareSynchronos.API.Data.Enum;
using MareSynchronos.API.Data.Extensions;
using MareSynchronos.API.Dto;
using MareSynchronos.API.Dto.Group;
using MareSynchronos.Services;
using MareSynchronos.Services.Mediator;
using MareSynchronos.Utils;
using MareSynchronos.WebAPI;
@@ -24,7 +25,8 @@ internal class JoinSyncshellUI : WindowMediatorSubscriberBase
private string _syncshellPassword = string.Empty;
public JoinSyncshellUI(ILogger<JoinSyncshellUI> logger, MareMediator mediator,
UiSharedService uiSharedService, ApiController apiController) : base(logger, mediator, "Join existing Syncshell###MareSynchronosJoinSyncshell")
UiSharedService uiSharedService, ApiController apiController, PerformanceCollectorService performanceCollectorService)
: base(logger, mediator, "Join existing Syncshell###MareSynchronosJoinSyncshell", performanceCollectorService)
{
_uiSharedService = uiSharedService;
_apiController = apiController;
@@ -48,7 +50,7 @@ internal class JoinSyncshellUI : WindowMediatorSubscriberBase
_ownPermissions = _apiController.DefaultPermissions.DeepClone()!;
}
public override void Draw()
protected override void DrawInternal()
{
using (ImRaii.PushFont(_uiSharedService.UidFont))
ImGui.TextUnformatted(_groupJoinInfo == null || !_groupJoinInfo.Success ? "Join Syncshell" : "Finalize join Syncshell " + _groupJoinInfo.GroupAliasOrGID);

View File

@@ -4,6 +4,7 @@ using ImGuiNET;
using MareSynchronos.API.Data.Enum;
using MareSynchronos.API.Data.Extensions;
using MareSynchronos.PlayerData.Pairs;
using MareSynchronos.Services;
using MareSynchronos.Services.Mediator;
using MareSynchronos.Utils;
using MareSynchronos.WebAPI;
@@ -20,7 +21,8 @@ public class PermissionWindowUI : WindowMediatorSubscriberBase
private UserPermissions _ownPermissions;
public PermissionWindowUI(ILogger<PermissionWindowUI> logger, Pair pair, MareMediator mediator, UiSharedService uiSharedService,
ApiController apiController) : base(logger, mediator, "Permissions for " + pair.UserData.AliasOrUID + "###MareSynchronosPermissions" + pair.UserData.UID)
ApiController apiController, PerformanceCollectorService performanceCollectorService)
: base(logger, mediator, "Permissions for " + pair.UserData.AliasOrUID + "###MareSynchronosPermissions" + pair.UserData.UID, performanceCollectorService)
{
Pair = pair;
_uiSharedService = uiSharedService;
@@ -35,7 +37,7 @@ public class PermissionWindowUI : WindowMediatorSubscriberBase
IsOpen = true;
}
public override void Draw()
protected override void DrawInternal()
{
var sticky = _ownPermissions.IsSticky();
var paused = _ownPermissions.IsPaused();

View File

@@ -31,7 +31,7 @@ public class PopoutProfileUi : WindowMediatorSubscriberBase
public PopoutProfileUi(ILogger<PopoutProfileUi> logger, MareMediator mediator, UiSharedService uiBuilder,
ServerConfigurationManager serverManager, MareConfigService mareConfigService,
MareProfileManager mareProfileManager, PairManager pairManager) : base(logger, mediator, "###MareSynchronosPopoutProfileUI")
MareProfileManager mareProfileManager, PairManager pairManager, PerformanceCollectorService performanceCollectorService) : base(logger, mediator, "###MareSynchronosPopoutProfileUI", performanceCollectorService)
{
_uiSharedService = uiBuilder;
_serverManager = serverManager;
@@ -79,7 +79,7 @@ public class PopoutProfileUi : WindowMediatorSubscriberBase
IsOpen = false;
}
public override void Draw()
protected override void DrawInternal()
{
if (_pair == null) return;

View File

@@ -68,7 +68,7 @@ public class SettingsUi : WindowMediatorSubscriberBase
FileTransferOrchestrator fileTransferOrchestrator,
FileCacheManager fileCacheManager,
FileCompactor fileCompactor, ApiController apiController,
IpcManager ipcManager, CacheMonitor cacheMonitor) : base(logger, mediator, "Mare Synchronos Settings")
IpcManager ipcManager, CacheMonitor cacheMonitor) : base(logger, mediator, "Mare Synchronos Settings", performanceCollector)
{
_configService = configService;
_mareCharaFileManager = mareCharaFileManager;
@@ -105,7 +105,7 @@ public class SettingsUi : WindowMediatorSubscriberBase
public CharacterData? LastCreatedCharacterData { private get; set; }
private ApiController ApiController => _uiShared.ApiController;
public override void Draw()
protected override void DrawInternal()
{
_ = _uiShared.DrawOtherPluginState();

View File

@@ -27,8 +27,9 @@ public class StandaloneProfileUi : WindowMediatorSubscriberBase
private IDalamudTextureWrap? _textureWrap;
public StandaloneProfileUi(ILogger<StandaloneProfileUi> logger, MareMediator mediator, UiSharedService uiBuilder,
ServerConfigurationManager serverManager, MareProfileManager mareProfileManager, PairManager pairManager, Pair pair)
: base(logger, mediator, "Mare Profile of " + pair.UserData.AliasOrUID + "##MareSynchronosStandaloneProfileUI" + pair.UserData.AliasOrUID)
ServerConfigurationManager serverManager, MareProfileManager mareProfileManager, PairManager pairManager, Pair pair,
PerformanceCollectorService performanceCollector)
: base(logger, mediator, "Mare Profile of " + pair.UserData.AliasOrUID + "##MareSynchronosStandaloneProfileUI" + pair.UserData.AliasOrUID, performanceCollector)
{
_uiSharedService = uiBuilder;
_serverManager = serverManager;
@@ -46,7 +47,7 @@ public class StandaloneProfileUi : WindowMediatorSubscriberBase
public Pair Pair { get; init; }
public override void Draw()
protected override void DrawInternal()
{
try
{

View File

@@ -7,6 +7,7 @@ using MareSynchronos.API.Data.Enum;
using MareSynchronos.API.Data.Extensions;
using MareSynchronos.API.Dto.Group;
using MareSynchronos.PlayerData.Pairs;
using MareSynchronos.Services;
using MareSynchronos.Services.Mediator;
using MareSynchronos.WebAPI;
using Microsoft.Extensions.Logging;
@@ -31,8 +32,8 @@ public class SyncshellAdminUI : WindowMediatorSubscriberBase
private int _pruneDays = 14;
public SyncshellAdminUI(ILogger<SyncshellAdminUI> logger, MareMediator mediator, ApiController apiController,
UiSharedService uiSharedService, PairManager pairManager, GroupFullInfoDto groupFullInfo)
: base(logger, mediator, "Syncshell Admin Panel (" + groupFullInfo.GroupAliasOrGID + ")")
UiSharedService uiSharedService, PairManager pairManager, GroupFullInfoDto groupFullInfo, PerformanceCollectorService performanceCollectorService)
: base(logger, mediator, "Syncshell Admin Panel (" + groupFullInfo.GroupAliasOrGID + ")", performanceCollectorService)
{
GroupFullInfo = groupFullInfo;
_apiController = apiController;
@@ -53,7 +54,7 @@ public class SyncshellAdminUI : WindowMediatorSubscriberBase
public GroupFullInfoDto GroupFullInfo { get; private set; }
public override void Draw()
protected override void DrawInternal()
{
if (!_isModerator && !_isOwner) return;