我要发帖 回复

中级会员

38

主题

239

积分

0

专家分

:

私信
发表时间 : 2009-6-4 15:44:03 | 浏览 : 2000    评论 : 3
VEGA仿真内存出现内存泄漏,发到VEGA版沉下去了,转发到这里看看

一个很简单的程序,和华科书上差不多,分为几个阶段,其中阶段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访客

wzg 评论于2009-12-23 19:33:13
我按照科大的书上做的程序没有发现你说的问题
shuchou 评论于2010-1-19 11:04:20
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;
         }
暗神天尊 评论于2011-11-1 11:52:16
{:2_64:}好深奥啊

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

GMT+8, 2020-9-28 10:32 AM

返回顶部