Files
MuditaOS/module-gui/gui/core/PixMap.cpp
Robert Borzecki d3235d54d7 Removed submodule
2019-05-21 23:35:00 +02:00

48 lines
1.0 KiB
C++

/*
* PixMap.cpp
*
* Created on: 18 maj 2019
* Author: robert
*/
#include "PixMap.hpp"
namespace gui {
PixMap::PixMap() : id{0}, width{ 0 }, height{0}, data{nullptr}, name{""} {}
PixMap::PixMap( uint16_t w, uint16_t h, uint8_t* data ) : id{0}, width{ w }, height{ h }, name{""} {
this->data = new uint8_t[width*height];
//no data provided - allocat buffer and clear it with white color
if( data == nullptr ) {
if( this->data ) memset( this->data, 0x0F, width*height );
}
else {
if( this->data ) memcpy( this->data, data, width*height );
}
}
PixMap::~PixMap() {
if( data )
delete []data;
}
gui::Status PixMap::load( uint8_t* data ) {
uint32_t offset = 0;
//read width and height of the image
memcpy( &width, data + offset, sizeof(uint16_t)); offset += sizeof(uint16_t);
memcpy( &height, data + offset, sizeof(uint16_t)); offset += sizeof(uint16_t);
this->data = new uint8_t[width*height];
if( this->data ) memcpy( this->data, data + offset, width*height );
return gui::Status::GUI_SUCCESS;
}
} /* namespace gui */