-Image* LoadTGABuff(const byte* buffer)
-{
- PointerInputStream istream(buffer);
- TargaHeader targa_header;
-
- targa_header_read_istream(targa_header, istream);
-
- if (targa_header.image_type != 2 && targa_header.image_type != 10 && targa_header.image_type != 3)
- {
- globalErrorStream() << "LoadTGA: TGA type " << targa_header.image_type << " not supported\n";
- globalErrorStream() << "LoadTGA: Only type 2 (RGB), 3 (gray), and 10 (RGB) TGA images supported\n";
- return 0;
- }
-
- if (targa_header.colormap_type != 0)
- {
- globalErrorStream() << "LoadTGA: colormaps not supported\n";
- return 0;
- }
-
- if ((targa_header.pixel_size != 32 && targa_header.pixel_size != 24)
- && targa_header.image_type != 3)
- {
- globalErrorStream() << "LoadTGA: Only 32 or 24 bit images supported\n";
- return 0;
- }
-
- if(!bitfield_enabled(targa_header.attributes, TGA_FLIP_HORIZONTAL)
- && !bitfield_enabled(targa_header.attributes, TGA_FLIP_VERTICAL))
- {
- return Targa_decodeImageData(targa_header, istream, Flip00());
- }
- if(!bitfield_enabled(targa_header.attributes, TGA_FLIP_HORIZONTAL)
- && bitfield_enabled(targa_header.attributes, TGA_FLIP_VERTICAL))
- {
- return Targa_decodeImageData(targa_header, istream, Flip01());
- }
- if(bitfield_enabled(targa_header.attributes, TGA_FLIP_HORIZONTAL)
- && !bitfield_enabled(targa_header.attributes, TGA_FLIP_VERTICAL))
- {
- return Targa_decodeImageData(targa_header, istream, Flip10());
- }
- if(bitfield_enabled(targa_header.attributes, TGA_FLIP_HORIZONTAL)
- && bitfield_enabled(targa_header.attributes, TGA_FLIP_VERTICAL))
- {
- return Targa_decodeImageData(targa_header, istream, Flip11());
- }
-
- // unreachable
- return 0;
+Image* LoadTGABuff( const byte* buffer ){
+ PointerInputStream istream( buffer );
+ TargaHeader targa_header;
+
+ targa_header_read_istream( targa_header, istream );
+
+ if ( targa_header.image_type != 2 && targa_header.image_type != 10 && targa_header.image_type != 3 && targa_header.image_type != 11 ) {
+ globalErrorStream() << "LoadTGA: TGA type " << targa_header.image_type << " not supported\n";
+ globalErrorStream() << "LoadTGA: Only type 2 (RGB), 3 (gray), 10 (RGB), and 11 (gray) TGA images supported\n";
+ return 0;
+ }
+
+ if ( targa_header.colormap_type != 0 ) {
+ globalErrorStream() << "LoadTGA: colormaps not supported\n";
+ return 0;
+ }
+
+ if ( ( ( targa_header.image_type == 2 || targa_header.image_type == 10 ) && targa_header.pixel_size != 32 && targa_header.pixel_size != 24 ) ||
+ ( ( targa_header.image_type == 3 || targa_header.image_type == 11 ) && targa_header.pixel_size != 8 ) ) {
+ globalErrorStream() << "LoadTGA: Only 32, 24 or 8 bit images supported\n";
+ return 0;
+ }
+
+ if ( !bitfield_enabled( targa_header.attributes, TGA_FLIP_HORIZONTAL )
+ && !bitfield_enabled( targa_header.attributes, TGA_FLIP_VERTICAL ) ) {
+ return Targa_decodeImageData( targa_header, istream, Flip00() );
+ }
+ if ( !bitfield_enabled( targa_header.attributes, TGA_FLIP_HORIZONTAL )
+ && bitfield_enabled( targa_header.attributes, TGA_FLIP_VERTICAL ) ) {
+ return Targa_decodeImageData( targa_header, istream, Flip01() );
+ }
+ if ( bitfield_enabled( targa_header.attributes, TGA_FLIP_HORIZONTAL )
+ && !bitfield_enabled( targa_header.attributes, TGA_FLIP_VERTICAL ) ) {
+ return Targa_decodeImageData( targa_header, istream, Flip10() );
+ }
+ if ( bitfield_enabled( targa_header.attributes, TGA_FLIP_HORIZONTAL )
+ && bitfield_enabled( targa_header.attributes, TGA_FLIP_VERTICAL ) ) {
+ return Targa_decodeImageData( targa_header, istream, Flip11() );
+ }
+
+ // unreachable
+ return 0;