Changed: Implement CBitmap::setPixelColor
This commit is contained in:
parent
753b429950
commit
cf788f098d
2 changed files with 21 additions and 1 deletions
|
@ -636,11 +636,17 @@ public:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/** Get the pixel at the given coorrdinate.
|
/** Get the pixel at the given coordinate.
|
||||||
* Works in RGBA and DXTC modes.
|
* Works in RGBA and DXTC modes.
|
||||||
* Outside of the bitmap it returns Black (or if mipmap is not found)
|
* Outside of the bitmap it returns Black (or if mipmap is not found)
|
||||||
*/
|
*/
|
||||||
CRGBA getPixelColor(sint x, sint y, uint32 numMipMap = 0) const;
|
CRGBA getPixelColor(sint x, sint y, uint32 numMipMap = 0) const;
|
||||||
|
|
||||||
|
/** Set the pixel at the given coordinate.
|
||||||
|
* Works in RGBA mode only.
|
||||||
|
*/
|
||||||
|
void setPixelColor(sint x, sint y, CRGBA c, uint32 numMipMap = 0);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Horizontal flip (all the columns are flipped)
|
* Horizontal flip (all the columns are flipped)
|
||||||
* Works only with RGBA, and DXTC formats (only if w/h is a power of 2)
|
* Works only with RGBA, and DXTC formats (only if w/h is a power of 2)
|
||||||
|
|
|
@ -4510,6 +4510,20 @@ CRGBA CBitmap::getPixelColor(sint x, sint y, uint32 numMipMap /*=0*/) const
|
||||||
return CRGBA::Black;
|
return CRGBA::Black;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------
|
||||||
|
void CBitmap::setPixelColor(sint x, sint y, CRGBA c, uint32 numMipMap)
|
||||||
|
{
|
||||||
|
nlassert(PixelFormat == RGBA);
|
||||||
|
|
||||||
|
uint w = getWidth(numMipMap);
|
||||||
|
uint h = getHeight(numMipMap);
|
||||||
|
|
||||||
|
if (w == 0 || x < 0 || y < 0 || x >= (sint)w || y >= (sint)h) return;
|
||||||
|
|
||||||
|
uint8 *pix = &getPixels(numMipMap)[(x + y * w) << 2];
|
||||||
|
|
||||||
|
memcpy(pix, &c, sizeof(CRGBA));
|
||||||
|
}
|
||||||
|
|
||||||
//-----------------------------------------------
|
//-----------------------------------------------
|
||||||
void CBitmap::swap(CBitmap &other)
|
void CBitmap::swap(CBitmap &other)
|
||||||
|
|
Loading…
Reference in a new issue