2011-01-16 13 views
0

Ich habe eine Schaltfläche Klasse, die aus der onSurfaceCreated-Methode in meinem glSurfaceView erstellt wird; Es nimmt gl als einen seiner Parameter, damit es richtig zeichnen kann. Ich habe ein Problem beim Übergeben von gl an eine Overlay-Klasse, die aussieht wie ein Pin in der Google Maps App. Wenn ich makeOverlay() im Konstruktor meiner Schaltfläche anrufe, zeichnet es perfekt, wenn ich es irgendwo anders anrufe, bekomme ich ein weißes Quadrat. Sie sind alle auf demselben Zeichnungsfaden. Wer weiß, was ich vermisse? Vielen Dank.Probleme beim Übergeben von gl mit Android

+0

Ich fand heraus, dass Sie gl nur aus den 3 Methoden override, onSurfaceCreated, onSurfaceChanged und onDrawFrame übergeben können; darüber hinaus wird es nicht mehr funktionieren. Umformulierung meiner Frage: Wie kann ich ein neues Objekt richtig auslösen? – jfisk

Antwort

0

Wahrscheinlich wird der GL-Kontext außerhalb dieser Methoden nicht aktuell gemacht.

Sie können einfach eine abstrakte Darstellung Ihres Objekts erstellen und es in Ihrer onDrawFrame-Methode zeichnen. Das solltest du sowieso tun.

0

Sie können den GL-Kontext in einer statischen Variablen speichern, um von überall im Code darauf zugreifen zu können.

+1

Wenn Sie es aus dem gl-Thread aufrufen, wird es wahrscheinlich nicht wie vorgesehen funktionieren. – HaMMeReD

Verwandte Themen