6d0551196d
Like with CPU emulation, we generally don't want to fire off the threads immediately after the relevant classes are initialized, we want to do this after all necessary data is done loading first. This splits the thread creation into its own interface member function to allow controlling when these threads in particular get created.
40 lines
877 B
C++
40 lines
877 B
C++
// Copyright 2014 Citra Emulator Project
|
|
// Licensed under GPLv2 or any later version
|
|
// Refer to the license.txt file included.
|
|
|
|
#pragma once
|
|
|
|
#include <memory>
|
|
|
|
namespace Core {
|
|
class System;
|
|
}
|
|
|
|
namespace Core::Frontend {
|
|
class EmuWindow;
|
|
}
|
|
|
|
namespace Tegra {
|
|
class GPU;
|
|
}
|
|
|
|
namespace VideoCore {
|
|
|
|
class RendererBase;
|
|
|
|
/**
|
|
* Creates a renderer instance.
|
|
*
|
|
* @note The returned renderer instance is simply allocated. Its Init()
|
|
* function still needs to be called to fully complete its setup.
|
|
*/
|
|
std::unique_ptr<RendererBase> CreateRenderer(Core::Frontend::EmuWindow& emu_window,
|
|
Core::System& system);
|
|
|
|
/// Creates an emulated GPU instance using the given system context.
|
|
std::unique_ptr<Tegra::GPU> CreateGPU(Core::System& system);
|
|
|
|
u16 GetResolutionScaleFactor(const RendererBase& renderer);
|
|
|
|
} // namespace VideoCore
|