diff options
| author | liamwhite <liamwhite@users.noreply.github.com> | 2023-01-27 19:28:35 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-27 19:28:35 -0500 |
| commit | 6fa86989f10ef9f87701147e4b4b426f309edac4 (patch) | |
| tree | e4b3c203e4a2349ec8f72e5f5d162eab2a1d9ecd /src/video_core/renderer_opengl/gl_fsr.h | |
| parent | 32b2a72e7b68427c619d2dae4daef963a826bb9e (diff) | |
| parent | c4a49eb1ddc1da32e4f915fd7421161cedee2e8f (diff) | |
Merge pull request #9539 from Wollnashorn/opengl-fsr
video_core/opengl: Added FSR upscaling filter to the OpenGL renderer
Diffstat (limited to 'src/video_core/renderer_opengl/gl_fsr.h')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_fsr.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_fsr.h b/src/video_core/renderer_opengl/gl_fsr.h new file mode 100644 index 000000000..1f6ae3115 --- /dev/null +++ b/src/video_core/renderer_opengl/gl_fsr.h @@ -0,0 +1,43 @@ +// SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project +// SPDX-License-Identifier: GPL-2.0-or-later + +#pragma once + +#include <string_view> + +#include "common/common_types.h" +#include "common/math_util.h" +#include "video_core/fsr.h" +#include "video_core/renderer_opengl/gl_resource_manager.h" + +namespace OpenGL { + +class ProgramManager; + +class FSR { +public: + explicit FSR(std::string_view fsr_vertex_source, std::string_view fsr_easu_source, + std::string_view fsr_rcas_source); + ~FSR(); + + void Draw(ProgramManager& program_manager, const Common::Rectangle<u32>& screen, + u32 input_image_width, u32 input_image_height, + const Common::Rectangle<int>& crop_rect); + + void InitBuffers(); + + void ReleaseBuffers(); + + [[nodiscard]] const OGLProgram& GetPresentFragmentProgram() const noexcept; + + [[nodiscard]] bool AreBuffersInitialized() const noexcept; + +private: + OGLFramebuffer fsr_framebuffer; + OGLProgram fsr_vertex; + OGLProgram fsr_easu_frag; + OGLProgram fsr_rcas_frag; + OGLTexture fsr_intermediate_tex; +}; + +} // namespace OpenGL |
