From ef257c2519078a13666e70e2905c5c22a64e7593 Mon Sep 17 00:00:00 2001 From: Ton Roosendaal Date: Wed, 22 Feb 2006 22:23:30 +0000 Subject: [PATCH] Composite: filter node now includes image edge in calculation, the outer pixels even had alpha zero... --- .../blenkernel/intern/node_composite.c | 47 ++++++++++++++----- 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/source/blender/blenkernel/intern/node_composite.c b/source/blender/blenkernel/intern/node_composite.c index 542a6cd7379..b13a9a1d832 100644 --- a/source/blender/blenkernel/intern/node_composite.c +++ b/source/blender/blenkernel/intern/node_composite.c @@ -1474,14 +1474,22 @@ static void do_filter_edge(CompBuf *out, CompBuf *in, float *filter, float fac) rowlen= in->x; - for(y=2; yy; y++) { + for(y=0; yy; y++) { /* setup rows */ - row1= in->rect + pix*(y-2)*rowlen; - row2= row1 + pix*rowlen; - row3= row2 + pix*rowlen; - fp= out->rect + pix*(y-1)*rowlen + pix; + if(y==0) row1= in->rect; + else row1= in->rect + pix*(y-1)*rowlen; + + row2= in->rect + y*pix*rowlen; + + if(y==in->y-1) row3= row2; + else row3= row2 + pix*rowlen; + + fp= out->rect + pix*y*rowlen; if(pix==CB_RGBA) { + QUATCOPY(fp, row2); + fp+= pix; + for(x=2; xx; - for(y=2; yy; y++) { + for(y=0; yy; y++) { /* setup rows */ - row1= in->rect + pixlen*(y-2)*rowlen; - row2= row1 + pixlen*rowlen; - row3= row2 + pixlen*rowlen; + if(y==0) row1= in->rect; + else row1= in->rect + pixlen*(y-1)*rowlen; - fp= out->rect + pixlen*(y-1)*rowlen; - QUATCOPY(fp, row2); - fp+= pixlen; + row2= in->rect + y*pixlen*rowlen; + + if(y==in->y-1) row3= row2; + else row3= row2 + pixlen*rowlen; + + fp= out->rect + pixlen*(y)*rowlen; if(pixlen==1) { + fp[0]= row2[0]; + fp+= pixlen; + for(x=2; x