1 // Copyright 2020 Citra Emulator Project
2 // Licensed under GPLv2 or any later version
3 // Refer to the license.txt file included.
4 
5 #pragma once
6 
7 #include "video_core/renderer_opengl/gl_resource_manager.h"
8 #include "video_core/renderer_opengl/gl_state.h"
9 #include "video_core/renderer_opengl/texture_filters/texture_filter_base.h"
10 
11 namespace OpenGL {
12 
13 class ScaleForce : public TextureFilterBase {
14 public:
15     static constexpr std::string_view NAME = "ScaleForce";
16 
17     explicit ScaleForce(u16 scale_factor);
18     void Filter(GLuint src_tex, const Common::Rectangle<u32>& src_rect, GLuint dst_tex,
19                 const Common::Rectangle<u32>& dst_rect, GLuint read_fb_handle,
20                 GLuint draw_fb_handle) override;
21 
22 private:
23     OpenGLState state{};
24     OGLProgram program{};
25     OGLVertexArray vao{};
26     OGLSampler src_sampler{};
27 };
28 
29 } // namespace OpenGL
30