@@ -293,24 +293,18 @@ void EXRReaderProcess<View>::sliceCopy( Imf::InputFile& input, const Imf::Slice*
293293
294294 if ( params._displayWindow )
295295 {
296- size_t xoffsetData = abs ( dispw.min .x );
297- size_t yoffsetData = abs ( dispw.min .y );
298- size_t xoffsetDisp = abs ( dataw .min .x );
299- size_t yoffsetDisp = abs ( dataw .min .y );
296+ size_t xoffsetData = dataw. min . x + std::max ( 0 , dispw.min .x );
297+ size_t yoffsetData = dataw. min . y + std::max ( 0 , dispw.min .y );
298+ size_t xoffsetDisp = dataw. min . x - std::min ( 0 , dispw .min .x );
299+ size_t yoffsetDisp = dataw. min . y - std::min ( 0 , dispw .min .y );
300300
301301 size_t wView = std::min ( dataw.max .x , dispw.max .x ) - std::max ( dataw.min .x , dispw.min .x ) + 1 ;
302302 size_t hView = std::min ( dataw.max .y , dispw.max .y ) - std::max ( dataw.min .y , dispw.min .y ) + 1 ;
303-
304- if ( dispw.min .x < 0 )
305- {
306- xoffsetData -= - dispw.min .x ;
307- xoffsetDisp += - dispw.min .x ;
308- }
309- if ( dispw.min .y < 0 )
310- {
311- yoffsetData -= - dispw.min .y ;
312- yoffsetDisp += - dispw.min .y ;
313- }
303+
304+ TUTTLE_TLOG_VAR4 ( TUTTLE_WARNING, dataw.min .x , dataw.min .y , dataw.max .x , dataw.max .y );
305+ TUTTLE_TLOG_VAR4 ( TUTTLE_WARNING, dispw.min .x , dispw.min .y , dispw.max .x , dispw.max .y );
306+ TUTTLE_TLOG_VAR4 ( TUTTLE_WARNING, xoffsetData, yoffsetData, xoffsetDisp, yoffsetDisp );
307+ TUTTLE_TLOG_VAR2 ( TUTTLE_WARNING, wView, hView );
314308
315309 subView = subimage_view ( vw,
316310 xoffsetData,
0 commit comments