template<class DstArrayT, class SrcArrayT, class ExtraArrayT, class NgbT>
Row : phase 1, loop.
Definition at line 159 of file FuncNgbOp2dExtra.h. References ArrayCPB(), ArrayCW(), ArrayInc(), FuncNgbOp2dExtra_Pix_P1Loop(), PtrRead(), and PtrWrite(). 00161 { 00162 typedef typename DstArrayT::StorType DstStorT; 00163 typedef typename DstArrayT::ArithType DstArithT; 00164 typedef typename SrcArrayT::StorType SrcStorT; 00165 typedef typename SrcArrayT::ArithType SrcArithT; 00166 typedef typename ExtraArrayT::StorType ExtraStorT; 00167 typedef typename ExtraArrayT::ArithType ExtraArithT; 00168 00169 int ngbWidth = ngb.Width(); 00170 int ngbHeight = ngb.Height(); 00171 int width = ArrayCW(dst); 00172 DstStorT* dPtr = ArrayCPB(dst, 0, y); 00173 SrcStorT* sPtr = ArrayCPB(src, -ngbWidth/2, y-ngbHeight/2); 00174 SrcStorT* ePtr = ArrayCPB(extra, -ngbWidth/2, y-ngbHeight/2); 00175 SrcStorT* cenPtr = ArrayCPB(src, 0, y); 00176 SrcStorT* ecenPtr = ArrayCPB(extra, 0, y); 00177 int srcIncX = ArrayInc(src, 1, 0); 00178 int srcIncY = ArrayInc(src, -ngbWidth, 1); 00179 int extraIncX = ArrayInc(extra, 1, 0); 00180 int extraIncY = ArrayInc(extra, -ngbWidth, 1); 00181 for (int x=0 ; x<width ; x++) 00182 { 00183 ngb.Init(x, y, PtrRead(cenPtr, SrcArithT()), 00184 PtrRead(ecenPtr, ExtraArithT())); 00185 FuncNgbOp2dExtra_Pix_P1Loop(sPtr, ePtr, ngb, ngbWidth, ngbHeight, 00186 srcIncX, srcIncY, SrcArithT(), 00187 extraIncX, extraIncY, ExtraArithT()); 00188 PtrWrite(dPtr, ngb.Result()); 00189 dPtr += DstArrayT::ElemSize(); 00190 sPtr += SrcArrayT::ElemSize(); 00191 ePtr += ExtraArrayT::ElemSize(); 00192 cenPtr += SrcArrayT::ElemSize(); 00193 ecenPtr += ExtraArrayT::ElemSize(); 00194 } 00195 }
Here is the call graph for this function:
|