aboutsummaryrefslogtreecommitdiffhomepage
path: root/cocoa
diff options
context:
space:
mode:
authorNeil <nyamatongwe@gmail.com>2021-03-25 10:57:35 +1100
committerNeil <nyamatongwe@gmail.com>2021-03-25 10:57:35 +1100
commit2f0011955fe7d3ac0b80247abc88ee0461104eb6 (patch)
tree803c13dc6a4cfac883ab488c975149428adebf29 /cocoa
parentfa10779da55ff13c95a0cd39bffdf57dcdfc9cc5 (diff)
downloadscintilla-mirror-2f0011955fe7d3ac0b80247abc88ee0461104eb6.tar.gz
Add FillRectangleAligned to align rectangle to pixel grid on x-axis before
filling it to avoid partially drawn pixels on left and right edges.
Diffstat (limited to 'cocoa')
-rw-r--r--cocoa/PlatCocoa.h1
-rw-r--r--cocoa/PlatCocoa.mm6
2 files changed, 7 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);