/* * PixMap.cpp * * Created on: 18 maj 2019 * Author: robert */ #include #include "PixMap.hpp" namespace gui { PixMap::PixMap() { width = 0; height = 0; name = ""; type = Type::PIXMAP; } PixMap::PixMap( uint16_t w, uint16_t h, uint8_t* data ) : ImageMap( w, h, data ) { this->data = new uint8_t[width*height]; type = Type::PIXMAP; //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 size ) { 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 */