From 4b2218b903da6de40e8a82b9e2a69157d415637c Mon Sep 17 00:00:00 2001 From: Tor Andersson Date: Wed, 24 Nov 2004 06:42:52 +0100 Subject: added shade code skeleton --- render/render.c | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'render/render.c') 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 -#define DEBUG(args...) printf(args) +#define noDEBUG(args...) printf(args) +#define DEBUG(args...) #define FNONE 0 #define FOVER 1 @@ -532,6 +533,31 @@ cleanup: return error; } +/* + * 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: -- cgit v1.2.3