Flotte Spiele

Transparenz

Der DirectDraw Transparenzmechanismus Wurden Höhe und Breite des Fensters ermittelt geht es an die eigentliche Erzeugung des Puffer Surfaces Weil diesmal nicht die Grö e eines Bildes die Grö e des Surfaces bestimmt müssen Höhe und Breite in den Elementen lHeight und lWidth des Surface Descriptors also der DDSURFACEDESC Struktur hinterlegt werden Damit die Methode CreateSurface diese Werte auch berücksichtigt müssen au erdem die Flags DDSD_HEIGHT und DDSD_WIDTH angegeben werden backBufferDesc lFlags _ DDSD_CAPS Or DDSD_HEIGHT Or _ DDSD_WIDTH backBufferDesc lWidth _ rClient Right backBufferDesc lHeight _ rClient Bottom backBufferDesc ddsCaps lCaps _ DDSCAPS_OFFSCREENPLAIN _ Set backBufferSurface _ dd CreateSurface backBufferDesc Den für das Backbuffer Surface benötigten Speicherplatz bezieht DirectDraw standardmä ig aus dem Videospeicher der Grafikkarte Das garantiert höchste Performance denn das Kopieren von Speicherbereichen innerhalb der Grafikkarte ist deutlich schneller als das Kopieren eines Surfaces aus dem Hauptspeicher in den Grafikspeicher Dennoch trifft man in verschiedenen Beispielprogrammen oft auf das Capability Flag DDSCAPS_SYSTEMMOEMORY Es bewirkt dass der Speicher eines Surfaces aus dem Hauptspeicher des Rechners bezogen wird Allerdings wird der Programmablauf dadurch merklich verzögert weshalb ein Verzicht auf dieses Flag angebracht ist Beim Zeichnen in das Puffer Surface gelten prinzipiell dieselben Beschränkungen wie beim Primary Surface Objekte die in das Surface hineinkopiert werden sollen müssen vollständig in das Zielsurface hineinpassen Ist das nicht der Fall wird die Blt Operation abgebrochen Hier hilft nur ein Clipper der bei Blt Operationen am Rand des Surfaces die nicht benötigten Bereiche abschneidet Dim r As Rect r rClient Set Clipper dd _ CreateClipper Clipper SetClipList r doubleBufferSurface _ SetClipper Clipper Anders als für das Primary Surface dessen Clipper Objekt über das Fensterhandle des Ausgabefensters initialisiert wird muss das Clipper Objekt für das Puffer Surface durch Angabe eines RECT Arrays initialisiert werden Jedes der in einem Array zusammengefassten Rectangles gibt einen beschreibbaren Bereich des Puffer Surfaces an Im allgemeinen genügt jedoch ein einziges Rechteck das in der linken oberen Ecke des Surfaces beginnt und sich über die gesamte Höhe und Breite des Surfaces erstreckt Dieses Rechteck wird in ein ein elementiges RECT Array übertragen das anschlie end via SetClipList zur Initialisierung des Clipper Objektes übergeben wird In Aktion können Sie dieses Feature im Programm auf der Heft CD \Quellen\DirectX\DirectX sehen Game Loop Selbst wenn man die Ausgabe eines neuen Bildes an ein Timer Control koppelt erreicht man niemals eine Bildwiederholrate von mehr als Bildern pro Sekunde bzw Hz Das liegt daran dass das Timer Control eine zeitliche Auflösung von nur einer stel Sekunde besitzt Um höhere Bildraten jenseits der Hz zu erreichen müssen daher eigene Mechanismen implementiert werden die eine möglichst hohe Performance garantieren Hier nutzt man die sogenannte Idle Time einer Anwendung Das ist die Zeit die ein Programm damit verbringt nutzlos auf die nächste eingehende Nachricht zu warten Durch Ausnutzung der Idle Time in der keine Tastatur Maus Fenster oder sonstige Nachrichten zur Bearbeitung anstehen kann man das letzte Quentchen Speed aus einer DirectDraw Anwendung herausholen Was in C C Programmen aus dem Hinzufügen einer weiteren Codezeile besteht ist unter Visual Basic allerdings deutlich komplizierter Denn die Bearbeitung der eingehenden Nachrichten erfolgt vollautomatisch so dass ein Programm zunächst gar keine Möglichkeit besitzt zu ermitteln ob eine Nachricht zur Bearbeitung ansteht oder nicht Doch mit ein paar API Tricks lässt sich Abhilfe schaffen Und so geht es Man erweitert das Programm einfach durch ein Modul in dem ein Sub Main den Einstiegspunkt der Anwendung bildet Innerhalb dieser Methode bildet man die sogenannte Message Pump nach Das ist jener Teil eines jeden Programms der für die Auswertung der Nachrichten einer Anwendung zuständig ist und der in einem Visual Basic Programm üblicherweise vor den Augen des geplagten Entwicklers verborgen ist

P
Computerwissen komplett aus einer Hand

Dies ist eine Nickles-Premium Seite

Der Inhalt dieser Seite ist nur Nickles Mitgliedern zugänglich. Bitte melden Sie sich mit Ihrem Premium-Account an, um diese Seite lesen zu können.

Sollten Sie bisher noch nicht über einen Account verfügen, so können Sie sich hier einen erstellen und erhalten damit Zugriff auf das gesammelte Computerwissen, alle Artikel, Tipps und vieles mehr. Zusätzlich sehen Premium-Mitglieder Nickles werbefrei.

  • Probleme mit Hard und Software müssen nicht mehr sein
  • Nickles liefert seit über 15 Jahren geballtes Wissen
  • Unverzichtbare Artikel, verständlich für alle
  • Wertvolle Tipps die bares Geld sparen
  • Schluss mit Suchen - alles hier aus einer Hand
  • Zuverlässige Profi-Informationen statt Blabla
  • Hier gibt es Zugriff auf über 2 Millionen Webseiten geballtes Computerwissen zum Schnäppchenpreis
Computerwissen komplett aus einer Hand (Angebot 1)

UNABHÄNGIG, EHRLICH, VERSTÄNDLICH

Drei Worte. Die schreiben wir nicht nur, das meinen wir auch so! Nickles-Artikel liefern konkrete unbestechliche Informationen. Egal ob für PC-Laie oder PC-Profi: auf Nickles-Infos ist Verlass! Bereits ein einziger Nickles-Artikel kann helfen, viel Zeit und Geld zu sparen!

  • Probleme mit Hard und Software müssen nicht mehr sein
  • Nickles liefert seit über 15 Jahren geballtes Wissen
  • Unverzichtbare Artikel, verständlich für alle
  • Schluss mit Suchen - alles hier aus einer Hand
  • Zuverlässige Profi-Informationen statt Blabla
  • Hier gibt es Zugriff auf über 2 Millionen Webseiten geballtes Computerwissen zum Schnäppchenpreis

Allgemeine Geschäftsbedingungen

Wir hassen lange AGB mit fiesem Kleingedrucktem. Drum sind unsere kurz und einfach - bitte sorgfältig durchlesen:
AGB - Allgemeine Geschäftsbedingungen

Bestellformular ausfüllen

Die Abrechnung der 59,95 Euro für 12 Monate erfolgt einfach per Rechnung auf dem Postweg. Dazu benötigen wir die Anschrift. Bitte alle Felder ausfüllen!

Mit * markierte Felder werden für die Bearbeitung der Bestellung benötigt und müssen ausgefüllt werden.
Hinweis: Nickles.de gibt Daten niemals weiter! Sie dienen nur für unsere interne Abwicklung der Mitgliedschaft.

Gesamtpreis: 59,95 Euro für 12 Monate
(inklusive 7 Prozent MwSt, 3,92 Euro auf 56,03 Euro)
Vereinbarungen: Widerrufsrecht: Diese Bestellung kann gemäß AGB innerhalb von zwei Wochen widerrufen werden.

Mindestlaufzeit: 12 Monate

Verlängerung: Wird nicht spätestens drei Monate vor Ablauf der Abrechnungsperiode gekündigt, verlängert sich die Premiummitgliedschaft um 12 Monate zum Preis von 59,95 Euro.
Abrechnungsperiode dann alle 12 Monate.