Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > DirectInput в полноэкранном режиме


Автор: leopard678 30.11.2006, 17:36
Создал игру, в оконном работает правильно, а в полноэкранном тормозит ввод с клавиатуры через DirectInput.
(в полноэкранном всё остальное работает  нормально)

Код

D3DPRESENT_PARAMETERS Direct3DParametr; 
    ZeroMemory( &Direct3DParametr, sizeof(Direct3DParametr) );
    Direct3DParametr.Windowed         = FALSE;
    Direct3DParametr.SwapEffect       = D3DSWAPEFFECT_DISCARD;
    Direct3DParametr.BackBufferFormat = Display.Format;
    Direct3DParametr.EnableAutoDepthStencil = TRUE;
    Direct3DParametr.AutoDepthStencilFormat = D3DFMT_D16;
    Direct3DParametr.BackBufferWidth  = GetSystemMetrics(SM_CXSCREEN);
    Direct3DParametr.BackBufferHeight = GetSystemMetrics(SM_CYSCREEN);
    Direct3DParametr.BackBufferCount = 3;
    Direct3DParametr.FullScreen_RefreshRateInHz = Display.RefreshRate;

    if( FAILED( m_pDirect3D -> CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, m_hWnd,
                                      D3DCREATE_HARDWARE_VERTEXPROCESSING,
                                      &Direct3DParametr, &m_pDirect3DDevice ) ) )


Код

if(FAILED(m_lpdi->CreateDevice(GUID_SysKeyboard,&m_lpdikey,NULL)))
            .....

        // установление уровня взаимодействия клавиатуры
if(FAILED(m_lpdikey->SetCooperativeLevel(m_main_window_handle,DISCL_FOREGROUND | DISCL_NONEXCLUSIVE)))
            ......

        // задание формата данных клавиатуры
if(FAILED(m_lpdikey->SetDataFormat(&c_dfDIKeyboard)))
            .......

        // захват клавиатуры
if(FAILED(m_lpdikey->Acquire()))
            .....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)