summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
authorTor Andersson <tor@ghostscript.com>2004-11-24 06:42:52 +0100
committerTor Andersson <tor@ghostscript.com>2004-11-24 06:42:52 +0100
commit4b2218b903da6de40e8a82b9e2a69157d415637c (patch)
treeca489110e7ee0dad118a8c13244ec3f8ab31492a /render
parentb48de7618e25bc2cef9d9db4f9b49e1d546e438a (diff)
downloadmupdf-4b2218b903da6de40e8a82b9e2a69157d415637c.tar.xz
added shade code skeleton
Diffstat (limited to 'render')
-rw-r--r--render/render.c30
1 files changed, 29 insertions, 1 deletions
diff --git a/render/render.c b/render/render.c
index b92c8fe0..58e4b6f0 100644
--- a/render/render.c
+++ b/render/render.c
@@ -1,6 +1,7 @@
#include <fitz.h>
-#define DEBUG(args...) printf(args)
+#define noDEBUG(args...) printf(args)
+#define DEBUG(args...)
#define FNONE 0
#define FOVER 1
@@ -533,6 +534,31 @@ cleanup:
}
/*
+ * Shade
+ */
+
+static fz_error *
+rendershade(fz_renderer *gc, fz_shadenode *node, fz_matrix ctm)
+{
+ fz_error *error;
+ fz_irect bbox;
+
+ assert(!gc->maskonly);
+
+ if (gc->flag & FOVER)
+ return fz_rendershade(node->shade, ctm, gc->model, gc->over, 1);
+
+ bbox = fz_roundrect(fz_boundnode((fz_node*)node, ctm));
+ bbox = fz_intersectirects(gc->clip, bbox);
+
+ error = fz_newpixmapwithrect(&gc->dest, bbox, gc->model->n + 1);
+ if (error)
+ return error;
+
+ return fz_rendershade(node->shade, ctm, gc->model, gc->dest, 0);
+}
+
+/*
* Over, Mask and Blend
*/
@@ -820,6 +846,8 @@ rendernode(fz_renderer *gc, fz_node *node, fz_matrix ctm)
return rendertext(gc, (fz_textnode*)node, ctm);
case FZ_NIMAGE:
return renderimage(gc, (fz_imagenode*)node, ctm);
+ case FZ_NSHADE:
+ return rendershade(gc, (fz_shadenode*)node, ctm);
case FZ_NLINK:
return rendernode(gc, ((fz_linknode*)node)->tree->root, ctm);
case FZ_NMETA: