diff options
Diffstat (limited to 'src/display')
| -rw-r--r-- | src/display/canvas-bpath.cpp | 24 | ||||
| -rw-r--r-- | src/display/canvas-grid.cpp | 12 | ||||
| -rw-r--r-- | src/display/guideline.cpp | 6 | ||||
| -rw-r--r-- | src/display/nr-arena-item.cpp | 10 | ||||
| -rw-r--r-- | src/display/nr-arena-shape.cpp | 15 | ||||
| -rw-r--r-- | src/display/nr-gradient-gpl.cpp | 16 | ||||
| -rw-r--r-- | src/display/nr-plain-stuff.cpp | 12 |
7 files changed, 45 insertions, 50 deletions
diff --git a/src/display/canvas-bpath.cpp b/src/display/canvas-bpath.cpp index 17c880017..909ea84ec 100644 --- a/src/display/canvas-bpath.cpp +++ b/src/display/canvas-bpath.cpp @@ -344,9 +344,9 @@ bpath_run_A8_OR (raster_info &dest,void *data,int st,float vst,int en,float ven) if ( sv > 249.999 ) { /* Simple copy */ while (len > 0) { - d[0] = NR_COMPOSEN11 (r, 255, d[0]); - d[1] = NR_COMPOSEN11 (g, 255, d[1]); - d[2] = NR_COMPOSEN11 (b, 255, d[2]); + d[0] = NR_COMPOSEN11_1111 (r, 255, d[0]); + d[1] = NR_COMPOSEN11_1111 (g, 255, d[1]); + d[2] = NR_COMPOSEN11_1111 (b, 255, d[2]); d += 3; len -= 1; } @@ -354,9 +354,9 @@ bpath_run_A8_OR (raster_info &dest,void *data,int st,float vst,int en,float ven) unsigned int c0_24=(int)sv; c0_24&=0xFF; while (len > 0) { - d[0] = NR_COMPOSEN11 (r, c0_24, d[0]); - d[1] = NR_COMPOSEN11 (g, c0_24, d[1]); - d[2] = NR_COMPOSEN11 (b, c0_24, d[2]); + d[0] = NR_COMPOSEN11_1111 (r, c0_24, d[0]); + d[1] = NR_COMPOSEN11_1111 (g, c0_24, d[1]); + d[2] = NR_COMPOSEN11_1111 (b, c0_24, d[2]); d += 3; len -= 1; } @@ -366,9 +366,9 @@ bpath_run_A8_OR (raster_info &dest,void *data,int st,float vst,int en,float ven) sv=0.5*(vst+ven); unsigned int c0_24=(int)sv; c0_24&=0xFF; - d[0] = NR_COMPOSEN11 (r, c0_24, d[0]); - d[1] = NR_COMPOSEN11 (g, c0_24, d[1]); - d[2] = NR_COMPOSEN11 (b, c0_24, d[2]); + d[0] = NR_COMPOSEN11_1111 (r, c0_24, d[0]); + d[1] = NR_COMPOSEN11_1111 (g, c0_24, d[1]); + d[2] = NR_COMPOSEN11_1111 (b, c0_24, d[2]); } else { dv/=len; sv+=0.5*dv; // correction trapezoidale @@ -381,9 +381,9 @@ bpath_run_A8_OR (raster_info &dest,void *data,int st,float vst,int en,float ven) /* Draw */ ca = c0_24 >> 16; if ( ca > 255 ) ca=255; - d[0] = NR_COMPOSEN11 (r, ca, d[0]); - d[1] = NR_COMPOSEN11 (g, ca, d[1]); - d[2] = NR_COMPOSEN11 (b, ca, d[2]); + d[0] = NR_COMPOSEN11_1111 (r, ca, d[0]); + d[1] = NR_COMPOSEN11_1111 (g, ca, d[1]); + d[2] = NR_COMPOSEN11_1111 (b, ca, d[2]); d += 3; c0_24 += s0_24; c0_24 = CLAMP (c0_24, 0, 16777216); diff --git a/src/display/canvas-grid.cpp b/src/display/canvas-grid.cpp index 6618c2358..9fb6974f8 100644 --- a/src/display/canvas-grid.cpp +++ b/src/display/canvas-grid.cpp @@ -159,9 +159,9 @@ sp_grid_hline (SPCanvasBuf *buf, gint y, gint xs, gint xe, guint32 rgba) x1 = MIN (buf->rect.x1, xe + 1); p = buf->buf + (y - buf->rect.y0) * buf->buf_rowstride + (x0 - buf->rect.x0) * 3; for (x = x0; x < x1; x++) { - p[0] = NR_COMPOSEN11 (r, a, p[0]); - p[1] = NR_COMPOSEN11 (g, a, p[1]); - p[2] = NR_COMPOSEN11 (b, a, p[2]); + p[0] = NR_COMPOSEN11_1111 (r, a, p[0]); + p[1] = NR_COMPOSEN11_1111 (g, a, p[1]); + p[2] = NR_COMPOSEN11_1111 (b, a, p[2]); p += 3; } } @@ -182,9 +182,9 @@ sp_grid_vline (SPCanvasBuf *buf, gint x, gint ys, gint ye, guint32 rgba) y1 = MIN (buf->rect.y1, ye + 1); p = buf->buf + (y0 - buf->rect.y0) * buf->buf_rowstride + (x - buf->rect.x0) * 3; for (y = y0; y < y1; y++) { - p[0] = NR_COMPOSEN11 (r, a, p[0]); - p[1] = NR_COMPOSEN11 (g, a, p[1]); - p[2] = NR_COMPOSEN11 (b, a, p[2]); + p[0] = NR_COMPOSEN11_1111 (r, a, p[0]); + p[1] = NR_COMPOSEN11_1111 (g, a, p[1]); + p[2] = NR_COMPOSEN11_1111 (b, a, p[2]); p += buf->buf_rowstride; } } diff --git a/src/display/guideline.cpp b/src/display/guideline.cpp index d44ac8ab8..41429b408 100644 --- a/src/display/guideline.cpp +++ b/src/display/guideline.cpp @@ -115,9 +115,9 @@ static void sp_guideline_render(SPCanvasItem *item, SPCanvasBuf *buf) } for (int p = p0; p < p1; p++) { - d[0] = NR_COMPOSEN11(r, a, d[0]); - d[1] = NR_COMPOSEN11(g, a, d[1]); - d[2] = NR_COMPOSEN11(b, a, d[2]); + d[0] = NR_COMPOSEN11_1111(r, a, d[0]); + d[1] = NR_COMPOSEN11_1111(g, a, d[1]); + d[2] = NR_COMPOSEN11_1111(b, a, d[2]); d += step; } } diff --git a/src/display/nr-arena-item.cpp b/src/display/nr-arena-item.cpp index 7e03c51dd..581bee231 100644 --- a/src/display/nr-arena-item.cpp +++ b/src/display/nr-arena-item.cpp @@ -627,8 +627,8 @@ unsigned int nr_arena_item_invoke_render(NRArenaItem *item, NRRectL const *area, d = NR_PIXBLOCK_PX (&mpb) + (y - carea.y0) * mpb.rs; for (x = carea.x0; x < carea.x1; x++) { unsigned int m; - m = ((s[0] + s[1] + s[2]) * s[3] + 127) / (3 * 255); - d[0] = NR_PREMUL (d[0], m); + m = NR_PREMUL_112(s[0]+s[1]+s[2], s[3]); + d[0] = FAST_DIV_ROUND<3*255*255>(NR_PREMUL_123(d[0], m)); s += 4; d += 1; } @@ -641,8 +641,8 @@ unsigned int nr_arena_item_invoke_render(NRArenaItem *item, NRRectL const *area, d = NR_PIXBLOCK_PX (&mpb) + (y - carea.y0) * mpb.rs; for (x = carea.x0; x < carea.x1; x++) { unsigned int m; - m = ((s[0] + s[1] + s[2]) * s[3] + 127) / (3 * 255); - d[0] = m; + m = NR_PREMUL_112(s[0]+s[1]+s[2], s[3]); + d[0] = FAST_DIV_ROUND<3*255>(m); s += 4; d += 1; } @@ -660,7 +660,7 @@ unsigned int nr_arena_item_invoke_render(NRArenaItem *item, NRRectL const *area, unsigned char *d; d = NR_PIXBLOCK_PX (&mpb) + (y - carea.y0) * mpb.rs; for (x = carea.x0; x < carea.x1; x++) { - d[0] = NR_PREMUL (d[0], a); + d[0] = NR_PREMUL_111 (d[0], a); d += 1; } } diff --git a/src/display/nr-arena-shape.cpp b/src/display/nr-arena-shape.cpp index abe343a1d..4653b5ce6 100644 --- a/src/display/nr-arena-shape.cpp +++ b/src/display/nr-arena-shape.cpp @@ -801,7 +801,7 @@ nr_arena_shape_clip(NRArenaItem *item, NRRectL *area, NRPixBlock *pb) s = NR_PIXBLOCK_PX(&m) + (y - area->y0) * m.rs; d = NR_PIXBLOCK_PX(pb) + (y - area->y0) * pb->rs; for (int x = area->x0; x < area->x1; x++) { - *d = NR_A7_NORMALIZED(*s,*d); + *d = NR_COMPOSEA_111(*s, *d); d ++; s ++; } @@ -1148,10 +1148,8 @@ shape_run_A8_OR(raster_info &dest,void */*data*/,int st,float vst,int en,float v unsigned int c0_24=(int)sv; c0_24&=0xFF; while (len > 0) { - unsigned int da; /* Draw */ - da = NR_A7(c0_24,d[0]); - d[0] = NR_PREMUL_SINGLE(da); + d[0] = NR_COMPOSEA_111(c0_24,d[0]); d += 1; len -= 1; } @@ -1162,10 +1160,8 @@ shape_run_A8_OR(raster_info &dest,void */*data*/,int st,float vst,int en,float v sv*=256; unsigned int c0_24=(int)sv; c0_24&=0xFF; - unsigned int da; /* Draw */ - da = NR_A7(c0_24,d[0]); - d[0] = NR_PREMUL_SINGLE(da); + d[0] = NR_COMPOSEA_111(c0_24,d[0]); } else { dv/=len; sv+=0.5*dv; // correction trapezoidale @@ -1174,12 +1170,11 @@ shape_run_A8_OR(raster_info &dest,void */*data*/,int st,float vst,int en,float v int c0_24 = static_cast<int>(CLAMP(sv, 0, 16777216)); int s0_24 = static_cast<int>(dv); while (len > 0) { - unsigned int ca, da; + unsigned int ca; /* Draw */ ca = c0_24 >> 16; if ( ca > 255 ) ca=255; - da = NR_A7(ca,d[0]); - d[0] = NR_PREMUL_SINGLE(da); + d[0] = NR_COMPOSEA_111(ca,d[0]); d += 1; c0_24 += s0_24; c0_24 = CLAMP(c0_24, 0, 16777216); diff --git a/src/display/nr-gradient-gpl.cpp b/src/display/nr-gradient-gpl.cpp index 536217649..e3ee03325 100644 --- a/src/display/nr-gradient-gpl.cpp +++ b/src/display/nr-gradient-gpl.cpp @@ -200,11 +200,11 @@ nr_lgradient_render_R8G8B8A8N (NRLGradientRenderer *lgr, unsigned char *px, int d[2] = s[2]; d[3] = 255; } else if (s[3] != 0) { - ca = NR_A7(s[3],d[3]); - d[0] = NR_COMPOSENNN_A7 (s[0], s[3], d[0], d[3], ca); - d[1] = NR_COMPOSENNN_A7 (s[1], s[3], d[1], d[3], ca); - d[2] = NR_COMPOSENNN_A7 (s[2], s[3], d[2], d[3], ca); - d[3] = NR_PREMUL_SINGLE(ca); + ca = NR_COMPOSEA_112(s[3],d[3]); + d[0] = NR_COMPOSENNN_111121 (s[0], s[3], d[0], d[3], ca); + d[1] = NR_COMPOSENNN_111121 (s[1], s[3], d[1], d[3], ca); + d[2] = NR_COMPOSENNN_111121 (s[2], s[3], d[2], d[3], ca); + d[3] = NR_NORMALIZE_21(ca); } d += 4; pos += lgr->dx; @@ -242,9 +242,9 @@ nr_lgradient_render_R8G8B8 (NRLGradientRenderer *lgr, unsigned char *px, int x0, } /* Full composition */ s = lgr->vector + 4 * idx; - d[0] = NR_COMPOSEN11 (s[0], s[3], d[0]); - d[1] = NR_COMPOSEN11 (s[1], s[3], d[1]); - d[2] = NR_COMPOSEN11 (s[2], s[3], d[2]); + d[0] = NR_COMPOSEN11_1111 (s[0], s[3], d[0]); + d[1] = NR_COMPOSEN11_1111 (s[1], s[3], d[1]); + d[2] = NR_COMPOSEN11_1111 (s[2], s[3], d[2]); d += 3; pos += lgr->dx; } diff --git a/src/display/nr-plain-stuff.cpp b/src/display/nr-plain-stuff.cpp index af6e002ec..62a61102e 100644 --- a/src/display/nr-plain-stuff.cpp +++ b/src/display/nr-plain-stuff.cpp @@ -79,14 +79,14 @@ nr_render_rgba32_rgb (guchar *px, gint w, gint h, gint rs, gint xoff, gint yoff, b = NR_RGBA32_B (c); a = NR_RGBA32_A (c); - cr = NR_COMPOSEN11 (r, a, NR_RGBA32_R (NR_DEFAULT_CHECKERCOLOR0)); - cg = NR_COMPOSEN11 (g, a, NR_RGBA32_G (NR_DEFAULT_CHECKERCOLOR0)); - cb = NR_COMPOSEN11 (b, a, NR_RGBA32_B (NR_DEFAULT_CHECKERCOLOR0)); + cr = NR_COMPOSEN11_1111 (r, a, NR_RGBA32_R (NR_DEFAULT_CHECKERCOLOR0)); + cg = NR_COMPOSEN11_1111 (g, a, NR_RGBA32_G (NR_DEFAULT_CHECKERCOLOR0)); + cb = NR_COMPOSEN11_1111 (b, a, NR_RGBA32_B (NR_DEFAULT_CHECKERCOLOR0)); c0 = (cr << 24) | (cg << 16) | (cb << 8) | 0xff; - cr = NR_COMPOSEN11 (r, a, NR_RGBA32_R (NR_DEFAULT_CHECKERCOLOR1)); - cg = NR_COMPOSEN11 (g, a, NR_RGBA32_G (NR_DEFAULT_CHECKERCOLOR1)); - cb = NR_COMPOSEN11 (b, a, NR_RGBA32_B (NR_DEFAULT_CHECKERCOLOR1)); + cr = NR_COMPOSEN11_1111 (r, a, NR_RGBA32_R (NR_DEFAULT_CHECKERCOLOR1)); + cg = NR_COMPOSEN11_1111 (g, a, NR_RGBA32_G (NR_DEFAULT_CHECKERCOLOR1)); + cb = NR_COMPOSEN11_1111 (b, a, NR_RGBA32_B (NR_DEFAULT_CHECKERCOLOR1)); c1 = (cr << 24) | (cg << 16) | (cb << 8) | 0xff; nr_render_checkerboard_rgb_custom (px, w, h, rs, xoff, yoff, c0, c1, NR_DEFAULT_CHECKERSIZEP2); |
