Moved per-game graphics configuration to the game-list right click menu. It will be too difficult to make the "profiles" drop-down thing work with 3-state vs 2-state checkboxes. The per-game settings now have "undetermined" states, except for the radio buttons(I'll fix that later). It's super hacky right now. Video config (probably all config stuff) could be redone.

git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@7386 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
Jordan Woyak
2011-03-21 05:46:33 +00:00
parent 8eaed1c105
commit 068855bbd6
26 changed files with 462 additions and 522 deletions

View File

@ -9,6 +9,9 @@ namespace DX11
class VideoBackend : public VideoBackendHardware
{
public:
VideoBackend() : VideoBackendHardware("gfx_dx11") {}
bool Initialize(void *&);
void Shutdown();

View File

@ -83,7 +83,6 @@ void InitBackendInfo()
g_Config.backend_info.APIType = API_D3D11;
g_Config.backend_info.bUseRGBATextures = true; // the GX formats barely match any D3D11 formats
g_Config.backend_info.bSupports3DVision = false;
g_Config.backend_info.bAllowSignedBytes = true;
g_Config.backend_info.bSupportsDualSourceBlend = true;
g_Config.backend_info.bSupportsFormatReinterpretation = true;
g_Config.backend_info.bSupportsPixelLighting = true;
@ -142,7 +141,7 @@ void VideoBackend::ShowConfig(void *_hParent)
// Clear ppshaders string vector
g_Config.backend_info.PPShaders.clear();
VideoConfigDiag diag((wxWindow*)_hParent, _trans("Direct3D11"), "gfx_dx11");
VideoConfigDiag diag((wxWindow*)_hParent, _trans("Direct3D11"));
diag.ShowModal();
g_Config.backend_info.Adapters.clear();
@ -157,7 +156,7 @@ bool VideoBackend::Initialize(void *&window_handle)
frameCount = 0;
g_Config.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_dx11.ini").c_str());
LoadConfig();
g_Config.GameIniLoad(SConfig::GetInstance().m_LocalCoreStartupParameter.m_strGameIni.c_str());
UpdateProjectionHack(g_Config.iPhackvalue, g_Config.sPhackvalue);
UpdateActiveConfig();

View File

@ -9,6 +9,9 @@ namespace DX9
class VideoBackend : public VideoBackendHardware
{
public:
VideoBackend() : VideoBackendHardware("gfx_dx9") {}
bool Initialize(void *&);
void Shutdown();

View File

@ -89,13 +89,13 @@ std::string VideoBackend::GetName()
void InitBackendInfo()
{
g_Config.backend_info.APIType = API_D3D9;
g_Config.backend_info.bUseRGBATextures = true;
g_Config.backend_info.bUseRGBATextures = false;
g_Config.backend_info.bSupports3DVision = true;
g_Config.backend_info.bAllowSignedBytes = false;
g_Config.backend_info.bSupportsDualSourceBlend = false;
g_Config.backend_info.bSupportsFormatReinterpretation = true;
int shaderModel = ((DX9::D3D::GetCaps().PixelShaderVersion >> 8) & 0xFF);
int maxConstants = (shaderModel < 3) ? 32 : ((shaderModel < 4) ? 224 : 65536);
const int shaderModel = ((DX9::D3D::GetCaps().PixelShaderVersion >> 8) & 0xFF);
const int maxConstants = (shaderModel < 3) ? 32 : ((shaderModel < 4) ? 224 : 65536);
g_Config.backend_info.bSupportsPixelLighting = C_PLIGHTS + 40 <= maxConstants && C_PMATERIALS + 4 <= maxConstants;
}
@ -123,7 +123,7 @@ void VideoBackend::ShowConfig(void* parent)
// Clear ppshaders string vector
g_Config.backend_info.PPShaders.clear();
VideoConfigDiag diag((wxWindow*)parent, _trans("Direct3D9"), "gfx_dx9");
VideoConfigDiag diag((wxWindow*)parent, _trans("Direct3D9"));
diag.ShowModal();
g_Config.backend_info.Adapters.clear();
@ -137,7 +137,7 @@ bool VideoBackend::Initialize(void *&window_handle)
frameCount = 0;
g_Config.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_dx9.ini").c_str());
LoadConfig();
g_Config.GameIniLoad(SConfig::GetInstance().m_LocalCoreStartupParameter.m_strGameIni.c_str());
UpdateProjectionHack(g_Config.iPhackvalue, g_Config.sPhackvalue); // DX9 projection hack could be disabled by commenting out this line
UpdateActiveConfig();

View File

@ -9,6 +9,9 @@ namespace OGL
class VideoBackend : public VideoBackendHardware
{
public:
VideoBackend() : VideoBackendHardware("gfx_opengl") {}
bool Initialize(void *&);
void Shutdown();

View File

@ -132,7 +132,6 @@ void InitBackendInfo()
g_Config.backend_info.APIType = API_OPENGL;
g_Config.backend_info.bUseRGBATextures = false;
g_Config.backend_info.bSupports3DVision = false;
g_Config.backend_info.bAllowSignedBytes = true;
g_Config.backend_info.bSupportsDualSourceBlend = false; // supported, but broken
g_Config.backend_info.bSupportsFormatReinterpretation = false;
g_Config.backend_info.bSupportsPixelLighting = true;
@ -150,7 +149,7 @@ void VideoBackend::ShowConfig(void *_hParent)
// pp shaders
GetShaders(g_Config.backend_info.PPShaders);
VideoConfigDiag diag((wxWindow*)_hParent, "OpenGL", "gfx_opengl");
VideoConfigDiag diag((wxWindow*)_hParent, "OpenGL");
diag.ShowModal();
#endif
}
@ -161,7 +160,7 @@ bool VideoBackend::Initialize(void *&window_handle)
frameCount = 0;
g_Config.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_opengl.ini").c_str());
LoadConfig();
g_Config.GameIniLoad(SConfig::GetInstance().m_LocalCoreStartupParameter.m_strGameIni.c_str());
g_Config.UpdateProjectionHack();

View File

@ -168,8 +168,12 @@ void SWVertexLoader::SetFormat(u8 attributeIndex, u8 primitiveType)
// Normals
if (g_VtxDesc.Normal != NOT_PRESENT)
{
m_VertexSize += VertexLoader_Normal::GetSize(g_VtxDesc.Normal, m_CurrentVat->g0.NormalFormat, m_CurrentVat->g0.NormalElements, m_CurrentVat->g0.NormalIndex3);
m_normalLoader = VertexLoader_Normal::GetFunction(g_VtxDesc.Normal, m_CurrentVat->g0.NormalFormat, m_CurrentVat->g0.NormalElements, m_CurrentVat->g0.NormalIndex3, true);
m_VertexSize += VertexLoader_Normal::GetSize(g_VtxDesc.Normal,
m_CurrentVat->g0.NormalFormat, m_CurrentVat->g0.NormalElements, m_CurrentVat->g0.NormalIndex3);
m_normalLoader = VertexLoader_Normal::GetFunction(g_VtxDesc.Normal,
m_CurrentVat->g0.NormalFormat, m_CurrentVat->g0.NormalElements, m_CurrentVat->g0.NormalIndex3);
if (m_normalLoader == 0)
{
ERROR_LOG(VIDEO, "VertexLoader_Normal::GetFunction returned zero!");

View File

@ -67,7 +67,7 @@ void VideoSoftware::ShowConfig(void *_hParent)
bool VideoSoftware::Initialize(void *&window_handle)
{
g_SWVideoConfig.Load((File::GetUserPath(D_CONFIG_IDX) + "gfx_software.ini").c_str());
LoadConfig();
if (!OpenGL_Create(window_handle))
{

View File

@ -9,6 +9,9 @@ namespace SW
class VideoSoftware : public VideoBackend
{
public:
VideoSoftware() : VideoBackend("gfx_software") {}
bool Initialize(void *&);
void Shutdown();