Friedrich-Alexander-Universität UnivisSuche FAU-Logo
Techn. Fakultńt Willkommen am Department Informatik FAU-Logo
Logo I4
Lehrstuhl für Informatik 4
Betriebssysteme
 
  Vorlesung
    - UnivIS-Infos
    - Inhalt
    - Folien
 
  Übungen
    - UnivIS-Infos
    - Inhalt
    - Ergänzendes Material
    - Terminübersicht
    - Aufgaben
       * Umgebung
       * Typische Fehler
       * Aufgabe 1
          Dokumentation
       * Aufgabe 2
          Dokumentation
       * Aufgabe 3
          Dokumentation
       * Aufgabe 4
          Dokumentation
       * Aufgabe 5
          Dokumentation
       * Aufgabe 6
          Dokumentation
       * Aufgabe 7
          Dokumentation
 
  Evaluation
Department Informatik  >  Informatik 4  >  Lehre  >  WS 2009/10  >  Betriebssysteme  >  ├ťbungen  >  Aufgaben  >  Aufgabe 7

VESAGraphics Klassenreferenz

Treiber f├╝r die VESAGrafikkarte. Mehr ...

#include <vesagraphics.h>

Klassendiagramm f├╝r VESAGraphics:
Zusammengeh├Ârigkeiten von VESAGraphics:

Aufstellung aller Elemente

├ľffentliche Methoden

 VESAGraphics (void *frontbuffer, void *backbuffer)
 Konstruktor; bekommt zwei Puffer im Hauptspeicher als Parameter.
void switch_buffers ()
 Tauscht Frontbuffer und Backbuffer aus. Zeichenoperationen ├╝ber die Methoden von VESAScreen gehen immer in den aktuellen Backbuffer; scanout_frontbuffer kopiert immer den aktuellen Frontbuffer in den Speicher der Grafikkarte.
void scanout_frontbuffer ()
 Kopiert den aktuellen Frontbuffer in den Speicher der Grafikkarte.


Ausf├╝hrliche Beschreibung

Treiber f├╝r die VESAGrafikkarte.

Erweitert VESAScreen um die beiden Methoden switch_buffers() und scanout_frontbuffer(). Mit deren Hilfe ist es m├Âglich eine Art Triplebuffering "in Hand" zu implementieren. Da diese beiden Methoden unter gegenseitigem Ausschluss ausgef├╝hrt werden m├╝ssen (w├Ąhrend scanout_frontbuffer l├Ąuft, soll nicht der Puffer umgeschaltet werden) sind sie entweder in der guarded Variante oder im Epilog zu verwenden.

Die Benutzung des Graphikmodus sieht dann grob ungef├Ąhr so aus: while(true) { //Puffer mit Inhalt f├╝llen //Umschalten mit switch_buffers() } Den Aufruf von scanout_frontbuffer kann man nun auf zwei Arten durchf├╝hren. Zum einen ist es m├Âglich ihn einfach die Schleife zu integrieren. Es ist aber auch m├Âglich den Puffer mit einer festen Frequenz neu zu bef├╝llen. Dazu ruft man scanout_frontbuffer sinnigerweise im Epilog des Timers auf.


Die Dokumentation f├╝r diese Klasse wurde erzeugt aufgrund der Dateien:
  Impressum   Datenschutz Stand: 2010-07-19 12:37   BO, DL