From e01d8e57a5ffaac672fc294141e270d725f33439 Mon Sep 17 00:00:00 2001 From: thrust26 Date: Sun, 15 Nov 2020 08:59:18 +0100 Subject: [PATCH] fixed garbage in fullscreen mode fixed breakpoints flickering in RomListWidget fixed palette update in VideoAudioDialog --- src/debugger/gui/RomListWidget.cxx | 2 ++ src/gui/DialogContainer.cxx | 4 ++++ src/gui/VideoAudioDialog.cxx | 9 +++++++++ 3 files changed, 15 insertions(+) diff --git a/src/debugger/gui/RomListWidget.cxx b/src/debugger/gui/RomListWidget.cxx index 3504b2b37..473df388e 100644 --- a/src/debugger/gui/RomListWidget.cxx +++ b/src/debugger/gui/RomListWidget.cxx @@ -491,6 +491,8 @@ void RomListWidget::drawWidget(bool hilite) checkBreakPoint(dlist[pos].address, instance().debugger().cartDebug().getBank(dlist[pos].address))); myCheckList[i]->setDirty(); + // draw immediately, because chain order is not deterministic + myCheckList[i]->draw(); // Draw highlighted item in a frame if(_highlightedItem == pos) diff --git a/src/gui/DialogContainer.cxx b/src/gui/DialogContainer.cxx index e7fb0b81d..0f7713d0d 100644 --- a/src/gui/DialogContainer.cxx +++ b/src/gui/DialogContainer.cxx @@ -122,6 +122,10 @@ void DialogContainer::render() if(myDialogStack.empty()) return; + // Make sure we start in a clean state (with zero'ed buffers) + if(!myOSystem.eventHandler().inTIAMode()) + myOSystem.frameBuffer().clear(); + cerr << "full re-render " << typeid(*this).name() << endl; // Make sure we start in a clean state (with zero'ed buffers) diff --git a/src/gui/VideoAudioDialog.cxx b/src/gui/VideoAudioDialog.cxx index ba141cbeb..86db273b9 100644 --- a/src/gui/VideoAudioDialog.cxx +++ b/src/gui/VideoAudioDialog.cxx @@ -959,7 +959,16 @@ void VideoAudioDialog::handlePaletteUpdate() instance().frameBuffer().tiaSurface().paletteHandler().setAdjustables(paletteAdj); if(instance().hasConsole()) + { instance().frameBuffer().tiaSurface().paletteHandler().setPalette(); + + constexpr int NUM_LUMA = 8; + constexpr int NUM_CHROMA = 16; + + for(int idx = 0; idx < NUM_CHROMA; ++idx) + for(int lum = 0; lum < NUM_LUMA; ++lum) + myColor[idx][lum]->setDirty(); + } } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -