#include "..\kosSyst.h" #include "tga.h" int TGAFile::LoadTGAFile(Byte* filebuff, Dword filesize) { memcpy((Byte*)&Tga_head,(Byte*)filebuff,sizeof(sTGAHeader)); width=Tga_head.Width; height=Tga_head.Height; Byte* pImg=filebuff+sizeof(sTGAHeader)+Tga_head.BytesInIdentField+Tga_head.ColorMapOrigin+(Tga_head.ColorMapLength*Tga_head.ColorMapEntrySize/8); Byte* pPal=filebuff+sizeof(sTGAHeader)+Tga_head.BytesInIdentField+Tga_head.ColorMapOrigin; Byte* cBuffer; int x,y; Byte r; int sm; int state=1; if (Tga_head.ImageDescByte >= 32) sm=height-1; else sm=0; // Изображение с палитрой (палитра 24 или 32-битная) if (Tga_head.ImageTypeCode==1) { if (Tga_head.ColorMapEntrySize>=24) { buffer=kos_GetMemory(width*height*3); int bpp=Tga_head.ColorMapEntrySize/8; for(y=height-1;y!=-1;y--) { for(x=0;x>5) & 31)<<3; *(cBuffer+2)=(Byte)((*(Word*)(pImg)>>10) & 31)<<3; pImg=pImg+2; } } state=0; break; } } // Монохромное изображение else if (Tga_head.ImageTypeCode==3) { switch (Tga_head.ImagePixelSize) { case 8: buffer=kos_GetMemory(width*height*3); for(y=height-1;y!=-1;y--) { for(x=0;x