Temporary fix to the canvas replacement visitor
Use pointers to allow compilation on Linux/Mac until this is fixed properly as OSG elements should always be accessed via the reference counting mechanism.
This commit is contained in:
commit
4a156fe0b0
1 changed files with 11 additions and 3 deletions
|
@ -70,9 +70,16 @@ FGODGauge::~FGODGauge()
|
||||||
* Used to remember the located groups that require modification
|
* Used to remember the located groups that require modification
|
||||||
*/
|
*/
|
||||||
typedef struct {
|
typedef struct {
|
||||||
typedef osg::ref_ptr<osg::Group> GroupPtr;
|
// could be:
|
||||||
GroupPtr parent;
|
//typedef osg::ref_ptr<osg::Group> GroupPtr;
|
||||||
GroupPtr node;
|
//GroupPtr parent;
|
||||||
|
//GroupPtr node;
|
||||||
|
// However this gives compile errors on linux;
|
||||||
|
// so change to use good old fashioned pointers.
|
||||||
|
// This means that the pointer may become invalid; however provided that this is a short lived operation
|
||||||
|
// and that modify is called immediately after visit it should work.
|
||||||
|
osg::Group *parent;
|
||||||
|
osg::Group *node;
|
||||||
int unit;
|
int unit;
|
||||||
}GroupListItem;
|
}GroupListItem;
|
||||||
|
|
||||||
|
@ -207,6 +214,7 @@ class ReplaceStaticTextureVisitor:
|
||||||
* this section of code used to be in the apply method above, however to work this requires modification of the scenegraph nodes
|
* this section of code used to be in the apply method above, however to work this requires modification of the scenegraph nodes
|
||||||
* that are currently iterating, so instead the apply method will locate the groups to be modified and when finished then the
|
* that are currently iterating, so instead the apply method will locate the groups to be modified and when finished then the
|
||||||
* nodes can actually be modified safely. Initially found thanks to the debug RTL in MSVC2015 throwing an exception.
|
* nodes can actually be modified safely. Initially found thanks to the debug RTL in MSVC2015 throwing an exception.
|
||||||
|
* should be called immediately after the visitor to ensure that the groups are still valid and that nothing else has modified these groups.
|
||||||
*/
|
*/
|
||||||
void modify_groups()
|
void modify_groups()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Reference in a new issue