// SONIC ROBO BLAST 2 //----------------------------------------------------------------------------- // Copyright (C) 2023 by Ronald "Eidolon" Kinard // // This program is free software distributed under the // terms of the GNU General Public License, version 2. // See the 'LICENSE' file for more details. //----------------------------------------------------------------------------- #ifndef __SRB2_HWR2_HARDWARE_STATE_HPP__ #define __SRB2_HWR2_HARDWARE_STATE_HPP__ #include "blit_postimg_screens.hpp" #include "blit_rect.hpp" #include "postprocess_wipe.hpp" #include "resource_management.hpp" #include "screen_capture.hpp" #include "software_screen_renderer.hpp" #include "twodee_renderer.hpp" namespace srb2::hwr2 { struct WipeFrames { rhi::Handle start; rhi::Handle end; }; struct HardwareState { std::unique_ptr palette_manager; std::unique_ptr flat_manager; std::unique_ptr patch_atlas_cache; std::unique_ptr twodee_renderer; std::unique_ptr software_screen_renderer; std::unique_ptr blit_postimg_screens; std::unique_ptr wipe; std::unique_ptr blit_rect; std::unique_ptr screen_capture; WipeFrames wipe_frames; }; } // srb2::hwr2 #endif // __SRB2_HWR2_HARDWARE_STATE_HPP__