1. Mitglieder surfen ohne Werbung auf Android-Hilfe.de! ✔ Jetzt kostenlos Mitglied in unserer Community werden.
  1. Kernle 32DLL, 30.01.2010 #1
    Kernle 32DLL

    Kernle 32DLL Threadstarter Neuer Benutzer

    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
     
  2. swordi, 30.01.2010 #2
    swordi

    swordi Gewerbliches Mitglied

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

    kann durchaus sein - eventuell mal mit noch einem anderen androiden testen
     
  3. Kernle 32DLL, 31.01.2010 #3
    Kernle 32DLL

    Kernle 32DLL Threadstarter Neuer Benutzer

    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: 01.02.2010
Die Seite wird geladen...
Ähnliche Themen Forum Datum
Android Room, wie einsteigen? Android App Entwicklung 31.07.2018
Android Studio richtig installieren Android App Entwicklung 10.07.2018
Android Studio - App stürtzt immer ab Android App Entwicklung 24.06.2018
Android Studio: Auf Datenbank mit zwei Spinner zugreifen. Android App Entwicklung 07.06.2018
Android Studio: Failed to chmod Android App Entwicklung 06.06.2018
App wird nach start sofort beendet! Android App Entwicklung 21.05.2018
Mit Webview.findallasync ein Wert überprüfen -Hilfe Android App Entwicklung 29.04.2018
Daten von Android Wear zur Handy-App senden geht nicht Android App Entwicklung 03.04.2018
Benötigte Zugriff ausschalten Android App Entwicklung 07.03.2018
Fragen zu all den Layouts Android App Entwicklung 12.02.2018
Du betrachtest das Thema "glColorPointer in Android >1.6" im Forum "Android App Entwicklung",
  1. Android-Hilfe.de verwendet Cookies um Inhalte zu personalisieren und dir den bestmöglichen Service zu gewährleisten. Wenn du auf der Seite weitersurfst stimmst du der Cookie-Nutzung zu.  Ich stimme zu.