Subversion Repositories filter_foundry

Compare Revisions

Regard whitespace Rev 36 → Rev 37

/trunk/preview.c
32,7 → 32,7
PSPixelMask preview_pmask;
Handle preview_handle;
UIRECT preview_rect;
int preview_w,preview_h;
int preview_w,preview_h,previewerr = false;
Point preview_scroll;
Boolean preview_complete = false;
 
96,12 → 96,13
extern int srcradused,needinput;
extern double zoomfactor;
OSErr e;
int j,n,scaledw,scaledh,imgw,imgh;
int j,n,scaledw,scaledh,imgw,imgh,badzoom = false;
Rect r,outRect;
Ptr outrow;
 
preview_complete = false;
if(preview_handle){
 
/* size of previewed area, of source image; but no larger than filtered area (selection) */
scaledw = zoomfactor*preview_w;
if(scaledw > (pb->filterRect.right - pb->filterRect.left))
153,6 → 154,7
pb->inHiPlane = pb->outHiPlane = nplanes-1;
//dbg("recalc_preview: about to call advanceState()");
 
if( !needinput || !(e = pb->advanceState()) ){
Ptr outptr = PILOCKHANDLE(preview_handle,false);
int blankrows = (preview_h-imgh)/2,
211,7 → 213,8
 
PIUNLOCKHANDLE(preview_handle);
 
}else{ char s[0x100];
}/*else{
char s[0x100];
sprintf(s,"recalc_preview: advanceState failed (%d)\n\
inRect=(%d,%d,%d,%d) filterRect=(%d,%d,%d,%d) inLoPlane=%d inHiPlane=%d ",
e,
219,7 → 222,16
pb->filterRect.left,pb->filterRect.top,pb->filterRect.right,pb->filterRect.bottom,
pb->inLoPlane,pb->inHiPlane);
dbg(s);
}*/
 
if(e && !previewerr){
char s[0x100];
sprintf(s,"Could not build preview at chosen zoom level.\n\n%s",
e == memFullErr && !srcradused ? "The image is too large for available memory. Try zooming in.\nIf that does not help, Cancel and retry the filter." : "");
dbg(s);
previewerr = true;
}
 
}
}
 
252,41 → 264,3
}
return e;
}
 
#if 0
// old process-then-scale preview code
if(scaleddata = PINEWHANDLE((long)nplanes*scaledw*scaledh)){
Ptr scaledptr = PILOCKHANDLE(scaleddata,false);
//process(pb,false,&pb->inRect,&r,&r,outptr,preview_pmap.rowBytes)
long scaledrb = (long)nplanes*scaledw;
 
if(!(e = process(pb,false,&pb->inRect,&r,&r,scaledptr,scaledrb)){
/* copy data from scaledptr to outptr, scaling as we go */
if(zoomfactor == 1.)
memcpy(outptr,scaledptr,(long)nplanes*preview_w*preview_h);
else{
int blankrows = (preview_h-imgh)/2,
blankcols = (preview_w-imgw)/2;
memset(outptr,0xff,preview_pmap.rowBytes*blankrows);
memset(outptr+preview_pmap.rowBytes*(preview_h-blankrows),0xff,preview_pmap.rowBytes*blankrows);
outrow = outptr+preview_pmap.rowBytes*blankrows;
for( j=blankrows,y=0. ; j<preview_h-blankrows ; ++j,y+=zoomfactor ){
memset(outrow,0xff,nplanes*blankcols);
memset(outrow+nplanes*(preview_w-blankcols),0xff,nplanes*blankcols);
outrow += nplanes*blankcols;
inrow = scaledptr + scaledrb*(int)y;
for( i=blankcols,x = 0. ; i<(preview_w-blankcols) ; ++i,x+=zoomfactor){
inpix = inrow + nplanes*(int)x ;
for(k=0;k<nplanes;++k)
*outrow++ = inpix[k];
}
outrow += nplanes*blankcols;
}
}
}
PIDISPOSEHANDLE(scaleddata);
}else e = memFullErr;
#endif