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
|
#include <windows.h>
#include "vramtime.h"
static DWORD transition_times_matrix[][VWS_MAXSTATES] =
{
/* from DDRELEASE */
{ 0, 20, 0, 100, 100 },
/* from D3DTEXRELEASE */
{ 20, 0, 100, 100, 100 },
/* from DDCREATE */
{ 0, 100, 0, 20, 100 },
/* from D3DTEXCREATE */
{ 20, 100, 20, 20, 100 },
/* from UNKNOWN */
{ 100, 100, 100, 100, 100 }
};
void WaitForVRamReady(VRAM_WAIT_STATE vws)
{
static DWORD old_time = 0;
static VRAM_WAIT_STATE old_vws = VWS_UNKNOWN;
DWORD new_time;
if (0==old_time) old_time = timeGetTime();
do new_time = timeGetTime(); while (new_time - old_time < transition_times_matrix[old_vws][vws]);
old_time = new_time;
old_vws = vws;
}
|