Hi Yu,

here’s a snippet of an app using osg inside a classic Cocoa-app. The trick is 
to let osg create a view only and then add this view into your 
NSView-hierarchy. 

osg::ref_ptr<osgViewer::GraphicsWindowCocoa::WindowData> win_data = new 
osgViewer::GraphicsWindowCocoa::WindowData(
    osgViewer::GraphicsWindowCocoa::WindowData::CreateOnlyView |
    osgViewer::GraphicsWindowCocoa::WindowData::CheckForEvents
);

// self is a NSWindow/NSView

osg::ref_ptr<osg::GraphicsContext::Traits> traits = new 
osg::GraphicsContext::Traits();
traits->inheritedWindowData = win_data;
traits->x = 0;
traits->y = 0;
traits->width = [self frame].size.width;
traits->height = [self frame].size.height;
traits->doubleBuffer = true;
traits->vsync = true;
traits->windowDecoration = false;
traits->supportsResize = false;

// the following steps are deep inside my own app and it’s to cumbersome to 
quote them here. 
// 1. create the graphics-context with the traits-object
// 2. create a osg::Viewer or a osg::View and set the gc accordingly.
// 3. realize the graphics-context
// 4. after realizing the GraphicsContext you can get the created view via the 
win_data-object.


openglView = win_data->getCreatedNSView();
[self addSubview: openglView];

[openglView setFrame: NSMakeRect(0, 0, [self frame].size.width, [self 
frame].size.height)];


Another approach is the usage of GraphicsWindowEmbedded, here you’ll create and 
control the OpenGL graphics-context by yourself. 

HTH,

Stephan


On 20 Jun 2014, at 18:08, Yu Zhang <sciro...@163.com> wrote:

> Hi Experts,
> 
> Could you please provide a OS X sample in using GraphicsWindowCocoa?
> 
> I need bind a cocoa window to an osgview.
> 
> BTW, the osgviewerCocoa example works, it used setUpViewerAsEmbeddedInWindow 
> and seems only works in single draw/cull thread mode.
> 
> I tried 
>    
> osgViewer::GraphicsWindowCocoa::WindowData(osgViewer::GraphicsWindowCocoa::WindowData::PoseAsStandaloneApp);
> 
> In a new window and displays the node but hanged, and 
> osgViewer::GraphicsWindowCocoa::WindowData(osgViewer::GraphicsWindowCocoa::WindowData::CreateOnlyView);
>  looks not work in my side.
> 
> Macbook pro 13 late 1013, OS X 10.9.3 XCode 5.02
> 
> Thank you!
> 
> Cheers,
> Yu
> 
> ------------------
> Read this topic online here:
> http://forum.openscenegraph.org/viewtopic.php?p=59836#59836
> 
> 
> 
> 
> 
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

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

Reply via email to