diff Framework/Viewport/CairoSurface.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 5412adf19980
children 557c8ff1db5c
line wrap: on
line diff
--- a/Framework/Viewport/CairoSurface.cpp	Fri Oct 05 11:57:36 2018 +0200
+++ b/Framework/Viewport/CairoSurface.cpp	Mon Oct 08 17:10:08 2018 +0200
@@ -105,24 +105,23 @@
 
   void CairoSurface::Copy(const CairoSurface& other)
   {
-    Orthanc::ImageAccessor source = other.GetConstAccessor();
-    Orthanc::ImageAccessor target = GetAccessor();
+    Orthanc::ImageAccessor source, target;
+
+    other.GetConstAccessor(source);
+    GetAccessor(target);
+
     Orthanc::ImageProcessing::Copy(target, source);
   }
 
 
-  Orthanc::ImageAccessor CairoSurface::GetConstAccessor() const
+  void CairoSurface::GetConstAccessor(Orthanc::ImageAccessor& target) const
   {
-    Orthanc::ImageAccessor accessor;
-    accessor.AssignReadOnly(Orthanc::PixelFormat_BGRA32, width_, height_, pitch_, buffer_);
-    return accessor;
+    target.AssignReadOnly(Orthanc::PixelFormat_BGRA32, width_, height_, pitch_, buffer_);
   }
 
 
-  Orthanc::ImageAccessor CairoSurface::GetAccessor()
+  void CairoSurface::GetAccessor(Orthanc::ImageAccessor& target)
   {
-    Orthanc::ImageAccessor accessor;
-    accessor.AssignWritable(Orthanc::PixelFormat_BGRA32, width_, height_, pitch_, buffer_);
-    return accessor;
+    target.AssignWritable(Orthanc::PixelFormat_BGRA32, width_, height_, pitch_, buffer_);
   }
 }