Beispiel #1
0
    virtual void on_mouse_move(int x, int y, unsigned flags)
    {
        if(flags & agg::mouse_left)
        {
            if(m_idx == 3)
            {
                double dx = x - m_dx;
                double dy = y - m_dy;
                m_x[1] -= m_x[0] - dx;
                m_y[1] -= m_y[0] - dy;
                m_x[2] -= m_x[0] - dx;
                m_y[2] -= m_y[0] - dy;
                m_x[0] = dx;
                m_y[0] = dy;
                force_redraw();
                return;
            }

            if(m_idx >= 0)
            {
                m_x[m_idx] = x - m_dx;
                m_y[m_idx] = y - m_dy;
                force_redraw();
            }
        }
        else
        {
            on_mouse_button_up(x, y, flags);
        }
    }
    virtual void on_mouse_button_down(int x, int y, unsigned flags)
    {
        if(flags & agg::mouse_left)
        {
            if(m_quad.on_mouse_button_down(x, y))
            {
                force_redraw();
            }
            else
            {
                start_timer();
                m_test_flag = true;
                on_draw();
                on_draw();
                on_draw();
                on_draw();
                char buf[100];
                sprintf(buf, "time=%.3f", elapsed_time());
                m_test_flag = false;
                force_redraw();
                message(buf);
            }

        }
    }
 virtual void on_mouse_button_up(int x, int y, unsigned flags)
 {
     if(m_poly1.on_mouse_button_up(x, y))
     {
         force_redraw();
     }
     if(m_poly2.on_mouse_button_up(x, y))
     {
         force_redraw();
     }
 }
 virtual void on_mouse_button_down(int x, int y, unsigned flags)
 {
     if(flags & agg::mouse_left)
     {
         if(m_poly1.on_mouse_button_down(x, y))
         {
             force_redraw();
         }
         if(m_poly2.on_mouse_button_down(x, y))
         {
             force_redraw();
         }
     }
 }
Beispiel #5
0
 virtual void on_mouse_button_down(int x, int y, unsigned flags)
 {
     if(flags & agg::mouse_left)
     {
         g_x1 = x;
         g_y1 = y;
         force_redraw();
     }
     if(flags & agg::mouse_right)
     {
         g_x2 = x;
         g_y2 = y;
         force_redraw();
     }
 }
Beispiel #6
0
    //------------------------------------------------------------------------
    virtual void on_idle() 
    {
        bool redraw = false;
        if(m_rotate_polygon.status())
        {
            m_polygon_angle.value(m_polygon_angle.value() + 0.5);
            if(m_polygon_angle.value() >= 180.0) 
            {
                m_polygon_angle.value(m_polygon_angle.value() - 360.0);
            }
            redraw = true;
        }

        if(m_rotate_pattern.status())
        {
            m_pattern_angle.value(m_pattern_angle.value() - 0.5);
            if(m_pattern_angle.value() <= -180.0) 
            {
                m_pattern_angle.value(m_pattern_angle.value() + 360.0);
            }
            generate_pattern();
            redraw = true;
        }

        if(redraw) force_redraw();

    }
Beispiel #7
0
    virtual void on_ctrl_change()
    {
        if(m_benchmark.status())
        {
            int i;
            on_draw();
            update_window();

            scanline_rasterizer ras;

            pixfmt pixf(rbuf_window());
            base_renderer rb(pixf);
            solid_renderer solid(rb);
            draft_renderer draft(rb);

            char buf[256];
            if(m_draft.status())
            {
                start_timer();
                for(i = 0; i < 10; i++)
                {
                    draw_scene(ras, solid, draft);
                }
                sprintf(buf, "%3.3f milliseconds", elapsed_time());
            }
            else
            {
                double times[5];
                for(m_draw = 0; m_draw < 4; m_draw++)
                {
                    start_timer();
                    for(i = 0; i < 10; i++)
                    {
                        draw_scene(ras, solid, draft);
                    }
                    times[m_draw] = elapsed_time();
                }
                m_draw = 3;

                times[4]  = times[3];
                times[3] -= times[2];
                times[2] -= times[1];
                times[1] -= times[0];
            
                FILE* fd = fopen(full_file_name("benchmark"), "a");
                fprintf(fd, "%10.3f %10.3f %10.3f %10.3f %10.3f\n", 
                            times[0], times[1], times[2], times[3], times[4]);
                fclose(fd);
            

                sprintf(buf, "  pipeline  add_path         sort       render       total\n"
                             "%10.3f %10.3f %10.3f %10.3f %10.3f", 
                        times[0], times[1], times[2], times[3], times[4]);
            }
            message(buf);

            m_benchmark.status(false);
            force_redraw();
        }
    }
Beispiel #8
0
    void on_idle()
    {
        if(m_run.status())
        {
            if(m_cur_angle < 360.0)
            {
                m_cur_angle += m_step.value();
                copy_img_to_img(1, 0);
#ifdef AGG_ACCURATE_TIME
                start_timer();
#endif
                transform_image(m_step.value());
#ifdef AGG_ACCURATE_TIME
                m_time2 += elapsed_time();
#endif
                m_num_steps++;
            }
            else
            {
                m_cur_angle = 0.0;
#ifndef AGG_ACCURATE_TIME
                m_time2 = clock();
#endif
                wait_mode(true);
                m_run.status(false);
            }
            force_redraw();
        }
        else
        {
            wait_mode(true);
        }
    }
 void on_mouse_button_up(int x, int y, unsigned flags) 
 {
     m_point_idx = -1;
     m_hit_x = -1;
     m_hit_y = -1;
     force_redraw();
 }
    //------------------------------------------------------------------------
    virtual void on_idle() 
    {
        bool redraw = false;
        if(m_rotate_polygon.status())
        {
            m_polygon_angle.value(m_polygon_angle.value() + 0.5);
            if(m_polygon_angle.value() >= 180.0) 
            {
                m_polygon_angle.value(m_polygon_angle.value() - 360.0);
            }
            redraw = true;
        }

        if(m_rotate_image.status())
        {
            m_image_angle.value(m_image_angle.value() + 0.5);
            if(m_image_angle.value() >= 180.0) 
            {
                m_image_angle.value(m_image_angle.value() - 360.0);
            }
            redraw = true;
        }

        if(redraw) force_redraw();

    }
Beispiel #11
0
 virtual void on_mouse_move(int x, int y, unsigned flags) {
   if (flags & agg::mouse_left) {
     m_x = x;
     m_y = y;
     force_redraw();
   }
 }
Beispiel #12
0
void set_graphics(int g)
{
	char buf[1024];
	term_data* td = &term_window[0];
	int i = 0;
	
	do 
	{
		if (g == graphics_modes[i].grafID) 
		{
			arg_graphics = g;
			ANGBAND_GRAF = graphics_modes[i].pref;
			path_build(buf, sizeof(buf), ANGBAND_DIR_XTRA_GRAF, graphics_modes[i].file);
			use_transparency = FALSE;
			tile_w = graphics_modes[i].cell_width;
			tile_h = graphics_modes[i].cell_height;
			break;
		}
	} while (graphics_modes[i++].grafID != 0);

	/* Free up old graphics */
	if (graphical_tiles != NULL) cairo_surface_destroy(graphical_tiles);
	if (tile_pattern != NULL) cairo_pattern_destroy(tile_pattern);
		
	graphical_tiles = cairo_image_surface_create_from_png(buf);
	tile_pattern = cairo_pattern_create_for_surface(graphical_tiles);
	
	g_assert(graphical_tiles != NULL);
	g_assert(tile_pattern != NULL);
	scale = cairo_font_scaling(td);
	cairo_pattern_set_matrix(tile_pattern, &scale);
	force_redraw();
}
Beispiel #13
0
 //------------------------------------------------------------------------
 virtual void on_ctrl_change() {
   if (m_rotate_polygon.status() || m_rotate_image.status()) {
     wait_mode(false);
   } else {
     wait_mode(true);
   }
   force_redraw();
 }
Beispiel #14
0
  //------------------------------------------------------------------------
  virtual void on_mouse_move(int x, int y, unsigned flags) {
    if (flags & agg::mouse_left) {
      if (m_flag == 1) {
        m_image_cx = x - m_dx;
        m_image_cy = y - m_dy;
        force_redraw();
      }

      if (m_flag == 2) {
        m_polygon_cx = x - m_dx;
        m_polygon_cy = y - m_dy;
        force_redraw();
      }
    } else {
      on_mouse_button_up(x, y, flags);
    }
  }
Beispiel #15
0
 virtual void on_mouse_button_up(int x, int y, unsigned flags)
 {
     if(m_quad1.on_mouse_button_up(x, y) ||
        m_quad2.on_mouse_button_up(x, y) )
     {
         force_redraw();
     }
 }
Beispiel #16
0
    virtual void on_mouse_button_down(int x, int y, unsigned flags)
    {
        if(flags & agg::mouse_left)
        {
            int width = rbuf_window().width();
            int height = rbuf_window().height();
            transform(width, height, x, y);
            force_redraw();
        }

        if(flags & agg::mouse_right)
        {
            g_skew_x = x;
            g_skew_y = y;
            force_redraw();
        }
    }
Beispiel #17
0
 virtual void on_mouse_button_down(int x, int y, unsigned flags) {
   if (flags & agg::mouse_left) {
     m_mouse_x = x;
     m_mouse_y = y;
     trans_affine_resizing().inverse_transform(&m_mouse_x, &m_mouse_y);
     force_redraw();
   }
 }
    virtual void on_key(int x, int y, unsigned key, unsigned flags)
    {
        if(key == '+' || key == agg::key_kp_plus)
        {
            m_scale *= agg::trans_affine_translation(-x, -y);
            m_scale *= agg::trans_affine_scaling(1.1);
            m_scale *= agg::trans_affine_translation(x, y);
            force_redraw();
        }

        if(key == '-' || key == agg::key_kp_minus)
        {
            m_scale *= agg::trans_affine_translation(-x, -y);
            m_scale *= agg::trans_affine_scaling(1/1.1);
            m_scale *= agg::trans_affine_translation(x, y);
            force_redraw();
        }
    }
Beispiel #19
0
 virtual void on_mouse_button_down(int x, int y, unsigned flags)
 {
     if(flags & agg::mouse_left)
     {
         m_cx = x;
         m_cy = y;
         force_redraw();
     }
 }
 void on_mouse_button_down(int x, int y, unsigned flags) 
 {
     if(flags & 1)
     {
         double xd = x;
         double yd = y;
         double r = 4.0 / m_scale.scale();
         m_scale.inverse_transform(&xd, &yd);
         m_point_idx = m_shape.hit_test(xd, yd, r);
         force_redraw();
     }
     if(flags & 2)
     {
         m_hit_x = x;
         m_hit_y = y;
         force_redraw();
     }
 }
Beispiel #21
0
void me::WindowManager::toggle(ColourEffect which)
{
    colour_effect = (colour_effect == which) ? none : which;
    me::DemoCompositor::for_each([this](me::DemoCompositor& c)
    {
        c.set_colour_effect(colour_effect);
    });
    force_redraw();
}
Beispiel #22
0
 virtual void on_mouse_button_down(int x, int y, unsigned flags)
 {
     if(flags & agg::mouse_left)
     {
         m_rx = fabs(width()/2 - x);
         m_ry = fabs(height()/2 - y);
         force_redraw();
     }
 }
Beispiel #23
0
 virtual void on_mouse_button_down(int x, int y, unsigned flags)
 {
     if(flags)
     {
         m_center_x = x;
         m_center_y = y;
         force_redraw();
     }
 }
 virtual void on_mouse_move(int x, int y, unsigned flags)
 {
     if(flags & agg::mouse_left)
     {
         if(m_poly1.on_mouse_move(x, y))
         {
             force_redraw();
         }
         if(m_poly2.on_mouse_move(x, y))
         {
             force_redraw();
         }
     }
     if((flags & agg::mouse_left) == 0)
     {
         on_mouse_button_up(x, y, flags);
     }
 }
Beispiel #25
0
 virtual void on_mouse_move(int x, int y, unsigned flags)
 {
     if(flags & 1)
     {
         m_center_x = x;
         m_center_y = y;
         force_redraw();
     }
 }
Beispiel #26
0
 virtual void on_idle()
 {
     int i;
     for(i = 0; i < 6; i++)
     {
         move_point(m_poly.xn(i), m_poly.yn(i), m_dx[i], m_dy[i]);
     }
     force_redraw();
 }
Beispiel #27
0
 virtual void on_ctrl_change()
 {
     if(m_reset.status())
     {
         on_init();
         m_reset.status(false);
         force_redraw();
     }
 }
Beispiel #28
0
  virtual void on_mouse_button_down(int x, int y, unsigned flags) {
    if (flags & agg::mouse_left) {
      generate();
      force_redraw();
    }

    if (flags & agg::mouse_right) {
      wait_mode(!wait_mode());
    }
  }
 virtual void on_idle()
 {
     int i;
     for(i = 0; i < 6; i++)
     {
         move_point(m_poly1.xn(i), m_poly1.yn(i), m_dx1[i], m_dy1[i]);
         move_point(m_poly2.xn(i), m_poly2.yn(i), m_dx2[i], m_dy2[i]);
         normalize_point(i);
     }
     force_redraw();
 }
Beispiel #30
0
    virtual void on_key(int x, int y, unsigned key, unsigned flags)
    {
        if(key == ' ')
        {
            m_shape.read_next();
            m_shape.scale(width(), height());
            force_redraw();
        }

        if(key == '+' || key == agg::key_kp_plus)
        {
            m_scale *= agg::trans_affine_translation(-x, -y);
            m_scale *= agg::trans_affine_scaling(1.1);
            m_scale *= agg::trans_affine_translation(x, y);
            force_redraw();
        }

        if(key == '-' || key == agg::key_kp_minus)
        {
            m_scale *= agg::trans_affine_translation(-x, -y);
            m_scale *= agg::trans_affine_scaling(1/1.1);
            m_scale *= agg::trans_affine_translation(x, y);
            force_redraw();
        }

        if(key == agg::key_left)
        {
            m_scale *= agg::trans_affine_translation(-x, -y);
            m_scale *= agg::trans_affine_rotation(-agg::pi / 20.0);
            m_scale *= agg::trans_affine_translation(x, y);
            force_redraw();
        }

        if(key == agg::key_right)
        {
            m_scale *= agg::trans_affine_translation(-x, -y);
            m_scale *= agg::trans_affine_rotation(agg::pi / 20.0);
            m_scale *= agg::trans_affine_translation(x, y);
            force_redraw();
        }
    }