openMSX
GLHQScaler.hh
Go to the documentation of this file.
1#ifndef GLHQSCALER_HH
2#define GLHQSCALER_HH
3
4#include "GLScaler.hh"
5#include <array>
6#include <cstdint>
7
8namespace openmsx {
9
10class GLHQScaler final : public GLScaler
11{
12public:
13 explicit GLHQScaler(GLScaler& fallback);
14
15 void scaleImage(
16 gl::ColorTexture& src, gl::ColorTexture* superImpose,
17 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
18 unsigned dstStartY, unsigned dstEndY, unsigned dstWidth,
19 unsigned logSrcHeight) override;
20 void uploadBlock(
21 unsigned srcStartY, unsigned srcEndY,
22 unsigned lineWidth, FrameSource& paintFrame) override;
23
24private:
25 GLScaler& fallback;
26 gl::Texture edgeTexture;
27 std::array<gl::Texture, 3> offsetTexture;
28 std::array<gl::Texture, 3> weightTexture;
30};
31
32} // namespace openmsx
33
34#endif
Most basic/generic texture: only contains a texture ID.
Definition: GLUtil.hh:40
Interface for getting lines from a video frame.
Definition: FrameSource.hh:20
void uploadBlock(unsigned srcStartY, unsigned srcEndY, unsigned lineWidth, FrameSource &paintFrame) override
Definition: GLHQScaler.cc:112
GLHQScaler(GLScaler &fallback)
Definition: GLHQScaler.cc:16
void scaleImage(gl::ColorTexture &src, gl::ColorTexture *superImpose, unsigned srcStartY, unsigned srcEndY, unsigned srcWidth, unsigned dstStartY, unsigned dstEndY, unsigned dstWidth, unsigned logSrcHeight) override
Scales the image in the given area, which must consist of lines which are all equally wide.
Definition: GLHQScaler.cc:80
Abstract base class for OpenGL scalers.
Definition: GLScaler.hh:16
This file implemented 3 utility functions:
Definition: Autofire.cc:9