Home || Architecture || Video Search || Visual Search || Scripts || Applications || Important Messages || OGL || Src

template<class DstArrayT, class SrcArrayT, class ExtraArrayT, class NgbT>
void Impala::Core::Array::Pattern::FuncNgbOp2dExtra_Row ( DstArrayT *  dst,
SrcArrayT *  src,
ExtraArrayT *  extra,
NgbT &  ngb,
int  y,
Tag2Phase  dummy1,
TagLoop  dummy2 
) [inline]

Row : phase 2, loop.

Definition at line 201 of file FuncNgbOp2dExtra.h.

References ArrayCPB(), ArrayCW(), ArrayInc(), FuncNgbOp2dExtra_Pix_P1Loop(), FuncNgbOp2dExtra_Pix_P2Loop(), PtrRead(), and PtrWrite().

00203 {
00204     typedef typename DstArrayT::StorType DstStorT;
00205     typedef typename DstArrayT::ArithType DstArithT;
00206     typedef typename SrcArrayT::StorType SrcStorT;
00207     typedef typename SrcArrayT::ArithType SrcArithT;
00208     typedef typename ExtraArrayT::StorType ExtraStorT;
00209     typedef typename ExtraArrayT::ArithType ExtraArithT;
00210 
00211     int ngbWidth = ngb.Width();
00212     int ngbHeight = ngb.Height();
00213     int width = ArrayCW(dst);
00214     DstStorT* dPtr = ArrayCPB(dst, 0, y);
00215     SrcStorT* sPtr = ArrayCPB(src, -ngbWidth/2, y-ngbHeight/2);
00216     SrcStorT* ePtr = ArrayCPB(extra, -ngbWidth/2, y-ngbHeight/2);
00217     SrcStorT* cenPtr = ArrayCPB(src, 0, y);
00218     SrcStorT* ecenPtr = ArrayCPB(extra, 0, y);
00219     int srcIncX = ArrayInc(src, 1, 0);
00220     int srcIncY = ArrayInc(src, -ngbWidth, 1);
00221     int extraIncX = ArrayInc(extra, 1, 0);
00222     int extraIncY = ArrayInc(extra, -ngbWidth, 1);
00223     for (int x=0 ; x<width ; x++)
00224     {
00225         ngb.Init(x, y, PtrRead(cenPtr, SrcArithT()),
00226                  PtrRead(ecenPtr, ExtraArithT()));
00227         FuncNgbOp2dExtra_Pix_P1Loop(sPtr, ePtr, ngb, ngbWidth, ngbHeight,
00228                                     srcIncX, srcIncY, SrcArithT(),
00229                                     extraIncX, extraIncY, ExtraArithT());
00230         ngb.Init2(x, y, PtrRead(cenPtr, SrcArithT()),
00231                   PtrRead(ecenPtr, ExtraArithT()));
00232         FuncNgbOp2dExtra_Pix_P2Loop(sPtr, ePtr, ngb, ngbWidth, ngbHeight,
00233                                     srcIncX, srcIncY, SrcArithT(),
00234                                     extraIncX, extraIncY, ExtraArithT());
00235         PtrWrite(dPtr, ngb.Result());
00236         dPtr += DstArrayT::ElemSize();
00237         sPtr += SrcArrayT::ElemSize();
00238         ePtr += ExtraArrayT::ElemSize();
00239         cenPtr += SrcArrayT::ElemSize();
00240         ecenPtr += ExtraArrayT::ElemSize();
00241     }
00242 }

Here is the call graph for this function:


Generated on Fri Mar 19 11:01:33 2010 for ImpalaSrc by  doxygen 1.5.1