Обязательно перечисляйте режимы вашего адаптера. Режим, который вы используете, может иметь проблемы с видеокартой. Кроме того, для каждого формата, поддерживаемого адаптером, существует список режимов отображения, основанный на количестве доступных режимов. Вот быстрый пример зацикливания этих режимов:
D3DDISPLAYMODE mode;
UINT adapter = 0;
D3DFORMAT format = D3DFMT_R5G6B5;
LPDIRECT3D9 pD3D;
pD3D = Direct3DCreate9( D3D_SDK_VERSION );
if(!pD3D) return FALSE;
UINT availableModes = pD3D->GetAdapterModeCount(Adapter, Format);
if(!availableModes) return FALSE;
for(UINT i = 0; i < availableModes; i++)
{
pD3D->EnumAdapterModes( adapter, format, i, &mode);
formatModeList->push_back(mode); // A list of modes
}
Кроме того, убедитесь, что вы НЕ используете переворот, если находитесь в оконном режиме. В оконном режиме вы делитесь текущим режимом видео запущенных приложений. К сожалению, вы должны использовать более медленный процесс блиттинга. Надеюсь, это поможет.
С уважением,
Будет