Greetings, all.
I've been cleaning up my application, and, somehow, this has "triggered"
a StackOverflow situation. I'm working on Windows XP, and have been
working with OSG 2.6. In attempting to deal with the problem, I've
updated to 2.8.3, and find that the problem persists.
The symptom is that WM_NCHITTEST (0x0084) is causing infinite recursion.
I've read the forum topics that match WM_NCHITTEST, but none of those
seem to apply.
Specifically, the call stack tells me that user32.dll (I'm not currently
loading symbols for user32) calls:
osgViewer::WindowProc, which calls
osgViewer::GraphicsWindowWin32::handleNativeWindowingEvent.
_windowProcedure is set, so that calls
user32.dll CallWindowProc, which produces a call stack of three
more user32 calls, which then calls
osgViewer::WindowProc, and the recursion continues to Stack
Overflow.
Hmmm, on recreating the error, to capture the call stack for you, the
uMsg this time isn't WM_NCHITTEST, but rather 0x000e (WM_GETTEXTLENGTH).
(The StackOverflow is the same.)
While I wait for a response, I'll look into loading the symbols for
user32.dll.
In case it sheds any light on the problem, I'll describe my "cleanup."
When I first employed osgViewer::Viewer, I completely misunderstood how
to (correctly) apply Cameras and ViewManipulators. I wove a complex
mechanism on top of osgViewer::Viewer "managing" the camera for each
ViewManipulator and blah, blah, blah. As I've come to understand the
viewer better, I have realized that, for the most part, it handles all
that for me. So, I've been untangling that mess, and simplifying my
derivative of Viewer. And that has gone quite well (except for the
above problem). One of the things that I'm doing more of (but simpler)
is more frequent use of setCamera and setCameraManipulator, to
intentionally switch views (under user control).
Thank you,
Phil Tessier
_______________________________________________
osg-users mailing list
[email protected]
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org