Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008 #ifndef __SP_IMAGELOADER_BMP_H__
00009 #define __SP_IMAGELOADER_BMP_H__
00010
00011
00012 #include "Base/spStandard.hpp"
00013
00014 #ifdef SP_COMPILE_WITH_TEXLOADER_BMP
00015
00016
00017 #include "FileFormats/Image/spImageFormatInterfaces.hpp"
00018
00019
00020 namespace sp
00021 {
00022 namespace video
00023 {
00024
00025
00026 class SP_EXPORT ImageLoaderBMP : public ImageLoader
00027 {
00028
00029 public:
00030
00031 ImageLoaderBMP(io::File* File);
00032 ~ImageLoaderBMP();
00033
00034 SImageDataRead* loadImageData();
00035
00036 private:
00037
00038
00039
00040 static const s32 BMP_BI_RGB = 0;
00041 static const s32 BMP_BI_RLE8 = 1;
00042 static const s32 BMP_BI_RLE4 = 2;
00043 static const s32 BMP_BI_BITFIELDS = 3;
00044
00045
00046
00047 #if defined(_MSC_VER)
00048 # pragma pack(push, packing)
00049 # pragma pack(1)
00050 # define SP_PACK_STRUCT
00051 #elif defined(__GNUC__)
00052 # define SP_PACK_STRUCT __attribute__((packed))
00053 #else
00054 # define SP_PACK_STRUCT
00055 #endif
00056
00057 struct SHeaderBMP
00058 {
00059 u16 ID;
00060 u32 FileSize, Reserved;
00061 u32 BitmapDataOffset, BitmapHeaderSize;
00062 s32 Width, Height;
00063 u16 Planes, bpp;
00064 u32 Compression, BitmapDataSize;
00065 s32 PixelPerMeterX, PixelPerMeterY;
00066 u32 Colors, ImportantColors;
00067 }
00068 SP_PACK_STRUCT;
00069
00070 #ifdef _MSC_VER
00071 # pragma pack(pop, packing)
00072 #endif
00073
00074 #undef SP_PACK_STRUCT
00075
00076
00077
00078 void setImagePalettePixel(
00079 SImageDataRead* Texture, const u32* Palette, const u32 ImageOffset, const u32 PaletteOffset
00080 );
00081
00082 };
00083
00084
00085 }
00086
00087 }
00088
00089
00090 #endif
00091
00092 #endif
00093
00094
00095
00096