JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

D3D Fenstermodus

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



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 15.07.2003, 08:07    Titel: D3D Fenstermodus Antworten mit Zitat

Hallo

wenn die anwendung in einer Fenster starten soll,
wird das D3DDevice nicht erzeugt bzw. das MessageBox in der Funktion InitD3D() erscheint "Create Device Error 0" kann mir einer weiter helfen???

hier ist die Funktion InitD3D(...)

Code:


LPDIRECT3D9 m_D3D9;
LPDIRECT3DDEVICE9 m_D3DDevice9;

void InitD3D(...)
{
m_D3D9 = Direct3DCreate9(D3D_SDK_VERSION);

   if(m_D3D9 == NULL)
   {
      MessageBox(NULL, "D3D9 Error", "Error", MB_OK);
      DestroyWindow(m_WindowClass->GetHwnd());
   }

   D3DDISPLAYMODE D3DDisplayMode;

   if(m_OptionClass->GetFullscreen() == 0) //Wenn GetFullscrenn == 0 FenterModus
   {
      m_D3D9->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &D3DDisplayMode);
   }

   m_D3DFormat = FindMode();

   if(m_D3DFormat == NULL)
   {
      MessageBox(NULL, "D3DFormat = NULL", "Error", MB_OK);
      DestroyWindow(m_WindowClass->GetHwnd());
   }

   D3DPRESENT_PARAMETERS D3DPPara;
   ZeroMemory(&D3DPPara, sizeof(D3DPPara));

   if(m_OptionClass->GetFullscreen == 0)
   {
      D3DPPara.Windowed = TRUE;
   }
   else
   {
      D3DPPara.Windowed = FALSE;
   }

   D3DPPara.BackBufferCount = 1;

   D3DPPara.EnableAutoDepthStencil = TRUE;
   D3DPPara.AutoDepthStencilFormat = D3DFMT_D16;

   if(m_OptionClass->GetFullscreen() == 0)
   {
      D3DPPara.PresentationInterval = D3DPRESENT_INTERVAL_ONE;
      D3DPPara.SwapEffect = D3DSWAPEFFECT_DISCARD;
      D3DPPara.BackBufferFormat = D3DDisplayMode.Format;
   }
   else
   {
      D3DPPara.PresentationInterval = D3DPRESENT_INTERVAL_ONE;
      D3DPPara.SwapEffect = D3DSWAPEFFECT_FLIP;
      D3DPPara.hDeviceWindow = m_WindowClass->GetHwnd();
      D3DPPara.BackBufferWidth = m_OptionClass->GetScreenX();
      D3DPPara.BackBufferHeight = m_OptionClass->GetScreenY();
      D3DPPara.BackBufferFormat = m_D3DFormat;
   }

   if(m_OptionClass->GetRenderOption() == 0)
   {
      if(SUCCEEDED(m_D3D9->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, m_WindowClass->GetHwnd(), D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_PUREDEVICE, &D3DPPara, &m_D3DDevice9)))
      {
         //
      }
      else
      {
         MessageBox(NULL, "CreateDevice Error 0", "Error", MB_OK);
         DestroyWindow(m_WindowClass->GetHwnd());
      }
   }

   if(m_OptionClass->GetRenderOption() == 1)
   {
      if(SUCCEEDED(m_D3D9->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, m_WindowClass->GetHwnd(), D3DCREATE_HARDWARE_VERTEXPROCESSING, &D3DPPara, &m_D3DDevice9)))
      {
         //
      }
      else
      {
         MessageBox(NULL, "CreateDevice Error 1", "Error", MB_OK);
         DestroyWindow(m_WindowClass->GetHwnd());
      }
   }
   
   if(m_OptionClass->GetRenderOption() == 3)
   {
      if(SUCCEEDED(m_D3D9->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, m_WindowClass->GetHwnd(), D3DCREATE_MIXED_VERTEXPROCESSING, &D3DPPara, &m_D3DDevice9)))
      {
         //
      }
      else
      {
         MessageBox(NULL, "CreateDevice Error 0", "Error", MB_OK);
         DestroyWindow(m_WindowClass->GetHwnd());
      }
   }

   if(m_OptionClass->GetRenderOption() == 4)
   {
      if(SUCCEEDED(m_D3D9->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, m_WindowClass->GetHwnd(), D3DCREATE_SOFTWARE_VERTEXPROCESSING, &D3DPPara, &m_D3DDevice9)))
      {
         //
      }
      else
      {
         MessageBox(NULL, "CreateDevice Error 4", "Error", MB_OK);
         DestroyWindow(m_WindowClass->GetHwnd());
      }
   }

   m_D3DDevice9->SetRenderState(D3DRS_DITHERENABLE, TRUE);
   m_D3DDevice9->SetRenderState(D3DRS_SPECULARENABLE, TRUE);
   m_D3DDevice9->SetRenderState(D3DRS_LIGHTING, TRUE);
   m_D3DDevice9->SetRenderState(D3DRS_ZENABLE, TRUE);
}



plz help Crying or Very sad
_________________
MFG Sec
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 15.07.2003, 08:23    Titel: Antworten mit Zitat

Da steht doch bestimmt was im Ausgabebereich, wenn du die Debug-Version installiert hast, oder?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sec
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 15.07.2003, 08:29    Titel: Antworten mit Zitat

steht nur 0 Fehler 0 Warnung(en) Rolling Eyes
_________________
MFG Sec
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 15.07.2003, 08:35    Titel: Antworten mit Zitat

Hallo,

nicht beim Kompilieren, sondern beim Ausfühen. Normalerweise sagt Direct3D ziemlich viel. Drück mal Alt+2 bevor du ausführst.

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sec
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 15.07.2003, 08:42    Titel: Antworten mit Zitat

hab ich, aber ich versteh nur Bahnhof,
was passiert den wenn ich ALT + 2 drücke???
_________________
MFG Sec
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sec
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 15.07.2003, 08:46    Titel: Antworten mit Zitat

bei mir kommen diese Meldungen

Direct3D9: (ERROR) :The specified mode is unsupported. CreateDevice/Reset Fails
Direct3D9: (ERROR) :Unable to set the new mode. CreateDevice/Reset Fails
Direct3D9: (ERROR) :Failed to initialize primary swapchain
Direct3D9: (ERROR) :Failed to initialize Framework Device. CreateDevice Failed.

Nicht abgefangene Ausnahme in 3DEngine.exe: 0xC0000005: Access Violation.
Das Programm "C:\Programme\Microsoft Visual Studio\MyProjects\3DEngine\Debug\3DEngine.exe" wurde mit Code 0 (0x0) beendet.
_________________
MFG Sec
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 15.07.2003, 08:57    Titel: Hmmm Antworten mit Zitat

Hallo,

genau den Fehler hatte ich vorgestern auch aus heiterem Himmel (funktionierte vorher)?¿

Da hatte es sich geraecht, das ich keine Enumerationsschleife gemacht haeb, die mehrere Modi abgreift. In deinem Fall (hab den Code jetzt ned ganz gelesen) muss die Farbaufloesung falsch sein. Entweder hast du fuer deinen PC 16 oder 32 bit Farbe eingestellt und das ist falsch. Ich denke 16 und du brauchst 32. Das wars zumindest bei mir.

Hope this helps.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 15.07.2003, 09:05    Titel: Antworten mit Zitat

Sehe ich auch so. Versuche mal deine Desktop Farbtiefe zu ändern.

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sec
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 15.07.2003, 10:46    Titel: Antworten mit Zitat

ich hab alles geändert und es geht immer noch nicht


meine aktuelle auflösung ist 1280*960*32

plz help
_________________
MFG Sec
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 15.07.2003, 11:36    Titel: Antworten mit Zitat

Was für ein Format hat denn m_D3DFormat (was steht drin)?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Sec
Junior JLI'ler



Anmeldedatum: 18.09.2002
Beiträge: 88

Medaillen: Keine

BeitragVerfasst am: 15.07.2003, 12:03    Titel: Antworten mit Zitat

Das steht da drin: D3DFMT_X8R8G8B8
_________________
MFG Sec
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
X-FILE
Super JLI'ler



Anmeldedatum: 12.07.2003
Beiträge: 349

Medaillen: Keine

BeitragVerfasst am: 15.07.2003, 21:04    Titel: Antworten mit Zitat

Hallo,

was hast du denn fuer eine Grafikkarte?? Sollte es eine GeForce sein, besonders MX-Bauart, dann probiere mal einfach den Z-Buffer komplett auszuschalten. (is daemlich das zu tun, ich weiß)
Es scheint, als ob manche Grafikkarten mit dem Z-Buffer von 16bit im Desktopmodus Probleme haben. Allerdings ist mir das nur andersrum bekannt. Trotzdem ein Versuch wert.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
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