summaryrefslogtreecommitdiff
path: root/ios
diff options
context:
space:
mode:
authorTor Andersson <tor.andersson@artifex.com>2011-11-08 05:05:44 +0100
committerTor Andersson <tor.andersson@artifex.com>2011-11-08 05:05:44 +0100
commitcfa4e2ee78d4f072f09f9ef5318281de789803df (patch)
treec92ff455359d6a7c1b815bed6290bd762560d97b /ios
parente3ba77a44892c3ceab83c98e6815dac7e686274e (diff)
downloadmupdf-cfa4e2ee78d4f072f09f9ef5318281de789803df.tar.xz
Support iPhone 4 retina display.
Diffstat (limited to 'ios')
-rw-r--r--ios/main.m18
1 files changed, 17 insertions, 1 deletions
diff --git a/ios/main.m b/ios/main.m
index 17bad5fc..0ab2ae70 100644
--- a/ios/main.m
+++ b/ios/main.m
@@ -15,6 +15,7 @@
static dispatch_queue_t queue;
static fz_glyph_cache *glyphcache = NULL;
+static float screenScale = 1;
@interface MuLibraryController : UITableViewController
{
@@ -160,7 +161,10 @@ static UIImage *newImageWithPixmap(fz_pixmap *pix)
CGColorSpaceCreateDeviceRGB(),
kCGBitmapByteOrderDefault,
cgdata, NULL, NO, kCGRenderingIntentDefault);
- UIImage *image = [[UIImage alloc] initWithCGImage: cgimage];
+ UIImage *image = [[UIImage alloc]
+ initWithCGImage: cgimage
+ scale: screenScale
+ orientation: UIImageOrientationUp];
CGDataProviderRelease(cgdata);
CGImageRelease(cgimage);
return image;
@@ -194,6 +198,9 @@ static UIImage *renderPage(pdf_xref *xref, int number, CGSize screen)
return nil;
}
+ screen.width *= screenScale;
+ screen.height *= screenScale;
+
mediabox = fz_transform_rect(fz_rotate(page->rotate), page->mediabox);
pagesize = CGSizeMake(mediabox.x1 - mediabox.x0, mediabox.y1 - mediabox.y0);
scale = fitPageToScreen(pagesize, screen);
@@ -236,6 +243,13 @@ static UIImage *renderTile(pdf_xref *xref, int number, CGSize screen, CGRect til
return nil;
}
+ screen.width *= screenScale;
+ screen.height *= screenScale;
+ tile.origin.x *= screenScale;
+ tile.origin.y *= screenScale;
+ tile.size.width *= screenScale;
+ tile.size.height *= screenScale;
+
mediabox = fz_transform_rect(fz_rotate(page->rotate), page->mediabox);
pagesize = CGSizeMake(mediabox.x1 - mediabox.x0, mediabox.y1 - mediabox.y0);
scale = fitPageToScreen(pagesize, screen);
@@ -1085,6 +1099,8 @@ static UIImage *renderTile(pdf_xref *xref, int number, CGSize screen, CGRect til
glyphcache = fz_new_glyph_cache();
+ screenScale = [[UIScreen mainScreen] scale];
+
library = [[MuLibraryController alloc] initWithStyle: UITableViewStylePlain];
navigator = [[UINavigationController alloc] initWithRootViewController: library];