diff --git a/Source/Plugins/Plugin_VideoOGL/Plugin_VideoOGL.vcxproj b/Source/Plugins/Plugin_VideoOGL/Plugin_VideoOGL.vcxproj
index c5e741a66b..e0458d9a01 100644
--- a/Source/Plugins/Plugin_VideoOGL/Plugin_VideoOGL.vcxproj
+++ b/Source/Plugins/Plugin_VideoOGL/Plugin_VideoOGL.vcxproj
@@ -224,7 +224,6 @@
-
@@ -234,7 +233,6 @@
-
diff --git a/Source/Plugins/Plugin_VideoOGL/Plugin_VideoOGL.vcxproj.filters b/Source/Plugins/Plugin_VideoOGL/Plugin_VideoOGL.vcxproj.filters
index 3437f0a8ae..27bb563c52 100644
--- a/Source/Plugins/Plugin_VideoOGL/Plugin_VideoOGL.vcxproj.filters
+++ b/Source/Plugins/Plugin_VideoOGL/Plugin_VideoOGL.vcxproj.filters
@@ -63,9 +63,6 @@
Render
-
- Render
-
Render
@@ -78,9 +75,6 @@
Render
-
- Render
-
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp b/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp
index eaf3562986..1d3865851a 100644
--- a/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp
+++ b/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.cpp
@@ -28,7 +28,6 @@
#include "Render.h"
#include "VertexShaderGen.h"
#include "ProgramShaderCache.h"
-#include "PixelShaderCache.h"
#include "PixelShaderManager.h"
#include "OnScreenDisplay.h"
#include "StringUtil.h"
@@ -38,136 +37,6 @@
namespace OGL
{
-static int s_nMaxPixelInstructions;
-PixelShaderCache::PSCache PixelShaderCache::PixelShaders;
-PIXELSHADERUID PixelShaderCache::s_curuid;
-bool PixelShaderCache::s_displayCompileAlert;
-GLuint PixelShaderCache::CurrentShader;
-bool PixelShaderCache::ShaderEnabled;
-
-PixelShaderCache::PSCacheEntry* PixelShaderCache::last_entry = NULL;
-PIXELSHADERUID PixelShaderCache::last_uid;
-
-void PixelShaderCache::Init()
-{
- ShaderEnabled = true;
- CurrentShader = 0;
- last_entry = NULL;
- GL_REPORT_ERRORD();
-
- s_displayCompileAlert = true;
-}
-
-void PixelShaderCache::Shutdown()
-{
- PSCache::iterator iter = PixelShaders.begin();
- for (; iter != PixelShaders.end(); iter++)
- iter->second.Destroy();
- PixelShaders.clear();
-}
-
-FRAGMENTSHADER* PixelShaderCache::SetShader(DSTALPHA_MODE dstAlphaMode, u32 components)
-{
- PIXELSHADERUID uid;
- GetPixelShaderId(&uid, dstAlphaMode, components);
-
- // Check if the shader is already set
- if (last_entry)
- {
- if (uid == last_uid)
- {
- GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true);
- ValidatePixelShaderIDs(API_OPENGL, last_entry->safe_uid, last_entry->shader.strprog, dstAlphaMode, components);
- return &last_entry->shader;
- }
- }
-
- last_uid = uid;
-
- PSCache::iterator iter = PixelShaders.find(uid);
- if (iter != PixelShaders.end())
- {
- PSCacheEntry &entry = iter->second;
- last_entry = &entry;
-
- GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true);
- ValidatePixelShaderIDs(API_OPENGL, entry.safe_uid, entry.shader.strprog, dstAlphaMode, components);
- return &last_entry->shader;
- }
-
- // Make an entry in the table
- PSCacheEntry& newentry = PixelShaders[uid];
- last_entry = &newentry;
- const char *code = GeneratePixelShaderCode(dstAlphaMode, API_OPENGL, components);
-
- if (g_ActiveConfig.bEnableShaderDebugging && code)
- {
- GetSafePixelShaderId(&newentry.safe_uid, dstAlphaMode, components);
- newentry.shader.strprog = code;
- }
-
-#if defined(_DEBUG) || defined(DEBUGFAST)
- if (g_ActiveConfig.iLog & CONF_SAVESHADERS && code) {
- static int counter = 0;
- char szTemp[MAX_PATH];
- sprintf(szTemp, "%sps_%04i.txt", File::GetUserPath(D_DUMP_IDX).c_str(), counter++);
-
- SaveData(szTemp, code);
- }
-#endif
-
- if (!code || !CompilePixelShader(newentry.shader, code)) {
- GFX_DEBUGGER_PAUSE_AT(NEXT_ERROR, true);
- return NULL;
- }
-
- INCSTAT(stats.numPixelShadersCreated);
- SETSTAT(stats.numPixelShadersAlive, PixelShaders.size());
- GFX_DEBUGGER_PAUSE_AT(NEXT_PIXEL_SHADER_CHANGE, true);
- return &last_entry->shader;
-}
-
-bool PixelShaderCache::CompilePixelShader(FRAGMENTSHADER& ps, const char* pstrprogram)
-{
- GLuint result = glCreateShader(GL_FRAGMENT_SHADER);
-
- glShaderSource(result, 1, &pstrprogram, NULL);
- glCompileShader(result);
-#if defined(_DEBUG) || defined(DEBUGFAST) || defined(DEBUG_GLSL)
- GLsizei length = 0;
- glGetShaderiv(result, GL_INFO_LOG_LENGTH, &length);
- if (length > 1)
- {
- GLsizei charsWritten;
- GLchar* infoLog = new GLchar[length];
- glGetShaderInfoLog(result, length, &charsWritten, infoLog);
- ERROR_LOG(VIDEO, "PS Shader info log:\n%s", infoLog);
- char szTemp[MAX_PATH];
- sprintf(szTemp, "ps_%d.txt", result);
- FILE *fp = fopen(szTemp, "wb");
- fwrite(infoLog, strlen(infoLog), 1, fp);
- fwrite(pstrprogram, strlen(pstrprogram), 1, fp);
- fclose(fp);
- delete[] infoLog;
- }
-
- GLint compileStatus;
- glGetShaderiv(result, GL_COMPILE_STATUS, &compileStatus);
- if (compileStatus != GL_TRUE)
- {
- // Compile failed
- ERROR_LOG(VIDEO, "Shader compilation failed; see info log");
-
- // Don't try to use this shader
- glDeleteShader(result);
- return false;
- }
-#endif
- (void)GL_REPORT_ERROR();
- ps.glprogid = result;
- return true;
-}
-
void SetPSConstant4fvByName(const char * name, unsigned int offset, const float *f, const unsigned int count = 1)
{
ProgramShaderCache::PCacheEntry tmp = ProgramShaderCache::GetShaderProgram();
@@ -175,11 +44,11 @@ void SetPSConstant4fvByName(const char * name, unsigned int offset, const float
{
if (!strcmp(name, UniformNames[a]))
{
- if (tmp.UniformLocations[a] == -1)
+ if (tmp.shader.UniformLocations[a] == -1)
return;
else
{
- glUniform4fv(tmp.UniformLocations[a] + offset, count, f);
+ glUniform4fv(tmp.shader.UniformLocations[a] + offset, count, f);
return;
}
}
diff --git a/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.h b/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.h
deleted file mode 100644
index a3b85c3fcc..0000000000
--- a/Source/Plugins/Plugin_VideoOGL/Src/PixelShaderCache.h
+++ /dev/null
@@ -1,83 +0,0 @@
-// Copyright (C) 2003 Dolphin Project.
-
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, version 2.0.
-
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License 2.0 for more details.
-
-// A copy of the GPL 2.0 should have been included with the program.
-// If not, see http://www.gnu.org/licenses/
-
-// Official SVN repository and contact information can be found at
-// http://code.google.com/p/dolphin-emu/
-
-#ifndef _PIXELSHADERCACHE_H_
-#define _PIXELSHADERCACHE_H_
-
-#include