I am experiencing choppy rendering with the current Linux kernel with 60Hz and 75Hz screen refresh rates (I'm in Europe, whose power grid uses 50Hz). When I switch to 50Hz refresh rate, the rendering is smooth, but I shouldn't have to do that.
This patch fixes the rendering for me (at least with 50Hz grid frequency and gtk2. Save as wxprefs.h.patch):
Here is an updated PKGBUILD for archlinux and artix using golly-git and wxWidgets-git:
For an experimental gtk3 build replace "--with-gtk=2" with "--with-gtk" and uncomment the wxprefs.cpp.patch line.
Code: Select all
--- gui-wx/wxprefs.cpp 2020-10-16 22:56:38.000000000 +0200
+++ gui-wx/wxprefs.cpp 2021-02-23 18:00:10.270454342 +0100
@@ -3354,10 +3354,10 @@
minbox->SetMinSize( maxbox->GetMinSize() );
wxSpinCtrl* spin1 = new MySpinCtrl(panel, PREF_MAX_PATTERNS, wxEmptyString,
- wxDefaultPosition, wxSize(70, wxDefaultCoord));
+ wxDefaultPosition, wxSize(140, wxDefaultCoord));
wxSpinCtrl* spin2 = new MySpinCtrl(panel, PREF_MAX_SCRIPTS, wxEmptyString,
- wxDefaultPosition, wxSize(70, wxDefaultCoord));
+ wxDefaultPosition, wxSize(140, wxDefaultCoord));
wxBoxSizer* hpbox = new wxBoxSizer(wxHORIZONTAL);
hpbox->Add(maxbox, 0, wxALIGN_CENTER_VERTICAL, 0);
@@ -3429,7 +3429,7 @@
hbox1->Add(new wxStaticText(panel, wxID_STATIC, _("Random fill percentage:")),
0, wxALIGN_CENTER_VERTICAL, 0);
wxSpinCtrl* spin1 = new MySpinCtrl(panel, PREF_RANDOM_FILL, wxEmptyString,
- wxDefaultPosition, wxSize(70, wxDefaultCoord));
+ wxDefaultPosition, wxSize(140, wxDefaultCoord));
hbox1->Add(spin1, 0, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, SPINGAP);
// can_change_rule
@@ -3546,7 +3546,7 @@
wxBoxSizer* hbox1 = new wxBoxSizer(wxHORIZONTAL);
hbox1->Add(membox, 0, wxALIGN_CENTER_VERTICAL, 0);
wxSpinCtrl* spin1 = new MySpinCtrl(panel, PREF_MAX_MEM, wxEmptyString,
- wxDefaultPosition, wxSize(80, wxDefaultCoord));
+ wxDefaultPosition, wxSize(190, wxDefaultCoord));
hbox1->Add(spin1, 0, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, SPINGAP);
wxString memnote = algoinfo[algopos1]->canhash ? HASH_MEM_NOTE : NONHASH_MEM_NOTE;
@@ -3556,7 +3556,7 @@
wxBoxSizer* hbox2 = new wxBoxSizer(wxHORIZONTAL);
hbox2->Add(basebox, 0, wxALIGN_CENTER_VERTICAL, 0);
wxSpinCtrl* spin2 = new MySpinCtrl(panel, PREF_BASE_STEP, wxEmptyString,
- wxDefaultPosition, wxSize(80, wxDefaultCoord));
+ wxDefaultPosition, wxSize(190, wxDefaultCoord));
hbox2->Add(spin2, 0, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, SPINGAP);
wxString stepnote = algoinfo[algopos1]->canhash ? HASH_STEP_NOTE : NONHASH_STEP_NOTE;
@@ -3577,7 +3577,7 @@
wxBoxSizer* hbox3 = new wxBoxSizer(wxHORIZONTAL);
hbox3->Add(minbox, 0, wxALIGN_CENTER_VERTICAL, 0);
wxSpinCtrl* spin3 = new MySpinCtrl(panel, PREF_MIN_DELAY, wxEmptyString,
- wxDefaultPosition, wxSize(80, wxDefaultCoord));
+ wxDefaultPosition, wxSize(150, wxDefaultCoord));
hbox3->Add(spin3, 0, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, SPINGAP);
hbox3->Add(new wxStaticText(panel, wxID_STATIC, _("millisecs")),
0, wxALIGN_CENTER_VERTICAL, 0);
@@ -3585,7 +3585,7 @@
wxBoxSizer* hbox4 = new wxBoxSizer(wxHORIZONTAL);
hbox4->Add(maxbox, 0, wxALIGN_CENTER_VERTICAL, 0);
wxSpinCtrl* spin4 = new MySpinCtrl(panel, PREF_MAX_DELAY, wxEmptyString,
- wxDefaultPosition, wxSize(80, wxDefaultCoord));
+ wxDefaultPosition, wxSize(150, wxDefaultCoord));
hbox4->Add(spin4, 0, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, SPINGAP);
hbox4->Add(new wxStaticText(panel, wxID_STATIC, _("millisecs")),
0, wxALIGN_CENTER_VERTICAL, 0);
@@ -3680,7 +3680,7 @@
wxCheckBox* check2 = new wxCheckBox(panel, PREF_SHOW_BOLD, _("Show bold grid lines every"));
wxSpinCtrl* spin2 = new MySpinCtrl(panel, PREF_BOLD_SPACING, wxEmptyString,
- wxDefaultPosition, wxSize(70, wxDefaultCoord));
+ wxDefaultPosition, wxSize(140, wxDefaultCoord));
hbox2->Add(check2, 0, wxALIGN_CENTER_VERTICAL, 0);
hbox2->Add(spin2, 0, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, SPINGAP);
@@ -3737,7 +3737,7 @@
wxBoxSizer* hbox7 = new wxBoxSizer(wxHORIZONTAL);
hbox7->Add(senslabel, 0, wxALIGN_CENTER_VERTICAL, 0);
wxSpinCtrl* spin4 = new MySpinCtrl(panel, PREF_SENSITIVITY, wxEmptyString,
- wxDefaultPosition, wxSize(70, wxDefaultCoord));
+ wxDefaultPosition, wxSize(140, wxDefaultCoord));
hbox7->Add(spin4, 0, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, SPINGAP);
// thumb_range
@@ -3751,7 +3751,7 @@
wxBoxSizer* hbox5 = new wxBoxSizer(wxHORIZONTAL);
hbox5->Add(thumblabel, 0, wxALIGN_CENTER_VERTICAL, 0);
wxSpinCtrl* spin5 = new MySpinCtrl(panel, PREF_THUMB_RANGE, wxEmptyString,
- wxDefaultPosition, wxSize(70, wxDefaultCoord));
+ wxDefaultPosition, wxSize(140, wxDefaultCoord));
hbox5->Add(spin5, 0, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, SPINGAP);
hbox5->Add(new wxStaticText(panel, wxID_STATIC, _("times view size")),
0, wxALIGN_CENTER_VERTICAL, 0);
@@ -3849,7 +3849,7 @@
_("Opacity percentage when drawing stacked layers:")),
0, wxALIGN_CENTER_VERTICAL, 0);
wxSpinCtrl* spin1 = new MySpinCtrl(panel, PREF_OPACITY, wxEmptyString,
- wxDefaultPosition, wxSize(70, wxDefaultCoord));
+ wxDefaultPosition, wxSize(140, wxDefaultCoord));
opacitybox->Add(spin1, 0, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, SPINGAP);
// tile_border
@@ -3859,7 +3859,7 @@
_("Border thickness for tiled layers:")),
0, wxALIGN_CENTER_VERTICAL, 0);
wxSpinCtrl* spin2 = new MySpinCtrl(panel, PREF_TILE_BORDER, wxEmptyString,
- wxDefaultPosition, wxSize(70, wxDefaultCoord));
+ wxDefaultPosition, wxSize(140, wxDefaultCoord));
borderbox->Add(spin2, 0, wxLEFT | wxRIGHT | wxALIGN_CENTER_VERTICAL, SPINGAP);
// ask_on_new, ask_on_load, ask_on_delete, ask_on_quit, warn_on_save