Code

optimize cairo paths by not drawing segments that are outside of view (for stroke...
[inkscape.git] / src / display / canvas-bpath.cpp
index 17c88001795514f6a59c83afe495b031b3c44768..909ea84ec1db61f65ce75b05ce7cb12530e4582a 100644 (file)
@@ -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);