Commit Graph

11736 Commits

Author SHA1 Message Date
Robert Osfield
ce4890fa7a From Claus Scheiblauer, "in GraphicsWindowQt.cpp the GLWidget::keyReleaseEvent was implemented slightly different to the GLWidget::keyPressEvent, which caused the cursor keys values to be not correctly mapped from an QKeyEvent value to an osg key value when releasing a cursor key." 2012-02-08 09:34:44 +00:00
Robert Osfield
1432d4d54b Fixed build issues when compile with OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION set to OFF. 2012-02-07 16:14:13 +00:00
Robert Osfield
a9baf19f32 From Alexander Irion, "Added missing format GL_ALPHA to Image::computeFormatDataType()." 2012-02-07 12:37:48 +00:00
Robert Osfield
4d69577228 From Johannes Baeuerle, "The first problem is wrong value of the block size of etc1 textures in the getCompressedSize call in Texture.cpp. With the current block size of 16 the target application crashes with a GL_INVALID_VALUE. The reason is that the calculated size passed to OpenGL does not match the size of the passed data(data pointer,texture width,texture height,spec of etc1).
With a block size of 8 in the getCompressedSize call this error dissapears."
2012-02-07 12:02:04 +00:00
Robert Osfield
2a36e51eed From Nico Kruithof, "I found that Collada wasn't found correctly with visual studio 2010." 2012-02-07 11:43:42 +00:00
Robert Osfield
06f7fd4f48 From Marius Kintel, "GraphicsWindowQt::WindowData no longer requires the parent widget of a graphics window to be of type GLWidget." 2012-02-07 11:41:20 +00:00
Robert Osfield
52270c9656 From David Fries, "Of the two ways to use the Tessellator object, only
retessellatePolygons was applying the winding and boundary option.
Moved the gluTessProperty calls into beginTessellation().

There's a comment typo fix, removing an unused VertexPointList
typedef, and allocates one _tobj instead of one per tesellation.
Protections were added to check that _tobj was allocated in the few
remaining places it wasn't being checked.

---
On a side note, I would like to avoid the 'new Vec3d' in
Tessellator::addVertex for each call to
gluTessVertex(tess, location, data).
The RedBook leaves it ambiguous if the location pointer must
remain valid after gluTessVertex or not.
http://www.opengl.org/sdk/docs/man/xhtml/gluTessVertex.xml
says that changing location is not safe, so being conservative, I'll
leave it as is, even though the Mesa GLU library copies the data not
the pointer, so it is currently safe."
2012-02-07 11:29:47 +00:00
Robert Osfield
0775483b7c From Lionel Lagarde, "The setNormal method of osg::Billboard has side effects (it calls updateCache and update the normal to Z rotation matrix). When cloning billboards, copying the normal vector is not enough. In the correction, the copy constructor calls setNormal to update the internal members." 2012-02-07 11:21:11 +00:00
Robert Osfield
3ae53557b1 From Wojciech Lewandowski, "This is a one line modification of StatsHandler.cpp to work correctly while dumping states to console when ViewerStats getEarliesFrameNumber() and getLatestFrameNumber() return zeroes. If that happened in current version, printing loop was iterating between 0 and 0xFFFF FFFF indices and that was hanging our system.
"
2012-02-07 10:57:19 +00:00
Robert Osfield
1454e9c760 From Tamer Fahmy, Fix for bug when scrolling down and using render on demand.
"Currently issuing a mouse scroll DOWN event would stop updating
animations in progress.

The fix consists of changing the line
 us.requestContinuousUpdate( false );
to:
 us.requestContinuousUpdate( isAnimating() || _thrown );

in OrbitManipulator::handleMouseWheel() as has been done for the
GUIEventAdapter::SCROLL_UP case a couple of lines earlier or in
src/osgGA/FirstPersonManipulator.cpp."
2012-02-07 10:51:22 +00:00
Robert Osfield
89417ee47f From Rudolf Wiedemann, "the file attached fixes the incomplete implementation of "osg::DefaultUserDataContainer"'s copy constructor.
Copying user objects was missing."

Note from Robert Osfield, in submission changed
    _objectList.push_back((*itr)->clone(copyop));
to
    _objectList.push_back(copyop(*itr));
2012-02-07 10:40:04 +00:00
Robert Osfield
7d5d742070 From Sukender, "I just fixed using UTF8 paths in JP2 readerwriter under Windows. Jpeg2000 plugin could not handle UTF8 paths as it was using an Japser open() function which seems to be based on the standard fopen(). The fix simply opens the file beforehand and only gives a FILE* to the Jasper lib (and then closes the file, of course).
"
2012-02-07 10:33:09 +00:00
Robert Osfield
251827c994 From Mathias Froehlich, "In Optimizer.cpp a nodes update callback is checked twice and the cull
callback is checked never for the decision of a node being redundant.
The change replaces one of the update callback tests with a cull callback
test."
2012-02-06 13:45:20 +00:00
Robert Osfield
5d50913722 From Mathias Froehlich, "Attached is a change to the stats handler so that the aspect ratio of the
viewer stats coordinates always stay about 1:1 to the pixels.
This helps for more readable stats with very wide windows for example."
2012-02-06 13:40:01 +00:00
Robert Osfield
af01a9e984 From Mathias Froehlich, "The attached change to the default font makes the baseline correctly working
and makes the glyphs aspect ratio match their 12x8 bitmaps.
I am not exactly sure about osgTexts current internals but it matches the
changes that happened lately to the txf font.
"
2012-02-06 13:35:45 +00:00
Robert Osfield
ec08c4dfea From Cory Riddell, "I've been using the dot plugin and found that our application which sets
the global locale was generating bad dot files. Specifically, the node
numbers had comma separators in them (like 1,234 rather than 1234).

The attached file simply forces the stringstreams used to build up the
dot file to use the "C" locale."
2012-02-06 13:29:38 +00:00
Robert Osfield
2298cc520c From Robert Milharcic, "In attached file I implemented LOAD_IMMEDIATELY mode for new osg ProxyNode wrapper. Current version of proxynode loading uses DatabasePager for both modes(DEFER_LOADING_TO_DATABASE_PAGER and LOAD_IMMEDIATELY).
Immediate loading of external references begins after ProxyNode has been deserialized in ProxyNodeFinishedObjectReadCallback."
2012-02-06 13:27:25 +00:00
Robert Osfield
55c4f9b401 From Paul Palumbo, "This change seems to fix a problem reading 32-bit Floating point tiff images. Without this fix, I'm only getting half my image displayed in "osgviewer --image"." 2012-02-06 12:42:52 +00:00
Robert Osfield
d21280785c From Jason Beverage, "Attached is a patch to the SVG plugin to use cairo_surface_destroy
instead of free.  This was causing a crash on Windows.
"
2012-02-06 12:38:11 +00:00
Robert Osfield
38b17bc5fa From Jan Peciva, "attaching improved StatsVisitor. Changes:
- apply() and reset() methods made virtual to allow overriding
- added apply(StateSet&) to make more easier to gather StateAttribute
statistics in user-derived classes
"
2012-02-06 12:36:25 +00:00
Robert Osfield
6ebe48d6bb Fixed indendation and line endings 2012-02-06 12:29:29 +00:00
Robert Osfield
db49c23944 From Brad Christiansen, "The attached files add the ability to control when a paged child becomes eligible for expiry based on time and/or elapsed frames.
I found that some of the items that had been paged in were being expired on the first frame that they were not visible (as the cache was full). This resulted in excessive paging every time the view was moved. With the following changes I could only allow children to be expired if they had not been used for e.g. 30 seconds or 60 frames."
2012-02-06 12:06:40 +00:00
Robert Osfield
3b4333ec9a Fixed silly compiler warning that was being produced in error. 2012-02-06 12:05:36 +00:00
Robert Osfield
ae27f1e210 From Alexander Sinditskiy, "looks like GlyphGeometries _glyphGeometries; should be removed because Glyph3D have the same named local variable." 2012-02-06 11:17:12 +00:00
Robert Osfield
0e3de701d9 From Stephan Huber, "attached you'll find a first version of multi-touch-support for OS X (>=
10.6), which will forward all multi-touch events from a trackpad to the
corresponding osgGA-event-structures.

The support is switched off per default, but you can enable multi-touch
support via a new flag for GraphicsWindowCocoa::WindowData or directly
via the GraphicsWindowCocoa-class.

After switching multi-touch-support on, all mouse-events from the
trackpad get ignored, otherwise you'll have multiple events for the same
pointer which is very confusing (as the trackpad reports absolute
movement, and as a mouse relative movement).

I think this is not a problem, as multi-touch-input is a completely
different beast as a mouse, so you'll have to code your own
event-handlers anyway.

While coding this stuff, I asked myself if we should refactor
GUIEventAdapter/EventQueue and assign a specific event-type for
touch-input instead of using PUSH/DRAG/RELEASE. This will make it
clearer how to use the code, but will break the mouse-emulation for the
first touch-point and with that all existing manipulators. What do you
think? I am happy to code the proposed changes.

Additionally I created a small (and ugly) example osgmultitouch which
makes use of the osgGA::MultiTouchTrackballManipulator, shows all
touch-points on a HUD and demonstrates how to get the touchpoints from
an osgGA::GUIEventAdapter.

There's even a small example video here: http://vimeo.com/31611842"
2012-02-03 15:15:37 +00:00
Robert Osfield
85bce8b8ad From Stephan Huber, "attached you'll find a first version of multi-touch-support for OS X (>=
10.6), which will forward all multi-touch events from a trackpad to the
corresponding osgGA-event-structures.

The support is switched off per default, but you can enable multi-touch
support via a new flag for GraphicsWindowCocoa::WindowData or directly
via the GraphicsWindowCocoa-class.

After switching multi-touch-support on, all mouse-events from the
trackpad get ignored, otherwise you'll have multiple events for the same
pointer which is very confusing (as the trackpad reports absolute
movement, and as a mouse relative movement).

I think this is not a problem, as multi-touch-input is a completely
different beast as a mouse, so you'll have to code your own
event-handlers anyway.

While coding this stuff, I asked myself if we should refactor
GUIEventAdapter/EventQueue and assign a specific event-type for
touch-input instead of using PUSH/DRAG/RELEASE. This will make it
clearer how to use the code, but will break the mouse-emulation for the
first touch-point and with that all existing manipulators. What do you
think? I am happy to code the proposed changes.

Additionally I created a small (and ugly) example osgmultitouch which
makes use of the osgGA::MultiTouchTrackballManipulator, shows all
touch-points on a HUD and demonstrates how to get the touchpoints from
an osgGA::GUIEventAdapter.

There's even a small example video here: http://vimeo.com/31611842"
2012-02-03 14:25:08 +00:00
Robert Osfield
e5a16de7d4 Improved handling of archives 2012-02-03 11:10:17 +00:00
Robert Osfield
1ed3833556 From Terry Welsh, improved support for handling archives 2012-02-03 11:09:45 +00:00
Robert Osfield
fe61dcac69 From Colin McDonald, "I have an application with multiple windows. They share GL objects
between the contexts, using the GraphicsContext::Traits sharedContext
and setting the same contextID.

When one of these shared contexts is closed, GraphicsContext::close
deletes all GLObjects for that contextID, regardless of the fact that
they are shared.  This means that all of the other contexts sharing the
objects have to recompile them.

The attached tweak makes GraphicsContext::close a bit less brutal for
shared contexts.  I have also changed a misleading diagnostic message.
"
2012-02-01 17:42:42 +00:00
Robert Osfield
43f9a76169 From Luc Frauciel, "FBX plugin was locked on version 2012.1 of FBX SDK which is not available anymore on Autodesk website.
This patch allows version of FBX >= 2012.1, which includes current one : 2012.2
"
2012-02-01 17:38:37 +00:00
Robert Osfield
95f93e3bf5 Renamed selection to transform to make it clear to understand what is being done. 2012-02-01 17:16:44 +00:00
Robert Osfield
c3b7f6debe Added example usage of teh new DraggerTransforCallback's HandleCommandMask which is tied to the TabPlaneDragger example. 2012-02-01 17:10:48 +00:00
Robert Osfield
487ee0f8e7 Added DraggerTransformCallback::HandleCommandMask to DraggerTransformCallback to allow applications to select which
commands they want the dragger callback to respond to why updating the transform.
2012-02-01 13:55:38 +00:00
Robert Osfield
7664d90504 Improved the handling of osgManipulator::Constraint, DraggerCallbacks and Command so that they now use a Visitor Pattern
to ensure the correct methods on constraints and callbaks are called for each Command.  Also fixed the handling of
Constraints when applied to composite Draggers.
2012-01-31 10:56:52 +00:00
Robert Osfield
0381914b42 Added support for Scale1DDragger, Scale2DDragger and TranslatePlaneDragger to --dragger command line option 2012-01-30 12:26:28 +00:00
Robert Osfield
ad0872a783 From Kristofer Tingdahl, Added missing core OSG libraries. 2012-01-27 09:49:06 +00:00
Robert Osfield
a0df35b580 From Stephan Huber, "a recent submission added a 10.6-feature to GraphicsWindowCocoa. I added
some ifdefs around, so it compiles again with 10.5 SDK"
2012-01-26 18:03:26 +00:00
Robert Osfield
eb2e4d313a Quietend down debug message 2012-01-26 14:26:59 +00:00
Robert Osfield
167b6e69e4 From J.P. Delport, "when switching from windowed mode to fullscreen (with the 'f' key) in X11, no RESIZE event is generated. This confuses handlers that perform some processing on the RESIZE event, e.g. the InteractiveImageHandler.
To reproduce the problem I attach a minimally modified osgviewer that just prints resize events. You can check what's printed in the console when you go fullscreen and windowed a few times.

The attached version of GraphicsWindowX11 fixes the problem for me, but I'm not sure this is the right approach. Maybe you can see a fix for the problem clearer.

The only place where the RESIZE event is generated in GraphicsWindowX11 is in CheckEvents and it then depends on the ConfigureNotify message. For some reason, either ConfigureNotify is not sent when going fullscreen or the traits already reflect the latest window size."
2012-01-26 13:08:19 +00:00
Robert Osfield
8ecd0dea87 From J.P. Delport, "this fall-through had me scratching my head for a while...
It made InteractiveImageHandler eat keypresses outside its image."
2012-01-25 17:37:55 +00:00
Robert Osfield
45998e9ce1 From J.P. Delport, "GraphicsWindowX11 typo, I believe X/Y's should match." 2012-01-25 17:35:17 +00:00
Robert Osfield
5feb203d79 From Luc Frauciel, "Ati FirePro is as much crippled as other Ati drivers.
This patch add "FirePro" to the black list of renderers in State.cpp / initializeExtensionProcs

It allows to avoid an OpenGL error on Viewer initialization.
Tested on FirePro  M7740 / Windows7 x64  Driver 8.85.7.2"
2012-01-25 17:31:07 +00:00
Robert Osfield
b20abdb819 Changed the KeyEventToggleTexturing to 'e' to avoid conflict with 't' used for transparency. 2012-01-25 15:38:31 +00:00
Robert Osfield
737da5f23a Made the cursor state protected. 2012-01-24 17:57:01 +00:00
Robert Osfield
7fc23467f1 From Tobias Ottenweller, "this is a fix for the problem where all input freezes for a quarter second when calling requestWarpPointer under Mac OS X (described here: http://forum.openscenegraph.org/viewtopic.php?t=3933 ).
I used the latest version available via subversion.

My fix is using some API only available on 10.4 and later. I used some preprocessor statements to gain compatibility with 10.3 and earlier using (now) deprecated API.

Only tested on OS X Lion (10.7). Please do some testing as well since I'm fairly new to OpenSceneGraph. Someone should also test the code for 10.3 and earlier."
2012-01-24 17:49:18 +00:00
Robert Osfield
3c414c7962 Fixed indentation and spaces at ends of lines. 2012-01-24 17:47:04 +00:00
Robert Osfield
68f776e2cc From Paulk Martz, "Looks like the ClipNode::setReferenceFrame comment block came from LightSource. Fixing the comment block to refer to ClipNode instead of light source." 2012-01-24 17:40:31 +00:00
Robert Osfield
9da901e11b Chris Denham, fixed type of parameters to ensure they are longs where appropriate. 2012-01-24 17:38:23 +00:00
Robert Osfield
d350ea5395 Moved setEndBarrierOperation(..) implementation into .cpp and added support for stoppig and starting threading if required. 2012-01-24 17:30:44 +00:00
Robert Osfield
b0b98d49b8 From Paul Martz, Added ViewerBase::s/getEndBarrierOperation(..) method to allow user control of how viewers are sync'd. 2012-01-24 17:21:14 +00:00