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

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

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:


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