template<class DstArrayT, class SrcArrayT, class NgbT>
Row : phase N, loop.
Definition at line 207 of file FuncNgbOp2d.h. References ArrayCPB(), ArrayCW(), ArrayInc(), FuncNgbOp2d_Pix_P1Loop(), PtrRead(), and PtrWrite(). 00209 { 00210 typedef typename DstArrayT::StorType DstStorT; 00211 typedef typename DstArrayT::ArithType DstArithT; 00212 typedef typename SrcArrayT::StorType SrcStorT; 00213 typedef typename SrcArrayT::ArithType SrcArithT; 00214 00215 int ngbWidth = ngb.Width(); 00216 int ngbHeight = ngb.Height(); 00217 int width = ArrayCW(dst); 00218 DstStorT* dPtr = ArrayCPB(dst, 0, y); 00219 SrcStorT* sPtr = ArrayCPB(src, -ngbWidth/2, y-ngbHeight/2); 00220 SrcStorT* cenPtr = ArrayCPB(src, 0, y); 00221 int srcIncX = ArrayInc(src, 1, 0); 00222 int srcIncY = ArrayInc(src, -ngbWidth, 1); 00223 for (int x=0 ; x<width ; x++) 00224 { 00225 int phase = 1; 00226 do { 00227 ngb.Init(phase, x, y, PtrRead(cenPtr, SrcArithT())); 00228 FuncNgbOp2d_Pix_P1Loop(sPtr, ngb, ngbWidth, ngbHeight, srcIncX, 00229 srcIncY, SrcArithT()); 00230 ngb.Done(phase); 00231 } while (ngb.HasNextPhase(phase++)); 00232 PtrWrite(dPtr, ngb.Result()); 00233 dPtr += DstArrayT::ElemSize(); 00234 sPtr += SrcArrayT::ElemSize(); 00235 cenPtr += SrcArrayT::ElemSize(); 00236 } 00237 }
Here is the call graph for this function:
|