Example #1
0
Teuchos::ArrayRCP<Teuchos::ArrayRCP<const ST>>
getLocalData (const Teuchos::RCP<const Thyra_MultiVector>& mv)
{
  Teuchos::ArrayRCP<Teuchos::ArrayRCP<const ST>> data(mv->domain()->dim());
  for (int i=0; i<mv->domain()->dim(); ++i) {
    data[i] = getLocalData(mv->col(i));
  }
  return data;
}
void ImageShadowNode::updateLocalData() {
  const auto &imageSource = getImageSource();
  const auto &currentLocalData = getLocalData();
  if (currentLocalData) {
    assert(std::dynamic_pointer_cast<const ImageLocalData>(currentLocalData));
    auto currentImageLocalData =
        std::static_pointer_cast<const ImageLocalData>(currentLocalData);
    if (currentImageLocalData->getImageSource() == imageSource) {
      // Same `imageSource` is already in `localData`,
      // no need to (re)request an image resource.
      return;
    }
  }

  // Now we are about to mutate the Shadow Node.
  ensureUnsealed();

  auto imageRequest = imageManager_->requestImage(imageSource);
  auto imageLocalData =
      std::make_shared<ImageLocalData>(imageSource, std::move(imageRequest));
  setLocalData(imageLocalData);
}
Example #3
0
void ImageData::updateData(const Util::Bitmap & _bitmap) {
	if(_bitmap.getPixelFormat() != getBitmap()->getPixelFormat()){
		WARN("updateData: Different pixel formats!");
		return;
	}
	std::copy(_bitmap.data(), _bitmap.data() + std::min<size_t>(_bitmap.getDataSize(), getBitmap()->getDataSize()), getLocalData());
	dataChanged();
}
Example #4
0
bool ImageData::uploadGLTexture() {
	if( textureId==0 )
		textureId = Draw::generateTextureId();
	if( textureId==0 )
		return false;

	Draw::uploadTexture(textureId,bitmap->getWidth(),bitmap->getHeight(),bitmap->getPixelFormat(),getLocalData());

	dataHasChanged=false;
	return true; 
}