Home
DirectX 8
  • Einleitung
  • Initialisierung
  • Enumeration

    Java
    Links


    Kontakt












  • DirectX Programmierung - (DirectX8.0 initialisieren)
    • 2.1 Einfach Initialisieren ?

      Bevor wir anfangen, in die tiefen des Source Codes zu versinken. Zuerst ein paar Fachbegrifferklärungen. Somit lässt sich der nachfolgenden Code viel einfacher verstehen. In Direct3D werden Grafikkarten als Adapter bezeichnet. Jeder Adapter bietet verschiedene Grafikauflösungen (z.B. 320x200, 640x480, 800x600) mit jeweils verschieden Farbtiefen. (z.B. 8 Bit, 16 Bit, 24 oder gar 32 Bit). Die Auflösungen werden als Modi (Bildschirm-Modus) bezeichnet. Jede Grafikkarte (Adapter) verfügt über mehrer 3Ddevices. So kann ein Adapter über ein Standard 2D Renderer und einen 3D Rasterizer verfügen. Wird hier einfach die Standard Einstellung übernommen so wird unter Umständen die schlechtere bzw. langsamere Hardware angesprochen anstatt die schnelle 3D Beschleunigerkarte. Um dies zu verhindern werden wir alle möglichen Adapter, Modi abfragen und die für uns sinnvollste Auswahl treffen. Damit wir von Direct3D Informationen erhalten können, müssen wir zuerst das Direct3D Hauptobjekt erstellen.

      		 g_pD3D = Direct3DCreate8(D3D_SDK_VERSION);
      
      g_pD3D ist eine Globale Variable die wir in die Header - Datei mainInit.h wiederfinden. Hier findet man auch die Variablen der Strukturen für die Grafikarten und Modi. Die Struktur der Grafikarten D3DadapterInfo enthält die 3Ddevices, diese wiederum die verschiedenen Modi.

      
      struct D3DAdapterInfo
      {	
          // Grafikkarten Daten  
          D3DADAPTER_IDENTIFIER8 d3dAdapterIdentifier; 
      
          // Den derzeitigen Desktop Video Modus	
          D3DDISPLAYMODE d3ddmDesktop;      /
      
          // 3DDevices für diese Grafikkarte
          DWORD          dwNumDevices;
          D3DDeviceInfo  devices[5];
      
          // Gewähltes Device
          DWORD          dwCurrentDevice;
      };
      


      Die Struktur des DeviceInfo enthält Informationen über die Kompatibilität, Typ und über alle Modi (Auflösungen). Siehe Struktur.



      struct D3DDeviceInfo
      {
          // Device Beschreibung entweder
          // HAL für Hardwareunterstütze Hardware
          // REF für Reference Treiber meist Software	
          // oder SW für Plugable Software 
      	
          D3DDEVTYPE   DeviceType;     
          D3DCAPS8     d3dCaps;             // Enthält alle Kompatiblitäts Daten  
          Const Tchar* strDesc;                 // Name des Device
          BOOL         bCanDoWindowed;  // Window Mode möglich
      
          // Modi des Device
          DWORD        dwNumModes;
          D3DModeInfo  modes[150];
      
          // Der Zeit benutzer Modus
          DWORD        dwCurrentMode;
          BOOL         bWindowed;
          D3DMULTISAMPLE_TYPE MultiSampleType;
      };