diff options
author | Liam <byteslice@airmail.cc> | 2024-01-19 02:47:50 +0100 |
---|---|---|
committer | Liam <byteslice@airmail.cc> | 2024-01-31 17:27:21 +0100 |
commit | 10cf0585180bcf2eab38ebf65dc593fecc4ddf92 (patch) | |
tree | c0c7680fd2a17b32b0baab91b31f3c25c597ccfd /src/video_core/renderer_opengl/gl_blit_screen.h | |
parent | renderer_vulkan: implement layer stack composition (diff) | |
download | yuzu-10cf0585180bcf2eab38ebf65dc593fecc4ddf92.tar yuzu-10cf0585180bcf2eab38ebf65dc593fecc4ddf92.tar.gz yuzu-10cf0585180bcf2eab38ebf65dc593fecc4ddf92.tar.bz2 yuzu-10cf0585180bcf2eab38ebf65dc593fecc4ddf92.tar.lz yuzu-10cf0585180bcf2eab38ebf65dc593fecc4ddf92.tar.xz yuzu-10cf0585180bcf2eab38ebf65dc593fecc4ddf92.tar.zst yuzu-10cf0585180bcf2eab38ebf65dc593fecc4ddf92.zip |
Diffstat (limited to 'src/video_core/renderer_opengl/gl_blit_screen.h')
-rw-r--r-- | src/video_core/renderer_opengl/gl_blit_screen.h | 38 |
1 files changed, 5 insertions, 33 deletions
diff --git a/src/video_core/renderer_opengl/gl_blit_screen.h b/src/video_core/renderer_opengl/gl_blit_screen.h index f42f89dee..0c3d838f1 100644 --- a/src/video_core/renderer_opengl/gl_blit_screen.h +++ b/src/video_core/renderer_opengl/gl_blit_screen.h @@ -3,8 +3,9 @@ #pragma once +#include <list> #include <memory> -#include <vector> +#include <span> #include "core/hle/service/nvnflinger/pixel_format.h" #include "video_core/host1x/gpu_device_memory_manager.h" @@ -25,24 +26,12 @@ enum class ScalingFilter : u32; namespace OpenGL { class Device; -class FSR; -class FXAA; +class Layer; class ProgramManager; class RasterizerOpenGL; -class SMAA; class StateTracker; class WindowAdaptPass; -/// Structure used for storing information about the textures for the Switch screen -struct TextureInfo { - OGLTexture resource; - GLsizei width; - GLsizei height; - GLenum gl_format; - GLenum gl_type; - Service::android::PixelFormat pixel_format; -}; - /// Structure used for storing information about the display target for the Switch screen struct FramebufferTextureInfo { GLuint display_texture{}; @@ -60,20 +49,11 @@ public: Device& device); ~BlitScreen(); - void ConfigureFramebufferTexture(const Tegra::FramebufferConfig& framebuffer); - /// Draws the emulated screens to the emulator window. - void DrawScreen(const Tegra::FramebufferConfig& framebuffer, + void DrawScreen(std::span<const Tegra::FramebufferConfig> framebuffers, const Layout::FramebufferLayout& layout); - /// Loads framebuffer from emulated memory into the active OpenGL texture. - FramebufferTextureInfo LoadFBToScreenInfo(const Tegra::FramebufferConfig& framebuffer); - - FramebufferTextureInfo PrepareRenderTarget(const Tegra::FramebufferConfig& framebuffer); - private: - void CreateFXAA(); - void CreateSMAA(); void CreateWindowAdapt(); RasterizerOpenGL& rasterizer; @@ -82,18 +62,10 @@ private: ProgramManager& program_manager; Device& device; - /// Display information for Switch screen - TextureInfo framebuffer_texture; - - std::unique_ptr<FSR> fsr; - std::unique_ptr<FXAA> fxaa; - std::unique_ptr<SMAA> smaa; - Settings::ScalingFilter current_window_adapt{}; std::unique_ptr<WindowAdaptPass> window_adapt; - /// OpenGL framebuffer data - std::vector<u8> gl_framebuffer_data; + std::list<Layer> layers; }; } // namespace OpenGL |