CreateDevice funzt nicht
-
Hi, ich bekomme bei diesem Code immer einen "Invalid Call":
Ich habe mit dem DX CapsViewer alle Optionen geprüft (ob meine Grafikkarte 2x Multisampling unterstützt usw) und dennoch schlägt die Methode CreateDevice() immer fehl. Welchen Parameter könnte ich falsch gesetzt haben?D3DPRESENT_PARAMETERS param; ZeroMemory(¶m, sizeof(D3DPRESENT_PARAMETERS)); param.BackBufferWidth = 1024; param.BackBufferHeight = 768; param.BackBufferFormat = D3DFMT_R5G6B5; param.MultiSampleType = D3DMULTISAMPLE_2_SAMPLES; param.MultiSampleQuality = 1; param.SwapEffect = D3DSWAPEFFECT_DISCARD; param.hDeviceWindow = g_hwnd; param.Windowed = FALSE; param.EnableAutoDepthStencil = TRUE; param.AutoDepthStencilFormat = D3DFMT_D24S8; param.Flags = D3DPRESENTFLAG_DISCARD_DEPTHSTENCIL; param.FullScreen_RefreshRateInHz = 100; param.BackBufferCount = 1; param.PresentationInterval = D3DPRESENT_INTERVAL_ONE; HRESULT res = g_pD3D->CreateDevice(0, D3DDEVTYPE_HAL, g_hwnd, D3DCREATE_MIXED_VERTEXPROCESSING, ¶m, &g_pD3DDev); if(SUCCEEDED(res)) { MessageBox(NULL, "Erfolg", "erfolg", MB_OK | MB_ICONINFORMATION); } else { const char * str = DXGetErrorDescription9(res); MessageBox(NULL, str, "Fehler", MB_OK | MB_ICONINFORMATION); return -2; }
-
interpreter schrieb:
param.MultiSampleQuality = 1;
Da liegt wohl der Fehler. Wie kommst Du gerade auf 1? Setze null ein!
Zu D3DCREATE_MIXED_VERTEXPROCESSING: Du weißt, dass Du da manuell immer zwischen Hardware und Software umschalten musst und Direct3D das nicht von alleine tut?
-
Tatsache. Dankeschön
Ich kam drauf, weil in DWORD word nach diesem Aufruf 1 stand:
g_pD3D->CheckDeviceMultiSampleType(0, D3DDEVTYPE_HAL, D3DFMT_R5G6B5,
g_windowed, D3DMULTISAMPLE_2_SAMPLES, &word))
Mit der 0 geht es jetzt
-
Hätten doch sicher die debug runtimes gefunden? 3:0
Bye, TGGC (Der Held ist zurück)