123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- // Copyright (C) 2002-2012 Nikolaus Gebhardt
- // This file is part of the "Irrlicht Engine".
- // For conditions of distribution and use, see copyright notice in irrlicht.h
- #pragma once
- #include "IImageLoader.h"
- namespace irr
- {
- namespace video
- {
- // byte-align structures
- #include "irrpack.h"
- // these structs are also used in the TGA writer
- struct STGAHeader
- {
- u8 IdLength;
- u8 ColorMapType;
- u8 ImageType;
- u8 FirstEntryIndex[2];
- u16 ColorMapLength;
- u8 ColorMapEntrySize;
- u8 XOrigin[2];
- u8 YOrigin[2];
- u16 ImageWidth;
- u16 ImageHeight;
- u8 PixelDepth;
- u8 ImageDescriptor;
- } PACK_STRUCT;
- struct STGAFooter
- {
- u32 ExtensionOffset;
- u32 DeveloperOffset;
- c8 Signature[18];
- } PACK_STRUCT;
- // Default alignment
- #include "irrunpack.h"
- /*!
- Surface Loader for targa images
- */
- class CImageLoaderTGA : public IImageLoader
- {
- public:
- //! returns true if the file maybe is able to be loaded by this class
- //! based on the file extension (e.g. ".tga")
- bool isALoadableFileExtension(const io::path &filename) const override;
- //! returns true if the file maybe is able to be loaded by this class
- bool isALoadableFileFormat(io::IReadFile *file) const override;
- //! creates a surface from the file
- IImage *loadImage(io::IReadFile *file) const override;
- private:
- //! loads a compressed tga. Was written and sent in by Jon Pry, thank you very much!
- u8 *loadCompressedImage(io::IReadFile *file, const STGAHeader &header) const;
- };
- } // end namespace video
- } // end namespace irr
|