예제 #1
0
void
ImageContainer::SetCurrentImage(Image *aImage)
{
  if (!aImage) {
    ClearAllImages();
    return;
  }

  ReentrantMonitorAutoEnter mon(mReentrantMonitor);
  if (IsAsync()) {
    ImageBridgeChild::DispatchImageClientUpdate(mImageClient, this);
  }
  SetCurrentImageInternal(aImage);
}
예제 #2
0
void
ImageContainer::SetCurrentImage(Image *aImage)
{
  if (IsAsync() && !aImage) {
    // Let ImageClient to release all TextureClients.
    ImageBridgeChild::FlushImage(mImageClient, this);
    return;
  }

  ReentrantMonitorAutoEnter mon(mReentrantMonitor);
  if (IsAsync()) {
    ImageBridgeChild::DispatchImageClientUpdate(mImageClient, this);
  }
  SetCurrentImageInternal(aImage);
}
예제 #3
0
void
ImageContainer::SetCurrentImage(Image *aImage)
{
  ReentrantMonitorAutoEnter mon(mReentrantMonitor);

  if (mImageContainerChild) {
    if (aImage) {
      mImageContainerChild->SendImageAsync(this, aImage);
    } else {
      mImageContainerChild->DispatchSetIdle();
    }
  }
  
  SetCurrentImageInternal(aImage);
}
예제 #4
0
void
ImageContainer::ClearCurrentImage()
{
  ReentrantMonitorAutoEnter mon(mReentrantMonitor);
  SetCurrentImageInternal(nullptr);
}