Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Coverflow mit Opengl flackern nach close (https://www.delphipraxis.net/118346-coverflow-mit-opengl-flackern-nach-close.html)

Cylence 6. Aug 2008 08:35


Coverflow mit Opengl flackern nach close
 
Hi,

ich habe einen MediaPlayer, der einige transparente Forms hat, einmal eine mit Transparent Color und einige die Alphablend haben können. Nun hab ich mit Flying Cow ein Coverflow eingebaut in den Player mit dem man schön die Covers durchblättern kann und dann mit enter auswählt was man ansehen/hören möchte.

da hab ich die komponenten her:
http://www.delphipraxis.net/internal...t.php?t=137198

Das klappt auch alles perfekt, nur wenn ich die Form in der das Opengl coverflow drinnen is Close bzw sogar freeandnil dann hab ich danach immer noch ein flackern in den anderen Forms zu sehen... also ich denke das Opengl irgendwie nicht richtig deactiviert wird, bzw nicht entladen wird wenn ich einfach nur close oder Freeandnil mach?
Kann das sein?
OnClose ist auch noch ein Free von den einzelnen komponenten die verwendet werden für das Flying Cow teil, aber das hat nichts geändert.
Also gibt es eine Möglichkeit das hin zu bekommen? Kennt sich da jemand aus?

Gruß

tom

Cylence 6. Aug 2008 13:25

Re: Coverflow mit Opengl flackern nach close
 
ich habs schon versucht die form mit

freeandnil
.release
.free
.destroy

zu freeen, aber ich habe immer danach noch ein flackern in den anderen forms... gibt es keine andere möglichkeit als das tool als eigene exe zu machen?

littleDave 6. Aug 2008 14:11

Re: Coverflow mit Opengl flackern nach close
 
Also OpenGL + Windows-Alpha-Blending = nicht so dolle - nur mal so kurz ausgedrückt. Was passiert denn, wenn du das Alpha-Blending der Forms deaktivierst? Flackern die dann immer noch nach dem schließen des Cover-Flows?

Cylence 6. Aug 2008 14:33

Re: Coverflow mit Opengl flackern nach close
 
da ich bei der einen Form transparent Color auf jeden fall brauche... geht das leider nicht. weil transparentcolor scheinbar auch stört...

Ja Aber das is ja nicht das Problem an sich, während das Opengl aktiv ist schalte ich alphablend ab, daher gibts da keine probleme. aber nachdem das opengl fenster gefreet wurde...flackerts immer noch weiter...obwohl ja theoretisch opengl aus sein sollte zu dem zeitpunkt. Also muss wohl noch ne dll oder sowas aktiv sein obwohl ich freeandnil etc von der form gemacht hab wo das opengl verwendet wird.

also wenn ich jetzt das ding als eigene exe mach, dann würde nachdem ich diese exe mit dem opengl beende... nichts flackern und garnix... aber mir wäre halt lieber das ganze nicht als eigene exe zu machen, also muss ich rausfinden wie ich alles was die form mit opengl so lädt raushaue...sozusagen oder?

littleDave 6. Aug 2008 15:25

Re: Coverflow mit Opengl flackern nach close
 
Also wenn ich dich bisher richtig verstanden habe, ist es so, dass die Forms alle ganz normal funktionieren. Wenn du dann das OpenGL-Fenster mit der Flying Cow - Komponente startest, funktioniert auch noch alles. Aber sobald du dann das Flying-Cow-Fenster schließt, flackern alle anderen Forms. Anscheindend ist da was mit dem Flying-Cow :zwinker:.

Wie rufst du denn den Zeichenvorgang von der CoverFlow-Komponente auf? Per Timer-Paint oder macht die das automatisch? Ich werd mir mal die Mühe geben und mir die Komponente mal eben runterladen und anschauen, vielleicht fällt mir auf die schnelle was auf.

Edit: Also die Komponente benutzt einen extra Thread zum Rendern. Im destructor wird der Thread aber beendet. Kann es sein, dass du die Komponente nicht freigibst und der Thread somit nicht beendet wird?

Cylence 7. Aug 2008 07:41

Re: Coverflow mit Opengl flackern nach close
 
Hi,

naja wie gesagt ich hab alles versucht destroy free freeandnil release... da sollte dann doch die form inclusive dem thread zerstört werden oder?
Anhand der cpu last erkenn ich auf jeden fall schonmal das das opengl nicht mehr aktiv ist, nur eben das geflacker in den anderen forms ist noch da leider...
Aber ich werd das nun als eigene exe auslagern, und mittels createprocess und interappreceiver und interappsender (Komponente zur kommunikation zwischen versch progr.) das ganze lösen, damit hab ich das problem weg und eventuelle Fehler im Opengl stören dann auch das restliche Programm nciht, ich denke das ist zwar nicht die einfachste lösung aber ganz gut.
Danke für Deine Hilfe!!!

Gruß

tom

update: so jetzt hab ichs in 20 minuten oder so umgebaut gehabt als eigene exe, und jetzt kein geflacker in meiner hauptapplikation nachdem coverflow wieder beendet wurde, alles perfekt!! :-) *freeeeuuuuu*


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:52 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz