Hi all,

    I have a problem with an ActiveX control using osg. I have it working well 
in osg 1.x but when I have migrated it to osg 2.x (changing the producer viewer 
to osgviewer), the OnPaint function of the control is never called and I can 
not update the osg graph. I think it is a problem with my configuration of the 
viewer. I have this in the main class of the control:
    
    osg::ref_ptr<osg::Referenced> windata = new 
osgViewer::GraphicsWindowWin32::WindowData(GetSafeHwnd());
    
    // Setup the traits parameters
    traits->x = RectDLG.left;
    traits->y = RectDLG.top;
    traits->width = RectDLG.right - RectDLG.left;
    traits->height = RectDLG.bottom - RectDLG.top;
    traits->windowDecoration = false;
    traits->doubleBuffer = true;
    traits->sharedContext = 0;
    traits->setInheritedWindowPixelFormat = true;
    traits->inheritedWindowData = windata;

    osg::GraphicsContext* gc = 
osg::GraphicsContext::createGraphicsContext(traits.get());
    
    osg::ref_ptr<osg::Camera> camera = new osg::Camera;
    camera->setGraphicsContext(gc);
    camera->setViewport(new osg::Viewport(0,0, traits->width, traits->height));
    GLenum buffer = traits->doubleBuffer ? GL_BACK : GL_FRONT;
    camera->setDrawBuffer(buffer);
    camera->setReadBuffer(buffer);

    m_SceneView->addSlave(camera.get());

if I comment the "traits->inheritedWindowData = windata;" line, all works ok, 
it is updated an all the events occurs, but the osg frame appears as a separate 
window, however, if I use this line it appears integrated in the browser but 
onPaint function is never called. I would thank you if somebody can help me.

Best regards,

David.
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to