mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-25 07:09:48 -06:00
VideoCommon: Move some common initialization logic to RenderBase
This commit is contained in:
@ -84,10 +84,10 @@ D3DTexture2D*& FramebufferManager::GetResolvedEFBDepthTexture()
|
||||
}
|
||||
}
|
||||
|
||||
FramebufferManager::FramebufferManager()
|
||||
FramebufferManager::FramebufferManager(int target_width, int target_height)
|
||||
{
|
||||
m_target_width = std::max(g_renderer->GetTargetWidth(), 1);
|
||||
m_target_height = std::max(g_renderer->GetTargetHeight(), 1);
|
||||
m_target_width = static_cast<unsigned int>(std::max(target_width, 1));
|
||||
m_target_height = static_cast<unsigned int>(std::max(target_height, 1));
|
||||
|
||||
DXGI_SAMPLE_DESC sample_desc;
|
||||
sample_desc.Count = g_ActiveConfig.iMultisamples;
|
||||
|
@ -58,7 +58,7 @@ struct XFBSource final : public XFBSourceBase
|
||||
class FramebufferManager final : public FramebufferManagerBase
|
||||
{
|
||||
public:
|
||||
FramebufferManager();
|
||||
FramebufferManager(int target_width, int target_height);
|
||||
~FramebufferManager();
|
||||
|
||||
static D3DTexture2D*& GetEFBColorTexture();
|
||||
|
@ -101,8 +101,6 @@ StateCache gx_state_cache;
|
||||
|
||||
static void SetupDeviceObjects()
|
||||
{
|
||||
g_framebuffer_manager = std::make_unique<FramebufferManager>();
|
||||
|
||||
D3D12_DEPTH_STENCIL_DESC depth_desc;
|
||||
depth_desc.DepthEnable = FALSE;
|
||||
depth_desc.DepthWriteMask = D3D12_DEPTH_WRITE_MASK_ZERO;
|
||||
@ -211,7 +209,7 @@ static void Create3DVisionTexture(int width, int height)
|
||||
// D3D12TODO: 3D Vision not implemented on D3D12 backend.
|
||||
}
|
||||
|
||||
Renderer::Renderer(void*& window_handle)
|
||||
Renderer::Renderer() : ::Renderer(D3D::GetBackBufferWidth(), D3D::GetBackBufferHeight())
|
||||
{
|
||||
if (g_ActiveConfig.iStereoMode == STEREO_3DVISION)
|
||||
{
|
||||
@ -219,21 +217,11 @@ Renderer::Renderer(void*& window_handle)
|
||||
return;
|
||||
}
|
||||
|
||||
s_backbuffer_width = D3D::GetBackBufferWidth();
|
||||
s_backbuffer_height = D3D::GetBackBufferHeight();
|
||||
|
||||
FramebufferManagerBase::SetLastXfbWidth(MAX_XFB_WIDTH);
|
||||
FramebufferManagerBase::SetLastXfbHeight(MAX_XFB_HEIGHT);
|
||||
|
||||
UpdateDrawRectangle();
|
||||
|
||||
s_last_multisamples = g_ActiveConfig.iMultisamples;
|
||||
s_last_efb_scale = g_ActiveConfig.iEFBScale;
|
||||
s_last_stereo_mode = g_ActiveConfig.iStereoMode > 0;
|
||||
s_last_xfb_mode = g_ActiveConfig.bUseRealXFB;
|
||||
CalculateTargetSize();
|
||||
PixelShaderManager::SetEfbScaleChanged();
|
||||
|
||||
g_framebuffer_manager = std::make_unique<FramebufferManager>(s_target_width, s_target_height);
|
||||
SetupDeviceObjects();
|
||||
|
||||
// Setup GX pipeline state
|
||||
@ -877,7 +865,7 @@ void Renderer::SwapImpl(u32 xfb_addr, u32 fb_width, u32 fb_stride, u32 fb_height
|
||||
nullptr);
|
||||
|
||||
g_framebuffer_manager.reset();
|
||||
g_framebuffer_manager = std::make_unique<FramebufferManager>();
|
||||
g_framebuffer_manager = std::make_unique<FramebufferManager>(s_target_width, s_target_height);
|
||||
const float clear_color[4] = {0.f, 0.f, 0.f, 1.f};
|
||||
|
||||
FramebufferManager::GetEFBColorTexture()->TransitionToResourceState(
|
||||
|
@ -17,8 +17,8 @@ class D3DTexture2D;
|
||||
class Renderer final : public ::Renderer
|
||||
{
|
||||
public:
|
||||
Renderer(void*& window_handle);
|
||||
~Renderer();
|
||||
Renderer();
|
||||
~Renderer() override;
|
||||
|
||||
void SetColorMask() override;
|
||||
void SetBlendMode(bool force_update) override;
|
||||
|
@ -163,11 +163,12 @@ bool VideoBackend::Initialize(void* window_handle)
|
||||
void VideoBackend::Video_Prepare()
|
||||
{
|
||||
// internal interfaces
|
||||
g_renderer = std::make_unique<Renderer>(m_window_handle);
|
||||
g_renderer = std::make_unique<Renderer>();
|
||||
g_texture_cache = std::make_unique<TextureCache>();
|
||||
g_vertex_manager = std::make_unique<VertexManager>();
|
||||
g_perf_query = std::make_unique<PerfQuery>();
|
||||
g_xfb_encoder = std::make_unique<XFBEncoder>();
|
||||
g_renderer->InitializeCommon();
|
||||
ShaderCache::Init();
|
||||
ShaderConstantsManager::Init();
|
||||
StaticShaderCache::Init();
|
||||
|
Reference in New Issue
Block a user