1 // Copyright 2019 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 XbrzFreescale : public TextureFilterBase { 14 public: 15 static constexpr std::string_view NAME = "xBRZ freescale"; 16 17 explicit XbrzFreescale(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 } // namespace OpenGL 29