Commit 27491cd8 authored by Roman Sedaikin's avatar Roman Sedaikin

Fixed getting DPI scaling factor.

parent e837acc7
......@@ -3,7 +3,6 @@
#include <SDKDDKVer.h>
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <gl/GL.h>
#include <jawt_md.h>
#include <set>
......@@ -70,50 +69,8 @@ LayersSet *findByObject(JNIEnv *env, jobject object)
return layer;
}
}
fprintf(stderr, "The set does not contain this window.\n");
return NULL;
}
float getScaleFloatFromEnum(DEVICE_SCALE_FACTOR scaleFactor)
{
switch (scaleFactor)
{
case SCALE_100_PERCENT:
return 1.0f;
case SCALE_120_PERCENT:
return 1.2f;
case SCALE_125_PERCENT:
return 1.25f;
case SCALE_140_PERCENT:
return 1.4f;
case SCALE_150_PERCENT:
return 1.5f;
case SCALE_160_PERCENT:
return 1.6f;
case SCALE_175_PERCENT:
return 1.75f;
case SCALE_180_PERCENT:
return 1.8f;
case SCALE_200_PERCENT:
return 2.0f;
case SCALE_225_PERCENT:
return 2.25f;
case SCALE_250_PERCENT:
return 2.5f;
case SCALE_300_PERCENT:
return 3.0f;
case SCALE_350_PERCENT:
return 3.5f;
case SCALE_400_PERCENT:
return 4.0f;
case SCALE_450_PERCENT:
return 4.5f;
case SCALE_500_PERCENT:
return 5.0f;
case DEVICE_SCALE_FACTOR_INVALID:
return 1.0f;
}
return 1.0f;
return NULL;
}
extern "C"
......@@ -227,9 +184,13 @@ extern "C"
if (layer != NULL)
{
// get scale dpi factor of current monitor
DEVICE_SCALE_FACTOR scaleFactor;
GetScaleFactorForMonitor(MonitorFromWindow(layer->handler, MONITOR_DEFAULTTOPRIMARY), &scaleFactor);
return getScaleFloatFromEnum(scaleFactor);
HWND parent = GetParent(layer->handler);
if (parent != NULL)
{
UINT dpi = GetDpiForWindow(parent);
float result = dpi / 96.0;
return result;
}
}
return 1.0f;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment