mirror of https://codeberg.org/topola/topola.git
sdl2-demo: fix compilation errors
This commit is contained in:
parent
de17adb01c
commit
7e022aa2cf
|
|
@ -13,7 +13,7 @@ use geo::point;
|
||||||
use painter::Painter;
|
use painter::Painter;
|
||||||
use petgraph::visit::{EdgeRef, IntoEdgeReferences};
|
use petgraph::visit::{EdgeRef, IntoEdgeReferences};
|
||||||
use topola::autorouter::selection::Selection;
|
use topola::autorouter::selection::Selection;
|
||||||
use topola::autorouter::Autorouter;
|
use topola::autorouter::{Autorouter, AutorouterStatus};
|
||||||
use topola::drawing::dot::FixedDotWeight;
|
use topola::drawing::dot::FixedDotWeight;
|
||||||
use topola::drawing::graph::{MakePrimitive, PrimitiveIndex};
|
use topola::drawing::graph::{MakePrimitive, PrimitiveIndex};
|
||||||
use topola::drawing::primitive::MakePrimitiveShape;
|
use topola::drawing::primitive::MakePrimitiveShape;
|
||||||
|
|
@ -28,7 +28,7 @@ use topola::layout::zone::MakePolyShape;
|
||||||
use topola::layout::Layout;
|
use topola::layout::Layout;
|
||||||
use topola::router::draw::DrawException;
|
use topola::router::draw::DrawException;
|
||||||
use topola::router::navmesh::{Navmesh, NavmeshEdgeReference, VertexIndex};
|
use topola::router::navmesh::{Navmesh, NavmeshEdgeReference, VertexIndex};
|
||||||
use topola::router::trace::{Trace, Tracer};
|
use topola::router::tracer::{Trace, Tracer};
|
||||||
use topola::router::RouterObserverTrait;
|
use topola::router::RouterObserverTrait;
|
||||||
|
|
||||||
use sdl2::event::Event;
|
use sdl2::event::Event;
|
||||||
|
|
@ -84,7 +84,7 @@ impl RulesTrait for SimpleRules {
|
||||||
// Clunky enum to work around borrow checker.
|
// Clunky enum to work around borrow checker.
|
||||||
enum RouterOrLayout<'a, R: RulesTrait> {
|
enum RouterOrLayout<'a, R: RulesTrait> {
|
||||||
Router(&'a mut Router<'a, R>),
|
Router(&'a mut Router<'a, R>),
|
||||||
Layout(Arc<Mutex<Layout<R>>>),
|
Layout(&'a Layout<R>),
|
||||||
}
|
}
|
||||||
|
|
||||||
struct DebugRouterObserver<'a> {
|
struct DebugRouterObserver<'a> {
|
||||||
|
|
@ -124,7 +124,7 @@ impl<'a, R: RulesTrait> RouterObserverTrait<R> for DebugRouterObserver<'a> {
|
||||||
self.renderer,
|
self.renderer,
|
||||||
self.font_context,
|
self.font_context,
|
||||||
self.view,
|
self.view,
|
||||||
RouterOrLayout::Layout(tracer.layout.clone()),
|
RouterOrLayout::Layout(tracer.layout),
|
||||||
None,
|
None,
|
||||||
self.navmesh.clone(),
|
self.navmesh.clone(),
|
||||||
&trace.path,
|
&trace.path,
|
||||||
|
|
@ -143,7 +143,7 @@ impl<'a, R: RulesTrait> RouterObserverTrait<R> for DebugRouterObserver<'a> {
|
||||||
self.renderer,
|
self.renderer,
|
||||||
self.font_context,
|
self.font_context,
|
||||||
self.view,
|
self.view,
|
||||||
RouterOrLayout::Layout(tracer.layout.clone()),
|
RouterOrLayout::Layout(tracer.layout),
|
||||||
None,
|
None,
|
||||||
self.navmesh.clone(),
|
self.navmesh.clone(),
|
||||||
&path,
|
&path,
|
||||||
|
|
@ -175,7 +175,7 @@ impl<'a, R: RulesTrait> RouterObserverTrait<R> for DebugRouterObserver<'a> {
|
||||||
self.renderer,
|
self.renderer,
|
||||||
self.font_context,
|
self.font_context,
|
||||||
self.view,
|
self.view,
|
||||||
RouterOrLayout::Layout(tracer.layout.clone()),
|
RouterOrLayout::Layout(tracer.layout),
|
||||||
None,
|
None,
|
||||||
self.navmesh.clone(),
|
self.navmesh.clone(),
|
||||||
&trace.path,
|
&trace.path,
|
||||||
|
|
@ -251,7 +251,7 @@ fn main() -> Result<(), anyhow::Error> {
|
||||||
)?;
|
)?;
|
||||||
//let design = DsnDesign::load_from_file("tests/data/test/test.dsn")?;
|
//let design = DsnDesign::load_from_file("tests/data/test/test.dsn")?;
|
||||||
//dbg!(&design);
|
//dbg!(&design);
|
||||||
let layout = Arc::new(Mutex::new(design.make_board()));
|
let board = design.make_board();
|
||||||
//let mut router = Router::new(layout);
|
//let mut router = Router::new(layout);
|
||||||
|
|
||||||
let mut view = View {
|
let mut view = View {
|
||||||
|
|
@ -265,7 +265,7 @@ fn main() -> Result<(), anyhow::Error> {
|
||||||
&mut renderer,
|
&mut renderer,
|
||||||
&font_context,
|
&font_context,
|
||||||
&mut view,
|
&mut view,
|
||||||
RouterOrLayout::Layout(layout.clone()),
|
RouterOrLayout::Layout(board.layout()),
|
||||||
None,
|
None,
|
||||||
None,
|
None,
|
||||||
&[],
|
&[],
|
||||||
|
|
@ -274,9 +274,9 @@ fn main() -> Result<(), anyhow::Error> {
|
||||||
-1,
|
-1,
|
||||||
);
|
);
|
||||||
|
|
||||||
let mut autorouter = Autorouter::new(layout.clone()).unwrap();
|
let mut autorouter = Autorouter::new(board).unwrap();
|
||||||
if let Some(mut autoroute) = autorouter.autoroute_walk(&Selection::new()) {
|
if let Ok(mut autoroute) = autorouter.autoroute_walk(&Selection::new()) {
|
||||||
while autoroute.step(
|
/*while autoroute.step(
|
||||||
&mut autorouter,
|
&mut autorouter,
|
||||||
&mut DebugRouterObserver::new(
|
&mut DebugRouterObserver::new(
|
||||||
&mut event_pump,
|
&mut event_pump,
|
||||||
|
|
@ -288,6 +288,27 @@ fn main() -> Result<(), anyhow::Error> {
|
||||||
),
|
),
|
||||||
) {
|
) {
|
||||||
//
|
//
|
||||||
|
}*/
|
||||||
|
|
||||||
|
loop {
|
||||||
|
let status = match autoroute.step(
|
||||||
|
&mut autorouter,
|
||||||
|
&mut DebugRouterObserver::new(
|
||||||
|
&mut event_pump,
|
||||||
|
&window,
|
||||||
|
&mut renderer,
|
||||||
|
&font_context,
|
||||||
|
&mut view,
|
||||||
|
autoroute.navmesh().clone(),
|
||||||
|
),
|
||||||
|
) {
|
||||||
|
Ok(status) => status,
|
||||||
|
Err(err) => break,
|
||||||
|
};
|
||||||
|
|
||||||
|
if let AutorouterStatus::Finished = status {
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -306,7 +327,7 @@ fn main() -> Result<(), anyhow::Error> {
|
||||||
&mut renderer,
|
&mut renderer,
|
||||||
&font_context,
|
&font_context,
|
||||||
&mut view,
|
&mut view,
|
||||||
RouterOrLayout::Layout(layout.clone()),
|
RouterOrLayout::Layout(autorouter.board().layout()),
|
||||||
None,
|
None,
|
||||||
None,
|
None,
|
||||||
&[],
|
&[],
|
||||||
|
|
@ -377,7 +398,7 @@ fn render_times(
|
||||||
|
|
||||||
let mut painter = Painter::new(&mut canvas);
|
let mut painter = Painter::new(&mut canvas);
|
||||||
|
|
||||||
let layout_arc_mutex = match router_or_layout {
|
let layout = match router_or_layout {
|
||||||
RouterOrLayout::Router(ref mut router) => {
|
RouterOrLayout::Router(ref mut router) => {
|
||||||
let state = event_pump.mouse_state();
|
let state = event_pump.mouse_state();
|
||||||
|
|
||||||
|
|
@ -400,11 +421,10 @@ fn render_times(
|
||||||
maybe_navmesh = None;
|
maybe_navmesh = None;
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
router.layout().clone()
|
router.layout()
|
||||||
}
|
}
|
||||||
RouterOrLayout::Layout(ref layout) => layout.clone(),
|
RouterOrLayout::Layout(ref layout) => layout.clone(),
|
||||||
};
|
};
|
||||||
let layout = layout_arc_mutex.lock().unwrap();
|
|
||||||
|
|
||||||
//let result = panic::catch_unwind(|| {
|
//let result = panic::catch_unwind(|| {
|
||||||
for node in layout.drawing().layer_primitive_nodes(1) {
|
for node in layout.drawing().layer_primitive_nodes(1) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue