Hallo!
Ich schreibe gerade die Funktion, die mein Device erstellt. Die DIRECT3DPRESENT_PARAMETERS sind so gefüllt:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
ZeroMemory(&d3dpp, sizeof(d3dpp));
d3dpp.BackBufferWidth = 800;
d3dpp.BackBufferHeight = 600;
d3dpp.FullScreen_RefreshRateInHz = 144;
d3dpp.hDeviceWindow = mWndHandle
d3dpp.MultiSampleType = D3DMULTISAMPLE_4_SAMPLES;
d3dpp.MultiSampleQuality = 0;
d3dpp.Windowed = false;
d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;
d3dpp.EnableAutoDepthStencil = true;
d3dpp.AutoDepthStencilFormat = D3DFMT_D24S8;
d3dpp.BackBufferFormat = D3DFMT_A8R8G8B8;
d3dpp.BackBufferCount = 1;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.Flags = 0;
|
So, wenn ich dann folgendermaßen CreateDevice aufrufe:
|
Quellcode
|
1
2
|
DGObject->CreateDevice(0, D3DDEVTYPE_HAL, mWndHandle,
D3DCREATE_HARDWARE_VERTEXPROCESSING, &d3dpp, &DGDevice);
|
dann misslingt das ganze da DGDevice == NULL. Wenn ich Multisampling auf D3DMULTISAMPLE_NONE setze, funktioniert alles. Frage also: Wieso funktioniert das mit Multisampling nicht?
Info: Grafikkarte ist eine GF4TI4200, laut DX9-SDK Capsviewer wird 4-Sample Multisampling mit A8R8G8B8 und D24S8 einwandfrei unterstützt.
Bin jetzt etwas ratlos...
TR