karbon
art_render_misc.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 #ifndef __ART_RENDER_MISC_H__
00033 #define __ART_RENDER_MISC_H__
00034
00035 #ifdef LIBART_COMPILATION
00036 #include "art_filterlevel.h"
00037 #include "art_render.h"
00038 #else
00039 #include <libart_lgpl/art_filterlevel.h>
00040 #include <libart_lgpl/art_render.h>
00041 #endif
00042
00043 #ifdef __cplusplus
00044 extern "C" {
00045 #endif
00046
00047 typedef struct _ArtGradientLinear ArtGradientLinear;
00048 typedef struct _ArtGradientRadial ArtGradientRadial;
00049 typedef struct _ArtGradientConical ArtGradientConical;
00050 typedef struct _ArtGradientStop ArtGradientStop;
00051
00052 typedef enum {
00053 ART_GRADIENT_PAD,
00054 ART_GRADIENT_REFLECT,
00055 ART_GRADIENT_REPEAT
00056 } ArtGradientSpread;
00057
00058 struct _ArtGradientLinear {
00059 double a;
00060 double b;
00061 double c;
00062 ArtGradientSpread spread;
00063 int n_stops;
00064 ArtGradientStop *stops;
00065 };
00066
00067 struct _ArtGradientRadial {
00068 double affine[6];
00069 double fx, fy;
00070 int n_stops;
00071 ArtGradientSpread spread;
00072 ArtGradientStop *stops;
00073 };
00074
00075 struct _ArtGradientConical {
00076 double cx, cy;
00077 double r;
00078 ArtGradientSpread spread;
00079 art_u8 *buf;
00080 int n_stops;
00081 ArtGradientStop *stops;
00082 };
00083
00084
00085 struct _ArtGradientStop {
00086 double offset;
00087 ArtPixMaxDepth color[ART_MAX_CHAN + 1];
00088 };
00089
00090 void
00091 art_karbon_render_gradient_linear (ArtRender *render,
00092 const ArtGradientLinear *gradient,
00093 ArtFilterLevel level);
00094
00095 void
00096 art_karbon_render_gradient_radial (ArtRender *render,
00097 const ArtGradientRadial *gradient,
00098 ArtFilterLevel level);
00099
00100 void
00101 art_karbon_render_gradient_conical (ArtRender *render,
00102 const ArtGradientConical *gradient,
00103 ArtFilterLevel level);
00104
00105 #ifdef __cplusplus
00106 }
00107 #endif
00108
00109 #endif
|