Hallo,
Het volgende is mijn probleem: Ik heb een prachtige messageloop. Als mijn programma, wat direct 3d gebruikt actief, is er niets aan de hand. Maar als ik hem minimaliseer of overschakel naar een ander programma loopt windows plotseling heel erg traag, het duurt 10 seconden voordat hij op mij reageert.
Als ik direct 3d functie Clear(.....) uitschakel, dan werkt het weer prima, wat is er aan de hand?
Mij code:
Het volgende is mijn probleem: Ik heb een prachtige messageloop. Als mijn programma, wat direct 3d gebruikt actief, is er niets aan de hand. Maar als ik hem minimaliseer of overschakel naar een ander programma loopt windows plotseling heel erg traag, het duurt 10 seconden voordat hij op mij reageert.
Als ik direct 3d functie Clear(.....) uitschakel, dan werkt het weer prima, wat is er aan de hand?
Mij code:
code:
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
32
33
34
35
36
37
38
39
| // Message loop uit de main
MSG msg;
BOOL HasMsg;
do
{
// Kijken bericht of er een bericht is, zo ja die ophalen
if (Active == false)
HasMsg = GetMessage(&msg, NULL, 0, 0);
else
HasMsg = PeekMessage(&msg, NULL, 0, 0, PM_REMOVE);
if (HasMsg)
{
// Het bericht behandelen
TranslateMessage(&msg);
DispatchMessage(&msg);
}
// Geen bericht dus wij kunnen wat doen
else
{
Render();
}
}
while (msg.message != WM_QUIT);
// Render functie
void Render()
{
// Maakt het backbuffer leeg
pD3D_Device->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(0, 0, 0), 1.0f, 0);
if (FAILED(pD3D_Device->BeginScene())) return;
pD3D_Device->EndScene();
// Zorgt dat de backbuffer primarybuffer wordt (flip)
pD3D_Device->Present(NULL, NULL, NULL, NULL);
} |