38 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
39 unsigned dstStartY,
unsigned dstEndY,
unsigned dstWidth,
40 unsigned logSrcHeight) = 0;
43 unsigned srcStartY,
unsigned srcEndY,
47 explicit GLScaler(
const std::string& progName);
48 void setup(
bool superImpose);
73 unsigned srcStartY,
unsigned srcEndY,
unsigned srcWidth,
74 unsigned dstStartY,
unsigned dstEndY,
unsigned dstWidth,
75 unsigned logSrcHeight,
76 bool textureFromZero =
false);
79 std::array<gl::BufferObject, 2>
vbo;
Interface for getting lines from a video frame.
Abstract base class for OpenGL scalers.
void setup(bool superImpose)
GLScaler(const std::string &progName)
std::array< gl::ShaderProgram, 2 > program
std::array< GLint, 2 > unifTexSize
std::array< gl::BufferObject, 2 > vbo
virtual ~GLScaler()=default
void execute(gl::ColorTexture &src, gl::ColorTexture *superImpose, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, unsigned dstStartY, unsigned dstEndY, unsigned dstWidth, unsigned logSrcHeight, bool textureFromZero=false)
Helper method to draw a rectangle with multiple texture coordinates.
virtual void scaleImage(gl::ColorTexture &src, gl::ColorTexture *superImpose, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, unsigned dstStartY, unsigned dstEndY, unsigned dstWidth, unsigned logSrcHeight)=0
Scales the image in the given area, which must consist of lines which are all equally wide.
virtual void uploadBlock(unsigned srcStartY, unsigned srcEndY, unsigned lineWidth, FrameSource &paintFrame)
This file implemented 3 utility functions: