Toon posts:

[C++/OpenGL]

Pagina: 1
Acties:

Verwijderd

Topicstarter
Inleiding:

Momenteel heb ik een C++ programma gemaakt mbv de WIN32 API
Dit programma bestaat uit meerdere windows/dialogs en 1 groot window
waarin een 3D object getoond wordt. In de andere windows kunnen instellingen verandert worden om het object kan roteren / transleren.

1e Probleem:

Echter deze hele UserInterface buttons e.d. werkt echt heel traag ism
met het OpenGL window.

Oplossing:

Door de RenderScene functie die continu wordt uitgevoerd in het hoofdproces
in een apparte thread uit te voeren , is het de bedoeling datdus niet
de messageloop wordt verstoord door de continue aanroep van de RenderScene
functie. Dit werkt ook precies zoals ik het me had voorgesteld.

Het Probleem:

In mijn RenderScene gebruik ik Displaylists. Echter deze worden niet meer getekent op het scherm, al mijn polygonen die ik niet in displaylists heb
zitten worden wel getekend. Nu heb ik gelezen dat je hiervoor 2 Rendering
Contexten moet aanmaken. 1 per thread. Dit heb ik ook gedaan echter... geen resultaat. Alleen mijn font displaylist wordt getoond. Iemand hier ervaring mee ?
Heb ook al het GLTHREAD.EXE example doorgespit van msdn deze snap ik helemaal
en werkt ook bij mij zo alleen ja bij mij is t t displaylist probleem.

Iemand ervaring hiermee ?

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 29-08 03:21

.oisyn

Moderator Devschuur®

Demotivational Speaker

hmm, ik werk zelf altijd met 1 thread... de message loop maak ik altijd zo dat zolang er berichten in de message queue staan die worden afgehandeld, en anders wordt RenderScene aangeroepen

Zoiets dus:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
MSG msg;
bool quit = false;

do
{
    RenderScene ();
    while (PeekMessage (&msg, NULL, 0, 0, PM_REMOVE))
    {
        if (msg.message == WM_QUIT)
        {
            quit = true;
            break;
        }
        TranslateMessage (&msg);
        DispatchMessage (&msg);
    }
}
while (!quit);


ik heb nog nooit last gehad van delays oid

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Topicstarter
Dit heeft inderdaad hetzelfde effect.
In plaats van while ( PeekMessage....)
had ik if ( PeekMessage ..
Bedankt voor de hulp, hoef ik niet met die 2 rendering contexten en gesharde
displaylists aan de gang :)