glColorPointer in Android >1.6

K

Kernle 32DLL

Neues Mitglied
0
Hiho,

heute morgen ist mir beim testen meiner App etwas ziemlich seltsames aufgefallen. Ich habe bisher als SDK-Target sowie als Emulator Android 1.6 benutzt. Jetzt habe ich beides auf 2.0 (bzw auch 2.01 und 2.1) umgestellt, und plötzlich habe ich extreme Farbfehler in OpenGL. Ich habe den Fehler auf einen Befehl zurückverfolgt. Den im Threadnamen genannten "glColorPointer".

Um Platz zu sparen, benutze ich einen Int-Buffer mit 3 Integern (Fixed Point Floats) pro Vertice. Den 4. Integer für die Alphawerte spare ich mir.

gl.glColorPointer(3 , GL10.GL_FIXED , 0 , mColorBuffer);

Seit Android 2.0 funktioniert das wohl nicht mehr. Füge ich im Buffer den besagten 4. Integer pro Vertice hinzu (einfach FP 1.0f), und ändere den Befehl wiefolgt ab...

gl.glColorPointer(4 , GL10.GL_FIXED , 0 , mColorBuffer);

...funktioniert wieder alles super.

Richtig mysteriös wird es dadurch das dieser "Fehler" anscheinend nur im Emulator auftritt. Auf dem Motorola Milestone funktioniert obrige Variante perfekt.

Hat jemand eine Erklärung dafür?

So long,
Kernle
 
naja wenns im milestone passt, ist es wohl ein bug im emulator

kann durchaus sein - eventuell mal mit noch einem anderen androiden testen
 
Ich habe gerade gemerkt das ich auf dem Milestone sowie dem HTC mit einer alten Version geteste habe (die noch 4 Ints benutzte, diese "Verbesserung" mit nur 3 Ints habe ich erst später eingebaut). Das Problem besteht also tatsächlich seit 2.0, und führt bei einem "echten" Android Gerät zum Crash der Applikation. Das liegt daran, das er versucht 4 Ints pro Vertice zu laden, obwohl per Definition nur 3 Int pro Vertice da sind. Das resultiert darin das er über den eigentlichen Speicherbereich des Intbuffers für die Farbabgaben hinausliest, was beim Emulator mit Farbfehlern und beim Milestone mit einem Crash bedankt wird.

Der Fehler tritt bei allen Versionen > 1.6 auf, d.h. 2.0 , 2.0.1 und 2.1!
 
Zuletzt bearbeitet:

Ähnliche Themen

D
Antworten
23
Aufrufe
2.485
Data2006
D
OnkelLon
Antworten
13
Aufrufe
1.970
OnkelLon
OnkelLon
M
Antworten
4
Aufrufe
1.166
swa00
swa00
Zurück
Oben Unten