From 09534ab81f72ce766c8d13ea13216dd589d41a1c Mon Sep 17 00:00:00 2001 From: Neil Date: Fri, 19 Mar 2021 15:44:55 +1100 Subject: Add an explicit FlushDrawing method to Surface that should be called after completing a bitmap. Currently only has a real implementation on Direct2D. Avoiding implicit flushes inside Copy and FillRectangle produced a 23% speed improvement on files with about 1 indentation guide per line as the drawing pipeline was being flushed for each indentation guide. --- cocoa/PlatCocoa.h | 1 + cocoa/PlatCocoa.mm | 3 +++ 2 files changed, 4 insertions(+) (limited to 'cocoa') diff --git a/cocoa/PlatCocoa.h b/cocoa/PlatCocoa.h index 8f959014b..1ddb203c7 100644 --- a/cocoa/PlatCocoa.h +++ b/cocoa/PlatCocoa.h @@ -120,6 +120,7 @@ public: void SetClip(PRectangle rc) override; void PopClip() override; void FlushCachedState() override; + void FlushDrawing() override; void SetUnicodeMode(bool unicodeMode_) override; void SetDBCSMode(int codePage_) override; diff --git a/cocoa/PlatCocoa.mm b/cocoa/PlatCocoa.mm index f5f69608e..2e3ab2d57 100644 --- a/cocoa/PlatCocoa.mm +++ b/cocoa/PlatCocoa.mm @@ -1294,6 +1294,9 @@ void SurfaceImpl::SetDBCSMode(int codePage_) { void SurfaceImpl::SetBidiR2L(bool) { } +void SurfaceImpl::FlushDrawing() { +} + std::unique_ptr Surface::Allocate(int) { return std::make_unique(); } -- cgit v1.2.3