Question

Je suis en train de créer un dispositif DirectX en plein écran (jusqu'à ce moment je suis fenêtré Faire des), mais le dispositif ne sera pas créé et je reçois un échec RH d'appel non valide.

Ceci est mon 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

Avis 'md3dPP.Windowed = false;'., Si c'est vrai que le dispositif crée en mode fenêtré

Je suis sous l'impression que je l'ai fait une erreur dans certaines de mes valeurs par défaut, mais ont aucune idée où chercher. Y at-il un moyen d'obtenir un rapport plus détaillé pour expliquer pourquoi la création de l'appareil n'a pas au-delà D3DERR_INVALIDCALL?

Était-ce utile?

La solution

Vous devez spécifier une valeur différente pour BackBufferFormat parce que les applications ne permettent fenêtré la valeur D3DFMT_UNKNOWN. Choisissez celui qui est pris en charge par votre appareil (vous pouvez vérifier en utilisant CheckDeviceFormat () ).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top