From 779ff06981d1fb8bcf132bbfdd58098679e02f02 Mon Sep 17 00:00:00 2001 From: azyges Date: Sun, 21 Dec 2025 07:26:37 +0900 Subject: [PATCH] goodbye lag --- .../TextureCompression/TextureMetadataHelper.cs | 10 +++++----- LightlessSync/UI/Components/DrawFolderBase.cs | 10 +++++++--- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/LightlessSync/Services/TextureCompression/TextureMetadataHelper.cs b/LightlessSync/Services/TextureCompression/TextureMetadataHelper.cs index f360ba3..20d9a8f 100644 --- a/LightlessSync/Services/TextureCompression/TextureMetadataHelper.cs +++ b/LightlessSync/Services/TextureCompression/TextureMetadataHelper.cs @@ -126,11 +126,11 @@ public sealed class TextureMetadataHelper private const string TextureSegment = "/texture/"; private const string MaterialSegment = "/material/"; - private const uint NormalSamplerId = 0x0C5EC1F1u; - private const uint IndexSamplerId = 0x565F8FD8u; - private const uint SpecularSamplerId = 0x2B99E025u; - private const uint DiffuseSamplerId = 0x115306BEu; - private const uint MaskSamplerId = 0x8A4E82B6u; + private const uint NormalSamplerId = ShpkFile.NormalSamplerId; + private const uint IndexSamplerId = ShpkFile.IndexSamplerId; + private const uint SpecularSamplerId = ShpkFile.SpecularSamplerId; + private const uint DiffuseSamplerId = ShpkFile.DiffuseSamplerId; + private const uint MaskSamplerId = ShpkFile.MaskSamplerId; public TextureMetadataHelper(ILogger logger, IDataManager dataManager) { diff --git a/LightlessSync/UI/Components/DrawFolderBase.cs b/LightlessSync/UI/Components/DrawFolderBase.cs index 40330c7..0532da9 100644 --- a/LightlessSync/UI/Components/DrawFolderBase.cs +++ b/LightlessSync/UI/Components/DrawFolderBase.cs @@ -4,8 +4,8 @@ using Dalamud.Interface.Utility.Raii; using LightlessSync.UI.Handlers; using LightlessSync.UI.Models; using System.Collections.Immutable; -using LightlessSync.UI; using LightlessSync.UI.Style; +using OtterGui.Text; namespace LightlessSync.UI.Components; @@ -113,9 +113,13 @@ public abstract class DrawFolderBase : IDrawFolder using var indent = ImRaii.PushIndent(_uiSharedService.GetIconSize(FontAwesomeIcon.EllipsisV).X + ImGui.GetStyle().ItemSpacing.X, false); if (DrawPairs.Any()) { - foreach (var item in DrawPairs) + using var clipper = ImUtf8.ListClipper(DrawPairs.Count, ImGui.GetFrameHeightWithSpacing()); + while (clipper.Step()) { - item.DrawPairedClient(); + for (var i = clipper.DisplayStart; i < clipper.DisplayEnd; i++) + { + DrawPairs[i].DrawPairedClient(); + } } } else