16 #include <agg_conv_transform.h> 17 #include <agg_gamma_functions.h> 18 #include <agg_gamma_lut.h> 19 #include <agg_gradient_lut.h> 20 #include <agg_pixfmt_rgba.h> 21 #include <agg_rasterizer_scanline_aa.h> 22 #include <agg_renderer_base.h> 23 #include <agg_renderer_scanline.h> 24 #include <agg_scanline_p.h> 25 #include <agg_span_allocator.h> 26 #include <agg_span_interpolator_linear.h> 27 #include <agg_span_gradient.h> 35 template<
class GradientFunctionType>
37 drawGradient (GradientFunctionType& gradientFunction,
49 ColorFunctionType> SpanGradientType;
52 invertMatrix.invert();
53 InterpolatorType interpolator (invertMatrix);
55 ColorFunctionType colorFunction (agg::rgba8 (0, 0, 0, 0xff),
56 agg::rgba8 (0xff, 0xff, 0xff, 0xff),
59 SpanGradientType sg (interpolator, gradientFunction, colorFunction, 0.0, 50.0);
65 ras.auto_close(
false);
69 agg::render_scanlines_aa(ras, scanline, rBase, sa, sg);
73 main (
int argc,
const char* argv[])
77 const int imageWidth = 1000;
78 const int imageHeight = 300;
80 const int pixelSize = PixelFormat::pix_width;
86 unsigned char *imageBuffer =
new unsigned char[imageWidth * imageHeight * pixelSize];
89 renderBuffer.attach (imageBuffer, imageWidth, imageHeight, imageWidth * pixelSize);
90 pixFmt.attach(renderBuffer);
93 const agg::rgba8 transparentwhiteColor (0xff, 0xff, 0xff, 0);
94 const agg::rgba8 blueColor (0, 0, 0xff, 0xff);
97 rBase.clear(transparentwhiteColor);
102 ras.auto_close(
false);
112 SimplePath path (rect,
sizeof(rect) /
sizeof(
double));
124 matrix.translate(x, y);
125 drawGradient (gradientFunction,
136 matrix.translate(x, y);
137 drawGradient (gradientFunction,
148 matrix.translate(x, y);
149 drawGradient (gradientFunction,
160 matrix.translate(x, y);
161 drawGradient (gradientFunction,
172 matrix.translate(x, y);
173 drawGradient (gradientFunction,
184 matrix.translate(x, y);
185 drawGradient (gradientFunction,
196 matrix.translate(x, y);
197 drawGradient (gradientFunction,
208 matrix.translate(x, y);
209 drawGradient (gradientFunction,
220 matrix.translate(x, y);
221 drawGradient (gradientFunction,
232 matrix.translate(x, y);
233 drawGradient (gradientFunction,
251 matrix.translate(x, y);
264 matrix.translate(x, y);
277 matrix.translate(x, y);
290 matrix.translate(x, y);
303 matrix.translate(x, y);
316 matrix.translate(x, y);
329 matrix.translate(x, y);
342 matrix.translate(x, y);
355 matrix.translate(x, y);
368 matrix.translate(x, y);
387 matrix.translate(x, y);
400 matrix.translate(x, y);
413 matrix.translate(x, y);
426 matrix.translate(x, y);
439 matrix.translate(x, y);
452 matrix.translate(x, y);
465 matrix.translate(x, y);
478 matrix.translate(x, y);
491 matrix.translate(x, y);
504 matrix.translate(x, y);
513 char fileName[1000] = { 0 };
516 sprintf (fileName,
"%s/", argv[1]);
518 strcat(fileName,
"tutorial_gradient_1.png");
519 writePng<RendererBaseType> (fileName, rBase);
525 printf (
"%s\n", ex.getMessage());
530 printf (
"Unknown exception detected.\n");