关于NV卡和OpenGL的Select模式的问题
hoory 2009-04-21 11:44:56 我使用OpenGL的Select模式做鼠标拣选,但在NV卡下会报运行时错误,请问怎么回事啊?我大显卡是9800GTX+,驱动已更新至官方最新版本。
我的拣选代码如下:
uint sel_buf[256];
int hits;
memset(sel_buf, 0, sizeof(uint) * 256);
glSelectBuffer(256, sel_buf);
glRenderMode(GL_SELECT);
glInitNames();
glPushName(0);
scmat4 pick_mat;
scgl_pick_mat(&pick_mat, pick_x, pick_y, cam->scr_width, cam->scr_height, 3, 3);
scmulmat4(&pick_mat, &pick_mat, cam->get_viewproj_mat());
scshader *shader = scene->res.sh.get_pick_sh();
shader->bind();
shader->set_uniform(scshader_mat4, "mat_pick", &pick_mat);
shader->set_uniform(scshader_mat4, "mat_world", brick->get_world_mat());
scvec3 vbuf[6];
scclvec3s(vbuf, 6);
int ibuf[20];
memset(ibuf, 0, 20 * sizeof(int));
glLoadName(1);
glEnableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glVertexPointer(3, GL_FLOAT, 0, vbuf);
glEnableClientState(GL_INDEX_ARRAY);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
glIndexPointer(GL_INT, 0, 0);
glDrawElements(GL_LINES, 10, GL_UNSIGNED_INT, ibuf);
代码执行到glDrawElements会跳出错误,请高手指教!