Mercurial > hg > orthanc-stone
comparison Framework/Layers/OrthancFrameLayerSource.cpp @ 318:3a4ca166fafa am-2
ImageAccessor refactoring + implemented Image Cache in SmartLoader
author | am@osimis.io |
---|---|
date | Mon, 08 Oct 2018 17:10:08 +0200 |
parents | b4abaeb783b1 |
children | b10dfdb96866 |
comparison
equal
deleted
inserted
replaced
317:b66d13708f40 | 318:3a4ca166fafa |
---|---|
49 LayerSourceBase::NotifyGeometryError(); | 49 LayerSourceBase::NotifyGeometryError(); |
50 } | 50 } |
51 | 51 |
52 void OrthancFrameLayerSource::OnSliceImageReady(const OrthancSlicesLoader::SliceImageReadyMessage& message) | 52 void OrthancFrameLayerSource::OnSliceImageReady(const OrthancSlicesLoader::SliceImageReadyMessage& message) |
53 { | 53 { |
54 // first notify that the image is ready (targeted to, i.e: an image cache) | |
55 LayerSourceBase::NotifyImageReady(message.image_, message.effectiveQuality_, message.slice_); | |
56 | |
57 // then notify that the layer is ready for render | |
54 bool isFull = (message.effectiveQuality_ == SliceImageQuality_FullPng || message.effectiveQuality_ == SliceImageQuality_FullPam); | 58 bool isFull = (message.effectiveQuality_ == SliceImageQuality_FullPng || message.effectiveQuality_ == SliceImageQuality_FullPam); |
55 LayerSourceBase::NotifyLayerReady(FrameRenderer::CreateRenderer(message.image_.release(), message.slice_, isFull), | 59 std::auto_ptr<Orthanc::ImageAccessor> accessor(new Orthanc::ImageAccessor()); |
60 message.image_->GetReadOnlyAccessor(*accessor); | |
61 | |
62 LayerSourceBase::NotifyLayerReady(FrameRenderer::CreateRenderer(accessor.release(), message.slice_, isFull), | |
56 message.slice_.GetGeometry(), false); | 63 message.slice_.GetGeometry(), false); |
64 | |
57 } | 65 } |
58 | 66 |
59 void OrthancFrameLayerSource::OnSliceImageError(const OrthancSlicesLoader::SliceImageErrorMessage& message) | 67 void OrthancFrameLayerSource::OnSliceImageError(const OrthancSlicesLoader::SliceImageErrorMessage& message) |
60 { | 68 { |
61 LayerSourceBase::NotifyLayerReady(NULL, message.slice_.GetGeometry(), true); | 69 LayerSourceBase::NotifyLayerReady(NULL, message.slice_.GetGeometry(), true); |