Niedawno zaktualizowaliśmy wersję z VS 2005
do VS 2008
(Windows XP). Używamy SlimDx
w jednym z naszych projektów. Wszystko działa ok, po aktualizacji, z wyjątkiem mojego Odzyskaj funkcji, która jest wywoływana na resecie devicelost/urządzenie, które zderza się zUrządzenie SlimDX.Reset zawiesza się z komunikatem "D3DERR_INVALIDCALL: Invalid call (-2005530516)"
D3DERR_INVALIDCALL: Nieprawidłowe wywołanie (-2005530516)
używam Ctrl - Alt - Del a następnie Escape do symulacji utraconego urządzenia.
void Recover()
{
try
{
if (res.Code == D3DERR_DEVICENOTRESET)
{
res = m_device.Reset(m_presentParams); //Crashes on this.
if (res.IsSuccess)
{
m_deviceLost = false;
}
}
}
catch(Exception e)
{}
}
Czy to ma coś wspólnego z VS 2008
, jak kiedyś ładnie pracować z VS 2005
?
Cokolwiek w spluwie debugowania, które pomaga? – Goz
Szybkie wyszukiwanie "D3DERR_INVALIDCALL Reset" prowadzi do MSDN. "Wywołanie metody jest nieprawidłowe. Na przykład parametr metody może mieć niepoprawną wartość."Tak więc moja sugestia polegałaby na sprawdzeniu m_presentParams, czy zawiera ona informacje, których się spodziewasz? –
rozwiązano: niektóre zasoby (stateblocks) nie były usuwane – ababeel