Plasma Engine  2.0
Loading...
Searching...
No Matches
ImageFileFormat.h
1#pragma once
2
3#include <Foundation/Logging/Log.h>
4#include <Foundation/Strings/StringView.h>
5#include <Foundation/Types/Bitflags.h>
6#include <Foundation/Utilities/EnumerableClass.h>
7#include <Texture/TextureDLL.h>
8
10class plStreamWriter;
11class plImage;
12class plImageView;
13class plStringBuilder;
14class plImageHeader;
15
16class PL_TEXTURE_DLL plImageFileFormat : public plEnumerable<plImageFileFormat>
17{
18public:
20 virtual plResult ReadImageHeader(plStreamReader& inout_stream, plImageHeader& ref_header, plStringView sFileExtension) const = 0;
21
23 virtual plResult ReadImage(plStreamReader& inout_stream, plImage& ref_image, plStringView sFileExtension) const = 0;
24
26 virtual plResult WriteImage(plStreamWriter& inout_stream, const plImageView& image, plStringView sFileExtension) const = 0;
27
29 virtual bool CanReadFileType(plStringView sExtension) const = 0;
30
32 virtual bool CanWriteFileType(plStringView sExtension) const = 0;
33
35 static plImageFileFormat* GetReaderFormat(plStringView sExtension);
36
38 static plImageFileFormat* GetWriterFormat(plStringView sExtension);
39
40 static plResult ReadImageHeader(plStringView sFileName, plImageHeader& ref_header);
41
42 PL_DECLARE_ENUMERABLE_CLASS(plImageFileFormat);
43};
Base class to add the ability to another class to enumerate all active instance of it,...
Definition EnumerableClass.h:28
Definition ImageFileFormat.h:17
virtual bool CanWriteFileType(plStringView sExtension) const =0
Should return true, if files with the given extension can be written.
virtual bool CanReadFileType(plStringView sExtension) const =0
Should return true, if files with the given extension can be read.
virtual plResult WriteImage(plStreamWriter &inout_stream, const plImageView &image, plStringView sFileExtension) const =0
Writes the data to the given stream in this format. Errors are written to the given plLogInterface.
virtual plResult ReadImageHeader(plStreamReader &inout_stream, plImageHeader &ref_header, plStringView sFileExtension) const =0
Reads only the header information for an image and ignores the data. Much faster than reading the ent...
virtual plResult ReadImage(plStreamReader &inout_stream, plImage &ref_image, plStringView sFileExtension) const =0
Reads the data from the given stream and creates the image from it. Errors are written to the given p...
A class containing image meta data, such as format and dimensions.
Definition ImageHeader.h:15
A class containing image data and associated meta data.
Definition Image.h:103
A class referencing image data and holding metadata about the image.
Definition Image.h:13
Interface for binary in (read) streams.
Definition Stream.h:22
Interface for binary out (write) streams.
Definition Stream.h:107
plStringBuilder is a class that is meant for creating and modifying strings.
Definition StringBuilder.h:35
plStringView represent a read-only sub-string of a larger string, as it can store a dedicated string ...
Definition StringView.h:34
Default enum for returning failure or success, instead of using a bool.
Definition Types.h:54