diff options
| author | MenTaLguY <mental@rydia.net> | 2007-08-29 01:23:41 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2007-08-29 01:23:41 +0000 |
| commit | d65bb2794effa5b62ee2e877dddf07f8d647a31b (patch) | |
| tree | 0cef933a2cd5c5857cd917bc424b68ce8130bb39 /src/libnr/nr-gradient.h | |
| parent | Whoops, put check on empty rect back in! Maybe no one noticed ;-) (diff) | |
| download | inkscape-d65bb2794effa5b62ee2e877dddf07f8d647a31b.tar.gz inkscape-d65bb2794effa5b62ee2e877dddf07f8d647a31b.zip | |
Refactor gradient rendering to facilitate future changes, since the simple
addition of noise has been reported to be generally ineffective by users.
(bzr r3605)
Diffstat (limited to 'src/libnr/nr-gradient.h')
| -rw-r--r-- | src/libnr/nr-gradient.h | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/src/libnr/nr-gradient.h b/src/libnr/nr-gradient.h index e39ece2af..092ed1e22 100644 --- a/src/libnr/nr-gradient.h +++ b/src/libnr/nr-gradient.h @@ -23,20 +23,22 @@ #define NR_GRADIENT_VECTOR_BITS 10 #define NR_GRADIENT_VECTOR_LENGTH (1<<NR_GRADIENT_VECTOR_BITS) -enum { - NR_GRADIENT_SPREAD_PAD, - NR_GRADIENT_SPREAD_REFLECT, - NR_GRADIENT_SPREAD_REPEAT +enum NRGradientSpread { + NR_GRADIENT_SPREAD_PAD, + NR_GRADIENT_SPREAD_REFLECT, + NR_GRADIENT_SPREAD_REPEAT +}; + +struct NRGradientRenderer : public NRRenderer { + const unsigned char *vector; + unsigned int spread; }; /* Linear */ -struct NRLGradientRenderer { - NRRenderer renderer; - const unsigned char *vector; - unsigned int spread; - double x0, y0; - double dx, dy; +struct NRLGradientRenderer : public NRGradientRenderer { + double x0, y0; + double dx, dy; }; NRRenderer *nr_lgradient_renderer_setup (NRLGradientRenderer *lgr, @@ -48,15 +50,12 @@ NRRenderer *nr_lgradient_renderer_setup (NRLGradientRenderer *lgr, /* Radial */ -struct NRRGradientRenderer { - NRRenderer renderer; - const unsigned char *vector; - unsigned int spread; - NRMatrix px2gs; - float cx, cy; - float fx, fy; - float r; - float C; +struct NRRGradientRenderer : public NRGradientRenderer { + NRMatrix px2gs; + float cx, cy; + float fx, fy; + float r; + float C; }; NRRenderer *nr_rgradient_renderer_setup (NRRGradientRenderer *rgr, @@ -70,3 +69,13 @@ NRRenderer *nr_rgradient_renderer_setup (NRRGradientRenderer *rgr, #endif +/* + * Local Variables: + * mode:c++ + * c-file-style:"stroustrup" + * c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + * indent-tabs-mode:nil + * fill-column:99 + * End: + */ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 : |
