mirror of
https://github.com/Lime3DS/Lime3DS.git
synced 2026-04-02 11:17:43 -06:00
48 lines
1.8 KiB
C++
48 lines
1.8 KiB
C++
// Copyright 2023 Citra Emulator Project
|
|
// Copyright 2024 Azahar Emulator Project
|
|
// Licensed under GPLv2 or any later version
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include "common/archives.h"
|
|
#include "common/microprofile.h"
|
|
#include "core/core.h"
|
|
#include "core/core_timing.h"
|
|
#include "core/hle/service/gsp/gsp_gpu.h"
|
|
#include "core/hle/service/plgldr/plgldr.h"
|
|
#include "video_core/debug_utils/debug_utils.h"
|
|
#include "video_core/gpu.h"
|
|
#include "video_core/gpu_debugger.h"
|
|
#include "video_core/gpu_impl.h"
|
|
#include "video_core/pica/pica_core.h"
|
|
#include "video_core/pica/regs_lcd.h"
|
|
#include "video_core/renderer_base.h"
|
|
#include "video_core/renderer_software/sw_blitter.h"
|
|
#include "video_core/right_eye_disabler.h"
|
|
#include "video_core/video_core.h"
|
|
|
|
namespace VideoCore {
|
|
struct GPU::Impl {
|
|
Core::Timing& timing;
|
|
Core::System& system;
|
|
Memory::MemorySystem& memory;
|
|
std::shared_ptr<Pica::DebugContext> debug_context;
|
|
Pica::PicaCore pica;
|
|
GraphicsDebugger gpu_debugger;
|
|
std::unique_ptr<RendererBase> renderer;
|
|
RasterizerInterface* rasterizer;
|
|
std::unique_ptr<SwRenderer::SwBlitter> sw_blitter;
|
|
Core::TimingEventType* vblank_event;
|
|
Service::GSP::InterruptHandler signal_interrupt;
|
|
|
|
explicit Impl(Core::System& system, Frontend::EmuWindow& emu_window,
|
|
Frontend::EmuWindow* secondary_window)
|
|
: timing{system.CoreTiming()}, system{system}, memory{system.Memory()},
|
|
debug_context{Pica::g_debug_context}, pica{memory, debug_context},
|
|
renderer{VideoCore::CreateRenderer(emu_window, secondary_window, pica, system)},
|
|
rasterizer{renderer->Rasterizer()},
|
|
sw_blitter{std::make_unique<SwRenderer::SwBlitter>(memory, rasterizer)} {}
|
|
~Impl() = default;
|
|
};
|
|
} // namespace VideoCore
|