void Playfield::draw(DrawingContext& gc) { scene_context->clear(); state.push(*scene_context); capture_rectangle.set_pingu(current_pingu); capture_rectangle.draw(*scene_context); server->get_world()->draw(*scene_context); state.pop(*scene_context); gc.draw(new SceneContextDrawingRequest(scene_context.get(), Vector2i(0,0), -10000)); gc.push_modelview(); gc.translate(rect.left, rect.top); // Draw the scrolling band if (mouse_scrolling && !globals::drag_drop_scrolling) { gc.draw_line(mouse_pos, scroll_center - Vector2i(0, 15), Color(0, 255, 0)); gc.draw_line(mouse_pos, scroll_center + Vector2i(0, 15), Color(0, 0, 255)); gc.draw_line(mouse_pos, scroll_center + Vector2i(15, 0), Color(0, 255, 255)); gc.draw_line(mouse_pos, scroll_center - Vector2i(15, 0), Color(255, 255, 0)); gc.draw_line(mouse_pos, scroll_center, Color(255, 0, 0)); } gc.pop_modelview(); }