Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

13.10.2013, 16:29

Problem bei erstellen eines Direct3D Device

Hallo Community,

ich habe mal versucht ein Direct3D Device ohne die Hilfsfunktionen der TB Engine zu erstellen. Allerdings schlägt das erstellen immer fehl(E_FAIL Makro)
Mein Code:

PDIRECT3D9 pd3d = Direct3DCreate9(D3D_SDK_VERSION);
if(!pd3d)
{
MessageBox(NULL,"DirectX 9 ist erforderlich","Fehler - Direct3D", MB_ICONEXCLAMATION);
return E_FAIL;
}
LPDIRECT3DDEVICE9 pDevice = NULL;
D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.BackBufferWidth = 1920;
d3dpp.BackBufferHeight = 1080;
d3dpp.BackBufferCount = 3;
d3dpp.MultiSampleType = D3DMULTISAMPLE_8_SAMPLES;
d3dpp.hDeviceWindow = hwnd;
d3dpp.Windowed = TRUE;
d3dpp.EnableAutoDepthStencil = TRUE;
d3dpp.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_DEFAULT;

if(FAILED(pd3d->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &pDevice)))
{
// DIESER FEHLERCODE WIRD AUSGELÖST
MessageBox(NULL,"Ein Fehler beim Erstellend des Device!","Fehler", MB_ICONEXCLAMATION);
return E_FAIL;
}
if(d3dpp.Windowed = FALSE)
{
ShowCursor(FALSE);
}


wäre schön wenn jemand die Antwort wüsste

wluc-16

Treue Seele

Beiträge: 212

Wohnort: in der Nähe von Bielefeld :D

Beruf: Schüler

  • Private Nachricht senden

2

13.10.2013, 18:22

Beschränke dich bei den Parametern erstmal auf folgende:
hDeviceWindow
Windowed
SwapEffect

Wenn das funktioniert, kannst du einzeln weitere anfügen und testen.

3

13.10.2013, 19:03

So funktioniert es, aber nur wenn ich den Fenstermodus nutze Vollbild ergibt wieder das gleich Problem.
Trotzdem Danke schon mal für den Tipp. Ich hoffe du kannst mir auch bei dem neuen Problem helfen

wluc-16

Treue Seele

Beiträge: 212

Wohnort: in der Nähe von Bielefeld :D

Beruf: Schüler

  • Private Nachricht senden

4

13.10.2013, 19:15

Ich würde sagen, du musst jetzt noch BackbufferFormat, Width und Height setzen.
Versuch's mal ;)

wluc-16

Treue Seele

Beiträge: 212

Wohnort: in der Nähe von Bielefeld :D

Beruf: Schüler

  • Private Nachricht senden

5

13.10.2013, 19:31

Hast du übrigens einen guten Grund 3 Backbuffer zu verwenden?
Nur so aus Interesse :)

6

13.10.2013, 19:54

Besser auch vorab prüfen, was die Graka unterstützt.
Zum Beispiel sowas hier:

C-/C++-Quelltext

1
d3dpp.MultiSampleType = D3DMULTISAMPLE_8_SAMPLES;


Und bitte entsprechende Code-Tags verwenden.
Danke!
fka tm

7

13.10.2013, 20:18

C-/C++-Quelltext

1
d3dpp.FullScreen_RefreshRateInHz    =   D3DPRESENT_RATE_DEFAULT;


Versuch es mal mit der aktuellen Refreshrate, die du mit GetAdapterDisplayMode bekommst.

Werbeanzeige