openMSX
GLHQScaler.hh
Go to the documentation of this file.
1#ifndef GLHQSCALER_HH
2#define GLHQSCALER_HH
3
4#include "GLScaler.hh"
5
6#include <array>
7#include <cstdint>
8
9namespace openmsx {
10
11class GLHQScaler final : public GLScaler
12{
13public:
14 explicit GLHQScaler(GLScaler& fallback, unsigned maxWidth, unsigned maxHeight);
15
16 void scaleImage(
17 gl::ColorTexture& src, gl::ColorTexture* superImpose,
18 unsigned srcStartY, unsigned srcEndY, unsigned srcWidth,
19 unsigned dstStartY, unsigned dstEndY, unsigned dstWidth,
20 unsigned logSrcHeight) override;
21 void uploadBlock(
22 unsigned srcStartY, unsigned srcEndY,
23 unsigned lineWidth, FrameSource& paintFrame) override;
24
25private:
26 GLScaler& fallback;
27 gl::Texture edgeTexture;
28 std::array<gl::Texture, 3> offsetTexture;
29 std::array<gl::Texture, 3> weightTexture;
31
32 unsigned maxWidth;
33 unsigned maxHeight;
34 std::array<int, 2> edgePosScaleUnif;
35};
36
37} // namespace openmsx
38
39#endif
Wrapper around a pixel buffer.
Definition GLUtil.hh:159
Most basic/generic texture: only contains a texture ID.
Definition GLUtil.hh:40
Interface for getting lines from a video frame.
void uploadBlock(unsigned srcStartY, unsigned srcEndY, unsigned lineWidth, FrameSource &paintFrame) override
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:86
Abstract base class for OpenGL scalers.
Definition GLScaler.hh:16
This file implemented 3 utility functions:
Definition Autofire.cc:11