Mathias hat geschrieben:@ wp_xyz
Ich habe gerade dein Text im Bug-report übersetzt.
Keine Probleme in Windows (Win 10) mit dem Laz Beispielprojekt. Massives Flimmern in Linux Mint (gtk2).
Kein Flimmern, weder in Win noch in Linux mit der von Ihnen bereitgestellten Demo. Wahrscheinlich fehlt etwas. Bitte fügen Sie ein kompilierbares Projekt hinzu, nicht nur ein Code-Snippet.
Das stimmt, flackern tut das Bild nicht, aber dafür ist der Würfel nicht sichtbar.
Jetzt kommt der Würfel nicht mal mehr mit Resizen mi der Maus.
Wen ich richtig gelesen habe, kam vorhin ein Update von XOrg bei Mint.
Aber in dem von dir geposteten Code wird überhaupt nichts gezeichnet (FormCreate erzeugt das OpenGLControl, OpenGLControlPaint swappt die Buffer, und OnTimer ruft OpenGLCOntrol.Invalidate auf - nirgendwo "echter" OpenGL-Code)- daher habe ich geschrieben, ob nicht vielleicht etwas fehlt. Poste ein komplettes Projekt, dann kannst du dich vorher überzeugen, dass der Fehler reproduziert werden kann, und sparst dem Entwickler, der sich dieses Reports annimmt, die Arbeit, das projekt aus deinen Fragmenten neu aufzubauen und vielleicht etwas zu übersehen.
Mathias hat geschrieben:Ich habe mal ein "diff" zwischen Stable und Trunk ausgeführt.
Ein paar Änderungen gab es da schon.
Vor allem gibt es Differenzen mit "Handle: HWND" .
Weiß nicht, ich dachte eher, etwas im WidgetSet, weil unter Windows das Flackern ja nicht auftritt.
In solchen Fällen mache ich immer ein svn update zu einer älteren Revision (ich mache das mit TortoiseSVN, den Kommandozeilenbefehl dafür weiß ich nicht), übersetze das Testprogramm und prüfe, ob der Fehler auftritt. Wenn ja, gehe ich eine ähnlich Anzahl an Revisions zurück, andernfalls suche ich eine Revision etwa in der Mitte zwischen damals und heute und mache wieder dasselbe: also svn update zu dieser Revision und Testprogramm prüfen. Usw. Je nachdem, ob der Fehler auftritt oder nicht, geht es um die Hälfte zum letzten erfolgreichen/fehlerhaften Test vor bzw zurück (so wie bei jeder binären Suche). Damit hat man in absehbarer Zeit die Resivion gefunden, die den Fehler erzeugt. An dem diff zwischen letzter guter und erster fehlerhafter Revision sieht man, was geändert wurde, und dann fällt meistens der Groschen.
In der Regel reicht es, nach jeder Iteration nur das Testprogramm zu übersetzen, aber gerade wenn viele Revisionen übersprungen werden, muss man auch Lazarus neu bauen, evtl. sogar sauber. Das schlägt dann auf die Zeit. Und manchmal habe ich mir auch schon die Trunk-Installation zerschossen. Also sei gewarnt. Aber anders geht es nicht, vor allem wenn man den problematischen Code nicht selbst geschrieben hat.