template<class DstArrayT, class SrcArrayT, class ExtraArrayT, class Extra2ArrayT, class NgbT>
Row : phase 1, loop.
Definition at line 181 of file FuncNgbOp2dExtra2.h. References ArrayCPB(), ArrayCW(), ArrayInc(), FuncNgbOp2dExtra2_Pix_P1Loop(), PtrRead(), and PtrWrite(). 00184 { 00185 typedef typename DstArrayT::StorType DstStorT; 00186 typedef typename DstArrayT::ArithType DstArithT; 00187 typedef typename SrcArrayT::StorType SrcStorT; 00188 typedef typename SrcArrayT::ArithType SrcArithT; 00189 typedef typename ExtraArrayT::StorType ExtraStorT; 00190 typedef typename ExtraArrayT::ArithType ExtraArithT; 00191 typedef typename Extra2ArrayT::StorType Extra2StorT; 00192 typedef typename Extra2ArrayT::ArithType Extra2ArithT; 00193 00194 int ngbWidth = ngb.Width(); 00195 int ngbHeight = ngb.Height(); 00196 int width = ArrayCW(dst); 00197 DstStorT* dPtr = ArrayCPB(dst, 0, y); 00198 SrcStorT* sPtr = ArrayCPB(src, -ngbWidth/2, y-ngbHeight/2); 00199 SrcStorT* ePtr = ArrayCPB(extra, -ngbWidth/2, y-ngbHeight/2); 00200 SrcStorT* e2Ptr = ArrayCPB(extra2, -ngbWidth/2, y-ngbHeight/2); 00201 SrcStorT* cenPtr = ArrayCPB(src, 0, y); 00202 SrcStorT* ecenPtr = ArrayCPB(extra, 0, y); 00203 SrcStorT* e2cenPtr = ArrayCPB(extra2, 0, y); 00204 int srcIncX = ArrayInc(src, 1, 0); 00205 int srcIncY = ArrayInc(src, -ngbWidth, 1); 00206 int extraIncX = ArrayInc(extra, 1, 0); 00207 int extraIncY = ArrayInc(extra, -ngbWidth, 1); 00208 int extra2IncX = ArrayInc(extra2, 1, 0); 00209 int extra2IncY = ArrayInc(extra2, -ngbWidth, 1); 00210 for (int x=0 ; x<width ; x++) 00211 { 00212 ngb.Init(x, y, PtrRead(cenPtr, SrcArithT()), 00213 PtrRead(ecenPtr, ExtraArithT()), 00214 PtrRead(e2cenPtr, Extra2ArithT())); 00215 FuncNgbOp2dExtra2_Pix_P1Loop(sPtr, ePtr, e2Ptr, ngb, ngbWidth, ngbHeight, 00216 srcIncX, srcIncY, SrcArithT(), 00217 extraIncX, extraIncY, ExtraArithT(), 00218 extra2IncX, extra2IncY, Extra2ArithT()); 00219 PtrWrite(dPtr, ngb.Result()); 00220 dPtr += DstArrayT::ElemSize(); 00221 sPtr += SrcArrayT::ElemSize(); 00222 ePtr += ExtraArrayT::ElemSize(); 00223 e2Ptr += Extra2ArrayT::ElemSize(); 00224 cenPtr += SrcArrayT::ElemSize(); 00225 ecenPtr += ExtraArrayT::ElemSize(); 00226 e2cenPtr += Extra2ArrayT::ElemSize(); 00227 } 00228 }
Here is the call graph for this function:
|