Commit Graph

7002 Commits

Author SHA1 Message Date
Robert Osfield
6931ae4878 Added include/osg/GLObjects + .cpp which provide osg::flush*DeletedGLObjects() methods.
Added and cleaned up DeleteHandler calls in osgViewer to help avoid crashes on exit.

Changed DatabasePager across to dynamically checcking osg::getCompileContext(..)

Updated wrappers.
2007-07-06 13:08:51 +00:00
Robert Osfield
a484b95d3c Added #include<algorithm> 2007-07-06 09:06:37 +00:00
Robert Osfield
dedc99f036 Updated wrappers. 2007-07-05 18:41:54 +00:00
Robert Osfield
d1fa520349 Added support for managing a CompileContext. Rearranged the DeleteHandler::flushAll call. 2007-07-05 18:33:20 +00:00
Robert Osfield
7a98691704 Added debug messages to catch key modified state 2007-07-05 18:32:12 +00:00
Robert Osfield
5aa3db15a3 Improved the computation of the side vector 2007-07-05 18:30:57 +00:00
Robert Osfield
601217025f Improved the mapping of update and cull traversal 2007-07-05 18:30:20 +00:00
Robert Osfield
0434d29ad4 From Adndre Garneau, "Attached is a fix to prevent a cursor being shown in graphics windows when
traits specify that none should be used (a recent change forced a
left-pointer cursor as the default). "
2007-07-05 10:57:34 +00:00
Robert Osfield
70bbb06dd5 Commented out "fix" that explictly sets the key modifier state as this change
actually broke the key modifier state management.
2007-07-05 10:51:47 +00:00
Robert Osfield
afc722d43b From Thibault Genessay, "You'll find attached a fix for the comments of the osgwindows example. It fixes a typo in the comments which is quite disturbing for newbies trying to learn using the source (twice 'left' instead of 'left' and 'right').
I've also added a little offset to the windows' positions so that their decoration falls inside the desktop and we can manipulate them - it looks a bit less "made out of wood"."
2007-07-03 17:32:19 +00:00
Robert Osfield
7f0b3144ea Added checking of GUIEventAdpter::getHandled(). 2007-07-03 13:26:48 +00:00
Robert Osfield
dd628a9829 From Roger James, added GL_NORMALIZE mode to scaled models 2007-07-03 10:00:41 +00:00
Robert Osfield
e7d7c1dcc2 Changed the way that computeNearFar is computed to avoid inconsistencies when in stereo mode 2007-07-02 13:17:47 +00:00
Robert Osfield
1522002b47 Updated wrappers 2007-07-02 13:16:54 +00:00
Robert Osfield
e5a6b1a834 From Csaba Halasz, support reading "monochrome" option string and use of monocrhome FreetType support 2007-07-02 12:43:23 +00:00
Robert Osfield
19d1a563fe From Csaba Halasz and Robert Osfield, support for passing in ReaderWriter::Options object into readFontFile 2007-07-02 12:30:14 +00:00
Robert Osfield
c7a316e445 From Mike Connell, "This is a tiny fix for win32.
The current code takes the mouse cursor position and adds it to the
window (left,top) position, and sends the mouse cursor there. But this
doesn't take into account the window decoration.

The new code converts the given (x,y) coordinates from the client area
coordinate system to the screen instead using ClientToScreen. I think
this is the natural windows way to do it.

Tested on XP with osgviewer
"

Note from Robet Osfield, made a few changes to layout to make it more consistent 
with the rest of the OSG and used #if 0 instead if (0) blocks.
2007-06-30 16:19:56 +00:00
Robert Osfield
efda16ac56 From Stephan Huber, "attached you'll find a small fix for the 3ds-plugin, so 3ds-files
exported from cinema 4d are imported correctly. It's not cinema's fault,
because the 3ds-files show up correctly in 3dStudio Max."
2007-06-30 15:40:23 +00:00
Robert Osfield
3873f50214 Updated wrappers 2007-06-30 14:30:55 +00:00
Robert Osfield
aee902720e Added s/getUsage() method 2007-06-30 14:30:44 +00:00
Robert Osfield
bb94377f20 Added balancing of stack size on entry/exit from rendering nested camera. 2007-06-30 14:30:12 +00:00
Robert Osfield
7dd9ea7a30 Added debug path that creates the viewer on the heap. 2007-06-30 14:28:24 +00:00
Robert Osfield
c80313ccd0 From David Callu,
"
Found in the join file the fix for the bug found by Rafa.


    Problem :

        osgIntrospection::Value grp(new osg::Group);

        osgIntrospection::ValueList vlcall;
        vlcall.push_back(osgIntrospection::Value("toto"));

       const osgIntrospection::MethodInfo *m =
grp->getType.getCompatibleMethod("setName", vlcall, true);

       if (m)
       {
            m->invoke(grp, vlcall);      // ** SEGFAULT here
       }





    Algorithm explanation :

          The "invoke" method try to convert "grp", which reflect an
"osg::Group*", in a
          "osgIntrospection::Value", which reflect a "osg::Node*".
This because
          the "setName(const char *)" method found by
"grp->getType.getCompatibleMethod"
          is an "osg::Object" type method.

          When osgIntrospection do this conversion it try :
             - to found a "osgIntrospection::Converter"  to convert
               from "osg::Group*" to "osg::Node*"
             - to found a chain of "osgIntrospection::Converter" to convert
               from "osg::Group*" to "one or many type" to "osg::Node*"
             - to converte an Enum to int or unsigned int
             - to convert the value in its "value string representation",
               then converte this string in the destination value

          Else it throw a "TypeConversionException".







     Bug :

          1)
          When osgIntrospection try to found a chain of
"osgIntrospection::Converter"
          It could do any downcast or (Type to SuperType) or upcast
(SuperType to Type).
          This mean the the chain could be :
          osg::Group to osg::Transform to osg::Camera to
          osg::CullSettings to osg::CullStack to
osg::CollectOccludersVisitor to
          osg::NodeVisitor to osg::Referenced to osg::Object

         During the convertion with this chain, A METTRE failed and
the pointer in
         "grp" is set NULL. But the "grp" is always a valid
"osgIntrospection::Value"
         and so, osgIntrospection accept the conversion. Then it try
to use this pointer
         to call the "setName" function. And Bing SEGFAULT.


         2)
             In "bool Reflection::accum_conv_path( ... )"
             the convection path isn't accumulate in the recursive loop.
             this cause multi request of a conversion path, and a
slowdown in the
             conversion algorithm.

         3)
             Use of the last conversion way in a conversion from
pointer to pointer
             this mean you can do this :
             "osg::Node*" to " value string representation" to "osg::Material*"
             What a bad thing !!!




    Solution :

         1)
          Introduce the concept of dynamic_cast and static_cast.
          now, to do a conversion, osgIntrospection does this :

             - to found a "osgIntrospection::Converter"  to convert
               from "osg::Group*" to "osg::Node*"
             - to found a chain of "osgIntrospection::Converter" to convert
               from "osg::Group*" to "one or many type" to "osg::Node*"
               only with static_cast, downcast (Type to SuperType)

             - to found, if the source and the destination are two pointer,
               a chain of "osgIntrospection::Converter" to convert
               from "osg::Group*" to "one or many type" to "osg::Node*"
               only with dynamic_cast, upcast (SuperType to Type)

             - to convert an Enum to int or to unsigned int
             - to convert the value in its "value string representation",
               then convert this string in the destination value

          Else it throw a "TypeConversionException".


          Add the "enum CastType" to distinguish the static_cast or
dynamic_cast converter.
          Add file OpenSceneGraph/include/osgIntrospection/CastType

         2)
         add a line to accumulate converter in converter Path.

         3)
         add a line to check if source and destination are pointer.
"
2007-06-30 14:21:34 +00:00
Robert Osfield
79dddef778 From Sherman Wilcox, added check for Drawable cull callbck into apply(Billboard) 2007-06-30 09:27:11 +00:00
Robert Osfield
f2a50164b9 Removed the old references to files now removed 2007-06-30 07:09:30 +00:00
Robert Osfield
847a7c1644 Added Point::Extension::isPointSpriteCoordOriginSupported() method 2007-06-29 17:01:37 +00:00
Robert Osfield
604d1a6355 From Sherman Wilcox, added serach for freetype234 2007-06-29 16:37:11 +00:00
Robert Osfield
74af1b8351 From Paul Martz, "Attached is src/osg/CMakeLists.txt. Adding TemplatePrimitiveFunctor to the source code list for the project. This makes this header file show up in the VS IDE as part of this project, and therefore facilitates IDE searching of project-related files, as well as making other tasks easier." 2007-06-29 16:10:24 +00:00
Robert Osfield
ddc26afa16 Fixed indenting to use 4 spaces instead of tabs 2007-06-29 16:09:12 +00:00
Robert Osfield
87788c2360 From Jan Ciger, "I am attaching a fix for the COLLADA plugin on non-windows systems. The
COLLADA modules STLDatabase, LIBXMLPlugin and stdErrPlugin are
statically included in the main COLLADA library on Linux and shouldn't
be linked separately - those libraries do not exist in the default Linux
build and the compilation will fail.

Second issue - the current version of the COLLADA plugin (both current
HEAD in Subversion and the one in stable 2.0) do not work right with the
stable COLLADA DOM 1.4.1. I am getting the following error:
"
2007-06-29 16:06:52 +00:00
Robert Osfield
0ee2466f23 From Roger James, bug fix to counting of number geode with drawables 2007-06-29 16:00:53 +00:00
Robert Osfield
7d2efa886d From Brad Colbert, get/setVolume methods 2007-06-28 20:56:56 +00:00
Robert Osfield
15ff70d298 From Brad Colbert with ammendments by Robert Osfield, add set/getVolume support 2007-06-28 14:19:30 +00:00
Robert Osfield
4953e23ab5 From Trajce Nikolov, fixes to pbuffer setup 2007-06-28 12:59:04 +00:00
Robert Osfield
7a0442a388 From Nikolaus Hanekamp, added support for osg::Multisample 2007-06-28 09:51:47 +00:00
Robert Osfield
49c15572a9 From Stephan Huber, "attached you'll find a first implementation of pbuffer-support for os x.
I used osgprerender --pbuffer to test the carbon-implementation, for now
it works :)
"
2007-06-27 20:44:12 +00:00
Robert Osfield
eac3dc1963 From Paul Melis, "Here is a list of fixes to misspelled APIs. Unfortunately, more than one
of these are public APIs and therefore will break linkage to existing
shared libraries."

Note from Robert Osfield, updated wrappers.
2007-06-27 20:36:16 +00:00
Robert Osfield
64b8e3062f Added temporary reset of the RenderLeaf pointer for any internal calls to other graphics contexts. 2007-06-27 20:34:29 +00:00
Eric WING
a1952f2538 Minor build fixes. Changed/fixed GraphicsWindowCarbon to go into api/Carbon instead of just api/ 2007-06-27 19:51:06 +00:00
Robert Osfield
14470e12c4 From Andy Skinner, fixed return value. 2007-06-27 17:01:54 +00:00
Robert Osfield
60a0e13b2a Updated wrappers 2007-06-27 11:14:40 +00:00
Robert Osfield
97ff495a9c From Rajce Nickolov, improvements to PixelBufferWin32 and GraphicsWindowWin32 2007-06-27 10:37:30 +00:00
Robert Osfield
c0a8c9dd53 Added texture format into Traits. 2007-06-27 10:12:10 +00:00
Robert Osfield
8fea401d79 Fixed target setting bug in PixelBuffer RTT set up. 2007-06-27 09:44:35 +00:00
Robert Osfield
6321579050 Added missing cmake macros 2007-06-26 17:12:48 +00:00
Robert Osfield
746d916fce Reverted to using non silhouette computation. 2007-06-26 11:31:39 +00:00
Robert Osfield
1a78eb8159 Changed the RTT Camera so that it doesn't automatically recompute the near and far planes 2007-06-25 13:48:57 +00:00
Robert Osfield
350b25c49b From Trajce Nickolov, improvements to PixelBufferWin32. 2007-06-25 11:32:19 +00:00
Robert Osfield
77bf21eef7 Set the eol style on CMake .txt files to native 2007-06-25 08:35:06 +00:00
Robert Osfield
c4b3e32436 Updated wrappers 2007-06-24 10:55:43 +00:00