openGL嵌入到Vega的有关问题(回调函数)
openGL嵌入到Vega的问题(回调函数)
各位朋友大家好:
我最近在做有关虚拟现实的课题,遇到点棘手的难题------我用回调函数将openGL嵌入到Vega中,但是不能同时显示vega场景和openGL模型。
程序中如果加入:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除缓冲区
glLoadIdentity();//替换当前矩阵
那就只能显示openGL的模型,反之,如果注释掉这两句,那就只显示vega场景,不显示openGL模型,谁能帮帮我啊。
关于调用的关键函数和代码如下:
(1)定义回调函数
void DrawSceneGL(void);
{
pfPushState();
//glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除缓冲区
// glLoadIdentity();//替换当前矩阵
// 在此处添加openGL代码进行绘制:
glPushMatrix();
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
DrawPool();
DrawMountain();
DrawParticle();
DrawBubble();
glDisable(GL_BLEND);
glPopMatrix();
glFlush(); // 等待完成所有的openGL命令
}
(2)在postConfig()中添加回调函数
void CCVegaex0901View::postConfig()
{
vgChannel *chan;
chan=vgGetChan(0);
vgAddFunc(chan,VGCHAN_POSTDRAW,DrawSceneGL,this);
}
代码就是这样,谁看到这个博客,指点我一下吧,否则毕业都困难了,拜托了。给我留言就可以了。
本文来自****博客,转载请标明出处:http://blog.****.net/wzn0535/archive/2009/11/14/4809779.aspx
------解决方案--------------------
pfPushState();
pfPushMatrix();
pfBasicState();
glPushMatrix();
DrawPool();
DrawMountain();
DrawParticle();
DrawBubble();
glEnd();
glPopMatrix();
pfPopMatrix();
pfPopState();
这样试试
各位朋友大家好:
我最近在做有关虚拟现实的课题,遇到点棘手的难题------我用回调函数将openGL嵌入到Vega中,但是不能同时显示vega场景和openGL模型。
程序中如果加入:
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除缓冲区
glLoadIdentity();//替换当前矩阵
那就只能显示openGL的模型,反之,如果注释掉这两句,那就只显示vega场景,不显示openGL模型,谁能帮帮我啊。
关于调用的关键函数和代码如下:
(1)定义回调函数
void DrawSceneGL(void);
{
pfPushState();
//glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); //清除缓冲区
// glLoadIdentity();//替换当前矩阵
// 在此处添加openGL代码进行绘制:
glPushMatrix();
glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA);
DrawPool();
DrawMountain();
DrawParticle();
DrawBubble();
glDisable(GL_BLEND);
glPopMatrix();
glFlush(); // 等待完成所有的openGL命令
}
(2)在postConfig()中添加回调函数
void CCVegaex0901View::postConfig()
{
vgChannel *chan;
chan=vgGetChan(0);
vgAddFunc(chan,VGCHAN_POSTDRAW,DrawSceneGL,this);
}
代码就是这样,谁看到这个博客,指点我一下吧,否则毕业都困难了,拜托了。给我留言就可以了。
本文来自****博客,转载请标明出处:http://blog.****.net/wzn0535/archive/2009/11/14/4809779.aspx
------解决方案--------------------
pfPushState();
pfPushMatrix();
pfBasicState();
glPushMatrix();
DrawPool();
DrawMountain();
DrawParticle();
DrawBubble();
glEnd();
glPopMatrix();
pfPopMatrix();
pfPopState();
这样试试