J'essaie de faire un jeu. J'utilise directx 9 pour le faire et j'ai quelques problèmes en essayant de passer en mode plein écran. J'ai fait une fonction qui a initialisé tous les paramètres présents. Tout va bien sauf quand je fais windowed = false (ie je mets fullscreen à true).Paramètres DirectX Present Windowed = false ne fonctionne pas
ici est ma variable paramètres actuels: D3DPRESENT_PARAMETERS d3dpp;
Voici le code pour la variable d3dpp. La plupart sinon la totalité de ce code provient d'un livre intitulé Programming 2d Games de Charles Kelley.
void Graphics::initD3Dpp()
{
try {
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.BackBufferWidth = width;
d3dpp.BackBufferHeight = height;
if (fullscreen)
d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;
else
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
d3dpp.BackBufferCount = 1;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.hDeviceWindow = mainhwnd;
d3dpp.Windowed = (!fullscreen); //THIS LINE RIGHT HERE IS THE ISSUE
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
}
catch (...)
{
throw(GameError(gameErrorNS::FATAL_ERROR,
"Error initializing D3D presentation parameters"));
}
}
Je ne vois pas pourquoi .windowed ne fonctionne pas pour moi. S'il vous plaît demandez-moi si vous avez besoin de plus de contexte.
Comment cela ne fonctionne-t-il pas exactement? Qu'est-ce que vous voyez et ce que vous attendiez de voir? –
Quelle largeur et hauteur avez-vous choisi? Rappelez-vous qu'il doit s'agir d'un mode d'affichage pris en charge. –
cela ne fonctionne pas parce que quand je crée mon périphérique directx, c'est un pointeur nul et mon programme se bloque. lorsque j'utilise le mode plein écran, mais lorsqu'il n'y a pas de plein écran, le périphérique directx est créé. – lvl99knight