diff options
| author | Loic Guegan <manzerbredes@mailbox.org> | 2022-12-28 08:38:21 +0100 |
|---|---|---|
| committer | Loic Guegan <manzerbredes@mailbox.org> | 2022-12-28 08:38:21 +0100 |
| commit | 15f713b58e13fd4ebcd8e68cd71fc6992e85bd6f (patch) | |
| tree | 695db22d5d74c9db1e997f74aac59417050d4ecc /src/game_tab | |
| parent | 214d46b8e26ae88b13f9a1a9083d36ce83671d46 (diff) | |
Switch to buffered DC
Diffstat (limited to 'src/game_tab')
| -rw-r--r-- | src/game_tab/left_panel/board/BoardCanvas.cpp | 8 | ||||
| -rw-r--r-- | src/game_tab/left_panel/board/BoardCanvas.hpp | 3 |
2 files changed, 8 insertions, 3 deletions
diff --git a/src/game_tab/left_panel/board/BoardCanvas.cpp b/src/game_tab/left_panel/board/BoardCanvas.cpp index 4b5f3fb..fec281e 100644 --- a/src/game_tab/left_panel/board/BoardCanvas.cpp +++ b/src/game_tab/left_panel/board/BoardCanvas.cpp @@ -12,6 +12,8 @@ BoardCanvas::BoardCanvas(wxFrame *parent) SetClockTime(-1, -1, -1, false); SetClockTime(-1, -1, -1, true); ApplyPreferences(); + // The following should be called when using an EVT_PAINT handler + SetBackgroundStyle(wxBG_STYLE_PAINT); } BoardCanvas::~BoardCanvas() { @@ -29,7 +31,9 @@ BoardCanvas::BoardCanvas(wxFrame *parent, std::uint32_t square_width, } void BoardCanvas::OnPaint(wxPaintEvent &event) { - wxPaintDC dc(this); + wxBufferedPaintDC dc(this); + dc.SetBackground(*wxWHITE_BRUSH); + dc.Clear(); REFRESH_MOUSE_LOCATION(); square_width = t->GetSquaresSizes(); canvas_size = dc.GetSize(); @@ -72,7 +76,7 @@ void BoardCanvas::SetupBoard(std::string board, bool is_black_turn, Refresh(); } -void BoardCanvas::DrawBoard(wxPaintDC &dc) { +void BoardCanvas::DrawBoard(wxBufferedPaintDC &dc) { std::uint32_t piece_width = t->GetPiecesSizes(); std::uint32_t centrer_offset = (square_width - piece_width) / 2; diff --git a/src/game_tab/left_panel/board/BoardCanvas.hpp b/src/game_tab/left_panel/board/BoardCanvas.hpp index 83c960a..7645414 100644 --- a/src/game_tab/left_panel/board/BoardCanvas.hpp +++ b/src/game_tab/left_panel/board/BoardCanvas.hpp @@ -7,6 +7,7 @@ #include <utility> #include <vector> #include <wx/artprov.h> +#include <wx/dcbuffer.h> // Local events wxDECLARE_EVENT(PLAY_MOVE_EVENT, wxCommandEvent); @@ -56,7 +57,7 @@ public: BoardCanvas(wxFrame *parent,std::uint32_t square_width, bool frozen); ~BoardCanvas(); void ApplyPreferences(); - void DrawBoard(wxPaintDC &dc); + void DrawBoard(wxBufferedPaintDC &dc); void OnPaint(wxPaintEvent &event); void OnKeyEvent(wxKeyEvent &event); void MouseEvent(wxMouseEvent &event); |
