diff options
author | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2019-11-03 11:30:41 +0100 |
---|---|---|
committer | kamel5 <vdr.kamel5 (at) gmx (dot) net> | 2019-11-03 13:08:07 +0100 |
commit | 7300fdf91c07932a1360a2cdc211d83867524684 (patch) | |
tree | 1c7256bca13f0e1830a2eef24a3e0f0904d1f8b8 /tvguideosd.c | |
parent | 89e9086943f394f189c270f26e36f394e695e051 (diff) | |
download | vdr-plugin-tvguide-7300fdf91c07932a1360a2cdc211d83867524684.tar.gz vdr-plugin-tvguide-7300fdf91c07932a1360a2cdc211d83867524684.tar.bz2 |
Workaround for HWAccelerated OSD
Diffstat (limited to 'tvguideosd.c')
-rw-r--r-- | tvguideosd.c | 44 |
1 files changed, 29 insertions, 15 deletions
diff --git a/tvguideosd.c b/tvguideosd.c index cd86544..fc64eae 100644 --- a/tvguideosd.c +++ b/tvguideosd.c @@ -195,7 +195,7 @@ void cTvGuideOsd::drawGridsChannelJump(int offset) { } } -void cTvGuideOsd::drawGridsTimeJump() { +void cTvGuideOsd::drawGridsTimeJump(bool last) { if (columns.Count() == 0) return; cChannelEpg *colActive = NULL; @@ -209,7 +209,7 @@ void cTvGuideOsd::drawGridsTimeJump() { column->readGrids(); column->drawGrids(); } - activeGrid = colActive->getActive(); + activeGrid = colActive->getActive(last); if (activeGrid) { activeGrid->SetActive(); activeGrid->Draw(); @@ -372,12 +372,19 @@ void cTvGuideOsd::timeForward() { void cTvGuideOsd::ScrollForward() { timeManager->AddStep(config.stepMinutes); - timeLine->drawDateViewer(); - timeLine->setTimeline(); - for (cChannelEpg *column = columns.First(); column; column = columns.Next(column)) { - column->AddNewGridsAtEnd(); - column->ClearOutdatedStart(); - column->drawGrids(); + if (config.useHWAccel) { + drawGridsTimeJump(true); + timeLine->drawDateViewer(); + timeLine->drawClock(); + timeLine->setTimeline(); + } else { + timeLine->drawDateViewer(); + timeLine->setTimeline(); + for (cChannelEpg *column = columns.First(); column; column = columns.Next(column)) { + column->AddNewGridsAtEnd(); + column->ClearOutdatedStart(); + column->drawGrids(); + } } } @@ -406,13 +413,20 @@ void cTvGuideOsd::ScrollBack() { bool tooFarInPast = timeManager->DelStep(config.stepMinutes); if (tooFarInPast) return; - timeLine->drawDateViewer(); - timeLine->setTimeline(); - for (cChannelEpg *column = columns.First(); column; column = columns.Next(column)) { - column->AddNewGridsAtStart(); - column->ClearOutdatedEnd(); - column->drawGrids(); - } + if (config.useHWAccel) { + drawGridsTimeJump(); + timeLine->drawDateViewer(); + timeLine->drawClock(); + timeLine->setTimeline(); + } else { + timeLine->drawDateViewer(); + timeLine->setTimeline(); + for (cChannelEpg *column = columns.First(); column; column = columns.Next(column)) { + column->AddNewGridsAtStart(); + column->ClearOutdatedEnd(); + column->drawGrids(); + } + } } void cTvGuideOsd::processKeyUp() { |