Ik ben bezig met een OpenGL ES app in .Net (2.0) voor Windows Mobile. Ik heb een Form met daarin een custom Control die het hele client gedeelte van de Form beslaat, en de window handle van dat control gebruik ik om de OpenGL ES surface te maken.
Nou loop ik echter tegen het probleem aan dat als ik de applicatie run op mijn HTC Touch Pro2 (met WM 6.5.5) en mijn toetsenbord uittrek (en het form dus resized van een lange rechthoek naar een brede rechthoek), de applicatie gewoon keihard freezed op de eerstvolgende OpenGL call. Ik heb gepoogd het surface te hercreëren als er geresized is, maar ook dat wil niet werken.
Wat ik nu dus doe is op een Control.OnResize() een eglDestroySurface(oudeSurface), vervolgens eglCreateWindowSurface() en een eglMakeCurrent() met het nieuwe surface. Wat er daadwerkelijk gebeurt is een beetje afhankelijk van hoe ik mijn breakpoints heb geplaatst. Als ik 'm op eglCreateSurface() break dan blijft ie daar ook hangen als ik 'm weer verder laat lopen, en anders redt ie het tot de eerstvolgende gl call (glViewport() in mijn geval).
Iemand enig idee hoe ik een resize fatsoenlijk kan handlen?
Nou loop ik echter tegen het probleem aan dat als ik de applicatie run op mijn HTC Touch Pro2 (met WM 6.5.5) en mijn toetsenbord uittrek (en het form dus resized van een lange rechthoek naar een brede rechthoek), de applicatie gewoon keihard freezed op de eerstvolgende OpenGL call. Ik heb gepoogd het surface te hercreëren als er geresized is, maar ook dat wil niet werken.
Wat ik nu dus doe is op een Control.OnResize() een eglDestroySurface(oudeSurface), vervolgens eglCreateWindowSurface() en een eglMakeCurrent() met het nieuwe surface. Wat er daadwerkelijk gebeurt is een beetje afhankelijk van hoe ik mijn breakpoints heb geplaatst. Als ik 'm op eglCreateSurface() break dan blijft ie daar ook hangen als ik 'm weer verder laat lopen, en anders redt ie het tot de eerstvolgende gl call (glViewport() in mijn geval).
Iemand enig idee hoe ik een resize fatsoenlijk kan handlen?
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.