summaryrefslogtreecommitdiffstats
path: root/src/libnr/nr-pixblock-pattern.cpp
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2010-08-14 19:22:11 +0000
committerKrzysztof KosiƄski <tweenk.pl@gmail.com>2010-08-14 19:22:11 +0000
commitaa844be794b36b44b624e579db7f0945b5d3927b (patch)
treef83306b1ac51d8089373023162945eb25951bf68 /src/libnr/nr-pixblock-pattern.cpp
parentFix paint bucket tool (diff)
downloadinkscape-aa844be794b36b44b624e579db7f0945b5d3927b.tar.gz
inkscape-aa844be794b36b44b624e579db7f0945b5d3927b.zip
Completely remove NRPixBlock
(bzr r9508.1.67)
Diffstat (limited to 'src/libnr/nr-pixblock-pattern.cpp')
-rw-r--r--src/libnr/nr-pixblock-pattern.cpp127
1 files changed, 0 insertions, 127 deletions
diff --git a/src/libnr/nr-pixblock-pattern.cpp b/src/libnr/nr-pixblock-pattern.cpp
deleted file mode 100644
index aa3246297..000000000
--- a/src/libnr/nr-pixblock-pattern.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-#define __NR_PIXBLOCK_PATTERN_C__
-
-/*
- * Pixel buffer rendering library
- *
- * Authors:
- * Lauris Kaplinski <lauris@kaplinski.com>
- *
- * This code is in public domain
- */
-
-
-#include <glib/gmem.h>
-#include "nr-pixops.h"
-#include "nr-pixblock-pattern.h"
-
-#define NR_NOISE_SIZE 1024
-
-void
-nr_pixblock_render_gray_noise (NRPixBlock *pb, NRPixBlock *mask)
-{
- static unsigned char *noise = NULL;
- static unsigned int seed = 0;
- unsigned int v;
- NRRectL clip;
- int x, y, bpp;
-
- if (mask) {
- if (mask->empty) return;
- nr_rect_l_intersect (&clip, &pb->area, &mask->area);
- if (nr_rect_l_test_empty(clip)) return;
- } else {
- clip = pb->area;
- }
-
- if (!noise) {
- int i;
- noise = g_new (unsigned char, NR_NOISE_SIZE);
- for (i = 0; i < NR_NOISE_SIZE; i++) noise[i] = (rand () / (RAND_MAX >> 8)) & 0xff;
- }
-
- bpp = NR_PIXBLOCK_BPP (pb);
-
- v = (rand () / (RAND_MAX >> 8)) & 0xff;
-
- if (mask) {
- for (y = clip.y0; y < clip.y1; y++) {
- unsigned char *d, *m;
- d = NR_PIXBLOCK_PX (pb) + (y - pb->area.y0) * pb->rs + (clip.x0 - pb->area.x0) * bpp;
- m = NR_PIXBLOCK_PX (mask) + (y - mask->area.y0) * pb->rs + (clip.x0 - mask->area.x0);
- for (x = clip.x0; x < clip.x1; x++) {
- v = v ^ noise[seed];
- switch (pb->mode) {
- case NR_PIXBLOCK_MODE_A8:
- d[0] = NR_COMPOSEA_111(m[0], d[0]);
- break;
- case NR_PIXBLOCK_MODE_R8G8B8:
- d[0] = NR_COMPOSEN11_1111 (v, m[0], d[0]);
- d[1] = NR_COMPOSEN11_1111 (v, m[0], d[1]);
- d[2] = NR_COMPOSEN11_1111 (v, m[0], d[2]);
- break;
- case NR_PIXBLOCK_MODE_R8G8B8A8N:
- if (m[0] != 0) {
- unsigned int ca;
- ca = NR_COMPOSEA_112(m[0], d[3]);
- d[0] = NR_COMPOSENNN_111121 (v, m[0], d[0], d[3], ca);
- d[1] = NR_COMPOSENNN_111121 (v, m[0], d[1], d[3], ca);
- d[2] = NR_COMPOSENNN_111121 (v, m[0], d[2], d[3], ca);
- d[3] = NR_NORMALIZE_21(ca);
- }
- break;
- case NR_PIXBLOCK_MODE_R8G8B8A8P:
- d[0] = NR_COMPOSENPP_1111 (v, m[0], d[0]);
- d[1] = NR_COMPOSENPP_1111 (v, m[0], d[1]);
- d[2] = NR_COMPOSENPP_1111 (v, m[0], d[2]);
- d[3] = NR_COMPOSEA_111(d[3], m[0]);
- break;
- default:
- break;
- }
- d += bpp;
- m += 1;
- if (++seed >= NR_NOISE_SIZE) {
- int i;
- i = (rand () / (RAND_MAX / NR_NOISE_SIZE)) % NR_NOISE_SIZE;
- noise[i] ^= v;
- seed = i % (NR_NOISE_SIZE >> 2);
- }
- }
- }
- } else {
- for (y = clip.y0; y < clip.y1; y++) {
- unsigned char *d;
- d = NR_PIXBLOCK_PX (pb) + (y - pb->area.y0) * pb->rs + (clip.x0 - pb->area.x0) * bpp;
- for (x = clip.x0; x < clip.x1; x++) {
- v = v ^ noise[seed];
- switch (pb->mode) {
- case NR_PIXBLOCK_MODE_A8:
- d[0] = 255;
- break;
- case NR_PIXBLOCK_MODE_R8G8B8:
- d[0] = v;
- d[1] = v;
- d[2] = v;
- break;
- case NR_PIXBLOCK_MODE_R8G8B8A8N:
- case NR_PIXBLOCK_MODE_R8G8B8A8P:
- d[0] = v;
- d[1] = v;
- d[2] = v;
- d[3] = 255;
- default:
- break;
- }
- d += bpp;
- if (++seed >= NR_NOISE_SIZE) {
- int i;
- i = (rand () / (RAND_MAX / NR_NOISE_SIZE)) % NR_NOISE_SIZE;
- noise[i] ^= v;
- seed = i % (NR_NOISE_SIZE >> 2);
- }
- }
- }
- }
-
- pb->empty = 0;
-}