[osg-users] multiple windows

Emmanuel Roche roche.emmanuel at gmail.com
Thu Oct 25 14:43:19 PDT 2007


Whoups.... my zip file was blocked...:-( thus I'm joining the files one by
one....

regards,
Manu.

2007/10/25, Emmanuel Roche <roche.emmanuel at gmail.com>:
>
> whoups... forgot the file of course;..
>
>
> 2007/10/25, Emmanuel Roche <roche.emmanuel at gmail.com>:
> >
> > For those who would have some time to give a look at this, I'm joining
> > the code of a simple application designed to open a View in multiple tabs:
> >
> > the user select an osg or ive file to open an then a new tab is created
> > using this file as scene Data.
> >
> > There is a single CompositeViewer managed by the main frame, an 1 View
> > object per tab...
> >
> > This sample is NOT working properly: if you add one tab, every thing is
> > okay, but when you had other tabs, as before, only the last one is displayed
> > :-( the others become empty [only the default blue background :-( ] and this
> > last tab doesn't handle the mouse inputs correctly [instead, it seems that
> > the mouse input for the first tab are used for this last View !!!...
> >
> > Yet the code is very clear: each tab has its GraphicsWindowWX, (so its
> > wxGLCanvas too), its OSGPanel (so its own processing of mouse inputs, and
> > its View).. so what does this mean ? is the global CompositeViewer
> > appropriating itself the eventQueue of the first View added and then using
> > this one for the other Views ?....
> >
> > As always , any clue would be really welcomed, I feel a bit lost with
> > this...
> >
> > regards,
> > Manu.
> >
> >
> > 2007/10/25, Emmanuel Roche < roche.emmanuel at gmail.com>:
> > >
> > > Hi again guys !
> > >
> > > I've just tested your solution Alberto, and indeed it's working and I
> > > can see both pages with two View on each page :-)...
> > >
> > > Yet I think there is still something I'm missing about the
> > > CompositeViewer behavior : indeed, I set a trackballmanipulator for the
> > > view1 [ view1->setCameraManipulator(new osgGA::TrackballManipulator); ] and
> > > created a Mouse handling function:
> > >
> > > void ventana::OnMouse(wxMouseEvent& event)
> > > {
> > >     if (event.ButtonDown()) {
> > >         int button = event.GetButton();
> > >         v1->getEventQueue()->mouseButtonPress(event.GetX(), event.GetY(),
> > > button);
> > >     }
> > >     else if (event.ButtonUp()) {
> > >         int button = event.GetButton();
> > >         v1->getEventQueue()->mouseButtonRelease(event.GetX(),
> > > event.GetY(), button);
> > >     }
> > >     else if (event.Dragging ()) {
> > >         v1->getEventQueue()->mouseMotion(event.GetX(), event.GetY());
> > >     }
> > > }
> > >
> > > ... here "v1" is the first GraphicsWindow on the tab, and, when I
> > > activate this function by dragging the mouse on the tab nothing moves....
> > > :-(... I trying replacing "v1" by "cViewer" and calling
> > > cViewer->setEventQueue(v1->getEventQueue()) in the initilialization process
> > > [ because the eventQueue seems to be NULL otherwise...] but this doesn't
> > > work either... Any clue about this ???
> > >
> > >
> > > regards,
> > > Manu.
> > >
> > >
> > > 2007/10/25, Robert Osfield <robert.osfield at gmail.com >:
> > > >
> > > > Hi Guys,
> > > >
> > > > I don't have any recommendations, or time right now to dive into
> > > > this
> > > > topic.  I'd certainly like to see osgViewer be able to cope with
> > > > this
> > > > type of usage, and its not one that its been coded for up to this
> > > > point.  Might I suggest getting a tabbed WxWidget example together
> > > > than could be included with the OSG distribution that illustrates
> > > > the
> > > > this issue and can be used as a test bed for a final recommend
> > > > solution.
> > > >
> > > > Robert.
> > > >
> > > > On 10/25/07, Emmanuel Roche <roche.emmanuel at gmail.com> wrote:
> > > > > Thanks a lot Alberto I guess I could not get anything more usefull
> > > > :-) !
> > > > >
> > > > > I'm checking this right now....
> > > > >
> > > > > Regards,
> > > > > Manu.
> > > > >
> > > > > 2007/10/25, Alberto Luaces < aluaces at udc.es>:
> > > > > >
> > > > > > Hi Manu,
> > > > > >
> > > > > > I'm doing the very same thing, but with two views of a same
> > > > scene on every
> > > > > > tab. Currently it works well, but I suspect there are duplicated
> > > > > resources, so
> > > > > > I have to say that my code is not in its final version.
> > > > > >
> > > > > > I'm attaching it, it works for me on Linux and wx 2.6.3unmodified.
> > > > > >
> > > > > > Feel free to compare it with yours so we can learn together :)
> > > > > >
> > > > > > HTH,
> > > > > >
> > > > > > Alberto
> > > > > >
> > > > > > El Thursday 25 October 2007 12:37:45 Emmanuel Roche escribió:
> > > > > > > Hello everyone!
> > > > > > >
> > > > > > > I've got a simple question, but I can't find any practical
> > > > solution:
> > > > > > >
> > > > > > > In my application, I have to display a notebook with a 3D
> > > > window on each
> > > > > > > tab... and I want to be able to add/remove tabs dynamically...
> > > > so, what
> > > > > can
> > > > > > > I use to achieve this result ?
> > > > > > >
> > > > > > > I'm usig wxWidgets + OSG 2.2.0
> > > > > > > I'm on Win XP
> > > > > > >
> > > > > > > I tried with a CompositeViewer :
> > > > > > > - creating the conpositeViewer when requested (so everything
> > > > should be
> > > > > in
> > > > > > > the wx event handling thread...)
> > > > > > > - building my graphicswindowWX
> > > > > > > - creating a view
> > > > > > > - adding this view to the compositeview
> > > > > > > - relying on an Idle function to call viewer->frame()...
> > > > > > >
> > > > > > > ... this works as long as there is a single tab...  but when I
> > > > had
> > > > > others,
> > > > > > > then only the last tab added display something : the others
> > > > only display
> > > > > > > the blue background with no model anymore... ? why that ??
> > > > > > >
> > > > > > > by the way I had to make a small change in the
> > > > > > > GraphicsWindowWx::makeCurrentImplementation() :
> > > > > > >
> > > > > > > bool GraphicsWindowWX::makeCurrentImplementation() {
> > > > > > >   // Bouml preserved body begin 0001FE83
> > > > > > >     if(!GetParent()->IsShown())
> > > > > > >         return false;
> > > > > > >
> > > > > > >     SetCurrent();
> > > > > > >     return true;
> > > > > > >   // Bouml preserved body end 0001FE83
> > > > > > > }
> > > > > > >
> > > > > > > --> So the hidden tabs should return false here... could this
> > > > be the
> > > > > source
> > > > > > > of the problem ?? (anyway wxWidgets doesn't accept
> > > > SetCurrent() when the
> > > > > > > corresponding tab is not visible... :-S )
> > > > > > >
> > > > > > > regards !
> > > > > > >
> > > > > > > Thanks for your help !
> > > > > > > Manu.
> > > > > >
> > > > > >
> > > > > > _______________________________________________
> > > > > > osg-users mailing list
> > > > > > osg-users at lists.openscenegraph.org
> > > > > >
> > > > >
> > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > _______________________________________________
> > > > > osg-users mailing list
> > > > > osg-users at lists.openscenegraph.org
> > > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> > > >
> > > > >
> > > > >
> > > > _______________________________________________
> > > > osg-users mailing list
> > > > osg-users at lists.openscenegraph.org
> > > >
> > > > http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> > > >
> > >
> > >
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20071025/97556571/attachment-0003.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: GraphicsWindowWX.cpp
Type: text/x-c++src
Size: 2620 bytes
Desc: not available
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20071025/97556571/attachment-0012.cpp>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: GraphicsWindowWX.h
Type: application/octet-stream
Size: 1832 bytes
Desc: not available
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20071025/97556571/attachment-0015.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OSGPanel.cpp
Type: text/x-c++src
Size: 1355 bytes
Desc: not available
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20071025/97556571/attachment-0013.cpp>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OSGPanel.h
Type: application/octet-stream
Size: 496 bytes
Desc: not available
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20071025/97556571/attachment-0016.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Wimon.h
Type: application/octet-stream
Size: 166 bytes
Desc: not available
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20071025/97556571/attachment-0017.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: WimonApp.cpp
Type: text/x-c++src
Size: 465 bytes
Desc: not available
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20071025/97556571/attachment-0014.cpp>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: WimonApp.h
Type: application/octet-stream
Size: 173 bytes
Desc: not available
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20071025/97556571/attachment-0018.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: WimonFrame.cpp
Type: text/x-c++src
Size: 3940 bytes
Desc: not available
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20071025/97556571/attachment-0015.cpp>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: WimonFrame.h
Type: application/octet-stream
Size: 530 bytes
Desc: not available
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20071025/97556571/attachment-0019.obj>


More information about the osg-users mailing list