mirror of
https://github.com/hrydgard/ppsspp.git
synced 2024-10-08 11:33:28 +00:00
Add Auto-texture scaling
Update resource.h Update WndMainWindow.h Update WndMainWindow.cpp Update ppsspp.rc position fix Update TextureCache.cpp Update TextureCache.cpp
This commit is contained in:
parent
03735c13b2
commit
88c36b5b25
@ -1437,7 +1437,12 @@ void TextureCache::LoadTextureLevel(TexCacheEntry &entry, int level, bool replac
|
|||||||
glPixelStorei(GL_UNPACK_ALIGNMENT, texByteAlign);
|
glPixelStorei(GL_UNPACK_ALIGNMENT, texByteAlign);
|
||||||
glPixelStorei(GL_PACK_ALIGNMENT, texByteAlign);
|
glPixelStorei(GL_PACK_ALIGNMENT, texByteAlign);
|
||||||
|
|
||||||
int scaleFactor = g_Config.iTexScalingLevel;
|
int scaleFactor;
|
||||||
|
//Auto-texture scale upto 5x rendering resolution
|
||||||
|
if (g_Config.iTexScalingLevel == 0)
|
||||||
|
scaleFactor = std::min(5, g_Config.iInternalResolution);
|
||||||
|
else
|
||||||
|
scaleFactor = g_Config.iTexScalingLevel;
|
||||||
|
|
||||||
// Don't scale the PPGe texture.
|
// Don't scale the PPGe texture.
|
||||||
if (entry.addr > 0x05000000 && entry.addr < 0x08800000)
|
if (entry.addr > 0x05000000 && entry.addr < 0x08800000)
|
||||||
|
@ -237,6 +237,9 @@ namespace MainWindow
|
|||||||
if (++g_Config.iInternalResolution > RESOLUTION_MAX)
|
if (++g_Config.iInternalResolution > RESOLUTION_MAX)
|
||||||
g_Config.iInternalResolution = 0;
|
g_Config.iInternalResolution = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (g_Config.iTexScalingLevel == TEXSCALING_AUTO)
|
||||||
|
setTexScalingMultiplier(0);
|
||||||
|
|
||||||
ResizeDisplay(true, true);
|
ResizeDisplay(true, true);
|
||||||
}
|
}
|
||||||
@ -1211,7 +1214,8 @@ namespace MainWindow
|
|||||||
if (gpu)
|
if (gpu)
|
||||||
gpu->Resized();
|
gpu->Resized();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case ID_TEXTURESCALING_AUTO: setTexScalingMultiplier(TEXSCALING_AUTO); break;
|
||||||
case ID_TEXTURESCALING_OFF: setTexScalingMultiplier(TEXSCALING_OFF); break;
|
case ID_TEXTURESCALING_OFF: setTexScalingMultiplier(TEXSCALING_OFF); break;
|
||||||
case ID_TEXTURESCALING_2X: setTexScalingMultiplier(TEXSCALING_2X); break;
|
case ID_TEXTURESCALING_2X: setTexScalingMultiplier(TEXSCALING_2X); break;
|
||||||
case ID_TEXTURESCALING_3X: setTexScalingMultiplier(TEXSCALING_3X); break;
|
case ID_TEXTURESCALING_3X: setTexScalingMultiplier(TEXSCALING_3X); break;
|
||||||
@ -1640,20 +1644,21 @@ namespace MainWindow
|
|||||||
}
|
}
|
||||||
|
|
||||||
static const int texscalingitems[] = {
|
static const int texscalingitems[] = {
|
||||||
|
ID_TEXTURESCALING_AUTO,
|
||||||
ID_TEXTURESCALING_OFF,
|
ID_TEXTURESCALING_OFF,
|
||||||
ID_TEXTURESCALING_2X,
|
ID_TEXTURESCALING_2X,
|
||||||
ID_TEXTURESCALING_3X,
|
ID_TEXTURESCALING_3X,
|
||||||
ID_TEXTURESCALING_4X,
|
ID_TEXTURESCALING_4X,
|
||||||
ID_TEXTURESCALING_5X,
|
ID_TEXTURESCALING_5X,
|
||||||
};
|
};
|
||||||
if(g_Config.iTexScalingLevel < TEXSCALING_OFF)
|
if(g_Config.iTexScalingLevel < TEXSCALING_AUTO)
|
||||||
g_Config.iTexScalingLevel = TEXSCALING_OFF;
|
g_Config.iTexScalingLevel = TEXSCALING_AUTO;
|
||||||
|
|
||||||
else if(g_Config.iTexScalingLevel > TEXSCALING_MAX)
|
else if(g_Config.iTexScalingLevel > TEXSCALING_MAX)
|
||||||
g_Config.iTexScalingLevel = TEXSCALING_MAX;
|
g_Config.iTexScalingLevel = TEXSCALING_MAX;
|
||||||
|
|
||||||
for (int i = 0; i < ARRAY_SIZE(texscalingitems); i++) {
|
for (int i = 0; i < ARRAY_SIZE(texscalingitems); i++) {
|
||||||
CheckMenuItem(menu, texscalingitems[i], MF_BYCOMMAND | ((i == g_Config.iTexScalingLevel - 1) ? MF_CHECKED : MF_UNCHECKED));
|
CheckMenuItem(menu, texscalingitems[i], MF_BYCOMMAND | ((i == g_Config.iTexScalingLevel) ? MF_CHECKED : MF_UNCHECKED));
|
||||||
}
|
}
|
||||||
|
|
||||||
static const int texscalingtypeitems[] = {
|
static const int texscalingtypeitems[] = {
|
||||||
|
@ -39,7 +39,8 @@ namespace MainWindow
|
|||||||
RESOLUTION_8X = 8,
|
RESOLUTION_8X = 8,
|
||||||
RESOLUTION_9X = 9,
|
RESOLUTION_9X = 9,
|
||||||
RESOLUTION_MAX = 10,
|
RESOLUTION_MAX = 10,
|
||||||
|
|
||||||
|
TEXSCALING_AUTO = 0,
|
||||||
TEXSCALING_OFF = 1,
|
TEXSCALING_OFF = 1,
|
||||||
TEXSCALING_2X = 2,
|
TEXSCALING_2X = 2,
|
||||||
TEXSCALING_3X = 3,
|
TEXSCALING_3X = 3,
|
||||||
@ -65,4 +66,5 @@ namespace MainWindow
|
|||||||
void _ViewFullScreen(HWND hWnd);
|
void _ViewFullScreen(HWND hWnd);
|
||||||
void _ViewNormal(HWND hWnd);
|
void _ViewNormal(HWND hWnd);
|
||||||
void TranslateMenus();
|
void TranslateMenus();
|
||||||
|
void setTexScalingMultiplier(int level);
|
||||||
}
|
}
|
||||||
|
@ -472,6 +472,7 @@ BEGIN
|
|||||||
POPUP "Texture Scaling"
|
POPUP "Texture Scaling"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Off", ID_TEXTURESCALING_OFF
|
MENUITEM "Off", ID_TEXTURESCALING_OFF
|
||||||
|
MENUITEM "Auto", ID_TEXTURESCALING_AUTO
|
||||||
MENUITEM "&2x", ID_TEXTURESCALING_2X
|
MENUITEM "&2x", ID_TEXTURESCALING_2X
|
||||||
MENUITEM "&3x", ID_TEXTURESCALING_3X
|
MENUITEM "&3x", ID_TEXTURESCALING_3X
|
||||||
MENUITEM "&4x", ID_TEXTURESCALING_4X
|
MENUITEM "&4x", ID_TEXTURESCALING_4X
|
||||||
|
@ -293,6 +293,7 @@
|
|||||||
#define IDC_GEDBG_STEPTEX 40133
|
#define IDC_GEDBG_STEPTEX 40133
|
||||||
#define IDC_GEDBG_STEPFRAME 40134
|
#define IDC_GEDBG_STEPFRAME 40134
|
||||||
#define IDC_GEDBG_BREAKTEX 40135
|
#define IDC_GEDBG_BREAKTEX 40135
|
||||||
|
#define ID_TEXTURESCALING_AUTO 40136
|
||||||
|
|
||||||
// Dummy option to let the buffered rendering hotkey cycle through all the options.
|
// Dummy option to let the buffered rendering hotkey cycle through all the options.
|
||||||
#define ID_OPTIONS_BUFFEREDRENDERINGDUMMY 40500
|
#define ID_OPTIONS_BUFFEREDRENDERINGDUMMY 40500
|
||||||
|
Loading…
Reference in New Issue
Block a user