Frage

Ich versuche, ein DirectX-Gerät in vollem Umfang nutzen zu erstellen (bis zu diesem Zeitpunkt ich doign Fenster bin), aber das Gerät wird nicht erstellt, und ich einen ungültiger Anruf HR nicht erhalten.

Dies ist mein Code:

    md3dPP.BackBufferWidth            = 1280; 
md3dPP.BackBufferHeight           = 720;
md3dPP.BackBufferFormat           = D3DFMT_UNKNOWN;
md3dPP.BackBufferCount            = 1;
md3dPP.MultiSampleType            = D3DMULTISAMPLE_NONE;
md3dPP.MultiSampleQuality         = 0;
md3dPP.SwapEffect                 = D3DSWAPEFFECT_DISCARD; 
md3dPP.hDeviceWindow              = mhMainWnd;
md3dPP.Windowed                   = false;
md3dPP.EnableAutoDepthStencil     = true; 
md3dPP.AutoDepthStencilFormat     = D3DFMT_D24S8;
md3dPP.Flags                      = 0;
md3dPP.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
md3dPP.PresentationInterval       = D3DPRESENT_INTERVAL_IMMEDIATE;


HR(md3dObject->CreateDevice(
    D3DADAPTER_DEFAULT, // primary adapter
    mDevType,           // device type
    mhMainWnd,          // window associated with device
    devBehaviorFlags,   // vertex processing
    &md3dPP,            // present parameters
    &m_pd3dDevice));    // return created device

Hinweis ‚md3dPP.Windowed = false;‘. Wenn das wahr ist das Gerät erzeugt im Fenstermodus

Ich habe den Eindruck, ich habe einen Fehler in einigen meiner Standardwerte gemacht, aber keine Ahnung, wo sie suchen müssen. Gibt es eine Möglichkeit, einen ausführlichen Bericht darüber zu erhalten, warum das Gerät Schöpfung jenseits D3DERR_INVALIDCALL gescheitert?

War es hilfreich?

Lösung

Sie müssen einen anderen Wert für BackBufferFormat angeben, da nur Fenster Anwendungen den Wert D3DFMT_UNKNOWN ermöglichen. Wählen Sie eine, die von Ihrem Gerät unterstützt wird (Sie können überprüfen, indem Sie mit CheckDeviceFormat () ).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top