diff options
author | nyamatongwe <devnull@localhost> | 2011-06-05 10:05:37 +1000 |
---|---|---|
committer | nyamatongwe <devnull@localhost> | 2011-06-05 10:05:37 +1000 |
commit | 4caa54e400ac5b80b966d7a8f08b801223b4a221 (patch) | |
tree | ec6ce23df2a6f5dd175beda66c2e8215f594ca29 | |
parent | 93ed8a4c28c170852779e926730108c9fa64faf6 (diff) | |
download | scintilla-mirror-4caa54e400ac5b80b966d7a8f08b801223b4a221.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; } //-------------------------------------------------------------------------------------------------- |