diff options
author | gregory guy <gregory-tde@laposte.net> | 2020-10-02 12:42:44 +0200 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2020-10-05 21:43:02 +0900 |
commit | c64cc0c3b3778eb17dde2670976d3e5314689143 (patch) | |
tree | 106109eada8037ecf6ca9dd8c1aac403bb0ac633 /src/art_render_gradient.h | |
parent | 000a818a2cc613690ee5ed4d47685722fff39e83 (diff) | |
download | libart-lgpl-c64cc0c3b3778eb17dde2670976d3e5314689143.tar.gz libart-lgpl-c64cc0c3b3778eb17dde2670976d3e5314689143.zip |
Libart-lgpl moved into a 'src' folder for consistency sake with the other
modules.
Add basic cmake build instructions.
Rework of the README file.
Some cosmetics.
Signed-off-by: gregory guy <gregory-tde@laposte.net>
(cherry picked from commit 8349a964c20f96504886ece0f2c8ba0c7489fff3)
Diffstat (limited to 'src/art_render_gradient.h')
-rw-r--r-- | src/art_render_gradient.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/src/art_render_gradient.h b/src/art_render_gradient.h new file mode 100644 index 0000000..e253afe --- /dev/null +++ b/src/art_render_gradient.h @@ -0,0 +1,89 @@ +/* + * art_render_gradient.h: Gradient image source for modular rendering. + * + * Libart_LGPL - library of basic graphic primitives + * Copyright (C) 2000 Raph Levien + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + * Authors: Raph Levien <raph@acm.org> + * Alexander Larsson <alla@lysator.liu.se> + */ + +#ifndef __ART_RENDER_GRADIENT_H__ +#define __ART_RENDER_GRADIENT_H__ + +#ifdef LIBART_COMPILATION +#include "art_config.h" +#include "art_filterlevel.h" +#include "art_render.h" +#else +#include <libart_lgpl/art_config.h> +#include <libart_lgpl/art_filterlevel.h> +#include <libart_lgpl/art_render.h> +#endif + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +typedef struct _ArtGradientLinear ArtGradientLinear; +typedef struct _ArtGradientRadial ArtGradientRadial; +typedef struct _ArtGradientStop ArtGradientStop; + +typedef enum { + ART_GRADIENT_PAD, + ART_GRADIENT_REFLECT, + ART_GRADIENT_REPEAT +} ArtGradientSpread; + +struct _ArtGradientLinear { + double a; + double b; + double c; + ArtGradientSpread spread; + int n_stops; + ArtGradientStop *stops; +}; + +struct _ArtGradientRadial { + double affine[6]; /* transforms user coordinates to unit circle */ + double fx, fy; /* focal point in unit circle coords */ + int n_stops; + ArtGradientStop *stops; + ArtGradientSpread spread; +}; + +struct _ArtGradientStop { + double offset; + ArtPixMaxDepth color[ART_MAX_CHAN + 1]; +}; + +LIBART_EXPORT void +art_render_gradient_linear (ArtRender *render, + const ArtGradientLinear *gradient, + ArtFilterLevel level); + +LIBART_EXPORT void +art_render_gradient_radial (ArtRender *render, + const ArtGradientRadial *gradient, + ArtFilterLevel level); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __ART_RENDER_GRADIENT_H__ */ |