Bonjour,
Je me suis aperçu d'un problème plutôt étrange. J'ai fait une application directx dans une fenêtre qui s'ouvre en 915x750. J'appuie alors sur le bouton agrandir pour qu'elle occupe la totalité de la surface de mon moniteur (1280x1024).
Je constate alors que l'image présente dans la fenêtre est agrandie pour occuper les 1280x1024 un peu comme le fait un logiciel de retouche d'image. L'image est plus grande mais semble très légèrement pixellisée !
Si la résolution de départ est 320x200, par exemple, l'image en 1280x1024 est tout simplement abominable ! L'ordinateur semble toujours calculer en 320x200.
J'ai tenteéde remedier à ce problème en insérant le code suivant dans la fonction resize :
Mais cela ne donne rien, en fait les meshes paraissent alors en noir !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 if (_device) { // Set up the structure used to create the D3DDevice D3DPRESENT_PARAMETERS d3dpp; ZeroMemory(&d3dpp, sizeof(d3dpp)); D3DDISPLAYMODE d3ddm; if(FAILED( _d3d9->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &d3ddm))) { return false; } d3dpp.Windowed = TRUE; d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.BackBufferFormat = d3ddm.Format; d3dpp.BackBufferWidth=width; d3dpp.BackBufferHeight=height; d3dpp.EnableAutoDepthStencil = TRUE; d3dpp.AutoDepthStencilFormat = D3DFMT_D16 Terre->InvalidateDeviceObjects(); FEtoiles->InvalidateDeviceObjects(); if (FAILED(_device->Reset(&d3dpp))) return false; Terre->RestoreDeviceObjects(_device); Soleil->RestoreDeviceObjects(_device); }
Que faut-il faire ?
Avec mes remerciements,
Franck
Partager