// Copyright Epic Games, Inc. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "IdleService.h" #include "Model/Mix/MixUpdateCycle.h" class UModelObject; typedef std::shared_ptr JobPtr; typedef std::unique_ptr JobUPtr; typedef std::weak_ptr JobPtrW; class UMixInterface; class TEXTUREGRAPHENGINE_API HistogramService : public IdleService { private: JobBatchPtr Batch; bool bCaptureNextBatch = false; public: HistogramService(); virtual ~HistogramService() override; virtual AsyncJobResultPtr Tick() override; virtual void Stop() override; void AddHistogramJob(MixUpdateCyclePtr Cycle,JobUPtr JobToAdd, int32 TargetID, UMixInterface* Mix); JobBatchPtr GetOrCreateNewBatch(UMixInterface* mix); void CaptureNextBatch(); }; typedef std::shared_ptr HistogramServicePtr; typedef std::weak_ptr HistogramServicePtrW;