Der Fortschrittsbalken bei der Werbungssuche flackert

Begonnen von wurzel, November 27, 2014, 01:15:26

« vorheriges - nächstes »

wurzel

Der Fortschrittsbalken bei der Suche nach Format/Audioänderung flackert. Er schaltet immer wieder von der Grafik für Sekundenbruchteile auf eine schriftliche %-Angabe um. Macht irgendwie keinen besonders guten Eindruck.
Win 10, I7 6700, 16GB RAM, Radeon 7850, Technistar S1+, Panasonic TV

Cypheros

Bei der aktuellen Version 1.2.148?
In den davor liegenden Versionen wurde der Prozentwert über den windowseigenen Fortschrittsbalken gezeichnet, was theoretisch hätte flackern können.
Die aktuelle Version zeichnet den Fortschrittsbalken inkl. Prozentwert aber komplett selbst, da sollte nix flackern.

Dreamy2005

Servus,
bei mir flackert der Balken auch.
Solange der Doc bei seiner Arbeit davon nicht abstürzt ist mir das egal.

(Win 7, 64 Bit)

Mam

na ja, sie flackert halt.  ;D

Das kommt davon, wenn Routine A nur nen Balken malt und Routine B den Balken und darüber ne Prozentzahl malt.
Und dann ruft man A und B abwechselnd auf  ;D

Ist aber total harmlos und je schneller der Rechner, desto weniger Flacker  8)

Cypheros

Nee, arbeitet "doublebuffered". Alles wird auf eine Bitmap gezeichnet und wenn alles fertig ist, dann auf den Screen geblittet.

Mam

#5
Zitat von: Cypheros am November 28, 2014, 00:08:47
Nee, arbeitet "doublebuffered". Alles wird auf eine Bitmap gezeichnet und wenn alles fertig ist, dann auf den Screen geblittet.

Na ja, das ist das, was der Onkel möchte  ;D bzw, wovon er träumt  :-*

Wir reden eher davon, was der Onkel wirklich gemacht hat, und das flackert halt wie wild.

(ich schätze mal, Du hast da ein paar redraws bzw invalidaterect() zuviel drin und es kommt auf den Videotreiber an, ob er Vsyncs abwartet, oder den Buffer zur Unzeit rausbratzt. Hardcore Gamer stehen nicht auf Vsync, die wollen die Kugeln und Feuerbälle in Echtzeit fliegen sehen.)

Das wäre ja auch gar nicht schlimm/sichtbar, wenn Du nicht offensichtlich mehrere verschiedene Aufrufe der Progressbar drin hättest, einen MIT Prozentangabe, einen OHNE. Dadurch "flackerts" recht nervig, eigentlich zuckst mehr, da sich die Höhe des Balkens mitändert.

Schau mal, ob Dir da nicht irgendwo ein Objekt entglitten ist und Du mit ner alten Kopie (und unterschiedlichen Properties) da wild in der Gegend rummalst.

(Ansonsten ist das nur ne kosmetische Sache, viel wichtiger sind meine Weihnachtsgeschenke  :-* :-* :-* :-*)

Hier mal sonne Idee, wie man der Leiste zuleibe rückt (sieht irgendwie C-ähnlich aus, aber Du verstehst das schon)

#define MaximumUpdateDelay 1000 // in Millisekunden

class MyProgressbar public Progressbar {
   private integer LastValue=0;
   private time_t LastUpdate=0;

... (ganz viele Standardfunktionen)...
void RePaint (void)
{
    if (this->Value == this->LastValue &&
        this->Last_Update > time(NULL)) return; // nix zu tun, also auch nix zu flackern!

    // ansonsten merken wir uns aktuellen Wert und Uhrzeit
    this->Last_Update = time(NULL)+MaximumUpdateDelay;
    this->Last_Value = this->Value;

    // und erledigen das übliche (Mal)Geschäft
    this->Progressbar->RePaint(); // originale Paint Routine der Progressbar
}

...


Das sorgt dafür, dass Updates entweder nur bei Wertänderung, oder nach Ablauf einer Sekunde durchgeführt werden.
(und ist nicht soooo schwer zu implementieren, das schaffen auch Müslifresser aaah, Pascalprogrammierer)

Cypheros

Alter, bin doch nich von gestern:

procedure TcyProgressBar.SetPosition(const Value: integer);
begin
  if FPosition = Value then
    exit;
  ...


Also nur Update wenn Änderung. Seltsam, dass es bei mir nicht auftritt. Schau im mir mal auf den anderen Systemen hier an.

Mam

Zitat von: Cypheros am November 29, 2014, 00:53:03
Alter, bin doch nich von gestern:
Jaja, dat sagense alle  8)

Zitat
Also nur Update wenn Änderung. Seltsam, dass es bei mir nicht auftritt. Schau im mir mal auf den anderen Systemen hier an.
Schalt dazu mal die doofe Skin ab, vielleicht flackerts bei Dir dann auch. Außerdem konzentriere die Suche nach Aufrufen mit unterschiedlichen Parametern.
Bei Deinem Beispiel übergibst Du ja nur den Wert, es muß aber noch einen andern Zugang geben (oder in dieser Funktion sind mehrere Paint Aufrufe mit unterschiedlichen Parametern), denn beim Flackern taucht eindeutig mal eine % Zahl auf, meistens aber nicht (Balken pur).

Oder Dein Framework spinnt  :P

Cypheros

#8
Hey Mam schau doch mal auf die Versionsnummer. Steht da 1.2.148?

Bei der 1.2.144 wurde noch der klassische Windows-Fortschrittsbalken benutzt und dann die Prozentzahl drübergepinselt, da konnte das passieren aber hier wird erst alles in eine Bitmap gemalt, auch die %-Werte und dann die komplette Bitmap auf den Schirm kopiert. Da lüppt hier 1a, sieht exakt aus wie der Windows-Balken, nur ohne diesen immer wieder von links nach rechts durchlaufenden hellen Fleck.

Selbst auf dem langsamen alten iMac kein Flackern.

Mam

#9
Zitat von: Cypheros am November 29, 2014, 10:38:46
Hey Mam schau doch mal auf die Versionsnummer. Steht das 1.2.148?

Gähn, Deine Witze waren schon mal prickelnder... 8)

Aber lass gut sein, das Flackern ist völlig uninteressant. Mach lieber wat Richtiges...

Traxx

Zitat
Aber lass gut sein, das Flackern ist völlig uninteressant. Mach lieber wat Richtiges...

so was wie die 8x Wiedergabe im schnittfester, split Videos die man zur patch liste hinzufügen kann usw. 8)
VU+ Solo 4K, Vu+ Duo2, Xtrend ET 10000, Xtrend 7500, TBS-5980 CI

Cypheros

So, erstmal das Flackern bei abgeschalteter Skin beseitigt.  8)
Konnte ich dann doch bei einem langsamen AMD-E350 unter Windows XP reproduzieren.

Mam

Zitat von: Cypheros am November 29, 2014, 19:01:34
Konnte ich dann doch bei einem langsamen AMD-E350 unter Windows XP reproduzieren.

Klaro, ich werds an meinen 4Ghz 8-Kerner weiterleiten. Vielleicht is das ja auch ein E350 ? nee, nu wirklich nich, meldet sich mit AMD-8530 und läuft mit dickem Kühlkörper auf 4,5Ghz...

Cypheros

Sorry, da kann selbst ich mit meinem neuen Haswell-E mit 6 Kernen auf 4 GHz nicht mithalten.
Aber vielleicht ist meine NVidia-Grafikkarte einfach potenter Bilder ohne Flackern dazustellen.

Neue Beta ohne Flackern(hoffentlich) ist online.

Mam

Zitat von: Cypheros am November 30, 2014, 00:00:18
neuen Haswell-E mit 6 Kernen
Na, da haben ja unsere Äpfel im Garten mehr Kerne  ;D

Zitat
Neue Beta ohne Flackern(hoffentlich) ist online.
Na ja, iss bessa, aber die Uhr (unter dem Fortschrittsbalken) zuckt immer noch heftigst. Da ist der redraw nun auch nicht synchron (aber besser, als vorher, da zuckte sie sogar noch zur Seite hin...)

Egal, ich guck eh nur immer aufs Icon in der Statusleiste, mach lieber was VERNÜNFTIGES....


www.cypheros.de