~ubuntu-branches/ubuntu/lucid/agg/lucid-proposed

« back to all changes in this revision

Viewing changes to examples/image_transforms.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Rene Engelhard
  • Date: 2006-10-22 15:16:27 UTC
  • mfrom: (1.1.1 upstream) (2.1.1 edgy)
  • Revision ID: james.westby@ubuntu.com-20061022151627-wx9inil9o7z40xwc
Tags: 2.4+20060719-3
upload to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
#include "agg_span_interpolator_linear.h"
12
12
#include "agg_scanline_u.h"
13
13
#include "agg_renderer_scanline.h"
 
14
#include "agg_span_allocator.h"
14
15
#include "ctrl/agg_slider_ctrl.h"
15
16
#include "ctrl/agg_rbox_ctrl.h"
16
17
#include "ctrl/agg_cbox_ctrl.h"
151
152
        typedef agg::renderer_scanline_aa_solid<renderer_base> renderer_solid;
152
153
       
153
154
        pixfmt pixf(rbuf_window());
 
155
        pixfmt pixf_img(rbuf_img(0));
154
156
        renderer_base rb(pixf);
155
157
        renderer_solid rs(rb);
156
158
 
246
248
        interpolator_type interpolator(image_mtx);
247
249
        agg::span_allocator<agg::rgba8> sa;
248
250
 
249
 
 
250
 
/*
251
 
        // nearest neighbor
252
 
        //------------------------------------------
253
 
        typedef agg::span_image_filter_rgba_nn<color_type, agg::order_bgra, interpolator_type> span_gen_type;
254
 
        typedef agg::renderer_scanline_aa<renderer_base, span_gen_type> renderer_type;
255
 
 
256
 
        span_gen_type sg(sa, rbuf_img(0), agg::rgba(1,1,1,0), interpolator);
257
 
        //------------------------------------------
258
 
*/
259
 
 
260
 
 
261
 
 
262
 
 
263
251
        // "hardcoded" bilinear filter
264
252
        //------------------------------------------
265
 
        typedef agg::span_image_filter_rgba_bilinear<color_type, agg::order_bgra, interpolator_type> span_gen_type;
266
 
        typedef agg::renderer_scanline_aa<renderer_base, span_gen_type> renderer_type;
267
 
 
268
 
        span_gen_type sg(sa, rbuf_img(0), agg::rgba(1,1,1,0), interpolator);
269
 
        //------------------------------------------
270
 
 
271
 
 
272
 
 
273
 
 
274
 
/*
275
 
        // arbitrary filter
276
 
        //------------------------------------------
277
 
        typedef agg::span_image_filter_rgba<color_type, agg::order_bgra, interpolator_type> span_gen_type;
278
 
        typedef agg::renderer_scanline_aa<renderer_base, span_gen_type> renderer_type;
279
 
 
280
 
        agg::image_filter<agg::image_filter_spline36> filter;
281
 
 
282
 
        span_gen_type sg(sa, rbuf_img(0), agg::rgba(1,1,1,0), interpolator, filter);
283
 
        //------------------------------------------
284
 
*/
285
 
 
286
 
 
287
 
 
288
 
        renderer_type ri(rb, sg);
289
 
 
290
 
        agg::rasterizer_scanline_aa<> pf;
 
253
        typedef agg::span_image_filter_rgba_bilinear_clip<pixfmt, 
 
254
                                                          interpolator_type> span_gen_type;
 
255
        span_gen_type sg(pixf_img, agg::rgba(1,1,1), interpolator);
 
256
        //------------------------------------------
 
257
 
 
258
        agg::rasterizer_scanline_aa<> ras;
291
259
        agg::scanline_u8 sl;
292
260
        agg::path_storage ps;
293
261
        create_star(ps);
294
262
 
295
263
        agg::conv_transform<agg::path_storage> tr(ps, polygon_mtx);
296
264
 
297
 
        pf.add_path(tr);
298
 
        agg::render_scanlines(pf, sl, ri);
 
265
        ras.add_path(tr);
 
266
        agg::render_scanlines_aa(ras, sl, rb, sa, sg);
299
267
 
300
268
        agg::ellipse e1(m_image_cx, m_image_cy, 5, 5, 20);
301
269
        agg::ellipse e2(m_image_cx, m_image_cy, 2, 2, 20);
302
270
        agg::conv_stroke<agg::ellipse> c1(e1);
303
271
 
304
272
        rs.color(agg::rgba(0.7,0.8,0));
305
 
        pf.add_path(e1);
306
 
        agg::render_scanlines(pf, sl, rs);
 
273
        ras.add_path(e1);
 
274
        agg::render_scanlines(ras, sl, rs);
307
275
 
308
276
        rs.color(agg::rgba(0,0,0));
309
 
        pf.add_path(c1);
310
 
        agg::render_scanlines(pf, sl, rs);
311
 
 
312
 
        pf.add_path(e2);
313
 
        agg::render_scanlines(pf, sl, rs);
314
 
 
315
 
        agg::render_ctrl(pf, sl, rs, m_polygon_angle);
316
 
        agg::render_ctrl(pf, sl, rs, m_polygon_scale);
317
 
        agg::render_ctrl(pf, sl, rs, m_image_angle);
318
 
        agg::render_ctrl(pf, sl, rs, m_image_scale);
319
 
        agg::render_ctrl(pf, sl, rs, m_rotate_polygon);
320
 
        agg::render_ctrl(pf, sl, rs, m_rotate_image);
321
 
        agg::render_ctrl(pf, sl, rs, m_example);
 
277
        ras.add_path(c1);
 
278
        agg::render_scanlines(ras, sl, rs);
 
279
 
 
280
        ras.add_path(e2);
 
281
        agg::render_scanlines(ras, sl, rs);
 
282
 
 
283
        agg::render_ctrl(ras, sl, rb, m_polygon_angle);
 
284
        agg::render_ctrl(ras, sl, rb, m_polygon_scale);
 
285
        agg::render_ctrl(ras, sl, rb, m_image_angle);
 
286
        agg::render_ctrl(ras, sl, rb, m_image_scale);
 
287
        agg::render_ctrl(ras, sl, rb, m_rotate_polygon);
 
288
        agg::render_ctrl(ras, sl, rb, m_rotate_image);
 
289
        agg::render_ctrl(ras, sl, rb, m_example);
322
290
    }
323
291
 
324
292
 
337
305
            }
338
306
            else
339
307
            {
340
 
                agg::rasterizer_scanline_aa<> pf;
 
308
                agg::rasterizer_scanline_aa<> ras;
341
309
                agg::trans_affine polygon_mtx;
342
310
 
343
311
                polygon_mtx *= agg::trans_affine_translation(-m_polygon_cx, -m_polygon_cy);
349
317
                create_star(ps);
350
318
 
351
319
                agg::conv_transform<agg::path_storage> tr(ps, polygon_mtx);
352
 
                pf.add_path(tr);
353
 
                if(pf.hit_test(x, y))
 
320
                ras.add_path(tr);
 
321
                if(ras.hit_test(x, y))
354
322
                {
355
323
                    m_dx = x - m_polygon_cx;
356
324
                    m_dy = y - m_polygon_cy;