Domanda

Sto cercando di creare un dispositivo DirectX a schermo intero (fino a questo momento sono stato finestra doign), ma il dispositivo non verrà creato e ottengo una chiamata HR valida sicuro.

Questo è il mio codice:

    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

Avviso 'md3dPP.Windowed = false;'., Se questo è vero il dispositivo crea in modalità finestra

Ho l'impressione che ho fatto un errore in alcuni dei miei valori di default, ma non hanno idea di dove cercare. C'è un modo per ottenere un rapporto più dettagliato sul motivo per cui la creazione dispositivo non è riuscita al di là D3DERR_INVALIDCALL?

È stato utile?

Soluzione

È necessario specificare un valore diverso per BackBufferFormat perché le app solo finestrate permettono al D3DFMT_UNKNOWN valore. Sceglietene uno che è supportato dal dispositivo (è possibile controllare utilizzando CheckDeviceFormat () ).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top