From 393b5cd1dc438872af89d334ef6e5fcc59f27d47 Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Sun, 13 Jan 2013 17:24:39 +1000 Subject: Added Irrlicht 1.8, but without all the Windows binaries. --- .../irrlicht-1.8/source/Irrlicht/CImageLoaderPSD.h | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 libraries/irrlicht-1.8/source/Irrlicht/CImageLoaderPSD.h (limited to 'libraries/irrlicht-1.8/source/Irrlicht/CImageLoaderPSD.h') diff --git a/libraries/irrlicht-1.8/source/Irrlicht/CImageLoaderPSD.h b/libraries/irrlicht-1.8/source/Irrlicht/CImageLoaderPSD.h new file mode 100644 index 0000000..72f4b43 --- /dev/null +++ b/libraries/irrlicht-1.8/source/Irrlicht/CImageLoaderPSD.h @@ -0,0 +1,72 @@ +// 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 + +#ifndef __C_IMAGE_LOADER_PSD_H_INCLUDED__ +#define __C_IMAGE_LOADER_PSD_H_INCLUDED__ + +#include "IrrCompileConfig.h" + +#ifdef _IRR_COMPILE_WITH_PSD_LOADER_ + +#include "IImageLoader.h" + +namespace irr +{ +namespace video +{ + + +// byte-align structures +#include "irrpack.h" + + struct PsdHeader + { + c8 signature [4]; // Always equal to 8BPS. + u16 version; // Always equal to 1 + c8 reserved [6]; // Must be zero + u16 channels; // Number of any channels inc. alphas + u32 height; // Rows Height of image in pixel + u32 width; // Colums Width of image in pixel + u16 depth; // Bits/channel + u16 mode; // Color mode of the file (Bitmap/Grayscale..) + } PACK_STRUCT; + + +// Default alignment +#include "irrunpack.h" + +/*! + Surface Loader for psd images +*/ +class CImageLoaderPSD : public IImageLoader +{ +public: + + //! constructor + CImageLoaderPSD(); + + //! returns true if the file maybe is able to be loaded by this class + //! based on the file extension (e.g. ".tga") + virtual bool isALoadableFileExtension(const io::path& filename) const; + + //! returns true if the file maybe is able to be loaded by this class + virtual bool isALoadableFileFormat(io::IReadFile* file) const; + + //! creates a surface from the file + virtual IImage* loadImage(io::IReadFile* file) const; + +private: + + bool readRawImageData(io::IReadFile* file, const PsdHeader& header, u32* imageData) const; + bool readRLEImageData(io::IReadFile* file, const PsdHeader& header, u32* imageData) const; + s16 getShiftFromChannel(c8 channelNr, const PsdHeader& header) const; +}; + + +} // end namespace video +} // end namespace irr + +#endif +#endif + -- cgit v1.1