move texture and model processing out of download thread and fix some normalization for weights
This commit is contained in:
@@ -56,6 +56,7 @@ public class DataAnalysisUi : WindowMediatorSubscriberBase
|
||||
private readonly ModelDecimationService _modelDecimationService;
|
||||
private readonly TextureCompressionService _textureCompressionService;
|
||||
private readonly TextureMetadataHelper _textureMetadataHelper;
|
||||
private readonly TextureProcessingQueue _processingQueue;
|
||||
|
||||
private readonly List<TextureRow> _textureRows = new();
|
||||
private readonly Dictionary<string, TextureCompressionTarget> _textureSelections = new(StringComparer.OrdinalIgnoreCase);
|
||||
@@ -137,7 +138,8 @@ public class DataAnalysisUi : WindowMediatorSubscriberBase
|
||||
LightlessConfigService configService,
|
||||
PlayerPerformanceConfigService playerPerformanceConfig, TransientResourceManager transientResourceManager,
|
||||
TransientConfigService transientConfigService, ModelDecimationService modelDecimationService,
|
||||
TextureCompressionService textureCompressionService, TextureMetadataHelper textureMetadataHelper)
|
||||
TextureCompressionService textureCompressionService, TextureMetadataHelper textureMetadataHelper,
|
||||
TextureProcessingQueue processingQueue)
|
||||
: base(logger, mediator, "Lightless Character Data Analysis", performanceCollectorService)
|
||||
{
|
||||
_characterAnalyzer = characterAnalyzer;
|
||||
@@ -150,6 +152,7 @@ public class DataAnalysisUi : WindowMediatorSubscriberBase
|
||||
_modelDecimationService = modelDecimationService;
|
||||
_textureCompressionService = textureCompressionService;
|
||||
_textureMetadataHelper = textureMetadataHelper;
|
||||
_processingQueue = processingQueue;
|
||||
Mediator.Subscribe<CharacterDataAnalyzedMessage>(this, (_) =>
|
||||
{
|
||||
_hasUpdate = true;
|
||||
@@ -3716,7 +3719,10 @@ public class DataAnalysisUi : WindowMediatorSubscriberBase
|
||||
_conversionCurrentFileProgress = 0;
|
||||
_conversionFailed = false;
|
||||
|
||||
_conversionTask = RunTextureConversionAsync(requests, _conversionCancellationTokenSource.Token);
|
||||
var conversionToken = _conversionCancellationTokenSource.Token;
|
||||
_conversionTask = _processingQueue.Enqueue(
|
||||
queueToken => RunTextureConversionAsync(requests, queueToken),
|
||||
conversionToken);
|
||||
_showModal = true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user