Hello, Thanks for your answer,
I tried the code you give me but it did not work (certainly because of how works my application) so what I did is get the window from the viewer and get the window handle. In the c# application I use SetParent to put the osg view in the c# window or in a control form. Regards. On Nov 20, 2007 6:30 PM, Glenn Waldron <[EMAIL PROTECTED]> wrote: > Romain, > Here's one way to do it in C++/CLI. The "control" would be the > System::Windows::Forms::Control object in which you want the OSG viewer to > render. You would then need to call viewer->frame() periodically to render > an OSG frame. If you want to port to C# in osgDotNet that is an exercise for > the reader ;) Hope this helps -gw > > HWND hwnd = (HWND)control->Handle.ToPointer(); > > osg::ref_ptr<osg::GraphicsContext::Traits> traits = > new osg::GraphicsContext::Traits(); > > traits->inheritedWindowData = new > osgViewer::GraphicsWindowWin32::WindowData( hwnd ); > traits->setInheritedWindowPixelFormat = true; > traits->doubleBuffer = true; > traits->windowDecoration = false; > traits->sharedContext = 0; > traits->supportsResize = true; > > RECT rect; > GetWindowRect( hwnd, &rect ); > traits->x = 0; > traits->y = 0; > traits->width = rect.right - rect.left; > traits->height = rect.bottom - rect.top; > > osg::ref_ptr<osg::GraphicsContext> gc = > osg::GraphicsContext::createGraphicsContext( > traits.get() ); > > viewer = new osgViewer::Viewer(); > > osg::ref_ptr<osg::Camera> cam = new osg::Camera(); > cam->setGraphicsContext( gc.get() ); > cam->setViewport( new osg::Viewport( traits->x, traits->y, traits->width, > traits->height ) ); > viewer->addSlave( cam.get() ); > > > -- > Glenn Waldron : Pelican Mapping : http://pelicanmapping.com : 703-652-4791 > > > On Nov 19, 2007 1:08 PM, Romain Blanchais < [EMAIL PROTECTED]> > wrote: > > > > > Hello, > > > > In my c# application I would like to create a Level Editor around an > > engine using osg. I need an user Interface in c# and an osg viewer in the c# > > window. > > My problem is I don't how to put the osg viewer inside my c# window. I > > think I need to set the window handle to the osg viewer with the handle off > > my c# window. > > > > I would like to know if it's possible to set the window handle (hwnd) to > > an osgviewer? I want to do that because I need to draw the osgviewer in the > > c# window. > > I know there is osgDotNet but I don't see any function which permit me > > to set the window handle. > > > > > > osgDotNet is a managed c++ wrapper of the osg c++ class. This permit to > > use osg in c# application. > > http://www.openscenegraph.org/projects/osgDotNet/wiki > > > > > > Regards > > > > _______________ > > Romain Blanchais > > > > _______________________________________________ > > osg-users mailing list > > [email protected] > > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > > > > > > > > _______________________________________________ > osg-users mailing list > [email protected] > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org > >
_______________________________________________ osg-users mailing list [email protected] http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

