我要发帖 回复

中级会员

38

主题

239

积分

0

专家分

:

私信
发表时间 : 2009-6-1 18:47:07 | 浏览 : 986    评论 : 6

一个很简单的程序,和华科书上差不多,分为几个阶段,其中阶段2是飞机跑起导航,在其中外界按键输入进入阶段3:飞机抛出火箭,前面几个阶段都没问题,但是当火箭跑完其导航后,画面就卡的不行,用任务管理器查看后发现占用内存直线上升,直到内存占用完弹错。我的代码基本用到书上的,我在阶段4跑完火箭导航完后删除path和nav释放空间后还是不行。如果不进入阶段3直接飞飞机的导航页没有任何问题。请教各位懂内存分配的大虾
。。。。。。。
          else if(state==2)
         {
                 vgProp(feiji_nav,VGCOMMON_ENABLED,VG_ON);
                 vgProp(feiji,VGPLYR_SPLINE_NAVIGATOR,VG_ON);
                 vgProp(feiji_nav,VGSPLINENAV_START_INDEX,0);
                 vgProp(feiji_nav,VGSPLINENAV_STOP_AT_END,VG_ON);//路径遍历完后停止
                 vgPlyrNav(feiji,(vgNavigator*)feiji_nav);
                 tuoluoable=1;
         }
else if(state==3)
         {
          huojiandan_path=vgNewPath(HUOJIANDAN_PATH,NULL);
         huojiandan_pos=vgNewPos();
         luodidian_pos=vgNewPos();
         vgGetWCSPos(huojiandan,huojiandan_pos);
         vgGetPosVec(huojiandan_pos,&tx,&ty,&tz,&th,&tp,&tr);
         vgProp(huojiandan,VGPLYR_CSREF,VGPLYR_ABSOLUTE);//参考坐标改为绝对坐标系
         vgPosVec(huojiandan_pos,tx,ty,tz,0,0,0);
         vgPos(huojiandan,huojiandan_pos);
         vgPosVec(luodidian_pos,tx,ty,0,0,0,0);
         vgPathAddCtrlPointPos(huojiandan_path,huojiandan_pos);
         vgPathAddCtrlPointPos(huojiandan_path,luodidian_pos);
         vgDelPos(huojiandan_pos);
         vgDelPos(luodidian_pos);
         huojiandan_nav=vgNewSplineNavigator(HUOJIANDAN_NAV,huojiandan_path);
         vgProp(huojiandan_nav,VGCOMMON_ENABLED,VG_ON);
         vgProp(huojiandan_nav,VGSPLINENAV_START_INDEX,0);
         vgProp(huojiandan_nav,VGSPLINENAV_RENDER,VG_OFF);
         vgProp(huojiandan_nav,VGSPLINENAV_STOP_AT_END,VG_ON);

         vgNavigatorAddMarker(huojiandan_nav,0,VGSPLINENAV_LINEAR,0,NULL,0);
         vgNavigatorAddMarker(huojiandan_nav,0,VGSPLINENAV_ABSOLUTE_HPR,VG_FALSE,NULL,0);
         vm.beginSpeed=10;
         vm.endSpeed=10;
         vgNavigatorAddMarker(huojiandan_nav,0,VGSPLINENAV_VELOCITIES,0,&vm,sizeof(VelocityMarker));
         vgNavigatorAddMarker(huojiandan_nav,1,VGNAV_EMPTY,0,NULL,0);
         vgMakeSplineNavigator(huojiandan_nav);
         vgProp(huojiandan,VGPLYR_SPLINE_NAVIGATOR,VG_ON);
         vgPlyrNav(huojiandan,(vgNavigator*)(huojiandan_nav));       
         //vgProp(huojiandan_nav,VGSPLINENAV_CURRENT_INDEX,0);         

         vgProp(trail,VGFX_STATE,VG_OFF);
         if(vgGetProp(huojiandan_nav,VGSPLINENAV_CURRENT_INDEX)==1)
         {
                 state=4;
         }


         }

最近VR访客

humaxwell 评论于2009-6-3 09:46:34
怎么都是看的人多,而没人回复吗,不要沉下去啊,这样看程序不清晰地话我发源码
fly320 评论于2009-6-3 09:54:34
我也是这样的。。
sdsd2000 评论于2009-6-3 11:39:32
华科那个也有内存泄漏吗
humaxwell 评论于2009-6-3 14:47:25
华科书上的程序OK ,这也正是我所郁闷的地方,他的程序好着,移植到我这里就不行了,实在想不到还有什么内存变量没有释放
ggw0122 评论于2011-4-10 18:36:19
谢谢了,学习了
ggw0122 评论于2011-4-10 18:37:34
谢谢了,学习了

手机版|VR开发网 统计 津ICP备18009691号
网安备12019202000257

GMT+8, 2021-2-26 06:04 PM

返回顶部