void cQMainWindow::LoadImageFromMemory( const char *iData, size_t iSize )
/**********************************************************************/
{
    uint32_t	map_size   = *((uint32_t*)(iData+0));
    uint32_t	code_size  = *((uint32_t*)(iData+4));
    uint32_t	reloc_size = *((uint32_t*)(iData+8));
    ImageMessage *vImage = (ImageMessage*)ImageMessage::Build(r_exec::Now(), map_size, code_size, reloc_size );
    int vSize = vImage->code_size() * sizeof(int32_t);
    ASSERTTXT( vSize == ( iSize - 12 ), "Image size should match size of data in file!" );
    memcpy( vImage->data(), iData + 12, iSize - 12 );
    
    r_comp::Image *vCompilerImage = new r_comp::Image();
    vCompilerImage->load<ImageMessage>( vImage );
    delete vImage;
    
    mTimeBar->AddImage( vCompilerImage );    
}
void cQMainWindow::LoadImage( const char *iFile )
/**********************************************************************/
{
    std::ifstream vInput( iFile, std::ios::binary | std::ios::in );
    if ( !vInput.good() ) return;
    
    ImageMessage *vImage = (ImageMessage*)ImageMessage::Read( vInput );
    vImage->data();
    vInput.close();
    
    //    vImage->trace();
    
    r_comp::Image *vCompilerImage = new r_comp::Image();
    vCompilerImage->load<ImageMessage>( vImage );
    delete vImage;
    
    mTimeBar->AddImage( vCompilerImage );
}
Esempio n. 3
0
void ImageMessage::MergeFrom(const ImageMessage& from) {
  GOOGLE_CHECK_NE(&from, this);
  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (from.has_width()) {
      set_width(from.width());
    }
    if (from.has_height()) {
      set_height(from.height());
    }
    if (from.has_data()) {
      set_data(from.data());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}