diff options
author | nyamatongwe <unknown> | 2011-06-05 10:05:37 +1000 |
---|---|---|
committer | nyamatongwe <unknown> | 2011-06-05 10:05:37 +1000 |
commit | 9433503c3000ad9408f38ebd19e759f51ef44c01 (patch) | |
tree | 95732929b66db495f69aa4aa29b9dcc60bb6bed7 | |
parent | b78fcd78a98d59f6f42ccecb7be229a382af27dd (diff) | |
download | scintilla-mirror-9433503c3000ad9408f38ebd19e759f51ef44c01.tar.gz |
Cache surface resolution as it is slow and is called
for every font creation.
-rw-r--r-- | cocoa/PlatCocoa.h | 2 | ||||
-rw-r--r-- | cocoa/PlatCocoa.mm | 10 |
2 files changed, 9 insertions, 3 deletions
diff --git a/cocoa/PlatCocoa.h b/cocoa/PlatCocoa.h index 3e0aa09d8..0653bc728 100644 --- a/cocoa/PlatCocoa.h +++ b/cocoa/PlatCocoa.h @@ -49,6 +49,8 @@ private: /** The text layout instance */ QuartzTextLayout* textLayout; int codePage; + int verticalDeviceResolution; + /** If the surface is a bitmap context, contains a reference to the bitmap data. */ uint8_t* bitmapData; /** If the surface is a bitmap context, stores the dimensions of the bitmap. */ diff --git a/cocoa/PlatCocoa.mm b/cocoa/PlatCocoa.mm index f7db513c6..1f8a54a4c 100644 --- a/cocoa/PlatCocoa.mm +++ b/cocoa/PlatCocoa.mm @@ -384,9 +384,13 @@ CGImageRef SurfaceImpl::GetImage() */ int SurfaceImpl::LogPixelsY() { - NSSize deviceResolution = [[[[NSScreen mainScreen] deviceDescription] - objectForKey: NSDeviceResolution] sizeValue]; - return (int) deviceResolution.height; + if (verticalDeviceResolution == 0) + { + NSSize deviceResolution = [[[[NSScreen mainScreen] deviceDescription] + objectForKey: NSDeviceResolution] sizeValue]; + verticalDeviceResolution = (int) deviceResolution.height; + } + return verticalDeviceResolution; } //-------------------------------------------------------------------------------------------------- |