# HG changeset patch # User Sebastien Jodogne # Date 1555504638 -7200 # Node ID b1e1eccee214a63f0cd486ff2cf517abdb30a5bc # Parent 731b40e9bfe164b6434b225c041aa7e8a50cb606 CairoSurface::Copy() diff -r 731b40e9bfe1 -r b1e1eccee214 Framework/Viewport/CairoSurface.cpp --- a/Framework/Viewport/CairoSurface.cpp Tue Apr 09 17:49:37 2019 +0200 +++ b/Framework/Viewport/CairoSurface.cpp Wed Apr 17 14:37:18 2019 +0200 @@ -114,6 +114,17 @@ } + void CairoSurface::Copy(const Orthanc::ImageAccessor& source) + { + SetSize(source.GetWidth(), source.GetHeight()); + + Orthanc::ImageAccessor target; + GetWriteableAccessor(target); + + Orthanc::ImageProcessing::Convert(target, source); + } + + void CairoSurface::GetReadOnlyAccessor(Orthanc::ImageAccessor& target) const { target.AssignReadOnly(Orthanc::PixelFormat_BGRA32, width_, height_, pitch_, buffer_); diff -r 731b40e9bfe1 -r b1e1eccee214 Framework/Viewport/CairoSurface.h --- a/Framework/Viewport/CairoSurface.h Tue Apr 09 17:49:37 2019 +0200 +++ b/Framework/Viewport/CairoSurface.h Wed Apr 17 14:37:18 2019 +0200 @@ -56,8 +56,10 @@ Allocate(width, height); } + private: CairoSurface(Orthanc::ImageAccessor& accessor); + public: ~CairoSurface() { Release(); @@ -68,6 +70,8 @@ void Copy(const CairoSurface& other); + void Copy(const Orthanc::ImageAccessor& source); + unsigned int GetWidth() const { return width_;