[ CimBac @ 08.11.2004. 17:23 ] @
Pozdrav!

Zanima me,ako neko zna,zasto se kada minimiziram program koji koristi GL, procesor zaposli do 100%,i kako bi to mogao da izbegnem?

Zakacio sam jedan konkretan primer.Hvala.
[ maxmagnus2 @ 09.11.2004. 21:13 ] @
Cao,
Problem je u tome sto se proces ne pauzira
pri spustanju prozora.
Ono sto pa meni nije jasno je to da par poligona
pojede 96% procesorskog vremena :(
MM
[ CimBac @ 10.11.2004. 12:32 ] @
Da, ali kontam da rad procesora u ovom slucaju bas i nema veze sa brojem polija, probao sam cak i sa praznim prozorom (Lesson 1),pa opet isto.
To mora da je nesto drugo...
[ bkaradzic @ 10.11.2004. 18:22 ] @
Ovaj problem verovatno nije vezan za OpenGL nego za tvoj main loop i WinProc. Postoji više rešenja. Npr. da kada WinProc dobije poruku WM_KILLFOCUS postaviš pause flag i onda u main loop-u obrađuješ samo windows poruke i pozivaš Sleep(100). Kada dobiješ WM_SETFOCUS poruku onda izbrišeš pause flag i nastaviš da radiš nomalan main loop. Ako igra treba da radi dok je minimizovana, onda možeš da poisključuješ sve sisteme koji su nebitni (npr. rendering, sound, itd.) i da u slučaju kada je delta time u main loop-u manja od željenog frame rate-a (npr. 1/60 ili nekada je za simulaciju dovoljno da ideš sa manjim frame rate-om) pozivaš Sleep u dužini razlike tog vremena...

Branimir
[ Milos Stojanovic @ 10.11.2004. 19:35 ] @
A da smanji prioritet threadu, pa da pusti Windows da se muči sa balansiranjem resoursa, to je malo jednostavnije rešenje?
[ maxmagnus2 @ 11.11.2004. 23:14 ] @
Jedini loop koji postoji u main f-ji je
onaj koji ceka na poruke.
Stavio sam u okviru njega da radi Sleep(100)
na WM_KILLFOCUS.
Nista se nije dogodilo :(
Stavio sam 1000000 (pretpostavljam da je ovo dovoljno veliki br,
jer ne znam koji da uzmem kao beskonacan) i skinuo je na 1sec sa 86cpu t.
na 56cpu t.
MM
[ bkaradzic @ 11.11.2004. 23:31 ] @
WinProc izgleda ovako?
Code:
LRESULT CALLBACK WindowProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch(uMsg)
    {
        case WM_KILLFOCUS:
            g_bPause = true;
            break;

        case WM_SETFOCUS:
            g_bPause = false;
            break;
    }
    
    return DefWindowProc(hWnd, uMsg, wParam, lParam);
}

A message pump ovako?
Code:
while ( !bDone )
{
    if ( g_bPause )
    {
        Sleep(100);
    }
    else
    {
        Render();
    }

    while ( PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) )
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
}


Branimir
[ CimBac @ 12.11.2004. 00:33 ] @
Ne izgleda bas tako, pogledaj prvi post, pa skini attachment.
[ bkaradzic @ 12.11.2004. 00:50 ] @
Citat:
CimBac: Ne izgleda bas tako, pogledaj prvi post, pa skini attachment.

Mislio sam da prilagodiš ovaj kod što sam ti ja poslao tom kodu što ti imaš pa da javiš da li ti je to rešilo problem. Očigledno je da attachment u prvom postu nema nešto slično, jer ti ne bi ni postavljao pitanje... ;)

Branimir
[ CimBac @ 12.11.2004. 01:28 ] @

Svaka cast, bkaradzic-u, iz prve! To je bas to! Kada minimizujem prozor,sa Sleep(100) FPS padnu na 24, dok je inace 86, a procesor radi na nekih 5%, while normal 18%.



G tnx
[ maxmagnus2 @ 12.11.2004. 12:54 ] @
Citat:
CimBac: Svaka cast, bkaradzic-u, iz prve! To je bas to! Kada minimizujem prozor,sa Sleep(100) FPS padnu na 24, dok je inace 86, a procesor radi na nekih 5%, while normal 18%





Ajde okaci novi kod
MM
[ maxmagnus2 @ 12.11.2004. 13:26 ] @
Ne kaci,
radi i meni :)
[ CimBac @ 13.11.2004. 18:50 ] @

E sad to mi je sve trebalo da zavrsim igricu i "ta da" evo je! Pa ako vas ne mrzi, pogledajte, pa me fidbekujte, if you know what I mean :)
[ maxmagnus2 @ 14.11.2004. 00:13 ] @
CAo,
imao sam problem: igrica nije promenila rezoluciju mog ekrana
pa je sve ogromno?!
[ CimBac @ 14.11.2004. 00:45 ] @
Citat:
maxmagnus2: CAo,
imao sam problem: igrica nije promenila rezoluciju mog ekrana
pa je sve ogromno?!

Nisam siguran da sam te bas razumeo,ali evo da pojasnim: Ekran je otprilike podeljen na nekih 16 velikih polja i ti ih lepo okreces dok ne nadjes parove i to je sustina "igre".Prosto, a!? Al dobro ovo mi je prva win32 aplikacija,pa sam ja zadovoljan. Inace nista bozije nije optimisano,pa ce ti ako imas malo slabiju makinu malo seckati, a uostalom pise ti frame rate.
Vidim da ti imas dvehiljadarku, pa mozda ne vidis ono sto ja vidim sa XP-om
[ maxmagnus2 @ 14.11.2004. 21:55 ] @
Ma radi sve cim mu spustis
jednom prozor pa se ponovo vratis u njega...
Lepo izgleda...
Ajd okaci sors da vidim kako si uradio brojac i slova...
MM
[ CimBac @ 14.11.2004. 22:44 ] @
Jeste da je cpp, a da nema ni govora o C++, al nema veze. Ne znam da li ces se snaci, unos sa tastature mi je malo glup, ali sta cu kada me je mrzelo da sad koristim neke vec napravljene klase ili sta vec, pa sam lepo sam izmislio unos. Pazi, imam copyright... :)