Hallo,
ich habe ein 3D-Model das mit Double-Buffered-Multithreading (altdevblogaday.com/2011/07/03/threading-and-your-game-loop/) updatet und zeichnet. Wenn gerendert werden muss, löst das Model ein Event aus, welches in meiner Form gehandelt wird und die nötigen Argumente liefert, um angepasst an die Form das Model zeichnen zu können.
Nun habe ich mir gedacht ich könnte das ganze in ein UserControl packen. Statt dem RenderEvent reicht dann ein einfaches Invalidate. Nur leider funktioniert es nicht. Sobald ich Invalidate aufrufe wird der Render und Update Kreislauf abgebrochen ohne irgendeine Fehlermeldung. Ich rufe Invalidate vom RenderThread auf, was vermutlich für das Problem sorgt.
UserControls sind vermutlich nicht für so ein Rendermodel ausgelegt. Ist es also überhaupt sinnvoll das ganze in ein Control auszulagern? Falls ja, wie kann ich das Neuzeichnen korrekt aufrufen?
Danke
Switcherlapp97
ich habe ein 3D-Model das mit Double-Buffered-Multithreading (altdevblogaday.com/2011/07/03/threading-and-your-game-loop/) updatet und zeichnet. Wenn gerendert werden muss, löst das Model ein Event aus, welches in meiner Form gehandelt wird und die nötigen Argumente liefert, um angepasst an die Form das Model zeichnen zu können.
Nun habe ich mir gedacht ich könnte das ganze in ein UserControl packen. Statt dem RenderEvent reicht dann ein einfaches Invalidate. Nur leider funktioniert es nicht. Sobald ich Invalidate aufrufe wird der Render und Update Kreislauf abgebrochen ohne irgendeine Fehlermeldung. Ich rufe Invalidate vom RenderThread auf, was vermutlich für das Problem sorgt.
UserControls sind vermutlich nicht für so ein Rendermodel ausgelegt. Ist es also überhaupt sinnvoll das ganze in ein Control auszulagern? Falls ja, wie kann ich das Neuzeichnen korrekt aufrufen?
Danke
Switcherlapp97