diff options
author | Neil <nyamatongwe@gmail.com> | 2021-03-19 14:46:09 +1100 |
---|---|---|
committer | Neil <nyamatongwe@gmail.com> | 2021-03-19 14:46:09 +1100 |
commit | 4b553e8fce75afd0ad0df2e752edafe739db44dc (patch) | |
tree | 2104a370f939a18bbc843169840ffb34ddbaab52 /win32/PlatWin.cxx | |
parent | 6b444111ecfe47a3f94293c3959cf197e3415735 (diff) | |
download | scintilla-mirror-4b553e8fce75afd0ad0df2e752edafe739db44dc.tar.gz |
Add Surface::PixelDivisions which detects 'retina' displays that use
multiple display pixels per logical pixel.
Likely will only return >1 for Apple displays.
Can be used for finer placement of elements.
Diffstat (limited to 'win32/PlatWin.cxx')
-rw-r--r-- | win32/PlatWin.cxx | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/win32/PlatWin.cxx b/win32/PlatWin.cxx index 452bb49bc..014c09793 100644 --- a/win32/PlatWin.cxx +++ b/win32/PlatWin.cxx @@ -482,6 +482,7 @@ public: bool Initialised() override; void PenColour(ColourDesired fore) override; int LogPixelsY() override; + int PixelDivisions() override; int DeviceHeightFont(int points) override; void MoveTo(int x_, int y_) override; void LineTo(int x_, int y_) override; @@ -637,6 +638,11 @@ int SurfaceGDI::LogPixelsY() { return logPixelsY; } +int SurfaceGDI::PixelDivisions() { + // Win32 uses device pixels. + return 1; +} + int SurfaceGDI::DeviceHeightFont(int points) { return ::MulDiv(points, LogPixelsY(), 72); } @@ -1170,6 +1176,7 @@ public: void PenColour(ColourDesired fore) override; void D2DPenColour(ColourDesired fore, int alpha=255); int LogPixelsY() override; + int PixelDivisions() override; int DeviceHeightFont(int points) override; void MoveTo(int x_, int y_) override; void LineTo(int x_, int y_) override; @@ -1367,6 +1374,11 @@ int SurfaceD2D::LogPixelsY() { return logPixelsY; } +int SurfaceD2D::PixelDivisions() { + // Win32 uses device pixels. + return 1; +} + int SurfaceD2D::DeviceHeightFont(int points) { return ::MulDiv(points, LogPixelsY(), 72); } |