13 #include "NVSceneCapturerUtils.h"
14 #include "HAL/Runnable.h"
15 #include "IImageWrapper.h"
16 #include "NVImageExporter.generated.h"
28 FString ExportFilePath;
31 ENVImageFormat ExportImageFormat;
34 FNVImageExporterData();
36 const FString InExportFilePath,
37 ENVImageFormat InExportImageFormat = ENVImageFormat::PNG);
58 static TArray<uint8> CompressImage(IImageWrapperModule* ImageWrapperModule,
60 ENVImageFormat ImageFormat,
61 uint8 CompressionQuality = 100);
64 static bool ExportImage(IImageWrapperModule* ImageWrapperModule,
const FNVImageExporterData& ImageExporterData);
69 IImageWrapperModule* ImageWrapperModule;
79 const FString& ExportFilePath,
80 const ENVImageFormat ExportImageFormat = ENVImageFormat::PNG);
83 virtual void Stop()
override;
85 uint32 GetPendingImagesCount()
const;
86 bool IsExportingImage()
const;
89 FRunnableThread* Thread;
92 TQueue<FNVImageExporterData> QueuedImageData;
94 IImageWrapperModule* ImageWrapperModule;
96 FEvent* HavePendingImageEvent;
97 FThreadSafeCounter PendingImageCounter;
98 TSharedPtr<FThreadSafeCounter, ESPMode::ThreadSafe> ExportingImageCounterPtr;