1#ifndef RGBTRIPLET3XSCALER_HH
2#define RGBTRIPLET3XSCALER_HH
12template<std::
unsigned_
integral Pixel>
class PolyLineScaler;
16template<std::
unsigned_
integral Pixel>
25 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
29 FrameSource& src,
unsigned srcStartY,
unsigned srcEndY,
32 FrameSource& src,
unsigned srcStartY,
unsigned srcEndY,
35 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
38 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
41 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
44 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
47 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
50 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
53 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
56 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
59 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
62 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
65 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
68 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
72 [[nodiscard]] std::pair<unsigned, unsigned> calcBlur();
79 void rgbify(std::span<const Pixel> in, std::span<Pixel> out,
unsigned c1,
unsigned c2);
81 void scaleLine(std::span<const Pixel> srcLine, std::span<Pixel> dstLine,
84 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
88 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
Interface for getting lines from a video frame.
void scaleBlank2to3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scale4x1to3x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scale8x1to9x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scale8x2to9x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scale2x1to3x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scale1x1to3x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scale2x1to9x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scale4x2to3x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
RGBTriplet3xScaler(const PixelOperations< Pixel > &pixelOps, const RenderSettings &renderSettings)
void scale4x1to9x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scaleImage(FrameSource &src, const RawFrame *superImpose, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
Scales the image in the given area, which must consist of lines which are all equally wide.
void scale2x2to9x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scale1x2to3x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scale2x2to3x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scale4x2to9x3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
void scaleBlank1to3(FrameSource &src, unsigned srcStartY, unsigned srcEndY, ScalerOutput< Pixel > &dst, unsigned dstStartY, unsigned dstEndY) override
A video frame as output by the VDP scanline conversion unit, before any postprocessing filters are ap...
Class containing all settings for renderers.
Base class for 3x scalers.
Helper class to draw scanlines.
constexpr mat4 scale(const vec3 &xyz)
This file implemented 3 utility functions: