mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-07-11 01:25:07 +02:00
DPI code cleanup
This commit is contained in:
+4
-2
@@ -839,12 +839,14 @@ int main(int argc, char *argv[])
|
||||
|
||||
if (res.width() < res.height())
|
||||
res.transpose();
|
||||
|
||||
g_display.pixel_xres = res.width();
|
||||
g_display.pixel_yres = res.height();
|
||||
|
||||
g_display.dpi_scale = screen->logicalDotsPerInchX() / screen->physicalDotsPerInchX();
|
||||
// We assume physicalDotsPerInchY is the same as PerInchX.
|
||||
g_display.dpi_scale_real = g_display.dpi_scale;
|
||||
g_display.dpi_scale_real = screen->logicalDotsPerInchX() / screen->physicalDotsPerInchX();
|
||||
|
||||
g_display.dpi_scale = g_display.dpi_scale_real;
|
||||
g_display.dp_xres = (int)(g_display.pixel_xres * g_display.dpi_scale);
|
||||
g_display.dp_yres = (int)(g_display.pixel_yres * g_display.dpi_scale);
|
||||
|
||||
|
||||
+16
-15
@@ -1517,7 +1517,7 @@ static bool IsWindowSmall(int pixelWidth, int pixelHeight) {
|
||||
return g_Config.IsPortrait() ? (h < 480 + 80) : (w < 480 + 80);
|
||||
}
|
||||
|
||||
bool Native_UpdateScreenScale(int width, int height) {
|
||||
bool Native_UpdateScreenScale(int pixel_width, int pixel_height) {
|
||||
bool smallWindow;
|
||||
|
||||
float g_logical_dpi = System_GetPropertyFloat(SYSPROP_DISPLAY_LOGICAL_DPI);
|
||||
@@ -1530,29 +1530,30 @@ bool Native_UpdateScreenScale(int width, int height) {
|
||||
g_logical_dpi = 96.0f;
|
||||
}
|
||||
|
||||
g_display.dpi_scale = g_logical_dpi / g_display.dpi;
|
||||
g_display.dpi_scale_real = g_display.dpi_scale;
|
||||
g_display.dpi_scale_real = g_logical_dpi / g_display.dpi;
|
||||
g_display.dpi_scale = g_display.dpi_scale_real;
|
||||
|
||||
smallWindow = IsWindowSmall(width, height);
|
||||
smallWindow = IsWindowSmall(pixel_width, pixel_height);
|
||||
if (smallWindow) {
|
||||
g_display.dpi /= 2.0f;
|
||||
g_display.dpi_scale *= 2.0f;
|
||||
}
|
||||
g_display.pixel_in_dps = 1.0f / g_display.dpi_scale;
|
||||
|
||||
int new_dp_xres = (int)(width * g_display.dpi_scale);
|
||||
int new_dp_yres = (int)(height * g_display.dpi_scale);
|
||||
int new_dp_xres = (int)(pixel_width * g_display.dpi_scale);
|
||||
int new_dp_yres = (int)(pixel_height * g_display.dpi_scale);
|
||||
|
||||
bool dp_changed = new_dp_xres != g_display.dp_xres || new_dp_yres != g_display.dp_yres;
|
||||
bool px_changed = g_display.pixel_xres != width || g_display.pixel_yres != height;
|
||||
bool px_changed = g_display.pixel_xres != pixel_width || g_display.pixel_yres != pixel_height;
|
||||
|
||||
if (dp_changed || px_changed) {
|
||||
g_display.dp_xres = new_dp_xres;
|
||||
g_display.dp_yres = new_dp_yres;
|
||||
g_display.pixel_xres = width;
|
||||
g_display.pixel_yres = height;
|
||||
NativeResized();
|
||||
return true;
|
||||
if (!dp_changed && !px_changed) {
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
|
||||
g_display.dp_xres = new_dp_xres;
|
||||
g_display.dp_yres = new_dp_yres;
|
||||
g_display.pixel_xres = pixel_width;
|
||||
g_display.pixel_yres = pixel_height;
|
||||
NativeResized();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -143,16 +143,19 @@ void PPSSPP_UWPMain::UpdateScreenState() {
|
||||
|
||||
if (g_display.rotation == DisplayRotation::ROTATE_90 || g_display.rotation == DisplayRotation::ROTATE_270) {
|
||||
// We need to swap our width/height.
|
||||
// TODO: This is most likely dead code, since we no longer support Windows Phone.
|
||||
std::swap(g_display.pixel_xres, g_display.pixel_yres);
|
||||
}
|
||||
|
||||
g_display.dpi = m_deviceResources->GetActualDpi();
|
||||
|
||||
if (System_GetPropertyInt(SYSPROP_DEVICE_TYPE) == DEVICE_TYPE_MOBILE) {
|
||||
// Boost DPI a bit to look better.
|
||||
g_display.dpi *= 96.0f / 136.0f;
|
||||
}
|
||||
g_display.dpi_scale = 96.0f / g_display.dpi;
|
||||
|
||||
g_display.dpi_scale_real = 96.0f / g_display.dpi;
|
||||
|
||||
g_display.dpi_scale = g_display.dpi_scale_real;
|
||||
g_display.pixel_in_dps = 1.0f / g_display.dpi_scale;
|
||||
|
||||
g_display.dp_xres = g_display.pixel_xres * g_display.dpi_scale;
|
||||
|
||||
@@ -152,8 +152,8 @@ static int deviceType;
|
||||
// Exposed so it can be displayed on the touchscreen test.
|
||||
static int display_xres;
|
||||
static int display_yres;
|
||||
static int display_dpi_x;
|
||||
static int display_dpi_y;
|
||||
static int display_dpi;
|
||||
|
||||
static int backbuffer_format; // Android PixelFormat enum
|
||||
|
||||
static int desiredBackbufferSizeX;
|
||||
@@ -999,8 +999,8 @@ extern "C" jboolean Java_org_ppsspp_ppsspp_NativeRenderer_displayInit(JNIEnv * e
|
||||
}
|
||||
|
||||
static void recalculateDpi() {
|
||||
g_display.dpi = (float)display_dpi_x;
|
||||
g_display.dpi_scale_real = 240.0f / (float)display_dpi_x;
|
||||
g_display.dpi = (float)display_dpi;
|
||||
g_display.dpi_scale_real = 240.0f / (float)display_dpi;
|
||||
g_display.dpi_scale = g_display.dpi_scale_real;
|
||||
|
||||
g_display.dp_xres = display_xres * g_display.dpi_scale;
|
||||
@@ -1415,14 +1415,13 @@ extern "C" void JNICALL Java_org_ppsspp_ppsspp_NativeApp_setDisplayParameters(JN
|
||||
|
||||
bool changed = false;
|
||||
changed = changed || display_xres != xres || display_yres != yres;
|
||||
changed = changed || display_dpi_x != dpi || display_dpi_y != dpi;
|
||||
changed = changed || display_dpi != dpi;
|
||||
changed = changed || g_display.display_hz != refreshRate;
|
||||
|
||||
if (changed) {
|
||||
display_xres = xres;
|
||||
display_yres = yres;
|
||||
display_dpi_x = dpi;
|
||||
display_dpi_y = dpi;
|
||||
display_dpi = dpi;
|
||||
g_display.display_hz = refreshRate;
|
||||
|
||||
recalculateDpi();
|
||||
|
||||
@@ -1359,6 +1359,7 @@ ULES00808 = true
|
||||
ULUS10270 = true
|
||||
|
||||
[DeswizzleDepth]
|
||||
# Ratchet & Clank smoke effects (#15859)
|
||||
UCUS98633 = true
|
||||
UCAS40145 = true
|
||||
UCES00420 = true
|
||||
|
||||
Reference in New Issue
Block a user