summaryrefslogtreecommitdiffstats
path: root/src/display
diff options
context:
space:
mode:
Diffstat (limited to 'src/display')
-rw-r--r--src/display/canvas-bpath.cpp24
-rw-r--r--src/display/canvas-grid.cpp12
-rw-r--r--src/display/guideline.cpp6
-rw-r--r--src/display/nr-arena-item.cpp10
-rw-r--r--src/display/nr-arena-shape.cpp15
-rw-r--r--src/display/nr-gradient-gpl.cpp16
-rw-r--r--src/display/nr-plain-stuff.cpp12
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);