Win32 OpenGL Приложение и 99 ЦП?

Тема в разделе "WASM.OpenGL", создана пользователем Arthur, 20 окт 2009.

  1. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    Добрый день!

    Win32 OpenGL приложение построенное вручную, к примеру одно из них находится по этому адресу:
    hxxp://firststeps.ru/mfc/opengl/r.php?8

    Так вот, такая программа жрет почти все процессорное время! Но если мы используем окно построенное с помощью библиотеки glaux, то приложение не нагружает ЦП. Пример:
    hxxp://firststeps.ru/mfc/opengl/r.php?3

    Как отучить то её кушать столько ЦП, если окно и инициализацию OpenGL создавать в ручную?
     
  2. Com[e]r

    Com[e]r Com[e]r

    Публикаций:
    0
    Регистрация:
    20 апр 2007
    Сообщения:
    2.624
    Адрес:
    ого..
    ну, если ты заметил, все современные(и не очень) игры всегда выжимали максимум из процессора, потому удивляться нечему,
    однако ты можешь поступить примерно вот таким вот путём:
    ...
    forever{
    /* отрисовка сцены тут */

    SwapBuffers(hDC);
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    glLoadIdentity();
    // ну в общем ты понял

    wproc:
    MSG msg;
    BringWindowToTop(hWnd);
    while(PeekMessage(&msg,NULL,0,0,PM_REMOVE)){
    if(msg.message == WM_QUIT) return 0;
    else{
    TranslateMessage(&msg);
    DispatchMessage(&msg);
    }
    }
    if(GetTickCount()-looptick<20) { Sleep(1); jmp wproc; } // если кадр отрисовался раньше чем предпологалось - подождём,
    // и не будем рисовать излишки дабы попусту не грузить процессор
    // ради кадров, которые юзер всёравно не увидит.

    looptick=GetTickCount();
    }
    ...


    ,]
     
  3. Arthur

    Arthur New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2007
    Сообщения:
    494
    Comer_
    Оно самое! Спасибо :)