Vector::data()在opengl颜色顶点混合数组中的使用问题
使用glcolorpointer() 和glvetexpointer()绘制矩形的代码如下
显示列表生成:
这里我遇到的一个问题就是glcolorpointer传递指针的偏移,我需要的颜色偏移值为sizeof(float)*3 就是结构题里面的float x,y,z 三个元素 ,所以颜色偏移值为12字节
但是我一直得不到正确的颜色显示
原因在于vector::data()返回的是传入模版的指针 在这里返回的是我自己定义的VColor* 我对VColor*类型的指针进行了+12 这里偏移的字节量 为sizeof(VColor)*12 = 4*7*12=332字节,
自然是得不到正确的的结果
在对指针类型转化成char*之后 字节正常偏移,颜色显示正常
位置移动和绘制
错误的绘制画面:不一定能出来颜色,因为已经超过传递的数组颜色了
正确绘制的效果: