Hi,

2015-01-09 23:58 GMT+01:00 Andrew Cunningham <andr...@mac.com>:
> Hi,
> I finally got around to resolving these MFC/Aero issues using the following .

<snip>

> Hope someone finds this helpful....

While I didn't hit the Aero issue you're talking about (I'm still on
Windows XP), this post remains helpful as I'm getting performance
issue with a similar MFC/OSG application.

By contrast with the osgviewerMFC example where the cOSG class (that
makes the glue between OSG and MFC) is a component of the view
(CMFC_OSG_MDIView), I imagine that in your situation, this cannot be
the case, as each view of your CSplitterWnd would otherwise have it's
own OSG viewer/scene graph, right? I also imagine that you're using a
CompositeViewer rather than a Viewer instance to manage the OSG part
of your different CSplitterWnd views? Where did you put the instance
of this CompositeViewer, as a member variable of the child frame?

In my application, I'm relying upon a CompositeViewer, a member
variable of the child frame. This child frame also has a CSplitterWnd
member variable. Each view of the CompositeViewer inherits the window
data from the CSplitterWnd view's HWND. With this architecture, the
performances are far from stellar. Basically, the framerate is divided
by the number of views. If it does matter, I'm using a separate render
thread for each CompositeViewer. Since there's one CompositeViewer per
child frame, there's in fact one distinct CompositeViewer by opened
document. I don't know if it's the optimum architecture. For the
records, I've also tried one unique CompositeViewer and render thread
at the application level, shared by all the child frames/opened
documents, but I was getting random crashes. But that's another story,
back to the performance problem. Do you also notice performance issue
with your application? I don't know where it comes from, maybe context
switching as each view of the CompositeViewer inherit a different
graphics context from the CSplitterWnd view? I've discarded the
CSplitterWnd as the cause, as I'm getting the same kind of performance
drop simply replacing the Viewer in the osgviewerMFC example with a
CompositeViewer holding two views of the same scene graph.

For completeness, I've also looked at the osgviewerQt example that
makes use of a CompositeViewer, each view also having it's own
graphics context. I'm not seeing any performance problem there on the
same PC.

Cheers,

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

Reply via email to