Spectre/Graphics/PixelFormat: Rework
source/Graphics/Image/IcoFormat.cpp: use new PixelFormat. source/Graphics/Image.cpp: update to confirm with new PixelFormat Spectre/Graphics/PixelFormat: add PF_getNumChannels() Spectre/Graphics/PixelFormat: Rework the enum with proper naming convention and documentation.
This commit is contained in:
parent
82add50157
commit
c731cda1a2
5 changed files with 73 additions and 16 deletions
|
|
@ -165,29 +165,28 @@ void Image::flipY()
|
|||
|
||||
void Image::setPixels(const void *pixels, PixelFormat format)
|
||||
{
|
||||
switch(format) {
|
||||
case PixelFormat::PF_RGB :
|
||||
case PixelFormat::PF_32BGR :
|
||||
m_channels = RGB;
|
||||
break;
|
||||
case PixelFormat::PF_RGBA :
|
||||
case PixelFormat::PF_32BGRA :
|
||||
switch(PF_getNumChannels(format)) {
|
||||
case 4:
|
||||
m_channels = RGBA;
|
||||
break;
|
||||
case 3:
|
||||
m_channels = RGB;
|
||||
break;
|
||||
default :
|
||||
m_channels = Alpha;
|
||||
}
|
||||
|
||||
m_pixels.resize(m_size.y * getStride());
|
||||
|
||||
if (format == PixelFormat::PF_32BGR || format == PixelFormat::PF_32BGRA) {
|
||||
// TODO: Move pixel format convertion to it's own function(s)
|
||||
if (format == PixelFormat::PF_BGR || format == PixelFormat::PF_BGRA) {
|
||||
const uint8_t *ptr = (const uint8_t *) pixels;
|
||||
|
||||
for(int i = 0; i < m_pixels.size(); i += 4) {
|
||||
m_pixels[i+0] = ptr[2];
|
||||
m_pixels[i+1] = ptr[1];
|
||||
m_pixels[i+2] = ptr[0];
|
||||
if (format == PixelFormat::PF_32BGRA) {
|
||||
if (format == PixelFormat::PF_BGRA) {
|
||||
m_pixels[i+3] = ptr[3];
|
||||
}
|
||||
ptr += 4;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue