All pastes #627018 Raw Edit

Unnamed

public cpp v1 · immutable
·published 2007-07-20 01:30 UTC
rendered paste body
void 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; }