aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--cocoa/PlatCocoa.h1
-rw-r--r--cocoa/PlatCocoa.mm6
-rwxr-xr-xgtk/PlatGTK.cxx5
-rw-r--r--qt/ScintillaEditBase/PlatQt.cpp5
-rw-r--r--qt/ScintillaEditBase/PlatQt.h1
-rw-r--r--src/Platform.h1
-rw-r--r--win32/PlatWin.cxx10
7 files changed, 29 insertions, 0 deletions
diff --git a/cocoa/PlatCocoa.h b/cocoa/PlatCocoa.h
index 29a3626ce..1df4e0458 100644
--- a/cocoa/PlatCocoa.h
+++ b/cocoa/PlatCocoa.h
@@ -105,6 +105,7 @@ public:
void RectangleFrame(PRectangle rc, Stroke stroke) override;
void FillRectangle(PRectangle rc, ColourDesired back) override;
void FillRectangle(PRectangle rc, Fill fill) override;
+ void FillRectangleAligned(PRectangle rc, Fill fill) override;
void FillRectangle(PRectangle rc, Surface &surfacePattern) override;
void RoundedRectangle(PRectangle rc, ColourDesired fore, ColourDesired back) override;
void RoundedRectangle(PRectangle rc, FillStroke fillStroke) override;
diff --git a/cocoa/PlatCocoa.mm b/cocoa/PlatCocoa.mm
index 275587288..ef8a3f518 100644
--- a/cocoa/PlatCocoa.mm
+++ b/cocoa/PlatCocoa.mm
@@ -811,6 +811,12 @@ void SurfaceImpl::FillRectangle(PRectangle rc, Fill fill) {
//--------------------------------------------------------------------------------------------------
+void SurfaceImpl::FillRectangleAligned(PRectangle rc, Fill fill) {
+ FillRectangle(PixelAlign(rc, PixelDivisions()), fill);
+}
+
+//--------------------------------------------------------------------------------------------------
+
static void drawImageRefCallback(void *info, CGContextRef gc) {
CGImageRef pattern = static_cast<CGImageRef>(info);
CGContextDrawImage(gc, CGRectMake(0, 0, CGImageGetWidth(pattern), CGImageGetHeight(pattern)), pattern);
diff --git a/gtk/PlatGTK.cxx b/gtk/PlatGTK.cxx
index 5296691d1..1732c217e 100755
--- a/gtk/PlatGTK.cxx
+++ b/gtk/PlatGTK.cxx
@@ -172,6 +172,7 @@ public:
void RectangleFrame(PRectangle rc, Stroke stroke) override;
void FillRectangle(PRectangle rc, ColourDesired back) override;
void FillRectangle(PRectangle rc, Fill fill) override;
+ void FillRectangleAligned(PRectangle rc, Fill fill) override;
void FillRectangle(PRectangle rc, Surface &surfacePattern) override;
void RoundedRectangle(PRectangle rc, ColourDesired fore, ColourDesired back) override;
void RoundedRectangle(PRectangle rc, FillStroke fillStroke) override;
@@ -592,6 +593,10 @@ void SurfaceImpl::FillRectangle(PRectangle rc, Fill fill) {
}
}
+void SurfaceImpl::FillRectangleAligned(PRectangle rc, Fill fill) {
+ FillRectangle(PixelAlign(rc, 1), fill);
+}
+
void SurfaceImpl::FillRectangle(PRectangle rc, Surface &surfacePattern) {
SurfaceImpl &surfi = dynamic_cast<SurfaceImpl &>(surfacePattern);
if (context && surfi.psurf) {
diff --git a/qt/ScintillaEditBase/PlatQt.cpp b/qt/ScintillaEditBase/PlatQt.cpp
index 120b75052..f2681013a 100644
--- a/qt/ScintillaEditBase/PlatQt.cpp
+++ b/qt/ScintillaEditBase/PlatQt.cpp
@@ -380,6 +380,11 @@ void SurfaceImpl::FillRectangle(PRectangle rc, Fill fill)
GetPainter()->fillRect(QRectFFromPRect(rc), QColorFromColourAlpha(fill.colour));
}
+void SurfaceImpl::FillRectangleAligned(PRectangle rc, Fill fill)
+{
+ FillRectangle(PixelAlign(rc, 1), fill);
+}
+
void SurfaceImpl::FillRectangle(PRectangle rc, Surface &surfacePattern)
{
// Tile pattern over rectangle
diff --git a/qt/ScintillaEditBase/PlatQt.h b/qt/ScintillaEditBase/PlatQt.h
index ac4bb9a69..b579ee3f3 100644
--- a/qt/ScintillaEditBase/PlatQt.h
+++ b/qt/ScintillaEditBase/PlatQt.h
@@ -115,6 +115,7 @@ public:
void RectangleFrame(PRectangle rc, Stroke stroke) override;
void FillRectangle(PRectangle rc, ColourDesired back) override;
void FillRectangle(PRectangle rc, Fill fill) override;
+ void FillRectangleAligned(PRectangle rc, Fill fill) override;
void FillRectangle(PRectangle rc, Surface &surfacePattern) override;
void RoundedRectangle(PRectangle rc, ColourDesired fore,
ColourDesired back) override;
diff --git a/src/Platform.h b/src/Platform.h
index 3b9443cc9..568c571cc 100644
--- a/src/Platform.h
+++ b/src/Platform.h
@@ -205,6 +205,7 @@ public:
virtual void RectangleFrame(PRectangle rc, Stroke stroke)=0;
virtual void FillRectangle(PRectangle rc, ColourDesired back)=0;
virtual void FillRectangle(PRectangle rc, Fill fill)=0;
+ virtual void FillRectangleAligned(PRectangle rc, Fill fill)=0;
virtual void FillRectangle(PRectangle rc, Surface &surfacePattern)=0;
virtual void RoundedRectangle(PRectangle rc, ColourDesired fore, ColourDesired back)=0;
virtual void RoundedRectangle(PRectangle rc, FillStroke fillStroke)=0;
diff --git a/win32/PlatWin.cxx b/win32/PlatWin.cxx
index c902bad04..65a024565 100644
--- a/win32/PlatWin.cxx
+++ b/win32/PlatWin.cxx
@@ -497,6 +497,7 @@ public:
void RectangleFrame(PRectangle rc, Stroke stroke) override;
void FillRectangle(PRectangle rc, ColourDesired back) override;
void FillRectangle(PRectangle rc, Fill fill) override;
+ void FillRectangleAligned(PRectangle rc, Fill fill) override;
void FillRectangle(PRectangle rc, Surface &surfacePattern) override;
void RoundedRectangle(PRectangle rc, ColourDesired fore, ColourDesired back) override;
void RoundedRectangle(PRectangle rc, FillStroke fillStroke) override;
@@ -770,6 +771,10 @@ void SurfaceGDI::FillRectangle(PRectangle rc, Fill fill) {
}
}
+void SurfaceGDI::FillRectangleAligned(PRectangle rc, Fill fill) {
+ FillRectangle(PixelAlign(rc, 1), fill);
+}
+
void SurfaceGDI::FillRectangle(PRectangle rc, Surface &surfacePattern) {
HBRUSH br;
if (SurfaceGDI *psgdi = dynamic_cast<SurfaceGDI *>(&surfacePattern); psgdi && psgdi->bitmap) {
@@ -1453,6 +1458,7 @@ public:
void RectangleFrame(PRectangle rc, Stroke stroke) override;
void FillRectangle(PRectangle rc, ColourDesired back) override;
void FillRectangle(PRectangle rc, Fill fill) override;
+ void FillRectangleAligned(PRectangle rc, Fill fill) override;
void FillRectangle(PRectangle rc, Surface &surfacePattern) override;
void RoundedRectangle(PRectangle rc, ColourDesired fore, ColourDesired back) override;
void RoundedRectangle(PRectangle rc, FillStroke fillStroke) override;
@@ -1879,6 +1885,10 @@ void SurfaceD2D::FillRectangle(PRectangle rc, Fill fill) {
}
}
+void SurfaceD2D::FillRectangleAligned(PRectangle rc, Fill fill) {
+ FillRectangle(PixelAlign(rc, 1), fill);
+}
+
void SurfaceD2D::FillRectangle(PRectangle rc, Surface &surfacePattern) {
SurfaceD2D *psurfOther = dynamic_cast<SurfaceD2D *>(&surfacePattern);
PLATFORM_ASSERT(psurfOther);