make samplercache global and call constructor/destructor

This commit is contained in:
degasus 2013-02-26 18:30:13 +01:00
parent 4883fa268f
commit 9bc8d6e02b
4 changed files with 10 additions and 6 deletions

View File

@ -129,8 +129,6 @@ static const u32 EFB_CACHE_HEIGHT = (EFB_HEIGHT + EFB_CACHE_RECT_SIZE - 1) / EFB
static bool s_efbCacheValid[2][EFB_CACHE_WIDTH * EFB_CACHE_HEIGHT]; static bool s_efbCacheValid[2][EFB_CACHE_WIDTH * EFB_CACHE_HEIGHT];
static std::vector<u32> s_efbCache[2][EFB_CACHE_WIDTH * EFB_CACHE_HEIGHT]; // 2 for PEEK_Z and PEEK_COLOR static std::vector<u32> s_efbCache[2][EFB_CACHE_WIDTH * EFB_CACHE_HEIGHT]; // 2 for PEEK_Z and PEEK_COLOR
static SamplerCache s_sampler_cache;
int GetNumMSAASamples(int MSAAMode) int GetNumMSAASamples(int MSAAMode)
{ {
switch (MSAAMode) switch (MSAAMode)
@ -374,8 +372,6 @@ void Renderer::Shutdown()
delete s_pfont; delete s_pfont;
s_pfont = 0; s_pfont = 0;
s_ShowEFBCopyRegions.Destroy(); s_ShowEFBCopyRegions.Destroy();
s_sampler_cache.Clear();
} }
void Renderer::Init() void Renderer::Init()
@ -1478,7 +1474,7 @@ void Renderer::SetSamplerState(int stage, int texindex)
auto const& tm0 = tex.texMode0[stage]; auto const& tm0 = tex.texMode0[stage];
auto const& tm1 = tex.texMode1[stage]; auto const& tm1 = tex.texMode1[stage];
s_sampler_cache.SetSamplerState((texindex * 4) + stage, tm0, tm1); g_sampler_cache->SetSamplerState((texindex * 4) + stage, tm0, tm1);
} }
void Renderer::SetInterlacingMode() void Renderer::SetInterlacingMode()

View File

@ -20,6 +20,8 @@
namespace OGL namespace OGL
{ {
SamplerCache *g_sampler_cache;
SamplerCache::SamplerCache() SamplerCache::SamplerCache()
: m_last_max_anisotropy() : m_last_max_anisotropy()
{} {}

View File

@ -73,6 +73,8 @@ private:
int m_last_max_anisotropy; int m_last_max_anisotropy;
}; };
extern SamplerCache *g_sampler_cache;
} }
#endif #endif

View File

@ -91,6 +91,7 @@ Make AA apply instantly during gameplay if possible
#include "FramebufferManager.h" #include "FramebufferManager.h"
#include "Core.h" #include "Core.h"
#include "Host.h" #include "Host.h"
#include "SamplerCache.h"
#include "VideoState.h" #include "VideoState.h"
#include "VideoBackend.h" #include "VideoBackend.h"
@ -195,7 +196,8 @@ void VideoBackend::Video_Prepare()
VertexShaderManager::Init(); VertexShaderManager::Init();
PixelShaderManager::Init(); PixelShaderManager::Init();
ProgramShaderCache::Init(); ProgramShaderCache::Init();
g_texture_cache = new TextureCache; g_texture_cache = new TextureCache();
g_sampler_cache = new SamplerCache();
PostProcessing::Init(); PostProcessing::Init();
Renderer::Init(); Renderer::Init();
GL_REPORT_ERRORD(); GL_REPORT_ERRORD();
@ -229,6 +231,8 @@ void VideoBackend::Video_Cleanup() {
Renderer::Shutdown(); Renderer::Shutdown();
TextureConverter::Shutdown(); TextureConverter::Shutdown();
VertexLoaderManager::Shutdown(); VertexLoaderManager::Shutdown();
delete g_sampler_cache;
g_sampler_cache = NULL;
delete g_texture_cache; delete g_texture_cache;
g_texture_cache = NULL; g_texture_cache = NULL;
ProgramShaderCache::Shutdown(); ProgramShaderCache::Shutdown();