summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends
diff options
context:
space:
mode:
authorStenzek <stenzek@gmail.com>2017-09-30 16:25:36 +1000
committerStenzek <stenzek@gmail.com>2017-11-22 18:47:04 +1000
commit49a9c33bd75df2b8cebd58eab10f140c79a8f65c (patch)
treec770303bf41043303322e7bb230615d96ad2ea6c /Source/Core/VideoBackends
parent5860c97144a01c4203e98671e158086c672bcf97 (diff)
VideoCommon: Move abstract texture creation function to Renderer
Diffstat (limited to 'Source/Core/VideoBackends')
-rw-r--r--Source/Core/VideoBackends/D3D/Render.cpp5
-rw-r--r--Source/Core/VideoBackends/D3D/Render.h2
-rw-r--r--Source/Core/VideoBackends/D3D/TextureCache.cpp5
-rw-r--r--Source/Core/VideoBackends/D3D/TextureCache.h2
-rw-r--r--Source/Core/VideoBackends/Null/Render.cpp6
-rw-r--r--Source/Core/VideoBackends/Null/Render.h2
-rw-r--r--Source/Core/VideoBackends/Null/TextureCache.h6
-rw-r--r--Source/Core/VideoBackends/OGL/OGLTexture.cpp1
-rw-r--r--Source/Core/VideoBackends/OGL/Render.cpp5
-rw-r--r--Source/Core/VideoBackends/OGL/Render.h2
-rw-r--r--Source/Core/VideoBackends/OGL/TextureCache.cpp5
-rw-r--r--Source/Core/VideoBackends/OGL/TextureCache.h1
-rw-r--r--Source/Core/VideoBackends/Software/SWRenderer.cpp6
-rw-r--r--Source/Core/VideoBackends/Software/SWRenderer.h2
-rw-r--r--Source/Core/VideoBackends/Software/TextureCache.h5
-rw-r--r--Source/Core/VideoBackends/Vulkan/Renderer.cpp5
-rw-r--r--Source/Core/VideoBackends/Vulkan/Renderer.h2
-rw-r--r--Source/Core/VideoBackends/Vulkan/TextureCache.cpp5
-rw-r--r--Source/Core/VideoBackends/Vulkan/TextureCache.h2
19 files changed, 37 insertions, 32 deletions
diff --git a/Source/Core/VideoBackends/D3D/Render.cpp b/Source/Core/VideoBackends/D3D/Render.cpp
index 3c27a41d85..0bddc4cd40 100644
--- a/Source/Core/VideoBackends/D3D/Render.cpp
+++ b/Source/Core/VideoBackends/D3D/Render.cpp
@@ -211,6 +211,11 @@ void Renderer::Create3DVisionTexture(int width, int height)
DXGI_FORMAT_R8G8B8A8_UNORM, 1, 1, &sys_data);
}
+std::unique_ptr<AbstractTexture> Renderer::CreateTexture(const TextureConfig& config)
+{
+ return std::make_unique<DXTexture>(config);
+}
+
void Renderer::RenderText(const std::string& text, int left, int top, u32 color)
{
D3D::DrawTextScaled(static_cast<float>(left + 1), static_cast<float>(top + 1), 20.f, 0.0f,
diff --git a/Source/Core/VideoBackends/D3D/Render.h b/Source/Core/VideoBackends/D3D/Render.h
index 333ff9a80c..527fd1f4fc 100644
--- a/Source/Core/VideoBackends/D3D/Render.h
+++ b/Source/Core/VideoBackends/D3D/Render.h
@@ -22,6 +22,8 @@ public:
~Renderer() override;
StateCache& GetStateCache() { return m_state_cache; }
+ std::unique_ptr<AbstractTexture> CreateTexture(const TextureConfig& config) override;
+
void SetBlendingState(const BlendingState& state) override;
void SetScissorRect(const EFBRectangle& rc) override;
void SetRasterizationState(const RasterizationState& state) override;
diff --git a/Source/Core/VideoBackends/D3D/TextureCache.cpp b/Source/Core/VideoBackends/D3D/TextureCache.cpp
index 578a488bde..7d9d62cf54 100644
--- a/Source/Core/VideoBackends/D3D/TextureCache.cpp
+++ b/Source/Core/VideoBackends/D3D/TextureCache.cpp
@@ -33,11 +33,6 @@ static const size_t MAX_COPY_BUFFERS = 32;
static ID3D11Buffer* s_efbcopycbuf[MAX_COPY_BUFFERS] = {0};
static std::unique_ptr<PSTextureEncoder> g_encoder;
-std::unique_ptr<AbstractTexture> TextureCache::CreateTexture(const TextureConfig& config)
-{
- return std::make_unique<DXTexture>(config);
-}
-
void TextureCache::CopyEFB(u8* dst, const EFBCopyParams& params, u32 native_width,
u32 bytes_per_row, u32 num_blocks_y, u32 memory_stride,
const EFBRectangle& src_rect, bool scale_by_half)
diff --git a/Source/Core/VideoBackends/D3D/TextureCache.h b/Source/Core/VideoBackends/D3D/TextureCache.h
index afb3a1421d..cfe2efdf65 100644
--- a/Source/Core/VideoBackends/D3D/TextureCache.h
+++ b/Source/Core/VideoBackends/D3D/TextureCache.h
@@ -19,8 +19,6 @@ public:
~TextureCache();
private:
- std::unique_ptr<AbstractTexture> CreateTexture(const TextureConfig& config) override;
-
u64 EncodeToRamFromTexture(u32 address, void* source_texture, u32 SourceW, u32 SourceH,
bool bFromZBuffer, bool bIsIntensityFmt, u32 copyfmt, int bScaleByHalf,
const EFBRectangle& source)
diff --git a/Source/Core/VideoBackends/Null/Render.cpp b/Source/Core/VideoBackends/Null/Render.cpp
index b1a88f7a80..6b045a0c6a 100644
--- a/Source/Core/VideoBackends/Null/Render.cpp
+++ b/Source/Core/VideoBackends/Null/Render.cpp
@@ -4,6 +4,7 @@
#include "Common/Logging/Log.h"
+#include "VideoBackends/Null/NullTexture.h"
#include "VideoBackends/Null/Render.h"
#include "VideoCommon/VideoConfig.h"
@@ -21,6 +22,11 @@ Renderer::~Renderer()
UpdateActiveConfig();
}
+std::unique_ptr<AbstractTexture> Renderer::CreateTexture(const TextureConfig& config)
+{
+ return std::make_unique<NullTexture>(config);
+}
+
void Renderer::RenderText(const std::string& text, int left, int top, u32 color)
{
NOTICE_LOG(VIDEO, "RenderText: %s", text.c_str());
diff --git a/Source/Core/VideoBackends/Null/Render.h b/Source/Core/VideoBackends/Null/Render.h
index 2a21918f81..9ba2ef575b 100644
--- a/Source/Core/VideoBackends/Null/Render.h
+++ b/Source/Core/VideoBackends/Null/Render.h
@@ -14,6 +14,8 @@ public:
Renderer();
~Renderer() override;
+ std::unique_ptr<AbstractTexture> CreateTexture(const TextureConfig& config) override;
+
void RenderText(const std::string& pstr, int left, int top, u32 color) override;
u32 AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data) override { return 0; }
void PokeEFB(EFBAccessType type, const EfbPokeData* points, size_t num_points) override {}
diff --git a/Source/Core/VideoBackends/Null/TextureCache.h b/Source/Core/VideoBackends/Null/TextureCache.h
index 2b3283c056..6f09108392 100644
--- a/Source/Core/VideoBackends/Null/TextureCache.h
+++ b/Source/Core/VideoBackends/Null/TextureCache.h
@@ -35,12 +35,6 @@ public:
bool scale_by_half, unsigned int cbuf_id, const float* colmat) override
{
}
-
-private:
- std::unique_ptr<AbstractTexture> CreateTexture(const TextureConfig& config) override
- {
- return std::make_unique<NullTexture>(config);
- }
};
} // Null name space
diff --git a/Source/Core/VideoBackends/OGL/OGLTexture.cpp b/Source/Core/VideoBackends/OGL/OGLTexture.cpp
index 659cc9764b..40295f6f28 100644
--- a/Source/Core/VideoBackends/OGL/OGLTexture.cpp
+++ b/Source/Core/VideoBackends/OGL/OGLTexture.cpp
@@ -9,7 +9,6 @@
#include "VideoBackends/OGL/FramebufferManager.h"
#include "VideoBackends/OGL/OGLTexture.h"
-#include "VideoBackends/OGL/Render.h"
#include "VideoBackends/OGL/SamplerCache.h"
#include "VideoBackends/OGL/TextureCache.h"
diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp
index ac662e456b..fff40f7abf 100644
--- a/Source/Core/VideoBackends/OGL/Render.cpp
+++ b/Source/Core/VideoBackends/OGL/Render.cpp
@@ -814,6 +814,11 @@ void Renderer::Init()
OpenGL_CreateAttributelessVAO();
}
+std::unique_ptr<AbstractTexture> Renderer::CreateTexture(const TextureConfig& config)
+{
+ return std::make_unique<OGLTexture>(config);
+}
+
void Renderer::RenderText(const std::string& text, int left, int top, u32 color)
{
u32 backbuffer_width = std::max(GLInterface->GetBackBufferWidth(), 1u);
diff --git a/Source/Core/VideoBackends/OGL/Render.h b/Source/Core/VideoBackends/OGL/Render.h
index 725cc7a639..2e60df3f6d 100644
--- a/Source/Core/VideoBackends/OGL/Render.h
+++ b/Source/Core/VideoBackends/OGL/Render.h
@@ -77,6 +77,8 @@ public:
void Init();
void Shutdown();
+ std::unique_ptr<AbstractTexture> CreateTexture(const TextureConfig& config) override;
+
void SetBlendingState(const BlendingState& state) override;
void SetScissorRect(const EFBRectangle& rc) override;
void SetRasterizationState(const RasterizationState& state) override;
diff --git a/Source/Core/VideoBackends/OGL/TextureCache.cpp b/Source/Core/VideoBackends/OGL/TextureCache.cpp
index 8e4811bbc1..ba945f8043 100644
--- a/Source/Core/VideoBackends/OGL/TextureCache.cpp
+++ b/Source/Core/VideoBackends/OGL/TextureCache.cpp
@@ -33,11 +33,6 @@ namespace OGL
{
//#define TIME_TEXTURE_DECODING 1
-std::unique_ptr<AbstractTexture> TextureCache::CreateTexture(const TextureConfig& config)
-{
- return std::make_unique<OGLTexture>(config);
-}
-
void TextureCache::CopyEFB(u8* dst, const EFBCopyParams& params, u32 native_width,
u32 bytes_per_row, u32 num_blocks_y, u32 memory_stride,
const EFBRectangle& src_rect, bool scale_by_half)
diff --git a/Source/Core/VideoBackends/OGL/TextureCache.h b/Source/Core/VideoBackends/OGL/TextureCache.h
index ca9038f296..ae848c8c9c 100644
--- a/Source/Core/VideoBackends/OGL/TextureCache.h
+++ b/Source/Core/VideoBackends/OGL/TextureCache.h
@@ -59,7 +59,6 @@ private:
bool valid = false;
};
- std::unique_ptr<AbstractTexture> CreateTexture(const TextureConfig& config) override;
void ConvertTexture(TCacheEntry* destination, TCacheEntry* source, const void* palette,
TLUTFormat format) override;
diff --git a/Source/Core/VideoBackends/Software/SWRenderer.cpp b/Source/Core/VideoBackends/Software/SWRenderer.cpp
index 69523efe78..ea7ccaba7c 100644
--- a/Source/Core/VideoBackends/Software/SWRenderer.cpp
+++ b/Source/Core/VideoBackends/Software/SWRenderer.cpp
@@ -14,6 +14,7 @@
#include "VideoBackends/Software/EfbCopy.h"
#include "VideoBackends/Software/EfbInterface.h"
#include "VideoBackends/Software/SWOGLWindow.h"
+#include "VideoBackends/Software/SWTexture.h"
#include "VideoCommon/BoundingBox.h"
#include "VideoCommon/OnScreenDisplay.h"
@@ -34,6 +35,11 @@ void SWRenderer::Shutdown()
UpdateActiveConfig();
}
+std::unique_ptr<AbstractTexture> SWRenderer::CreateTexture(const TextureConfig& config)
+{
+ return std::make_unique<SW::SWTexture>(config);
+}
+
void SWRenderer::RenderText(const std::string& pstr, int left, int top, u32 color)
{
SWOGLWindow::s_instance->PrintText(pstr, left, top, color);
diff --git a/Source/Core/VideoBackends/Software/SWRenderer.h b/Source/Core/VideoBackends/Software/SWRenderer.h
index a87531fcab..ac8764e0c7 100644
--- a/Source/Core/VideoBackends/Software/SWRenderer.h
+++ b/Source/Core/VideoBackends/Software/SWRenderer.h
@@ -16,6 +16,8 @@ public:
static void Init();
static void Shutdown();
+ std::unique_ptr<AbstractTexture> CreateTexture(const TextureConfig& config) override;
+
void RenderText(const std::string& pstr, int left, int top, u32 color) override;
u32 AccessEFB(EFBAccessType type, u32 x, u32 y, u32 poke_data) override;
void PokeEFB(EFBAccessType type, const EfbPokeData* points, size_t num_points) override {}
diff --git a/Source/Core/VideoBackends/Software/TextureCache.h b/Source/Core/VideoBackends/Software/TextureCache.h
index 3573d36ebb..49612394c2 100644
--- a/Source/Core/VideoBackends/Software/TextureCache.h
+++ b/Source/Core/VideoBackends/Software/TextureCache.h
@@ -25,11 +25,6 @@ public:
}
private:
- std::unique_ptr<AbstractTexture> CreateTexture(const TextureConfig& config) override
- {
- return std::make_unique<SWTexture>(config);
- }
-
void CopyEFBToCacheEntry(TCacheEntry* entry, bool is_depth_copy, const EFBRectangle& src_rect,
bool scale_by_half, unsigned int cbuf_id, const float* colmat) override
{
diff --git a/Source/Core/VideoBackends/Vulkan/Renderer.cpp b/Source/Core/VideoBackends/Vulkan/Renderer.cpp
index 8f83e2b202..0bb1640f47 100644
--- a/Source/Core/VideoBackends/Vulkan/Renderer.cpp
+++ b/Source/Core/VideoBackends/Vulkan/Renderer.cpp
@@ -159,6 +159,11 @@ void Renderer::DestroySemaphores()
}
}
+std::unique_ptr<AbstractTexture> Renderer::CreateTexture(const TextureConfig& config)
+{
+ return VKTexture::Create(config);
+}
+
void Renderer::RenderText(const std::string& text, int left, int top, u32 color)
{
u32 backbuffer_width = m_swap_chain->GetWidth();
diff --git a/Source/Core/VideoBackends/Vulkan/Renderer.h b/Source/Core/VideoBackends/Vulkan/Renderer.h
index e8b7952e7d..250e76634d 100644
--- a/Source/Core/VideoBackends/Vulkan/Renderer.h
+++ b/Source/Core/VideoBackends/Vulkan/Renderer.h
@@ -32,6 +32,8 @@ public:
static Renderer* GetInstance();
+ std::unique_ptr<AbstractTexture> CreateTexture(const TextureConfig& config) override;
+
SwapChain* GetSwapChain() const { return m_swap_chain.get(); }
BoundingBox* GetBoundingBox() const { return m_bounding_box.get(); }
bool Initialize();
diff --git a/Source/Core/VideoBackends/Vulkan/TextureCache.cpp b/Source/Core/VideoBackends/Vulkan/TextureCache.cpp
index 1d8221f646..5a396ee4b2 100644
--- a/Source/Core/VideoBackends/Vulkan/TextureCache.cpp
+++ b/Source/Core/VideoBackends/Vulkan/TextureCache.cpp
@@ -178,11 +178,6 @@ void TextureCache::DecodeTextureOnGPU(TCacheEntry* entry, u32 dst_level, const u
}
}
-std::unique_ptr<AbstractTexture> TextureCache::CreateTexture(const TextureConfig& config)
-{
- return VKTexture::Create(config);
-}
-
bool TextureCache::CreateRenderPasses()
{
static constexpr VkAttachmentDescription update_attachment = {
diff --git a/Source/Core/VideoBackends/Vulkan/TextureCache.h b/Source/Core/VideoBackends/Vulkan/TextureCache.h
index 9bfa2da04e..12bf088ad1 100644
--- a/Source/Core/VideoBackends/Vulkan/TextureCache.h
+++ b/Source/Core/VideoBackends/Vulkan/TextureCache.h
@@ -31,8 +31,6 @@ public:
bool CompileShaders() override;
void DeleteShaders() override;
- std::unique_ptr<AbstractTexture> CreateTexture(const TextureConfig& config) override;
-
void ConvertTexture(TCacheEntry* destination, TCacheEntry* source, const void* palette,
TLUTFormat format) override;