|
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Sec Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 15.07.2003, 08:07 Titel: D3D Fenstermodus |
|
|
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 _________________ MFG Sec |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 15.07.2003, 08:23 Titel: |
|
|
Da steht doch bestimmt was im Ausgabebereich, wenn du die Debug-Version installiert hast, oder? |
|
Nach oben |
|
|
Sec Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 15.07.2003, 08:29 Titel: |
|
|
steht nur 0 Fehler 0 Warnung(en) _________________ MFG Sec |
|
Nach oben |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 15.07.2003, 08:35 Titel: |
|
|
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 |
|
|
Sec Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 15.07.2003, 08:42 Titel: |
|
|
hab ich, aber ich versteh nur Bahnhof,
was passiert den wenn ich ALT + 2 drücke??? _________________ MFG Sec |
|
Nach oben |
|
|
Sec Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 15.07.2003, 08:46 Titel: |
|
|
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 |
|
|
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 15.07.2003, 08:57 Titel: Hmmm |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 15.07.2003, 09:05 Titel: |
|
|
Sehe ich auch so. Versuche mal deine Desktop Farbtiefe zu ändern.
Christian |
|
Nach oben |
|
|
Sec Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 15.07.2003, 10:46 Titel: |
|
|
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 |
|
|
Christian Rousselle Site Admin
Alter: 48 Anmeldedatum: 19.07.2002 Beiträge: 1630
Medaillen: Keine
|
Verfasst am: 15.07.2003, 11:36 Titel: |
|
|
Was für ein Format hat denn m_D3DFormat (was steht drin)? |
|
Nach oben |
|
|
Sec Junior JLI'ler
Anmeldedatum: 18.09.2002 Beiträge: 88
Medaillen: Keine
|
Verfasst am: 15.07.2003, 12:03 Titel: |
|
|
Das steht da drin: D3DFMT_X8R8G8B8 _________________ MFG Sec |
|
Nach oben |
|
|
X-FILE Super JLI'ler
Anmeldedatum: 12.07.2003 Beiträge: 349
Medaillen: Keine
|
Verfasst am: 15.07.2003, 21:04 Titel: |
|
|
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 |
|
|
|
|
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
|