aboutsummaryrefslogtreecommitdiff
path: root/src/game_tab/left_panel/board/BoardCanvas.cpp
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2022-12-28 10:37:57 +0100
committerLoic Guegan <manzerbredes@mailbox.org>2022-12-28 10:37:57 +0100
commit2151ccbe650132c8d07fba3c70c63ddc768dd38f (patch)
tree24f35f19e0936dd1515233514b1d9e78654eade5 /src/game_tab/left_panel/board/BoardCanvas.cpp
parent35d9a6f0d9197efb91ee7453cb93602f06f4dc0a (diff)
Improve drawing
Diffstat (limited to 'src/game_tab/left_panel/board/BoardCanvas.cpp')
-rw-r--r--src/game_tab/left_panel/board/BoardCanvas.cpp18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/game_tab/left_panel/board/BoardCanvas.cpp b/src/game_tab/left_panel/board/BoardCanvas.cpp
index 476b3aa..abe77c5 100644
--- a/src/game_tab/left_panel/board/BoardCanvas.cpp
+++ b/src/game_tab/left_panel/board/BoardCanvas.cpp
@@ -14,7 +14,6 @@ BoardCanvas::BoardCanvas(wxFrame *parent)
ApplyPreferences();
// The following should be called when using an EVT_PAINT handler
SetBackgroundStyle(wxBG_STYLE_PAINT);
- //buffer=new wxBitmap(500,500,32);
}
BoardCanvas::~BoardCanvas() {
@@ -35,6 +34,8 @@ void BoardCanvas::OnPaint(wxPaintEvent &event) {
wxBufferedPaintDC dc(this);
dc.SetBackground(*wxWHITE_BRUSH);
dc.Clear();
+
+ // Setting up required attributes
REFRESH_MOUSE_LOCATION();
square_width = t->GetSquaresSizes();
canvas_size = dc.GetSize();
@@ -44,15 +45,12 @@ void BoardCanvas::OnPaint(wxPaintEvent &event) {
boardX = 0;
if (boardY > canvas_size.y)
boardY = 0;
- DrawBoard(dc);
-
- // TODO: Make DrawBoard() drawing into wxMemoryDC!
- /*wxMemoryDC dc2(*buffer);
- dc2.SetBackgroundMode(wxTRANSPARENT);
- dc2.SetPen(wxPen(*wxBLACK, 3));
- dc2.DrawRectangle(10,10,100,100);
- dc.Blit(0, 0, 500,500, (wxDC*)&dc2,0,0);*/
+ // Setup buffer (later use for animations)
+ buffer=new wxBitmap(canvas_size.x,canvas_size.y,32);
+ wxMemoryDC memDC(*buffer);
+ DrawBoard(memDC);
+ dc.Blit(0,0,canvas_size.x,canvas_size.y,(wxDC*)&memDC,0,0);
}
void BoardCanvas::ApplyPreferences() {
@@ -85,7 +83,7 @@ void BoardCanvas::SetupBoard(std::string board, bool is_black_turn,
Refresh();
}
-void BoardCanvas::DrawBoard(wxBufferedPaintDC &dc) {
+void BoardCanvas::DrawBoard(wxDC &dc) {
std::uint32_t piece_width = t->GetPiecesSizes();
std::uint32_t centrer_offset = (square_width - piece_width) / 2;