D
Ich stoße gerade auf ein seltsames Problem bei glDrawElements():
void Block::draw()
{
glColor3f(data->color_r, data->color_g, data->color_b);
glVertexPointer(3, GL_FLOAT, 0, vertices);
for (unsigned a = 0; a < data->num_indices; a++)
{
std::cout << a << "\t" << static_cast<int>(indices[a]) << ":\t" << vertices[indices[a]*3] << "|\t" << vertices[indices[a]*3 + 1] << "|\t" << vertices[indices[a]*3 + 2] << std::endl;;
}
glDrawElements(GL_QUADS, data->num_indices, GL_UNSIGNED_BYTE, indices);
}
#0 0xb7b4c34c memcpy() (/lib/tls/i686/cmov/libc.so.6:??)
#1 0xb71dec3f __glNativeCopy4() (/usr/lib/dri/fglrx_dri.so:??)
#2 0xb72fee9c __R300TCLProcessArrayPrimitiveWithIndices() (/usr/lib/dri/fglrx_dri.so:??)
#3 0xb73053ec __glim_R300TCLDrawElements() (/usr/lib/dri/fglrx_dri.so:??)
#4 0xb7305a5c __glim_R300TCLDrawElements() (/usr/lib/dri/fglrx_dri.so:??)
#5 0x8049128 Block::draw(this=0x804e0b8) (/home/darthdespotism/dev/GlTris/Block.cpp:30)
#6 0x8049186 Game::draw(this=0xbfcb3f08) (/home/darthdespotism/dev/GlTris/Game.cpp:30)
#7 0x804b602 main() (/home/darthdespotism/dev/GlTris/main.cpp:109)
Die Schleife hab ich noch eingebaut u zu überprüfen, ob die Arrays irgendwo ein verfrühtes Ende haben. Diese läuft jedoch geradeaus durch.
Jemand eine Idee?
EDIT://
indices ist const unsigned char[]
vertices ist const float[]
EDIT://
Wer
glEnableClientState(GL_COLOR_ARRAY);
aufruft, sollte auch ein Farbarray angeben -.-