Kurze Antwort: Die Demo hat nen Denkfehler. Die Activate-Funktion sollte nur einmal nach dem Öffnen des Forms gestartet werden, denn damit erstellt man den Context. Deactivate sollte nur beim Beenden ausgeführt werden und das Laden der Texturen kann erst nach dem Erstellen des Contextes erfolgen. In dem Demo wird der bei jedem Zeichnen neu erstellt, das geht logischerweise nicht. Ansonsten cooler Code