Hi,

S2LR, thanks for your help... I've tested out your suggestion and feel like I'm 
getting somewhere. The good/bad news, depending on your outlook, is that it 
does something. I had to modify some of what you provided to make it compile, 
but the result is that the application renders a solid color. With or without 
using...

gw->getCamera()->setClearMask(0);

or

view->getCamer()->setClearMask(0);

or neither

the application renders a solid color...

1) White without the clearMask
2) Black with the clearMask on view
3) Blue with the clearMask on gw

Additional Information
I have a three monitor display. The application runs on a 1680 x 1060 window, 
not full screen. When I run the code provided here, parts of the dartboard 
application renders on the first monitor for a split-second, then all three 
monitors are displaying the solid color.

I've played around with the OSG Cookbook Spheres example and found that calling 
the single screen function fixed the three screen issue.

viewer.setUpViewOnSingleScreen();

This function is not available with osgViwere::CompositeViewer.

OSG Setup

Code:

geode = new osg::Geode;

std::string fontFile("arial.ttf");
font = osgText::readFontFile(fontFile);
if (font.valid()) {

   osgText::Text* text = new osgText::Text;
   if (text != 0) {
      text->setUseDisplayList(false);
      text->setFont(font);
      text->setColor(osg::Vec4(1.0f, 1.0f, 1.0f, 1.0f));
      text->setCharacterSize(36.0f);
      text->setAutoRotateToScreen(true);
      text->setPosition(osg::Vec3(100.0f, 100.0f, 10.0f));
      //text->setAxisAlignment(osgText::Text::XZ_PLANE);
      text->setText("SomeSome!");

      text->setLayout(osgText::Text::LEFT_TO_RIGHT);

      geode->addDrawable(text);
   }
}

viewer = new osgViewer::CompositeViewer();
osgViewer::GraphicsWindowEmbedded *gw = (osgViewer::GraphicsWindowEmbedded*) 
new osgViewer::GraphicsWindow();
gw->setWindowRectangle(0, 0, 1680, 1060);

osgViewer::View *view = new osgViewer::View;
view->getCamera()->setGraphicsContext(gw);
view->getCamera()->setViewport(0, 0, 1680, 1060); // somewhere inside OGL 
viewport/window that has origin in LL corner 

view->setSceneData(geode);
viewer->addView(view);
viewer->realize();




Frame Renderer

Code:

glPushAttrib(GL_ALL_ATTRIB_BITS);
glMatrixMode(GL_PROJECTION);
glPushMatrix();
glMatrixMode(GL_TEXTURE);
glPushMatrix();
glMatrixMode(GL_MODELVIEW);
glPushMatrix();

viewer->frame();

glMatrixMode(GL_MODELVIEW);
glPopMatrix();
glMatrixMode(GL_TEXTURE);
glPopMatrix();
glMatrixMode(GL_PROJECTION);
glPopMatrix();
glPopAttrib();
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_TEXTURE_COORD_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);




Thank you!

Cheers,
Dainon

------------------
Read this topic online here:
http://forum.openscenegraph.org/viewtopic.php?p=50162#50162





_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to