comparison Framework/Layers/FrameRenderer.cpp @ 378:814fa32e2fcc

refactoring
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 06 Nov 2018 14:21:02 +0100
parents 5412adf19980
children 17d54c028805
comparison
equal deleted inserted replaced
377:8eb4fe74000f 378:814fa32e2fcc
115 style_ = style; 115 style_ = style;
116 display_.reset(NULL); 116 display_.reset(NULL);
117 } 117 }
118 118
119 119
120 ILayerRenderer* FrameRenderer::CreateRenderer(Orthanc::ImageAccessor* frame, 120 ILayerRenderer* FrameRenderer::CreateRenderer(const Orthanc::ImageAccessor& frame,
121 const Slice& frameSlice, 121 const Slice& frameSlice,
122 bool isFullQuality) 122 bool isFullQuality)
123 { 123 {
124 std::auto_ptr<Orthanc::ImageAccessor> protect(frame); 124 if (frame.GetFormat() == Orthanc::PixelFormat_RGB24)
125
126 if (frame->GetFormat() == Orthanc::PixelFormat_RGB24)
127 { 125 {
128 return new ColorFrameRenderer(protect.release(), 126 return new ColorFrameRenderer(frame,
129 frameSlice.GetGeometry(), 127 frameSlice.GetGeometry(),
130 frameSlice.GetPixelSpacingX(), 128 frameSlice.GetPixelSpacingX(),
131 frameSlice.GetPixelSpacingY(), isFullQuality); 129 frameSlice.GetPixelSpacingY(), isFullQuality);
132 } 130 }
133 else 131 else
134 { 132 {
135 return new GrayscaleFrameRenderer(protect.release(), 133 return new GrayscaleFrameRenderer(frame,
136 frameSlice.GetConverter(), 134 frameSlice.GetConverter(),
137 frameSlice.GetGeometry(), 135 frameSlice.GetGeometry(),
138 frameSlice.GetPixelSpacingX(), 136 frameSlice.GetPixelSpacingX(),
139 frameSlice.GetPixelSpacingY(), isFullQuality); 137 frameSlice.GetPixelSpacingY(), isFullQuality);
140 } 138 }