Still on the issue of multi-windows, I guess it's totally unsafe to use multiple CompositeViewer at the same time, isn't it ?<br><br>For exemple doing something like:<br><br>CompositeViewer* v1 = (...)<br><br>CompositeViewer* v2 = (....)
<br><br><br>while(true) {<br>  v1->frame();<br>  v2->frame();<br>}<br><br><br>???<br><br><br><div><span class="gmail_quote">2007/10/25, Emmanuel Roche <<a href="mailto:roche.emmanuel@gmail.com">roche.emmanuel@gmail.com
</a>>:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Whoups.... my zip file was blocked...:-( thus I'm joining the files one by one....
<div><span class="e" id="q_115d91e8dd4e1dcd_1"><br><br>regards,<br>Manu.<br><br><div><span class="gmail_quote">2007/10/25, Emmanuel Roche <<a href="mailto:roche.emmanuel@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">

roche.emmanuel@gmail.com</a>>:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">whoups... forgot the file of course;..<div><span>
<br><br><br><div><span class="gmail_quote">2007/10/25, Emmanuel Roche <<a href="mailto:roche.emmanuel@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">roche.emmanuel@gmail.com</a>>:
</span>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
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:<br><br>the user select an osg or ive file to open an then a new tab is created using this file as scene Data.
<br><br>There is a single CompositeViewer managed by the main frame, an 1 View object per tab...<br><br>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 !!!...
<br><br>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 ?....
<br><br>As always , any clue would be really welcomed, I feel a bit lost with this... <br><br>regards,<br>Manu.<br><br><br><div><span class="gmail_quote">2007/10/25, Emmanuel Roche <<a href="mailto:roche.emmanuel@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">



roche.emmanuel@gmail.com</a>>:</span><div><span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi again guys !
<br><br>I've just tested your solution Alberto, and indeed it's working and I can see both pages with two View on each page :-)...
<br><br>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:
<br><br>void ventana::OnMouse(wxMouseEvent& event)<br>{<br>    if (event.ButtonDown()) {<br>        int button = event.GetButton();<br>        v1->getEventQueue()->mouseButtonPress(event.GetX(), event.GetY(), button);
<br>    }<br>    else if (event.ButtonUp()) {<br>        int button = event.GetButton();<br>        v1->getEventQueue()->mouseButtonRelease(event.GetX(), event.GetY(), button);<br>    }<br>    else if (event.Dragging




()) {<br>        v1->getEventQueue()->mouseMotion(event.GetX(), event.GetY());<br>    }<br>}<br><br>... 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 ???
<br><br><br>regards,<br>Manu.<br><br><br><div><span class="gmail_quote">2007/10/25, Robert Osfield <<a href="mailto:robert.osfield@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">robert.osfield@gmail.com
</a>>:</span><div><span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Guys,<br><br>I don't have any recommendations, or time right now to dive into this<br>topic.  I'd certainly like to see osgViewer be able to cope with this<br>type of usage, and its not one that its been coded for up to this
<br>point.  Might I suggest getting a tabbed WxWidget example together<br>than could be included with the OSG distribution that illustrates the<br>this issue and can be used as a test bed for a final recommend<br>solution.
<br><br>Robert.<br><br>On 10/25/07, Emmanuel Roche <<a href="mailto:roche.emmanuel@gmail.com" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">roche.emmanuel@gmail.com</a>> wrote:<br>> Thanks a lot Alberto I guess I could not get anything more usefull :-) !
<br>
><br>> I'm checking this right now....<br>><br>> Regards,<br>> Manu.<br>><br>> 2007/10/25, Alberto Luaces < <a href="mailto:aluaces@udc.es" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">



aluaces@udc.es</a>>:<br>> ><br>> > Hi Manu,
<br>> ><br>> > I'm doing the very same thing, but with two views of a same scene on every<br>> > tab. Currently it works well, but I suspect there are duplicated<br>> resources, so<br>> > I have to say that my code is not in its final version.
<br>> ><br>> > I'm attaching it, it works for me on Linux and wx 2.6.3 unmodified.<br>> ><br>> > Feel free to compare it with yours so we can learn together :)<br>> ><br>> > HTH,<br>




> ><br>> > Alberto<br>> ><br>> > El Thursday 25 October 2007 12:37:45 Emmanuel Roche escribió:<br>> > > Hello everyone!<br>> > ><br>> > > I've got a simple question, but I can't find any practical solution:
<br>> > ><br>> > > In my application, I have to display a notebook with a 3D window on each<br>> > > tab... and I want to be able to add/remove tabs dynamically... so, what<br>> can<br>> > > I use to achieve this result ?
<br>> > ><br>> > > I'm usig wxWidgets + OSG 2.2.0<br>> > > I'm on Win XP<br>> > ><br>> > > I tried with a CompositeViewer :<br>> > > - creating the conpositeViewer when requested (so everything should be
<br>> in<br>> > > the wx event handling thread...)<br>> > > - building my graphicswindowWX<br>> > > - creating a view<br>> > > - adding this view to the compositeview<br>> > > - relying on an Idle function to call viewer->frame()...
<br>> > ><br>> > > ... this works as long as there is a single tab...  but when I had<br>> others,<br>> > > then only the last tab added display something : the others only display<br>> > > the blue background with no model anymore... ? why that ??
<br>> > ><br>> > > by the way I had to make a small change in the<br>> > > GraphicsWindowWx::makeCurrentImplementation() :<br>> > ><br>> > > bool GraphicsWindowWX::makeCurrentImplementation() {
<br>> > >   // Bouml preserved body begin 0001FE83<br>> > >     if(!GetParent()->IsShown())<br>> > >         return false;<br>> > ><br>> > >     SetCurrent();<br>> > >     return true;
<br>> > >   // Bouml preserved body end 0001FE83<br>> > > }<br>> > ><br>> > > --> So the hidden tabs should return false here... could this be the<br>> source<br>> > > of the problem ?? (anyway wxWidgets doesn't accept SetCurrent() when the
<br>> > > corresponding tab is not visible... :-S )<br>> > ><br>> > > regards !<br>> > ><br>> > > Thanks for your help !<br>> > > Manu.<br>> ><br>> ><br>> > _______________________________________________
<br>> > osg-users mailing list<br>> > <a href="mailto:osg-users@lists.openscenegraph.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">osg-users@lists.openscenegraph.org</a><br>> >
<br>> <a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br>> ><br>> ><br>> ><br>><br>><br>> _______________________________________________<br>> osg-users mailing list<br>




> <a href="mailto:osg-users@lists.openscenegraph.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">osg-users@lists.openscenegraph.org</a><br>> <a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">



http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
</a><br>><br>><br>_______________________________________________<br>osg-users mailing list<br><a href="mailto:osg-users@lists.openscenegraph.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">



osg-users@lists.openscenegraph.org</a><br><a href="http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org</a><br></blockquote></span></div></div><br>
</blockquote></span></div></div><br>
</blockquote></div><br>
</span></div><br clear="all"></blockquote></div><br>
</span></div><br clear="all"></blockquote></div><br>