JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=12de0cd6a76da0376e787befe31dd14dMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

D3DFMT_R5G6B5 geht nicht

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 15.03.2005, 14:16    Titel: D3DFMT_R5G6B5 geht nicht Antworten mit Zitat

Wenn ich versuche DirectX mit dem BackBufferformat D3DFMT_R5G6B5 zu starten klappt das nicht, obwohl laut CapsViewer dieses Format laufen sollte. Hat jemand eine Idee warum das so ist? Hier mal etwas Code wie ich das ganze starte:
CPP:
HRESULT CEInit::InitDirectX(HWND hWnd, int iAdapter)
{
   // Parameter für DX festlegen:
   D3DPRESENT_PARAMETERS   PParams;
   ZeroMemory(&PParams,sizeof(PParams));

   PParams.SwapEffect         = D3DSWAPEFFECT_DISCARD;
   PParams.hDeviceWindow      = hWnd;
   PParams.Windowed         = m_bWindowed;
   PParams.BackBufferWidth      = m_SizeX;
   PParams.BackBufferHeight   = m_SizeY;
   PParams.BackBufferFormat   = m_dFormat;

   HRESULT hr;

   // Direct3D-Gerät anlegen
   // erst versuchen PureDevice anzulegen
   if(SUCCEEDED(hr = m_lpD3D->CreateDevice(
                         D3DADAPTER_DEFAULT,
                         m_dDevType,
                         hWnd,
                         D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_PUREDEVICE,
                         &PParams,
                         &m_lpD3DDevice)))
   {
      if(m_bLog)
         m_LogFile->WriteLog("HardwareVertexProcessing mit PureDevice\n");
   }
   else
   {
      if(SUCCEEDED(hr = m_lpD3D->CreateDevice(
                         D3DADAPTER_DEFAULT,
                         m_dDevType,
                         hWnd,
                         D3DCREATE_HARDWARE_VERTEXPROCESSING,
                         &PParams,
                         &m_lpD3DDevice)))
      {
         if(m_bLog)
            m_LogFile->WriteLog("HardwareVertexProcessing\n");
      }
      else
      {
         if(SUCCEEDED(hr = m_lpD3D->CreateDevice(
                         D3DADAPTER_DEFAULT,
                         m_dDevType,
                         hWnd,
                         D3DCREATE_MIXED_VERTEXPROCESSING,
                         &PParams,
                         &m_lpD3DDevice)))
         {
            if(m_bLog)
               m_LogFile->WriteLog("Mixed-Vertex-Processing\n");
         }
         else
         {                  
            if(SUCCEEDED(hr = m_lpD3D->CreateDevice(
                                  D3DADAPTER_DEFAULT,
                                  m_dDevType,
                                  hWnd,
                                  D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                                   &PParams,
                                  &m_lpD3DDevice)))
            {
               if(m_bLog)
                  m_LogFile->WriteLog("Software-Vertex-Processing\n");
            }
            else
               {
                  if(m_bLog)
                     m_LogFile->WriteLog("CreateDevice fehlgeschlagen\n");

                  MessageBox(0,"CreateDevice failed","ERROR",MB_ICONWARNING | MB_OK);
                  return CE_FAIL;
               }
         } // Ende else
      } // Ende else
   } // Ende else


   return CE_OK;
} //InitDirectX


die Variable m_dFormat hat diesen Wert: D3DFMT_R5G6B5
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Patrick
Dark JLI Master



Anmeldedatum: 25.10.2004
Beiträge: 1895
Wohnort: Düren
Medaillen: Keine

BeitragVerfasst am: 15.03.2005, 14:18    Titel: Antworten mit Zitat

im Fenstermodus muss man D3DFMT_UNKNOWN benutzen, ansonsten würd ich mit CheckDevice drübergehen

edit: Du benutzt etwas zu viel CreateDevice, 1x reicht.
_________________
'Wer der Beste sein will muss nach Perfektion streben und jede Gelegenheit nutzen sich zu verbessern.' - KIA
[ German Game Dev | Boardsuche hilft sehr oft | Google rockt | Wie man Fragen richtig stellt | ICQ#: 143040199 ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
schneidi74
Senior JLI'ler



Anmeldedatum: 14.05.2004
Beiträge: 243

Medaillen: Keine

BeitragVerfasst am: 15.03.2005, 14:52    Titel: Antworten mit Zitat

Erstmal danke für die schnelle Antwort.

Wie kann ich denn mit nur einmal CreateDevice rausfinden welches Vertexprozessing ich nutzen kann?
_________________
-+- SchNeiDi74 -+-
-+- www.creative-games.de -+-
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
PeaceKiller
JLI Master


Alter: 36
Anmeldedatum: 28.11.2002
Beiträge: 970

Medaillen: Keine

BeitragVerfasst am: 15.03.2005, 15:05    Titel: Antworten mit Zitat

Du kannst die DX Caps abfragen.

(Es müsste irgendwo ein DX-Beispiel geben)
_________________
»If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.«
– Robert X. Cringely, InfoWorld magazine
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> DirectX, OpenGL Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum