Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ jobs:
# build to absorb transient feed flakiness without needing a
# manual re-run.
- name: Restore
uses: nick-fields/retry@v3
uses: nick-fields/retry@v4
with:
timeout_minutes: 10
max_attempts: 3
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@

All notable changes to Chromatics are documented here.

## 4.3.4

- Added new dynamic layers for Focus Target HP and Focus Target Castbar
- Fixed a bug which caused the Experience Tracker layer to not work with Reaper and Sage.
- Fixed the Keybinds layer misreading hotbar actions with high action ids.
- Updated Sharlayan to latest version
- Various performance improvements and bug fixes

## 4.2.73

- Added support for FFXIV 7.51
Expand Down
24 changes: 24 additions & 0 deletions Chromatics.DecoratorHarnessUI/MainViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -739,6 +739,18 @@ private void ApplyDefaults(EffectEntry effect)
ParamWaveSpeed = snap.WaveSpeed; ParamWaveFreq = snap.WaveFreq;
ParamFadeTime = snap.FadeTime; ParamGroupSize = snap.GroupSize;
ParamBlockSize = snap.BlockSize; ParamBlocks = snap.Blocks; ParamSize = snap.Size;
ParamNumberOfLeds = snap.NumberOfLeds; ParamStepSpeed = snap.StepSpeed;
ParamSustain = snap.Sustain; ParamRelease = snap.Release; ParamRepetitions = snap.Repetitions;
ParamDirection = snap.Direction; ParamRandomise = snap.Randomise;
ParamTextureType = snap.TextureType; ParamDiagonalDir = snap.DiagonalDir; ParamFallDir = snap.FallDir;
ParamIntensity = snap.Intensity; ParamFlickerSpeed = snap.FlickerSpeed;
ParamBeamWidth = snap.BeamWidth; ParamPulseRadius = snap.PulseRadius; ParamFadeWidth = snap.FadeWidth;
ParamTailLength = snap.TailLength; ParamSpawnInterval = snap.SpawnInterval;
ParamRippleSpeed = snap.RippleSpeed; ParamLaserDir = snap.LaserDir;
ParamBpmSpeed = snap.BpmSpeed; ParamBeatsPerCycle = snap.BeatsPerCycle;
ParamSimultaneousBeams = snap.SimultaneousBeams; ParamFlickerOpacity = snap.FlickerOpacity;
ParamMatrixDir = snap.MatrixDir; ParamFadeBetween = snap.FadeBetween;
ParamAccentEvery = snap.AccentEvery; ParamDecay = snap.Decay; ParamWedgeDegrees = snap.WedgeDegrees;
ColorBase = snap.Base;
SetColors(snap.Colors);
return;
Expand Down Expand Up @@ -1259,6 +1271,12 @@ private void SavePreset()
ParamBpm, ParamSpeed, ParamInterval, ParamFadeSpeed, ParamDensity,
ParamWaveSpeed, ParamWaveFreq, ParamFadeTime, ParamGroupSize,
ParamBlockSize, ParamBlocks, ParamSize,
ParamNumberOfLeds, ParamStepSpeed, ParamSustain, ParamRelease, ParamRepetitions,
ParamDirection, ParamRandomise, ParamTextureType, ParamDiagonalDir, ParamFallDir,
ParamIntensity, ParamFlickerSpeed, ParamBeamWidth, ParamPulseRadius, ParamFadeWidth,
ParamTailLength, ParamSpawnInterval, ParamRippleSpeed, ParamLaserDir,
ParamBpmSpeed, ParamBeatsPerCycle, ParamSimultaneousBeams, ParamFlickerOpacity,
ParamMatrixDir, ParamFadeBetween, ParamAccentEvery, ParamDecay, ParamWedgeDegrees,
ColorBase, ColorSlots.Select(s => s.Color).ToArray());
_savedParams[name] = snap;

Expand All @@ -1273,6 +1291,12 @@ private record SavedParams(
int Bpm, int Speed, double Interval, double FadeSpeed, double Density,
double WaveSpeed, double WaveFreq, double FadeTime, int GroupSize,
int BlockSize, int Blocks, int Size,
int NumberOfLeds, int StepSpeed, double Sustain, double Release, int Repetitions,
bool Direction, bool Randomise, string TextureType, string DiagonalDir, string FallDir,
double Intensity, double FlickerSpeed, double BeamWidth, double PulseRadius, double FadeWidth,
double TailLength, double SpawnInterval, double RippleSpeed, string LaserDir,
string BpmSpeed, double BeatsPerCycle, int SimultaneousBeams, double FlickerOpacity,
string MatrixDir, double FadeBetween, int AccentEvery, double Decay, double WedgeDegrees,
AvColor Base, AvColor[] Colors);

// ── Code snippet generator ──────────────────────────────────────────
Expand Down
2 changes: 1 addition & 1 deletion Chromatics.Tests/Chromatics.Tests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Sharlayan" Version="9.0.39" />
<PackageReference Include="Sharlayan" Version="9.1.1-prerelease.58" />
</ItemGroup>

</Project>
6 changes: 3 additions & 3 deletions Chromatics/Chromatics.csproj
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="Microsoft.NET.Sdk">

<PropertyGroup>
<OutputType>WinExe</OutputType>
Expand All @@ -10,7 +10,7 @@
<TargetFramework>net10.0-windows10.0.19041.0</TargetFramework>
<SupportedOSPlatformVersion>10.0.17763.0</SupportedOSPlatformVersion>
<StartupObject>Chromatics.Program</StartupObject>
<Version>4.2.73.0</Version>
<Version>4.3.4.0</Version>
<Authors>Danielle Thompson</Authors>
<!-- ApplicationManifest is conditional: local Debug + Release builds embed
app.manifest (no fusion-identity <msix> element) so VS debug runs and
Expand Down Expand Up @@ -133,7 +133,7 @@
<PackageReference Include="RGB.NET.Devices.Wooting" Version="3.2.0" />
<PackageReference Include="RGB.NET.HID" Version="3.2.0" />
<PackageReference Include="RGB.NET.Presets" Version="3.2.0" />
<PackageReference Include="Sharlayan" Version="9.0.39" />
<PackageReference Include="Sharlayan" Version="9.1.1-prerelease.58" />
</ItemGroup>

<ItemGroup>
Expand Down
21 changes: 3 additions & 18 deletions Chromatics/Core/GameController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,6 @@ public static class GameController
private static int activeProcessId = -1;
private static bool gameConnected;
private static bool gameSetup;
private static bool memoryEfficientLoop;
private static bool _isInGame;
private static bool _onTitle;
private static bool wasPreviewed;
Expand Down Expand Up @@ -386,18 +385,6 @@ private static async Task GameLoop(CancellationToken cancellationToken)

// Wait for the interval before continuing
var delay = _loopInterval;
memoryEfficientLoop = false;

if (memoryEfficientLoop)
{
var currentCpuUsage = SystemMonitorHelper.GetCurrentCpuUsage();
var _maxCpuUsage = SystemMonitorHelper.GetMaxCpuUsage();

if (currentCpuUsage > _maxCpuUsage)
{
delay += (int)(currentCpuUsage - _maxCpuUsage) * 10;
}
}

await Task.Delay(delay, cancellationToken).ConfigureAwait(ConfigureAwaitOptions.SuppressThrowing);
if (cancellationToken.IsCancellationRequested || _isShuttingDown) break;
Expand Down Expand Up @@ -559,8 +546,6 @@ private static void GameProcessLayers()
var getCurrentPlayer = handler.Reader.GetCurrentPlayer();
var isLoggedIn = handler.Reader.GetGameState().IsLoggedIn;

var runningEffects = RGBController.GetRunningEffects();

// Title-screen detection: player entity not loaded AND
// not logged in. Debounced via _titleStateConsecutiveTicks
// so a brief Entity-null window during zone-in doesn't
Expand Down Expand Up @@ -656,7 +641,7 @@ private static void GameProcessLayers()
g?.RemoveAllDecorators();
g?.Detach();
}
liveGroups.Remove(layer.layerID);
liveGroups.TryRemove(layer.layerID, out _);
}
}
baseProcessor.Process(layer);
Expand All @@ -679,7 +664,7 @@ private static void GameProcessLayers()
{
foreach (var g in prevGroups)
g?.Detach();
liveGroups.Remove(layer.layerID);
liveGroups.TryRemove(layer.layerID, out _);
}
// Per-processor model cleanup (overridden on JobGaugeA/B/C).
foreach (var p in _layerProcessorFactory.GetActiveDynamicProcessors())
Expand Down Expand Up @@ -753,7 +738,7 @@ private static void GameProcessLayers()
g?.RemoveAllDecorators();
g?.Detach();
}
effectLiveGroups.Remove(layer.layerID);
effectLiveGroups.TryRemove(layer.layerID, out _);
}
}
var effectProcessors = EffectLayerProcessorFactory.GetProcessors();
Expand Down
Loading
Loading