AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi wait for vertical blanking
Thema durchsuchen
Ansicht
Themen-Optionen

wait for vertical blanking

Ein Thema von valjah · begonnen am 24. Mai 2007 · letzter Beitrag vom 25. Mai 2007
Antwort Antwort
valjah

Registriert seit: 13. Nov 2006
19 Beiträge
 
Delphi 7 Personal
 
#1

wait for vertical blanking

  Alt 24. Mai 2007, 11:45
Gibt es eine Möglichkeit (evtl. über DirectX) festzustellen, wann der vertical blank auftritt, bzw. eine bestimmte Anzahl von blanks abzuwarten?
Die DelphiX-Komponente DXDraw besitzt ja die Option doWaitVBlank, kann also genau dieses Ereignis abfragen. Dann müsste man da doch auch anders rankommen können...
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: wait for vertical blanking

  Alt 24. Mai 2007, 11:46
Schau dir doch den Code der kompo an
Markus Kinzler
  Mit Zitat antworten Zitat
valjah

Registriert seit: 13. Nov 2006
19 Beiträge
 
Delphi 7 Personal
 
#3

Re: wait for vertical blanking

  Alt 24. Mai 2007, 11:56
Folgenden Code habe ich in der DXDraws-Komponente gefunden:

Delphi-Quellcode:
if doWaitVBlank in FDXDraw.NowOptions then
  FDXDraw.FDDraw.DXResult := FDXDraw.FDDraw.IDraw.WaitForVerticalBlank(DDWAITVB_BLOCKBEGIN, 0);
Kann mir da vielleicht jemand bei der Interpretation helfen? Vor allem: wie kann ich WaitForVerticalBlank selbst einsetzen?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: wait for vertical blanking

  Alt 24. Mai 2007, 12:00
Scheint ein Cllabck auf einen COM-Event zu sein.
Markus Kinzler
  Mit Zitat antworten Zitat
valjah

Registriert seit: 13. Nov 2006
19 Beiträge
 
Delphi 7 Personal
 
#5

Re: wait for vertical blanking

  Alt 24. Mai 2007, 12:11
Hier gibt es mehr Informationen dazu...
  Mit Zitat antworten Zitat
valjah

Registriert seit: 13. Nov 2006
19 Beiträge
 
Delphi 7 Personal
 
#6

Re: wait for vertical blanking

  Alt 24. Mai 2007, 13:48
Hat vielleicht jemand eine Idee, wie ich das umsetzen könnte? Ich bin leider noch ein ziemlicher Anfänger.
Die DirectX-Unit aus dem DelphiX-Paket habe ich mal angehängt. Dort wird meiner Meinung nach die WaitForVerticalBlank-Funktion definiert.

Folgendes habe ich schon probiert:
Delphi-Quellcode:
uses ... DirectX, DXDraws;

type
  TForm1 = class(TDXForm)
    DXDraw1: TDXDraw;
    ...
  public
    lpDD: IDirectDraw;

...

DXDraw1.Initialize;
DXDraw1.Surface.Fill(0);

lpDD.WaitForVerticalBlank(DDWAITVB_BLOCKBEGIN, 0);

DXDraw1.Flip;
Das kompiliert Delphi mir auch ohne Fehlermeldung, allerdings hängt sich mein Computer mit einem schwarzen Bildschirm auf. (Wenn ich den WaitForVerticalBlank-Aufruf weglasse, kann ich das Programm problemlos beenden.)
Was mache ich hier falsch?
Angehängte Dateien
Dateityp: pas dxdraws_784.pas (211,4 KB, 5x aufgerufen)
Dateityp: pas directx_656.pas (659,6 KB, 5x aufgerufen)
  Mit Zitat antworten Zitat
valjah

Registriert seit: 13. Nov 2006
19 Beiträge
 
Delphi 7 Personal
 
#7

Re: wait for vertical blanking

  Alt 25. Mai 2007, 01:07
Ich habe die Lösung gefunden:

DXDraw1.DDraw.IDraw.WaitForVerticalBlank($00000001, 0); Allerdings akzeptiert Delphi kein DWORD als Flag. Den entsprechenden Wert ($00000001) habe ich aus der DirectX-Komponente entnommen.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:04 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