Hi, I am working on a chess GUI for a pet project (a naive Chess engine to learn rust). I tried to learn something from the Offline Chess Puzzles app, but the code base is relatively large for a begginer.
I worked a bit with GTK Apps, so I thought I should create my own widget for the checkerboard, so I started to draw a simple square, which works:
impl<Message, Theme, Renderer> Widget<Message, Theme, Renderer> for Board<'_>
where
Renderer: renderer::Renderer,
{
fn size(&self) -> Size<Length> {
Size {
width: Length::Fill,
height: Length::Fill,
}
}
fn layout(
&self,
_tree: &mut Tree,
_renderer: &Renderer,
_limits: &layout::Limits,
) -> Node {
Node::new(Size::new(self.width, self.height))
}
fn draw(&self, _tree: &Tree, renderer: &mut Renderer, _theme: &Theme, _style: &Style, layout: Layout, _cursor: Cursor, _viewport: &Rectangle) {
renderer.fill_quad(
renderer::Quad {
bounds: layout.bounds(),
border: Border::default(),
shadow: Shadow::default(),
},
Color::BLACK
);
}
}
However, I am struggling to understand what to do next? Is it possible to draw a more than one Quad at a time? Do I have to implement my own Quad?
Should I switch to svg + canvas? or something like that?