summaryrefslogtreecommitdiff
path: root/apps/pdfapp.c
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2010-06-30 17:32:10 +0200
committerTor Andersson <tor@ghostscript.com>2010-06-30 17:32:10 +0200
commit8b91056a31825914bcfb8ae5d902622976bca284 (patch)
tree47c9f38f98502cac43e7061b46ebcd0813699efa /apps/pdfapp.c
parent27e32c2ae2b462b6a8b0798f6f477b6a104ac972 (diff)
downloadmupdf-8b91056a31825914bcfb8ae5d902622976bca284.tar.xz
Use 32-bit blitting and DeviceBGR colorspace in windows viewer to avoid converting the pixmap.
Diffstat (limited to 'apps/pdfapp.c')
-rw-r--r--apps/pdfapp.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/apps/pdfapp.c b/apps/pdfapp.c
index e798dfb9..6eec1b8f 100644
--- a/apps/pdfapp.c
+++ b/apps/pdfapp.c
@@ -279,6 +279,8 @@ static void pdfapp_showpage(pdfapp_t *app, int loadpage, int drawpage)
if (drawpage)
{
+ fz_colorspace *colorspace;
+
wincursor(app, WAIT);
ctm = pdfapp_viewctm(app);
@@ -293,7 +295,15 @@ static void pdfapp_showpage(pdfapp_t *app, int loadpage, int drawpage)
/* Draw */
if (app->image)
fz_droppixmap(app->image);
- app->image = fz_newpixmapwithrect((app->grayscale ? pdf_devicegray : pdf_devicergb), bbox);
+ if (app->grayscale)
+ colorspace = pdf_devicegray;
+ else
+#ifdef _WIN32
+ colorspace = pdf_devicebgr;
+#else
+ colorspace = pdf_devicergb;
+#endif
+ app->image = fz_newpixmapwithrect(colorspace, bbox);
fz_clearpixmap(app->image, 0xFF);
idev = fz_newdrawdevice(app->cache, app->image);
fz_executedisplaylist(app->page->list, idev, ctm);