[DirectDraw] Hoe krijg ik mijn beeld schoon?

Pagina: 1
Acties:

  • Garoth
  • Registratie: November 2002
  • Laatst online: 04-10-2024
Ik heb een applicatie om live video te grabben gebouwd, en alles werkt heel leuk behalve als ik afsluit of minimaliseer.

Dan blijft het stuk dat de video displayed (de primary surface dus) in beeld staan. Als ik mijn programma run en ik minimaliseer, of ik open een ander programma, dan blijft het videoscherm op de voorgrond...

WEet iemand wat ik hieraan kan doen? Ik doe sowieso al alles releasen bij de WM_Destroy message, en dat releasen gaat gewoon. Alleen blijft het beeld dan wel staan...

Als blikken konden doden, waarom doen ze er dan erwten in?


  • matthijsln
  • Registratie: Augustus 2002
  • Laatst online: 30-07 16:33
Garoth schreef op 15 January 2003 @ 11:33:
Dan blijft het stuk dat de video displayed (de primary surface dus) in beeld staan. Als ik mijn programma run en ik minimaliseer, of ik open een ander programma, dan blijft het videoscherm op de voorgrond...
Daar moet je een clipper voor gebruiken. IDirectDraw::CreateClipper, IDirectDrawClipper::SetHWnd() met de handle van je window of je control dat je video bevat en dan IDirectDrawSurface::SetClipper() op je primary surface.

  • Garoth
  • Registratie: November 2002
  • Laatst online: 04-10-2024
Thanx ik zal het eens een poging geven!!

Als blikken konden doden, waarom doen ze er dan erwten in?


  • Garoth
  • Registratie: November 2002
  • Laatst online: 04-10-2024
Het clippen werkt als ik het doe bij de initialisering van DD, maar als ik het window minimaliseer doet ie het nog niet. Ik denk dat je dat moet opvangen door in de WM_SHOWWINDOW dit te programmeren.
Het staat daar nu in, maar als ik minimaliseer, gaat het beeld heel even weg, en dan komt het gelijk weer terug. Dit zou misschien kunnen komen door het feit dat er constant naar het surface wordt geblt. Maar dit kan ik niet stop zetten, tenminste niet zonder het hele programma uit elkaar te trekken en opnieuw te beginnen. Is er geen Clipper functie die zorgt dat het surface wegblijft, zelfs als ernaar geblt wordt?

Btw, als ik twee keer achter elkaar setclipper doe, wordt het surface dan weer zichtbaar?

[ Voor 36% gewijzigd door Garoth op 15-01-2003 14:29 ]

Als blikken konden doden, waarom doen ze er dan erwten in?