From cdec3ea4444918f7c3e1c33e1a09725b49f41204 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Du=C5=A1an=20Poizl?= Date: Thu, 26 Sep 2019 12:44:32 +0200 Subject: [PATCH] Make raw data copy only when needed --- loadrunable.cpp | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/loadrunable.cpp b/loadrunable.cpp index 9397ce4..7d2ff17 100644 --- a/loadrunable.cpp +++ b/loadrunable.cpp @@ -37,27 +37,26 @@ bool loadRAW(QString path, ImageInfoData &info, RawImageAbs **image, QImage *qi if(raw.unpack()) return false; - libraw_rawdata_t rawdata = raw.imgdata.rawdata; - size_t size = rawdata.sizes.width*rawdata.sizes.height; - - std::vector out; - out.resize(size); - size_t d = 0; - uint h=rawdata.sizes.top_margin+rawdata.sizes.height; - uint w=rawdata.sizes.left_margin+rawdata.sizes.width; - size_t pitch = rawdata.sizes.raw_pitch/sizeof(uint16_t); - - for(size_t i=rawdata.sizes.top_margin;i out; + out.resize(size); + size_t d = 0; + uint h=rawdata.sizes.top_margin+rawdata.sizes.height; + uint w=rawdata.sizes.left_margin+rawdata.sizes.width; + size_t pitch = rawdata.sizes.raw_pitch/sizeof(uint16_t); + + for(size_t i=rawdata.sizes.top_margin;i(w, h, out); }