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

Crazy007

Treue Seele

  • »Crazy007« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Tirol

  • Private Nachricht senden

1

09.07.2013, 15:30

Direct3D funktioniert nicht mehr!

Hallo,
bin gerade dabei ein kleines Spiel mir DirectX zu schreiben doch irgendwie ließ sich das Device und die Swapchain nicht erstellen.
Also sah ich in einem meiner älteren Projekte nach wie ich es dort machte doch als ich dieses Spiel startete bekam ich die selbe Fehlermeldung. Dieses Projekt lief bis vor kurzem noch einwandfrei. Dann versuchte ich die Samples aus dem Buch. Funktionierten auch nicht! Nichtmal die Samples die Microsoft mit DirectX mitliefert funktionieren!
Die Samples funktionieren seit dem letzten Windows Update nichtmehr.
Ich bin gerade am verzweifeln. Weiß vielleicht jemand einen Rat?
Danke im Voraus,
Crazy007

Edit: Die Samples funktionieren jetzt irgendwie doch außer FluidCS11. Die Buch-Samples jedoch immernoch nicht
Der Error sitzt meistens vor dem Bildschirm! :D

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Crazy007« (09.07.2013, 15:57)


David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

09.07.2013, 19:22

Microsoft hat, vor nicht allzulanger Zeit ein Update herausgebracht mit denen einige DirectX DLLs (aus dem June 2010 SDK) inkompatibel sind. U.a. betrifft dies D3D11SDKLayers.dll womit du kein Device mehr erzeugen kannst. Um dies zu Fixen musst du das neue DirectX SDK installieren, das es allerdings nicht mehr als standalone SDK gibt, sondern Teil des Windows8 SDK ist. Ein weiterer 'Flaw': Pix funktioniert mit diesem Update auch nicht mehr...
@D13_Dreinig

Crazy007

Treue Seele

  • »Crazy007« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Tirol

  • Private Nachricht senden

3

09.07.2013, 19:45

Danke!
Das wusste ich garnicht!
Und kann ich das Windows8 SDK einfach so unter Windows 7 installieren?
Ich hoffe schon.
Danke schonmal! :)
Der Error sitzt meistens vor dem Bildschirm! :D

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

09.07.2013, 20:58

Und kann ich das Windows8 SDK einfach so unter Windows 7 installieren?


Ja, das funktioniert.
@D13_Dreinig

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

5

09.07.2013, 21:09

Abgesehen davon, wäre es natürlich hochinteressant zu wissen, was genau "funktioniert nicht" nun bedeutet... ;)

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

10.07.2013, 08:18

was genau "funktioniert nicht" nun bedeutet


[...] doch irgendwie ließ sich das Device und die Swapchain nicht erstellen

[...]einem meiner älteren Projekte nach [...] Dieses Projekt lief bis vor kurzem noch einwandfrei

Samples aus dem Buch [...] Funktionierten auch nicht


Dahingehend vermute ich mal, dass das 'Setup' (in den meisten Fällen) ok ist und D3D11CreateDevice/D3D11CreateDeviceAndSwapChain trotzdem etwas wie D3DERR_INVALIDCALL liefert (evtl kann das Crazy007 verifizieren).
@D13_Dreinig

Crazy007

Treue Seele

  • »Crazy007« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Tirol

  • Private Nachricht senden

7

10.07.2013, 12:57

Ich habe das Ganze mit einer HRESULT abfrage geprüft:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for(driver = 0; driver < totalDriverTypes; ++driver)
    {
        result = D3D11CreateDeviceAndSwapChain(0, driverTypes[driver], 0, creationFlags, featureLevels, totalFeatureLevels, D3D11_SDK_VERSION,
                                                &swapChainDesc, &swapChain, &d3dDevice, &featureLevel, &d3dDeviceContext);

        if(SUCCEEDED(result))
        {
            driverType = driverTypes[driver];
            break;
        }
    }

    if(FAILED(result))
    {
        MessageBox(hwnd, "Failed to create the Direct3D device!", "Error", MB_ICONEXCLAMATION | MB_OK);
        return false;
    }


Die Schleife wird ganz normal durchlaufen doch niemals hat result den Wert Succeeded und dann kommt die Fehlermeldung: "Failed to create the Direct3D device!"
Im Debugger scheint alles ganz Normal nur eben wie David_pb schon gesagt hatfunktioniert seit dem neusten Update die Funktion CreateDevice nichtmehr.
Der Error sitzt meistens vor dem Bildschirm! :D

Crazy007

Treue Seele

  • »Crazy007« ist der Autor dieses Themas

Beiträge: 186

Wohnort: Tirol

  • Private Nachricht senden

8

10.07.2013, 13:03

Habe das Windows 8 SDK installiert jetzt funktionierts!
Danke für die Hilfe!
Der Error sitzt meistens vor dem Bildschirm! :D

Werbeanzeige