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,
TagNPhase  dummy1,
TagLoop  dummy2 
) [inline]

Row : phase N, loop.

Definition at line 249 of file FuncNgbOp2dExtra.h.

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

00251 {
00252     typedef typename DstArrayT::StorType DstStorT;
00253     typedef typename DstArrayT::ArithType DstArithT;
00254     typedef typename SrcArrayT::StorType SrcStorT;
00255     typedef typename SrcArrayT::ArithType SrcArithT;
00256     typedef typename ExtraArrayT::StorType ExtraStorT;
00257     typedef typename ExtraArrayT::ArithType ExtraArithT;
00258 
00259     int ngbWidth = ngb.Width();
00260     int ngbHeight = ngb.Height();
00261     int width = ArrayCW(dst);
00262     DstStorT* dPtr = ArrayCPB(dst, 0, y);
00263     SrcStorT* sPtr = ArrayCPB(src, -ngbWidth/2, y-ngbHeight/2);
00264     SrcStorT* ePtr = ArrayCPB(extra, -ngbWidth/2, y-ngbHeight/2);
00265     SrcStorT* cenPtr = ArrayCPB(src, 0, y);
00266     SrcStorT* ecenPtr = ArrayCPB(extra, 0, y);
00267     int srcIncX = ArrayInc(src, 1, 0);
00268     int srcIncY = ArrayInc(src, -ngbWidth, 1);
00269     int extraIncX = ArrayInc(extra, 1, 0);
00270     int extraIncY = ArrayInc(extra, -ngbWidth, 1);
00271     for (int x=0 ; x<width ; x++)
00272     {
00273         int phase = 1;
00274         do {
00275             ngb.Init(phase, x, y, PtrRead(cenPtr, SrcArithT()),
00276                      PtrRead(ecenPtr, ExtraArithT()));
00277             FuncNgbOp2dExtra_Pix_P1Loop(sPtr, ePtr, ngb, ngbWidth, ngbHeight,
00278                                         srcIncX, srcIncY, SrcArithT(),
00279                                         extraIncX, extraIncY, ExtraArithT());
00280             ngb.Done(phase);
00281         } while (ngb.HasNextPhase(phase++));
00282         PtrWrite(dPtr, ngb.Result());
00283         dPtr += DstArrayT::ElemSize();
00284         sPtr += SrcArrayT::ElemSize();
00285         ePtr += ExtraArrayT::ElemSize();
00286         cenPtr += SrcArrayT::ElemSize();
00287         ecenPtr += ExtraArrayT::ElemSize();
00288     }
00289 }

Here is the call graph for this function:


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