20 template<
typename Pixel>
28 auto* line0 =
getLinePtr(2 * line + 0, 320, buf0);
29 auto* line1 =
getLinePtr(2 * line + 1, 320, buf1);
32 blend(line0, line1, buf0, 320);
37 template<
typename Pixel>
48 template<
typename Pixel>
52 unsigned l2 = (2 * line) / 3;
54 if ((line % 3) != 1) {
61 blend(line0, line1, buf0, 960);
69 template<
typename Pixel>
72 unsigned inWidth,
unsigned outWidth)
const
83 memcpy(tmpBuf, in, inWidth *
sizeof(
Pixel));
91 memset(out, outWidth, in[0]);
102 scale(in, out, outWidth);
107 scale(in, out, outWidth);
112 scale(in, out, outWidth);
117 scale(in, out, outWidth);
122 scale(in, out, outWidth);
127 scale(in, out, outWidth);
141 scale(in, out, outWidth);
148 scale(in, out, outWidth);
153 scale(in, out, outWidth);
158 scale(in, out, outWidth);
163 scale(in, out, outWidth);
168 scale(in, out, outWidth);
182 scale(in, out, outWidth);
187 scale(in, out, outWidth);
194 scale(in, out, outWidth);
199 scale(in, out, outWidth);
204 scale(in, out, outWidth);
209 scale(in, out, outWidth);
223 scale(in, out, outWidth);
228 scale(in, out, outWidth);
233 scale(in, out, outWidth);
240 scale(in, out, outWidth);
245 scale(in, out, outWidth);
250 scale(in, out, outWidth);
264 scale(in, out, outWidth);
269 scale(in, out, outWidth);
274 scale(in, out, outWidth);
279 scale(in, out, outWidth);
286 scale(in, out, outWidth);
291 scale(in, out, outWidth);
305 scale(in, out, outWidth);
310 scale(in, out, outWidth);
315 scale(in, out, outWidth);
320 scale(in, out, outWidth);
325 scale(in, out, outWidth);
330 scale(in, out, outWidth);
347 template const uint16_t* FrameSource::getLinePtr320_240<uint16_t>(
unsigned, uint16_t*)
const;
348 template const uint16_t* FrameSource::getLinePtr640_480<uint16_t>(
unsigned, uint16_t*)
const;
349 template const uint16_t* FrameSource::getLinePtr960_720<uint16_t>(
unsigned, uint16_t*)
const;
350 template void FrameSource::scaleLine<uint16_t>(
const uint16_t*, uint16_t*,
unsigned,
unsigned)
const;
352 #if HAVE_32BPP || COMPONENT_GL
353 template const uint32_t* FrameSource::getLinePtr320_240<uint32_t>(
unsigned, uint32_t*)
const;
354 template const uint32_t* FrameSource::getLinePtr640_480<uint32_t>(
unsigned, uint32_t*)
const;
355 template const uint32_t* FrameSource::getLinePtr960_720<uint32_t>(
unsigned, uint32_t*)
const;
356 template void FrameSource::scaleLine<uint32_t>(
const uint32_t*, uint32_t*,
unsigned,
unsigned)
const;
BlendLines functor Generate an output line that is an interpolation of two input lines.
const Pixel * getLinePtr960_720(unsigned line, Pixel *buf) const
Get a pointer to a given line in this frame, the frame is scaled to 960x720 pixels.
const Pixel * getLinePtr320_240(unsigned line, Pixel *buf) const
Get a pointer to a given line in this frame, the frame is scaled to 320x240 pixels.
FrameSource(const PixelFormat &format)
void scaleLine(const Pixel *in, Pixel *out, unsigned inWidth, unsigned outWidth) const
unsigned getHeight() const
Gets the number of lines in this frame.
const Pixel * getLinePtr640_480(unsigned line, Pixel *buf) const
Get a pointer to a given line in this frame, the frame is scaled to 640x480 pixels.
const Pixel * getLinePtr(int line, unsigned width, Pixel *buf) const
Gets a pointer to the pixels of the given line number.
Scale_XonY functors Transforms an input line of pixel to an output line (possibly) with a different w...
constexpr mat4 scale(const vec3 &xyz)
void format(SectorAccessibleDisk &disk, bool dos1)
Format the given disk (= a single partition).
This file implemented 3 utility functions:
#define VLA_SSE_ALIGNED(TYPE, NAME, LENGTH)