diff options
author | Tor Andersson <tor@ghostscript.com> | 2004-11-24 06:42:52 +0100 |
---|---|---|
committer | Tor Andersson <tor@ghostscript.com> | 2004-11-24 06:42:52 +0100 |
commit | 4b2218b903da6de40e8a82b9e2a69157d415637c (patch) | |
tree | ca489110e7ee0dad118a8c13244ec3f8ab31492a /render | |
parent | b48de7618e25bc2cef9d9db4f9b49e1d546e438a (diff) | |
download | mupdf-4b2218b903da6de40e8a82b9e2a69157d415637c.tar.xz |
added shade code skeleton
Diffstat (limited to 'render')
-rw-r--r-- | render/render.c | 30 |
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: |