<div dir="ltr">Hi Jesper,<br><br>Anyone couldn't find your problem by this way, but problem looks like simple. I advice you to look at cOSG class and Render threads activation way in osgviewerMFC example. I think there is render thread activation problem. You can change clear color  but can't render scene. So I think problem is threading activation.<br>
<br>I hope have answered your question.<br>Best Regards.<br><br>Umit Uzun<br><br><div class="gmail_quote">2008/9/25 Jesper D. Thomsen <span dir="ltr"><<a href="mailto:jdt@anybodytech.com">jdt@anybodytech.com</a>></span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">



<div>
<div dir="ltr"><font size="2" color="#000000" face="Tahoma">Hi all, first posting here, so be gentle.</font></div>
<div dir="ltr"><font size="2" face="tahoma"></font> </div>
<div dir="ltr"><font size="2" face="tahoma">I'm trying to integrate OSG in an existing MFC application in place of a temporary custom OpenGL renderer.</font></div>
<div dir="ltr"><font size="2" face="tahoma"></font> </div>
<div dir="ltr"><font size="2" face="tahoma">I have looked at the osgviewermfc example and based my code on that. So far I have got a viewer up and running with a single master camera. I have tested that the camera is being redrawn by changing the clear-color
 to a random value every frame. When I assign scenedata to the viewer there is nothing being drawn however.</font></div>
<div dir="ltr"><font size="2" face="tahoma"></font> </div>
<div dir="ltr"><font size="2" face="tahoma">I am using the following code in my CView::Oncreate:</font></div>
<div dir="ltr"><font size="2" face="tahoma"></font> </div>
<div dir="ltr"><font size="2" face="tahoma">------------------------</font></div>
<div dir="ltr"><font size="2" color="#008000">
<p>// Create a trackball manipulator</p>
</font><font size="2">
<p>trackball = </p></font><font size="2" color="#0000ff">new</font><font size="2"> osgGA::TrackballManipulator();
<p></p></font><font size="2" color="#008000">// Create a Manipulator Switcher
</font><font size="2">
<p>keyswitchManipulator = </p></font><font size="2" color="#0000ff">new</font><font size="2"> osgGA::KeySwitchMatrixManipulator;
<p></p></font><font size="2" color="#008000">// Add our trackball manipulator to the switcher
</font><font size="2">
<p>keyswitchManipulator->addMatrixManipulator( </p></font><font size="2" color="#a31515">'1'</font><font size="2">,
</font><font size="2" color="#a31515">"Trackball"</font><font size="2">, trackball);
<p></p></font><font size="2" color="#008000">// Init the switcher to the first manipulator (in this case the only manipulator)
</font><font size="2">
<p>keyswitchManipulator->selectMatrixManipulator(0); </p></font><font size="2" color="#008000">// Zero based index Value
</font><font size="2">
<p></p></font><font size="2" color="#008000">// Init the main Root Node/Group
</font><font size="2">
<p>mRoot = </p></font><font size="2" color="#0000ff">new</font><font size="2"> osg::Group;
<p></p>
<p></p></font>
<p><font size="2" color="#008000"></font></p>
<font size="2"></font><font size="2" color="#008000">// Load the Model from the model name
<p></p>
</font><font size="2">
<p>mModel = osgDB::readNodeFile(</p></font><font size="2" color="#a31515">"c:/cow.osg"</font><font size="2">);
<p></p></font><font size="2" color="#008000">//// Optimize the model
</font><font size="2">
<p></p></font><font size="2" color="#008000">//osgUtil::Optimizer optimizer;
</font><font size="2">
<p></p></font><font size="2" color="#008000">//optimizer.optimize(mModel);
</font><font size="2">
<p></p></font><font size="2" color="#008000">//optimizer.reset();
</font><font size="2">
<p></p></font><font size="2" color="#008000">// Add the model to the scene
</font><font size="2">
<p>mRoot->addChild(mModel);</p>
<p></p></font><font size="2" color="#008000">// Local Variable to hold window size data
</font><font size="2">
<p>RECT rect;</p>
<p></p></font><font size="2" color="#008000">// Create the viewer for this window
</font><font size="2">
<p>mViewer = </p></font><font size="2" color="#0000ff">new</font><font size="2"> osgViewer::Viewer();
<p></p></font><font size="2" color="#008000">// Add a Stats Handler to the viewer
</font><font size="2">
<p>mViewer->addEventHandler(</p></font><font size="2" color="#0000ff">new</font><font size="2"> osgViewer::StatsHandler);
<p></p>
<p></p></font><font size="2" color="#008000">// Get the current window size
</font><font size="2">
<p>::GetWindowRect(m_hWnd, &rect);</p>
<p></p></font><font size="2" color="#008000">// Init the GraphicsContext Traits
</font><font size="2">
<p>traits = </p></font><font size="2" color="#0000ff">new</font><font size="2"> osg::GraphicsContext::Traits;
<p></p></font><font size="2" color="#008000">// Init the Windata Variable that holds the handle for the Window to display OSG in.
</font><font size="2">
<p>windata = </p></font><font size="2" color="#0000ff">new</font><font size="2"> osgViewer::GraphicsWindowWin32::WindowData(m_hWnd);
<p></p></font><font size="2" color="#008000">// Setup the traits parameters
</font><font size="2">
<p>traits->x = 0;</p>
<p>traits->y = 0;</p>
<p>traits->width = rect.right - rect.left;</p>
<p>traits->height = rect.bottom - rect.top;</p>
<p>traits->windowDecoration = </p></font><font size="2" color="#0000ff">false</font><font size="2">;
<p>traits->doubleBuffer = </p></font><font size="2" color="#0000ff">true</font><font size="2">;
<p>traits->sharedContext = 0;</p>
<p>traits->setInheritedWindowPixelFormat = </p></font><font size="2" color="#0000ff">true</font><font size="2">;
<p>traits->inheritedWindowData = windata;</p>
<p></p></font><font size="2" color="#008000">// Create the Graphics Context
</font><font size="2">
<p>gc = osg::GraphicsContext::createGraphicsContext(traits);</p>
<p></p></font><font size="2" color="#008000">// Init a new Camera (Master for this View)
</font><font size="2">
<p>osg_camera = </p></font><font size="2" color="#0000ff">new</font><font size="2"> osg::Camera;
<p></p></font><font size="2" color="#008000">// Assign Graphics Context to the Camera
</font><font size="2">
<p>osg_camera->setGraphicsContext(gc);</p>
<p></p></font><font size="2" color="#008000">// Set the viewport for the Camera
</font><font size="2">
<p>osg_camera->setViewport(</p></font><font size="2" color="#0000ff">new</font><font size="2"> osg::Viewport(traits->x, traits->y, traits->width, traits->height));
<p></p></font><font size="2" color="#008000">// Add the Camera to the Viewer
</font><font size="2">
<p>mViewer->addSlave(osg_camera);</p>
<p></p></font><font size="2" color="#008000">// Add the Camera Manipulator to the Viewer
</font><font size="2">
<p>mViewer->setCameraManipulator(keyswitchManipulator);</p>
<p></p></font><font size="2" color="#008000">// Set the Scene Data
</font><font size="2">
<p>mViewer->setSceneData(mRoot);</p>
<p></p></font><font size="2" color="#008000">// Realize the Viewer
</font><font size="2">
<p>mViewer->realize();</p>
<p><font face="times new roman">-----------------</font></p>
<p><font face="times new roman"></font> </p>
<p><font face="times new roman">And in my views OnDraw I use the following:</font></p>
<p><font face="times new roman"></font> </p>
<p><font face="times new roman">--------------------</font></p>
<font size="2">
<p></p></font><font size="2" color="#0000ff">float</font><font size="2"> r = (</font><font size="2" color="#0000ff">float</font><font size="2">) rand()/RAND_MAX;
<p></p></font><font size="2" color="#0000ff">float</font><font size="2"> g = (</font><font size="2" color="#0000ff">float</font><font size="2">) rand()/RAND_MAX;
<p></p></font><font size="2" color="#0000ff">float</font><font size="2"> b = (</font><font size="2" color="#0000ff">float</font><font size="2">) rand()/RAND_MAX;
<p></p></font><font size="2" color="#0000ff">float</font><font size="2"> a = (</font><font size="2" color="#0000ff">float</font><font size="2">) rand()/RAND_MAX;
<p>osg_camera->setClearColor( osg::Vec4(r,g,b,a) );</p></font><font size="2">
<p>mViewer->frame();</p>
<p><font face="times new roman">--------------------</font></p>
<p><font face="times new roman"></font> </p>
<p><font face="times new roman">As far as I can tell the osgviewermfc uses pretty much the same code.</font></p>
<p>Any and all help and hint as to what I'm doing wrong would be much appreciated.</p>
<p><font face="times new roman"></font> </p>
<p><font face="times new roman">Regards, and thanks in advance.</font></p>
<p><font face="times new roman"></font> </p><font color="#888888">
<p><font face="times new roman">Jesper D. Thomsen</font></p>
</font></font></font></div>
</div>

<br>_______________________________________________<br>
osg-users mailing list<br>
<a href="mailto:osg-users@lists.openscenegraph.org">osg-users@lists.openscenegraph.org</a><br>
<a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" target="_blank">http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>
<br></blockquote></div><br></div>