Files
UnrealEngineUWP/Engine/Source/Runtime/ImageWrapper/Public/IImageWrapperModule.h
Rolando Caloca bbb9564388 Copying //UE4/Dev-RenderPlat-Staging@11110326 to //UE4/Main
#rb none
#rnx

[CL 11110369 by Rolando Caloca in Main branch]
2020-01-24 18:07:01 -05:00

44 lines
1.2 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreTypes.h"
#include "Modules/ModuleInterface.h"
#include "Templates/SharedPointer.h"
class IImageWrapper;
enum class EImageFormat : int8;
/**
* Interface for image wrapper modules.
*/
class IImageWrapperModule
: public IModuleInterface
{
public:
/**
* Create a helper of a specific type
*
* @param InFormat - The type of image we want to deal with
* @return The helper base class to manage the data
*/
virtual TSharedPtr<IImageWrapper> CreateImageWrapper(const EImageFormat InFormat) = 0;
/**
* Detect image format by looking at the first few bytes of the compressed image data.
* You can call this method as soon as you have 8-16 bytes of compressed file content available.
*
* @param InCompressedData The raw image header.
* @param InCompressedSize The size of InCompressedData.
* @return the detected format or EImageFormat::Invalid if the method could not detect the image format.
*/
virtual EImageFormat DetectImageFormat(const void* InCompressedData, int64 InCompressedSize) = 0;
public:
/** Virtual destructor. */
virtual ~IImageWrapperModule() { }
};