rendered paste bodyvoid SetPixelInTex(ITexture *Tex, u32 PosX, u32 PosY, SColor NewColor, u8* Data=NULL) { u32 Pitch; Pitch=Tex->getPitch(); u8* Pointer; if(!Data) Pointer=(u8*)Tex->lock(); else Pointer=Data; u8* RowStart=Pointer+Pitch*PosY; switch(Tex->getColorFormat()) { case ECF_A8R8G8B8: { SColor* PixelPos=(SColor*)RowStart; PixelPos+=PosX; *PixelPos=NewColor; }break; case ECF_R8G8B8: { u8 *PixelPos=RowStart; PixelPos+=3*PosX; PixelPos[0]=NewColor.getRed(); PixelPos[1]=NewColor.getGreen(); PixelPos[2]=NewColor.getBlue(); }break; } if(!Data) Tex->unlock(); } SColor GetPixelInTex(ITexture *Tex, u32 PosX, u32 PosY, u8* Data=NULL) { SColor ReturnColor; u32 Pitch; Pitch=Tex->getPitch(); u8* Pointer; if(!Data) Pointer=(u8*)Tex->lock(); else Pointer=Data; u8* RowStart=Pointer+Pitch*PosY; switch(Tex->getColorFormat()) { case ECF_A8R8G8B8: { SColor* PixelPos=(SColor*)RowStart; PixelPos+=PosX; ReturnColor=*PixelPos; }break; case ECF_R8G8B8: { u8 *PixelPos=RowStart; PixelPos+=3*PosX; ReturnColor.set(0,PixelPos[0], PixelPos[1], PixelPos[2]); }break; } if(!Data) Tex->unlock(); return ReturnColor; }