m_sceneView->PreRenderProcess();
m_sceneView->RenderScene();
double time = 1.0;
m_sceneView->flushDeletedGLObjects(time);
m_pGLCanvas->swapBuffers();
Still, black screen with keep growing memory consumption.
On 7/21/06, Robert Osfield <
[EMAIL PROTECTED]> wrote:
Hi Yanling,
There won't be a problem with CameraNode's and display lists, the two
are totally orthogonal.
Do you have a custom viewer? If so are flushing delete OpenGL objects
on each frame? If not then you need to call :
sceneView->flushDeletedGLObjects(double& availableTime);
Where availableTime is a double set to how much time you want to give
over to flushing deleted OpenGL obejcts.
Robert.
On 7/20/06, Yanling Liu <[EMAIL PROTECTED] > wrote:
> Hi, my HUD was find with OSG 1.0 except have to set DO_NOT_COMPUTE_FAR_NEAR.
> After switch to OSG 1.1, my HUD becomes a black screen and there is huge
> memory consumption (eat 40MB approximately every one second and keep
> eating).
>
> Here is my code:
>
> In SceneView I attached a CameraNode:
>
> //create hud
> m_hudNode = new CCAuxHUDNode; //extend CameraNode and put HUD stuff
> inside the node
> m_hudNode->CreateHUD(m_viewWidth, m_viewHeight);
>
> m_hudNode->setProjectionMatrix(osg::Matrix::ortho2D(0,
> m_viewWidth, 0, m_viewHeight));
>
> m_hudNode->setReferenceFrame(osg::Transform::ABSOLUTE_RF);
> m_hudNode->setViewMatrix(osg::Matrix::identity());
>
> m_hudNode->setClearMask(GL_DEPTH_BUFFER_BIT);
>
> m_hudNode->setRenderOrder(osg::CameraNode::POST_RENDER);
>
> m_root->addChild(m_hudNode.get());
>
> In CCAuxHUDNode::CreateHUD(), I created a console and attached a transparent
> quad to it:
>
> osg::BoundingBox bb;
> bb.set(40.0f , 42.0f, 0.0f, width - 40.0f, height - 42, 0.0f);
>
> osg::Vec3Array* vertices = new osg::Vec3Array;
> float depth = -0.1f;
> vertices->push_back(osg::Vec3( bb.xMin(),bb.yMax(),depth));
> vertices->push_back(osg::Vec3(bb.xMin(),bb.yMin(),depth));
> vertices->push_back(osg::Vec3(bb.xMax(),bb.yMin(),depth));
> vertices->push_back(osg::Vec3(bb.xMax(),bb.yMax (),depth));
> m_consoleGeom->setVertexArray(vertices);
>
> osg::Vec3Array* normals = new osg::Vec3Array;
> normals->push_back(osg::Vec3(0.0f, 0.0f, 1.0f));
> m_consoleGeom->setNormalArray(normals);
>
> m_consoleGeom->setNormalBinding(osg::Geometry::BIND_OVERALL);
>
> osg::Vec4Array* colors = new osg::Vec4Array;
> colors->push_back(osg::Vec4(0.1f, 0.1f, 0.2f, 0.5f));
> m_consoleGeom->setColorArray(colors);
>
> m_consoleGeom->setColorBinding(osg::Geometry::BIND_OVERALL);
>
> m_consoleGeom->addPrimitiveSet(new
> osg::DrawArrays(GL_QUADS,0,4));
> m_consoleGeom->setUseDisplayList(false);
>
> m_consoleNode->addDrawable(m_consoleText.get());
> m_consoleNode->addDrawable(m_consoleGeom.get());
>
> addChild(m_consoleNode.get());
>
> As you can see, my code is nothing strange and every similiar with osgHud
> example about the transparent quad. Also you can see there is one line in
> my code:
> m_consoleGeom->setUseDisplayList(false);
>
> When the line is there, my HUD works fine, no problem at all. But if I
> comment this code, which means to use displaylist, then there is huge memory
> consumption every second and keep going. I wonder if there is some bugs in
> CameraNode about generating displaylist.
>
> I also attached screen shot for my program and task manager. You could see
> the memory consumption goes up very quickly.
>
> Yanling
>
> _______________________________________________
> osg-users mailing list
> [email protected]
> http://openscenegraph.net/mailman/listinfo/osg-users
> http://www.openscenegraph.org/
>
>
>
_______________________________________________
osg-users mailing list
[email protected]
http://openscenegraph.net/mailman/listinfo/osg-users
http://www.openscenegraph.org/
_______________________________________________ osg-users mailing list [email protected] http://openscenegraph.net/mailman/listinfo/osg-users http://www.openscenegraph.org/
