42 template<
class T,
int nChan>
45 float* rowResult = (
float*) alloca(nChan*
sizeof(
float));
46 int rowlen = k.
res.
u() * nChan;
47 int datalen = k.
uw * nChan;
48 int rowskip = rowlen - datalen;
50 T* p = (T*)data + (k.
v * k.
res.
u() + k.
u) * nChan;
51 T* pEnd = p + k.
vw * rowlen;
55 T* pRowEnd = p + datalen;
60 while (p != pRowEnd) {
72 template<
class T,
int nChan>
75 float* rowResult = (
float*) alloca(nChan*
sizeof(
float));
76 int rowlen = k.
res.
u() * nTxChan;
77 int datalen = k.
uw * nTxChan;
78 int rowskip = rowlen - datalen;
80 T* p = (T*)data + (k.
v * k.
res.
u() + k.
u) * nTxChan;
81 T* pEnd = p + k.
vw * rowlen;
85 T* pRowEnd = p + datalen;
90 while (p != pRowEnd) {
105 float* rowResult = (
float*) alloca(nChan*
sizeof(
float));
106 int rowlen = k.
res.
u() * nTxChan;
107 int datalen = k.
uw * nTxChan;
108 int rowskip = rowlen - datalen;
110 T* p = (T*)data + (k.
v * k.
res.
u() + k.
u) * nTxChan;
111 T* pEnd = p + k.
vw * rowlen;
115 T* pRowEnd = p + datalen;
120 while (p != pRowEnd) {
137 ApplyN<uint8_t>, ApplyN<uint16_t>, ApplyN<PtexHalf>, ApplyN<float>,
138 Apply<uint8_t,1>, Apply<uint16_t,1>, Apply<PtexHalf,1>, Apply<float,1>,
139 Apply<uint8_t,2>, Apply<uint16_t,2>, Apply<PtexHalf,2>, Apply<float,2>,
140 Apply<uint8_t,3>, Apply<uint16_t,3>, Apply<PtexHalf,3>, Apply<float,3>,
141 Apply<uint8_t,4>, Apply<uint16_t,4>, Apply<PtexHalf,4>, Apply<float,4>,
144 ApplyN<uint8_t>, ApplyN<uint16_t>, ApplyN<PtexHalf>, ApplyN<float>,
145 ApplyS<uint8_t,1>, ApplyS<uint16_t,1>, ApplyS<PtexHalf,1>, ApplyS<float,1>,
146 ApplyS<uint8_t,2>, ApplyS<uint16_t,2>, ApplyS<PtexHalf,2>, ApplyS<float,2>,
147 ApplyS<uint8_t,3>, ApplyS<uint16_t,3>, ApplyS<PtexHalf,3>, ApplyS<float,3>,
148 ApplyS<uint8_t,4>, ApplyS<uint16_t,4>, ApplyS<PtexHalf,4>, ApplyS<float,4>,
static ApplyFn applyFunctions[40]
int u() const
U resolution in texels.
void(* ApplyFn)(PtexSeparableKernel &k, float *dst, void *data, int nChan, int nTxChan)
Half-precision floating-point type.