mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 05:47:56 -07:00
OpenGL:
1. Removed the custom screen size functions again (the ones I added in revision 2310). All games I tried are now full screen so it's probably not needed any more. 2. Disabled my XFB supplements when the real XFB is on, since they are supposed to supplement each other. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@2318 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
e0593b1041
commit
cfcfef9b51
@ -85,11 +85,6 @@ void Config::Load()
|
|||||||
iniFile.Get("Hacks", "ProjectionHax1", &bProjectionHax1, 0);
|
iniFile.Get("Hacks", "ProjectionHax1", &bProjectionHax1, 0);
|
||||||
iniFile.Get("Hacks", "ProjectionHax2", &bProjectionHax2, 0);
|
iniFile.Get("Hacks", "ProjectionHax2", &bProjectionHax2, 0);
|
||||||
iniFile.Get("Hacks", "EFBToTextureEnable", &bCopyEFBToRAM, 0);
|
iniFile.Get("Hacks", "EFBToTextureEnable", &bCopyEFBToRAM, 0);
|
||||||
iniFile.Get("Hacks", "ScreenSize", &bScreenSize, false);
|
|
||||||
iniFile.Get("Hacks", "ScreenWidth", &iScreenWidth, 100);
|
|
||||||
iniFile.Get("Hacks", "ScreenHeight", &iScreenHeight, 100);
|
|
||||||
iniFile.Get("Hacks", "ScreenLeft", &iScreenLeft, 0);
|
|
||||||
iniFile.Get("Hacks", "ScreenTop", &iScreenTop, 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Config::Save()
|
void Config::Save()
|
||||||
@ -131,11 +126,6 @@ void Config::Save()
|
|||||||
iniFile.Set("Hacks", "ProjectionHax1", bProjectionHax1);
|
iniFile.Set("Hacks", "ProjectionHax1", bProjectionHax1);
|
||||||
iniFile.Set("Hacks", "ProjectionHax2", bProjectionHax2);
|
iniFile.Set("Hacks", "ProjectionHax2", bProjectionHax2);
|
||||||
iniFile.Set("Hacks", "EFBToTextureEnable", bCopyEFBToRAM);
|
iniFile.Set("Hacks", "EFBToTextureEnable", bCopyEFBToRAM);
|
||||||
iniFile.Set("Hacks", "ScreenSize", bScreenSize);
|
|
||||||
iniFile.Set("Hacks", "ScreenWidth", iScreenWidth);
|
|
||||||
iniFile.Set("Hacks", "ScreenHeight", iScreenHeight);
|
|
||||||
iniFile.Set("Hacks", "ScreenLeft", iScreenLeft);
|
|
||||||
iniFile.Set("Hacks", "ScreenTop", iScreenTop);
|
|
||||||
|
|
||||||
iniFile.Save(FULL_CONFIG_DIR "gfx_opengl.ini");
|
iniFile.Save(FULL_CONFIG_DIR "gfx_opengl.ini");
|
||||||
}
|
}
|
||||||
|
@ -72,10 +72,6 @@ struct Config
|
|||||||
bool bProjectionHax2;
|
bool bProjectionHax2;
|
||||||
bool bCopyEFBToRAM;
|
bool bCopyEFBToRAM;
|
||||||
|
|
||||||
// Screen size
|
|
||||||
int iScreenWidth, iScreenHeight, iScreenLeft, iScreenTop;
|
|
||||||
bool bScreenSize;
|
|
||||||
|
|
||||||
int iLog; // CONF_ bits
|
int iLog; // CONF_ bits
|
||||||
int iSaveTargetId;
|
int iSaveTargetId;
|
||||||
|
|
||||||
|
@ -55,13 +55,6 @@ BEGIN_EVENT_TABLE(ConfigDialog,wxDialog)
|
|||||||
EVT_CHECKBOX(ID_PROJECTIONHACK1,ConfigDialog::AdvancedSettingsChanged)
|
EVT_CHECKBOX(ID_PROJECTIONHACK1,ConfigDialog::AdvancedSettingsChanged)
|
||||||
EVT_CHECKBOX(ID_PROJECTIONHACK2,ConfigDialog::AdvancedSettingsChanged)
|
EVT_CHECKBOX(ID_PROJECTIONHACK2,ConfigDialog::AdvancedSettingsChanged)
|
||||||
|
|
||||||
// Screen size
|
|
||||||
EVT_COMMAND_SCROLL(IDS_WIDTH, ConfigDialog::AdvancedSettingsChangedScroll)
|
|
||||||
EVT_COMMAND_SCROLL(IDS_HEIGHT, ConfigDialog::AdvancedSettingsChangedScroll)
|
|
||||||
EVT_COMMAND_SCROLL(IDS_LEFT, ConfigDialog::AdvancedSettingsChangedScroll)
|
|
||||||
EVT_COMMAND_SCROLL(IDS_TOP, ConfigDialog::AdvancedSettingsChangedScroll)
|
|
||||||
EVT_CHECKBOX(IDC_SCREEN_SIZE, ConfigDialog::AdvancedSettingsChanged)
|
|
||||||
|
|
||||||
EVT_CHECKBOX(ID_SAFETEXTURECACHE,ConfigDialog::AdvancedSettingsChanged)
|
EVT_CHECKBOX(ID_SAFETEXTURECACHE,ConfigDialog::AdvancedSettingsChanged)
|
||||||
EVT_CHECKBOX(ID_CHECKBOX_DISABLECOPYEFB, ConfigDialog::AdvancedSettingsChanged)
|
EVT_CHECKBOX(ID_CHECKBOX_DISABLECOPYEFB, ConfigDialog::AdvancedSettingsChanged)
|
||||||
EVT_DIRPICKER_CHANGED(ID_TEXTUREPATH, ConfigDialog::TexturePathChange)
|
EVT_DIRPICKER_CHANGED(ID_TEXTUREPATH, ConfigDialog::TexturePathChange)
|
||||||
@ -345,60 +338,7 @@ void ConfigDialog::CreateGUIControls()
|
|||||||
sHacks->Add(m_SafeTextureCache, wxGBPosition(2, 0), wxGBSpan(1, 1), wxALL, 5);
|
sHacks->Add(m_SafeTextureCache, wxGBPosition(2, 0), wxGBSpan(1, 1), wxALL, 5);
|
||||||
|
|
||||||
sbHacks = new wxStaticBoxSizer(wxVERTICAL, m_PageAdvanced, wxT("Hacks"));
|
sbHacks = new wxStaticBoxSizer(wxVERTICAL, m_PageAdvanced, wxT("Hacks"));
|
||||||
sbHacks->Add(sHacks);
|
sbHacks->Add(sHacks, 0, wxEXPAND | (wxTOP), 0);
|
||||||
|
|
||||||
|
|
||||||
// -----------------------------------------------
|
|
||||||
// Screen size
|
|
||||||
// ---------------------
|
|
||||||
// Controls
|
|
||||||
m_TextScreenWidth = new wxStaticText(m_PageAdvanced, wxID_ANY, wxT("Width: 000"));
|
|
||||||
m_TextScreenHeight = new wxStaticText(m_PageAdvanced, wxID_ANY, wxT("Height: 000"));
|
|
||||||
m_TextScreenLeft = new wxStaticText(m_PageAdvanced, wxID_ANY, wxT("Left: -000"));
|
|
||||||
m_TextScreenTop = new wxStaticText(m_PageAdvanced, wxID_ANY, wxT("Top: -000"));
|
|
||||||
|
|
||||||
m_SliderWidth = new wxSlider(m_PageAdvanced, IDS_WIDTH, 100, 50, 150, wxDefaultPosition, wxSize(75, -1));
|
|
||||||
m_SliderHeight = new wxSlider(m_PageAdvanced, IDS_HEIGHT, 100, 50, 150, wxDefaultPosition, wxSize(75, -1));
|
|
||||||
m_SliderLeft = new wxSlider(m_PageAdvanced, IDS_LEFT, 0, -100, 100, wxDefaultPosition, wxSize(75, -1));
|
|
||||||
m_SliderTop = new wxSlider(m_PageAdvanced, IDS_TOP, 0, -100, 100, wxDefaultPosition, wxSize(75, -1));
|
|
||||||
m_ScreenSize = new wxCheckBox(m_PageAdvanced, IDC_SCREEN_SIZE, wxT("Adjust screen size and position"), wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator);
|
|
||||||
|
|
||||||
// Default values
|
|
||||||
m_SliderWidth->SetValue(g_Config.iScreenWidth);
|
|
||||||
m_SliderHeight->SetValue(g_Config.iScreenHeight);
|
|
||||||
m_SliderLeft->SetValue(g_Config.iScreenLeft);
|
|
||||||
m_SliderTop->SetValue(g_Config.iScreenTop);
|
|
||||||
m_ScreenSize->SetValue(g_Config.bScreenSize);
|
|
||||||
|
|
||||||
// Sizers
|
|
||||||
wxBoxSizer *m_SizerScreenSizeWidth = new wxBoxSizer(wxHORIZONTAL);
|
|
||||||
m_SizerScreenSizeWidth->Add(m_TextScreenWidth, 0, wxEXPAND | (wxTOP), 3);
|
|
||||||
m_SizerScreenSizeWidth->Add(m_SliderWidth, 0, wxEXPAND | (wxLEFT), 0);
|
|
||||||
m_SizerScreenSizeWidth->Add(m_TextScreenLeft, 0, wxEXPAND | (wxLEFT), 5);
|
|
||||||
m_SizerScreenSizeWidth->Add(m_SliderLeft, 0, wxEXPAND | (wxLEFT), 0);
|
|
||||||
|
|
||||||
wxBoxSizer *m_SizerScreenSizeHeight = new wxBoxSizer(wxHORIZONTAL);
|
|
||||||
m_SizerScreenSizeHeight->Add(m_TextScreenHeight, 0, wxEXPAND | (wxTOP), 3);
|
|
||||||
m_SizerScreenSizeHeight->Add(m_SliderHeight, 0, wxEXPAND | (wxLEFT), 0);
|
|
||||||
m_SizerScreenSizeHeight->Add(m_TextScreenTop, 0, wxEXPAND | (wxLEFT), 5);
|
|
||||||
m_SizerScreenSizeHeight->Add(m_SliderTop, 0, wxEXPAND | (wxLEFT), 0);
|
|
||||||
|
|
||||||
wxStaticBoxSizer * m_SizerScreenSize = new wxStaticBoxSizer(wxVERTICAL, m_PageAdvanced, wxT("Screen size and position"));
|
|
||||||
m_SizerScreenSize->Add(m_ScreenSize, 0, wxEXPAND | (wxALL), 5);
|
|
||||||
m_SizerScreenSize->Add(m_SizerScreenSizeWidth, 0, wxEXPAND | (wxLEFT | wxDOWN | wxRIGHT), 5);
|
|
||||||
m_SizerScreenSize->Add(m_SizerScreenSizeHeight, 0, wxEXPAND | (wxLEFT | wxDOWN | wxRIGHT), 5);
|
|
||||||
|
|
||||||
// Tool tips
|
|
||||||
m_ScreenSize->SetToolTip(wxT("Use the adjusted screen size."));
|
|
||||||
// -------------------------------
|
|
||||||
|
|
||||||
// -----------------------------------------------
|
|
||||||
// Row 4: Hacks and Screen size
|
|
||||||
// ---------------------
|
|
||||||
wxBoxSizer *m_SizerHacksScreenSize = new wxBoxSizer(wxHORIZONTAL);
|
|
||||||
m_SizerHacksScreenSize->Add(sbHacks, 0, wxEXPAND | (wxTOP), 0);
|
|
||||||
m_SizerHacksScreenSize->Add(m_SizerScreenSize, 0, wxEXPAND | (wxLEFT), 7);
|
|
||||||
// -------------------------------
|
|
||||||
|
|
||||||
// Sizers
|
// Sizers
|
||||||
sAdvanced = new wxBoxSizer(wxVERTICAL);
|
sAdvanced = new wxBoxSizer(wxVERTICAL);
|
||||||
@ -438,7 +378,7 @@ void ConfigDialog::CreateGUIControls()
|
|||||||
sAdvanced->Add(sbInfo, 0, wxEXPAND | wxALL, 5);
|
sAdvanced->Add(sbInfo, 0, wxEXPAND | wxALL, 5);
|
||||||
sAdvanced->Add(sbRendering, 0, wxEXPAND | (wxLEFT | wxDOWN | wxRIGHT), 5);
|
sAdvanced->Add(sbRendering, 0, wxEXPAND | (wxLEFT | wxDOWN | wxRIGHT), 5);
|
||||||
sAdvanced->Add(sbUtilities, 1, wxEXPAND | (wxLEFT | wxDOWN | wxRIGHT), 5);
|
sAdvanced->Add(sbUtilities, 1, wxEXPAND | (wxLEFT | wxDOWN | wxRIGHT), 5);
|
||||||
sAdvanced->Add(m_SizerHacksScreenSize, 0, wxEXPAND | (wxLEFT | wxDOWN | wxRIGHT), 5);
|
sAdvanced->Add(sbHacks, 0, wxEXPAND | (wxLEFT | wxDOWN | wxRIGHT), 5);
|
||||||
|
|
||||||
m_PageAdvanced->SetSizer(sAdvanced);
|
m_PageAdvanced->SetSizer(sAdvanced);
|
||||||
sAdvanced->Layout();
|
sAdvanced->Layout();
|
||||||
@ -501,28 +441,6 @@ void ConfigDialog::GeneralSettingsChanged(wxCommandEvent& event)
|
|||||||
UpdateGUI();
|
UpdateGUI();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Apparently we need a scroll event version of this for the sliders
|
|
||||||
void ConfigDialog::AdvancedSettingsChangedScroll(wxScrollEvent& event)
|
|
||||||
{
|
|
||||||
switch (event.GetId())
|
|
||||||
{
|
|
||||||
// Screen size
|
|
||||||
case IDS_WIDTH:
|
|
||||||
g_Config.iScreenWidth = m_SliderWidth->GetValue();
|
|
||||||
break;
|
|
||||||
case IDS_HEIGHT:
|
|
||||||
g_Config.iScreenHeight = m_SliderHeight->GetValue();
|
|
||||||
break;
|
|
||||||
case IDS_LEFT:
|
|
||||||
g_Config.iScreenLeft = m_SliderLeft->GetValue();
|
|
||||||
break;
|
|
||||||
case IDS_TOP:
|
|
||||||
g_Config.iScreenTop = m_SliderTop->GetValue();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
UpdateGUI();
|
|
||||||
}
|
|
||||||
|
|
||||||
void ConfigDialog::AdvancedSettingsChanged(wxCommandEvent& event)
|
void ConfigDialog::AdvancedSettingsChanged(wxCommandEvent& event)
|
||||||
{
|
{
|
||||||
@ -580,10 +498,6 @@ void ConfigDialog::AdvancedSettingsChanged(wxCommandEvent& event)
|
|||||||
case ID_SAFETEXTURECACHE:
|
case ID_SAFETEXTURECACHE:
|
||||||
g_Config.bSafeTextureCache = m_SafeTextureCache->IsChecked();
|
g_Config.bSafeTextureCache = m_SafeTextureCache->IsChecked();
|
||||||
break;
|
break;
|
||||||
// Screen size
|
|
||||||
case IDC_SCREEN_SIZE:
|
|
||||||
g_Config.bScreenSize = m_ScreenSize->GetValue();
|
|
||||||
break;
|
|
||||||
// Extented frame buffer
|
// Extented frame buffer
|
||||||
case ID_RADIO_COPYEFBTORAM:
|
case ID_RADIO_COPYEFBTORAM:
|
||||||
TextureMngr::ClearRenderTargets();
|
TextureMngr::ClearRenderTargets();
|
||||||
@ -619,10 +533,4 @@ void ConfigDialog::UpdateGUI()
|
|||||||
m_Fullscreen->Enable(!g_Config.renderToMainframe);
|
m_Fullscreen->Enable(!g_Config.renderToMainframe);
|
||||||
m_FullscreenCB->Enable(!g_Config.renderToMainframe);
|
m_FullscreenCB->Enable(!g_Config.renderToMainframe);
|
||||||
m_WindowResolutionCB->Enable(!g_Config.renderToMainframe);
|
m_WindowResolutionCB->Enable(!g_Config.renderToMainframe);
|
||||||
|
|
||||||
// Update screen size labels
|
|
||||||
m_TextScreenWidth->SetLabel(wxString::Format(wxT("Width: %i"), g_Config.iScreenWidth));
|
|
||||||
m_TextScreenHeight->SetLabel(wxString::Format(wxT("Height: %i"), g_Config.iScreenHeight));
|
|
||||||
m_TextScreenLeft->SetLabel(wxString::Format(wxT("Left: %i"), g_Config.iScreenLeft));
|
|
||||||
m_TextScreenTop->SetLabel(wxString::Format(wxT("Top: %i"), g_Config.iScreenTop));
|
|
||||||
}
|
}
|
||||||
|
@ -167,11 +167,6 @@ class ConfigDialog : public wxDialog
|
|||||||
ID_PROJECTIONHACK2,
|
ID_PROJECTIONHACK2,
|
||||||
ID_RADIO_COPYEFBTORAM,
|
ID_RADIO_COPYEFBTORAM,
|
||||||
ID_RADIO_COPYEFBTOGL,
|
ID_RADIO_COPYEFBTOGL,
|
||||||
|
|
||||||
// Screen size
|
|
||||||
IDS_WIDTH, IDS_LEFT,
|
|
||||||
IDS_HEIGHT, IDS_TOP,
|
|
||||||
IDC_SCREEN_SIZE
|
|
||||||
};
|
};
|
||||||
|
|
||||||
void OnClose(wxCloseEvent& event);
|
void OnClose(wxCloseEvent& event);
|
||||||
@ -180,7 +175,6 @@ class ConfigDialog : public wxDialog
|
|||||||
void AboutClick(wxCommandEvent& event);
|
void AboutClick(wxCommandEvent& event);
|
||||||
void GeneralSettingsChanged(wxCommandEvent& event);
|
void GeneralSettingsChanged(wxCommandEvent& event);
|
||||||
void AdvancedSettingsChanged(wxCommandEvent& event);
|
void AdvancedSettingsChanged(wxCommandEvent& event);
|
||||||
void AdvancedSettingsChangedScroll(wxScrollEvent& event);
|
|
||||||
void TexturePathChange(wxFileDirPickerEvent& event);
|
void TexturePathChange(wxFileDirPickerEvent& event);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -697,7 +697,7 @@ bool Renderer::SetScissorRect()
|
|||||||
{
|
{
|
||||||
/* I don't know how this works with other options so I'm limiting it to this to test it, if you want to add support for other modes
|
/* I don't know how this works with other options so I'm limiting it to this to test it, if you want to add support for other modes
|
||||||
or make this solution more general please do */
|
or make this solution more general please do */
|
||||||
if(g_Config.bStretchToFit && !g_Config.bKeepAR)
|
if(g_Config.bStretchToFit && !g_Config.bKeepAR && !g_Config.bUseXFB)
|
||||||
{
|
{
|
||||||
int WidthDifference = 640 - (int)(rc_right - rc_left);
|
int WidthDifference = 640 - (int)(rc_right - rc_left);
|
||||||
int HeightDifference = 480 - (int)(rc_bottom - rc_top);
|
int HeightDifference = 480 - (int)(rc_bottom - rc_top);
|
||||||
@ -1274,29 +1274,8 @@ void UpdateViewport()
|
|||||||
}
|
}
|
||||||
// -------------------------------------
|
// -------------------------------------
|
||||||
|
|
||||||
// -----------------------------------------------------------------------
|
// I'm limiting it to these modes to test it
|
||||||
// Adjust the screen size. If someone figures out how to correctly adjust the screen size as the GC or Wii does, this may not be needed.
|
if(g_Config.bStretchToFit && !g_Config.bKeepAR && !g_Config.bUseXFB)
|
||||||
// ------------------
|
|
||||||
if (g_Config.bScreenSize)
|
|
||||||
{
|
|
||||||
// Calculate width and height as a fraction of the current
|
|
||||||
float Width = (float)GLWidth * ((float)g_Config.iScreenWidth / 100.0);
|
|
||||||
float Height = (float)GLHeight * ((float)g_Config.iScreenHeight / 100.0);
|
|
||||||
|
|
||||||
// Adjust X and Y
|
|
||||||
GLx = GLx + g_Config.iScreenLeft;
|
|
||||||
GLy = GLy - g_Config.iScreenTop;
|
|
||||||
|
|
||||||
GLWidth = (int)Width;
|
|
||||||
GLHeight = (int)Height;
|
|
||||||
|
|
||||||
//Console::Print("W:%i H:%i W:%f H:%f Wid:%i Hei:%i x:%i y:%i\n", g_Config.iScreenWidth, g_Config.iScreenHeight, Width, Height, GLWidth, GLHeight, GLx, GLy);
|
|
||||||
}
|
|
||||||
// -------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
// I'm limiting it to this modes to test it
|
|
||||||
if(g_Config.bStretchToFit && !g_Config.bKeepAR)
|
|
||||||
{
|
{
|
||||||
GLWidth = GLWidth + (GLScissorW - 640);
|
GLWidth = GLWidth + (GLScissorW - 640);
|
||||||
GLHeight = GLHeight + (GLScissorH - 480);
|
GLHeight = GLHeight + (GLScissorH - 480);
|
||||||
|
@ -16,7 +16,17 @@
|
|||||||
// http://code.google.com/p/dolphin-emu/
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
|
||||||
|
|
||||||
// Preliminary non-working code.
|
/////////////////////////////////////////////////////////////////////////
|
||||||
|
// File description
|
||||||
|
/* ---------------
|
||||||
|
|
||||||
|
This file handles the External Frame Buffer (XFB). The XFB is a storage point when the picture is resized
|
||||||
|
by the system to the correct display format for output to the TV. In most cases its function can be
|
||||||
|
supplemented by the equivalent adjustments in glScissor and glViewport (or their DirectX equivalents). But
|
||||||
|
for some homebrew games these functions are necessary because the homebrew game communicate directly with
|
||||||
|
them.
|
||||||
|
|
||||||
|
///////////////////////////////////*/
|
||||||
|
|
||||||
#include "Globals.h"
|
#include "Globals.h"
|
||||||
#include "GLUtil.h"
|
#include "GLUtil.h"
|
||||||
|
Loading…
Reference in New Issue
Block a user