Hello Michael,
Michael Raab wrote:
I had trouble with redirecting the output under windows 7 ;)
Back in my office, good old XP does as expected. I did a test with 1 client and
2 servers and it seems that server1 crashed. Log files are attached, hope this
helps.
thanks! I think I got it, the problem occurs when serverPort->getType()
!= clientPort->getType() the code did not consider that serverPort might
be a FBOViewport (and thus have no TCD), checking deco and creating a
new TCD if needed seems to fix it. See attached patch, it's in cvs as well.
Btw, wouldn't it be possible to add an additional field to FBOViewport with
that the user can select if the FBOViewport should be rendered if invisble?
Standard value could be YES, which is the current behaviour.
What do you think?
Hm, the usual visibility is probably not a good criterion because in
general the viewport settings (left, right, top, bottom) for an FBO
refer to a different framebuffer and have nothing to do with real
viewports on the MDW.
Perhaps an MF of server ids should be visible on with empty meaning all
is a better solution.
Given that we are talking about 1.8 I don't have a strong opinion either
way. Perhaps someone else here (Gerrit, Dirk?) wants to weigh in on this?
Cheers,
Carsten
Index: Source/System/Cluster/Window/MultiDisplay/OSGMultiDisplayWindow.cpp
===================================================================
RCS file: /cvsroot/opensg/OpenSG/Source/System/Cluster/Window/MultiDisplay/OSGMultiDisplayWindow.cpp,v
retrieving revision 1.25
diff -u -r1.25 OSGMultiDisplayWindow.cpp
--- Source/System/Cluster/Window/MultiDisplay/OSGMultiDisplayWindow.cpp 9 Jun 2008 07:30:36 -0000 1.25
+++ Source/System/Cluster/Window/MultiDisplay/OSGMultiDisplayWindow.cpp 2 Jul 2010 15:31:43 -0000
@@ -190,8 +190,8 @@
else
{
serverPort = serverWindow->getPort(sv);
- if(serverWindow->getPort(sv)->getType() !=
- clientPort->getType())
+
+ if(serverPort->getType() != clientPort->getType())
{
// there is a viewport with the wrong type
subRefCP(serverWindow->getPort(sv));
@@ -242,20 +242,23 @@
{
serverPort = serverWindow->getPort(sv);
deco = TileCameraDecoratorPtr::dcast(serverPort->getCamera());
- if(serverWindow->getPort(sv)->getType() !=
- clientPort->getType())
+
+ if(serverPort->getType() != clientPort->getType())
{
// there is a viewport with the wrong type
subRefCP(serverWindow->getPort(sv));
serverPort = ViewportPtr::dcast(clientPort->shallowCopy());
- beginEditCP(serverWindow);
- serverWindow->editPort(sv) = serverPort;
+
+ if(deco == NullFC)
+ deco = TileCameraDecorator::create();
+
+ beginEditCP(serverPort, Viewport::CameraFieldMask);
serverPort->setCamera(deco);
- endEditCP(serverWindow);
- }
- else
- {
- deco=TileCameraDecoratorPtr::dcast(serverPort->getCamera());
+ endEditCP(serverPort, Viewport::CameraFieldMask);
+
+ beginEditCP(serverWindow, Window::PortFieldMask);
+ serverWindow->editPort(sv) = serverPort;
+ endEditCP(serverWindow, Window::PortFieldMask);
}
}
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Opensg-users mailing list
Opensg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensg-users