我用索引缓冲区绘制一个正多边形,由于索引的顶点不是固定的,因为可以是4变形,5变形,6变形。。等等
所以索引数组的初始化就带来了问题,如果是固定顶点的话很好办,就是WORD a[10]=....
但由于顶点不确定是多少,我就用new来分配数组,
即WORD *p; p=new WORD[顶点个数];然后运行起来什么都没有,改成固定顶点
即WORD a[10]=....这样就能画图形
我看到填充索引缓冲区的时候即
memcpy(const,const,num);
而我目前的p是在堆栈中分配的,不符合memcpy函数中的const条件,是不是这样的原因造成图形画不出来
如果是的话,大家能不能告诉我怎样用堆栈分配数组的情况下用索引缓冲区画图

解决方案 »

  1.   

    用容器吧
    vector应该能满足你的要求
      

  2.   

    对啊,用标准的模板库比你这样搞要省事的多。用vector是个不错的选择
      

  3.   

    你的问题不仅在于是不是使用STL容器的问题,更大的问题在于 D3D 的 CreateIndexBuffer ,在创建索引缓冲的时候大小是确定的,如果频繁的Release然后再Create势必会造成性能上的损失,主要的损失不仅在于释放删除资源,更主要的是打断了GPU的运行,GPU必须等CPU,这个同步的代价太大了.一个稍微好点的解决方案是准备一个可能放置最多个数的索引缓冲,这样就不必经常释放-创建了.
    这个方法还是没有最终解决问题,因为还需要每次在变化的时候修改索引缓冲的内容,也就是 Lock  Unlock,不过这也没办法