Registriert: Mi Aug 14, 2013 21:17 Beiträge: 588
Programmiersprache: C++
OpenGL erwartet standardmäßig, dass jede Zeile deiner Textur an einer Adresse beginnt, die ein Vielfaches von 4 ist (4-Byte-Alignment). Bei deiner 24bit-Textur beginnt die zweite Zeile nach 6 Bytes, OpenGL beginnt aber erst ab dem 8 Byte zu lesen. Die 2 Bytes dazwischen werden verworfen. Du hast zwei Möglichkeiten, das zu verhindern: Du erzeugst nur Texturen, deren Seitenlängen ein Vielfaches von 4 sind, also in diesem Fall eine 4x4-Textur. Oder du weist OpenGL an, sich vernünftig zu benehmen:
Code:
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
_________________ So aktivierst du Syntaxhighlighting im Forum: [code=pascal ][/code], [code=cpp ][/code], [code=java ][/code] oder [code=glsl ][/code] (ohne die Leerzeichen)
Danke, das war es, ich habe beide Varianten ausprobiert. Ich denke, das Aufrunden auf auf die nächsten 4 Byte macht mehr Sinn.
So wie es scheint, wird bei einer TBitmap auf bei den Zeilen auf die nächsten 4 Byte aufgerundet. Sonst hätte ich dort den Effekt sicher auch schon mal bemerkt.
Mitglieder in diesem Forum: 0 Mitglieder und 68 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.