Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

osg::SimpleAttachment< AttachmentDescT > Class Template Reference
[Field Container]

#include <OSGAttachmentImpl.h>

Inheritance diagram for osg::SimpleAttachment< AttachmentDescT >:

osg::Attachment osg::FieldContainer List of all members.

General Fieldcontainer Declaration

*virtual osg::FieldContainerTypegetType (void)
virtual const osg::FieldContainerTypegetType (void) const
virtual osg::FieldContainerPtr shallowCopy (void) const
virtual osg::UInt32 getContainerSize (void) const
static osg::FieldContainerTypegetClassType (void)
static osg::UInt32 getClassTypeId (void)
static PtrType create (void)
static PtrType createEmpty (void)

Public Types

typedef AttachmentDescT::FieldTypeT StoredFieldType
typedef SimpleAttachment<
AttachmentDescT > 
Self
typedef FCPtr< AttachmentPtr,
Self
PtrType
enum  { SimpleFieldId = Inherited::NextFieldId, NextFieldId = SimpleFieldId + 1 }
enum  { ParentsFieldId = Inherited::NextFieldId, InternalFieldId = ParentsFieldId + 1, NextFieldId = InternalFieldId + 1 }

Public Member Functions

Get
*StoredFieldTypegetFieldPtr (void)
StoredFieldTypegetField (void)
const StoredFieldTypegetField (void) const
Binary Access
*virtual UInt32 getBinSize (const BitVector &whichField)
virtual void copyToBin (BinaryDataHandler &pMem, const BitVector &whichField)
virtual void copyFromBin (BinaryDataHandler &pMem, const BitVector &whichField)
Dump
*virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
Parents
*MFFieldContainerPtrgetParents (void)
const MFFieldContainerPtrgetParents (void) const
MFFieldContainerPtrgetMFParents (void)
void addParent (FieldContainerPtr parent)
void subParent (FieldContainerPtr parent)
Int32 findParent (FieldContainerPtr parent)
Parents
*SFBoolgetInternal (void)
const SFBoolgetInternal (void) const
SFBoolgetSFInternal (void)
void setInternal (bool bVal)
Get Instance Type Information
UInt32 getTypeId (void) const
UInt16 getGroupId (void) const
const Char8getTypeName (void) const
Generic Field Access *FieldgetField (UInt32 fieldId)
FieldgetField (const Char8 *fieldName)
Changed
*virtual void changed (BitVector whichField, UInt32 origin)

Static Public Member Functions

Get Class Type Information
static UInt16 getClassGroupId (void)

Static Public Attributes

static const BitVector SimpleFieldMask
static const BitVector InternalFieldMask = (1 << Attachment::InternalFieldId)
static const BitVector ParentsFieldMask = (1 << Attachment::ParentsFieldId)
static const BitVector NextFieldMask
static const BitVector MTInfluenceMask = 0x00
CoredNodePtr helper
static const bool isNodeCore = false

Protected Types

typedef Attachment Inherited

Protected Member Functions

Constructors
SimpleAttachment (void)
 SimpleAttachment (const SimpleAttachment &source)
Destructors
*virtual ~SimpleAttachment (void)
Sync
*virtual void executeSync (FieldContainer &other, const BitVector &whichField)
void executeSyncImpl (SimpleAttachment *pOther, const BitVector &whichField)
MT Destruction
*virtual void onDestroy (void)
Sync
void executeSyncImpl (Attachment *pOther, const BitVector &whichField)
Sync
void executeSyncImpl (FieldContainer *pOther, const BitVector &whichField)
MT Edit
template<class FieldTypeT>
*void beginEditX (const BitVector &whichField, FieldTypeT &field)
template<class FieldTypeT>
void endEditX (const BitVector &whichField, FieldTypeT &field)
MT Construction
*void onCreate (const FieldContainer *source=NULL)
void onCreateAspect (const FieldContainer *aspect0, const FieldContainer *source=NULL)

Static Protected Member Functions

Create Fieldcontainer
template<class ObjectPtrT>
*static void newPtr (ObjectPtrT &result, const typename ObjectPtrT::StoredObjectType *prototypeP)
template<class ObjectPtrT>
static void newPtr (ObjectPtrT &result)

Protected Attributes

Fields
*StoredFieldType _field
Fields
*SFBool _sfInternal
MFFieldContainerPtr _parents
Member
*UInt32 _shares

Static Protected Attributes

Type information
*static FieldDescription_desc []
static FieldContainerType _type

Private Member Functions

SimpleAttachmentoperator= (const SimpleAttachment &source)
 prohibit default functions (move to 'public' if needed)

Friends

class FieldContainer

Detailed Description

template<class AttachmentDescT>
class osg::SimpleAttachment< AttachmentDescT >

Template to build simple attachment classes which store only one field.

Definition at line 243 of file OSGAttachmentImpl.h.


Member Typedef Documentation

template<class AttachmentDescT>
typedef Attachment osg::SimpleAttachment< AttachmentDescT >::Inherited [protected]
 

Reimplemented from osg::Attachment.

Definition at line 249 of file OSGAttachmentImpl.h.

template<class AttachmentDescT>
typedef AttachmentDescT::FieldTypeT osg::SimpleAttachment< AttachmentDescT >::StoredFieldType
 

Definition at line 255 of file OSGAttachmentImpl.h.

template<class AttachmentDescT>
typedef SimpleAttachment<AttachmentDescT> osg::SimpleAttachment< AttachmentDescT >::Self
 

Definition at line 257 of file OSGAttachmentImpl.h.

template<class AttachmentDescT>
typedef FCPtr<AttachmentPtr, Self > osg::SimpleAttachment< AttachmentDescT >::PtrType
 

Definition at line 259 of file OSGAttachmentImpl.h.


Member Enumeration Documentation

template<class AttachmentDescT>
anonymous enum
 

Enumerator:
SimpleFieldId 
NextFieldId 

Definition at line 261 of file OSGAttachmentImpl.h.

00262     { 
00263         SimpleFieldId     = Inherited::NextFieldId, 
00264         NextFieldId       = SimpleFieldId + 1
00265     };

anonymous enum [inherited]
 

Enumerator:
ParentsFieldId 
InternalFieldId 
NextFieldId 

Reimplemented from osg::FieldContainer.

Definition at line 86 of file OSGAttachmentImpl.h.

00087     { 
00088         ParentsFieldId     = Inherited::NextFieldId, 
00089         InternalFieldId    = ParentsFieldId  + 1,
00090         NextFieldId        = InternalFieldId + 1
00091     };


Constructor & Destructor Documentation

template<class AttachmentDescT>
osg::SimpleAttachment< AttachmentDescT >::SimpleAttachment void   )  [inline, protected]
 

Definition at line 202 of file OSGAttachmentImpl.inl.

00202                                                         :
00203      Inherited(),
00204     _field    ()
00205 {
00206 }

template<class AttachmentDescT>
osg::SimpleAttachment< AttachmentDescT >::SimpleAttachment const SimpleAttachment< AttachmentDescT > &  source  )  [inline, protected]
 

Definition at line 209 of file OSGAttachmentImpl.inl.

00210                                                       :
00211      Inherited(source       ),
00212     _field    (source._field)
00213 {
00214 }

template<class AttachmentDescT>
osg::SimpleAttachment< AttachmentDescT >::~SimpleAttachment void   )  [inline, protected, virtual]
 

Definition at line 220 of file OSGAttachmentImpl.inl.

00221 {
00222 }


Member Function Documentation

template<class AttachmentDescT>
* virtual osg ::FieldContainerType& osg::SimpleAttachment< AttachmentDescT >::getType void   )  [virtual]
 

Reimplemented from osg::Attachment.

template<class AttachmentDescT>
virtual const osg ::FieldContainerType& osg::SimpleAttachment< AttachmentDescT >::getType void   )  const [virtual]
 

Reimplemented from osg::Attachment.

template<class AttachmentDescT>
static osg ::FieldContainerType& osg::SimpleAttachment< AttachmentDescT >::getClassType void   )  [static]
 

Reimplemented from osg::Attachment.

template<class AttachmentDescT>
static osg ::UInt32 osg::SimpleAttachment< AttachmentDescT >::getClassTypeId void   )  [static]
 

Reimplemented from osg::Attachment.

template<class AttachmentDescT>
static PtrType osg::SimpleAttachment< AttachmentDescT >::create void   )  [static]
 

Reimplemented from osg::Attachment.

template<class AttachmentDescT>
static PtrType osg::SimpleAttachment< AttachmentDescT >::createEmpty void   )  [static]
 

Reimplemented from osg::Attachment.

template<class AttachmentDescT>
virtual osg ::FieldContainerPtr osg::SimpleAttachment< AttachmentDescT >::shallowCopy void   )  const [virtual]
 

Reimplemented from osg::Attachment.

template<class AttachmentDescT>
virtual osg ::UInt32 osg::SimpleAttachment< AttachmentDescT >::getContainerSize void   )  const [virtual]
 

Reimplemented from osg::Attachment.

template<class AttachmentDescT>
* StoredFieldType* osg::SimpleAttachment< AttachmentDescT >::getFieldPtr void   ) 
 

template<class AttachmentDescT>
SimpleAttachment< AttachmentDescT >::StoredFieldType & osg::SimpleAttachment< AttachmentDescT >::getField void   )  [inline]
 

Returns reference to the stored field

Definition at line 130 of file OSGAttachmentImpl.inl.

References osg::SimpleAttachment< AttachmentDescT >::_field.

00131 {
00132     return _field;
00133 }

template<class AttachmentDescT>
const SimpleAttachment< AttachmentDescT >::StoredFieldType & osg::SimpleAttachment< AttachmentDescT >::getField void   )  const [inline]
 

Returns const reference to the stored field

Definition at line 140 of file OSGAttachmentImpl.inl.

References osg::SimpleAttachment< AttachmentDescT >::_field.

00141 {
00142     return _field;
00143 }

template<class AttachmentDescT>
UInt32 osg::SimpleAttachment< AttachmentDescT >::getBinSize const BitVector whichField  )  [inline, virtual]
 

Reimplemented from osg::Attachment.

Definition at line 149 of file OSGAttachmentImpl.inl.

References osg::SimpleAttachment< AttachmentDescT >::_field, osg::Attachment::getBinSize(), osg::FieldBits::NoField, and osg::SimpleAttachment< AttachmentDescT >::SimpleFieldMask.

00151 {
00152     UInt32 returnValue = Inherited::getBinSize(whichField);
00153 
00154     if(FieldBits::NoField != (SimpleFieldMask & whichField))
00155     {
00156         returnValue += _field.getBinSize();
00157     }
00158 
00159     return returnValue;
00160 }

template<class AttachmentDescT>
void osg::SimpleAttachment< AttachmentDescT >::copyToBin BinaryDataHandler pMem,
const BitVector whichField
[inline, virtual]
 

Reimplemented from osg::Attachment.

Definition at line 163 of file OSGAttachmentImpl.inl.

References osg::SimpleAttachment< AttachmentDescT >::_field, osg::Attachment::copyToBin(), osg::FieldBits::NoField, and osg::SimpleAttachment< AttachmentDescT >::SimpleFieldMask.

00166 {
00167     Inherited::copyToBin(pMem, whichField);
00168 
00169     if(FieldBits::NoField != (SimpleFieldMask & whichField))
00170     {
00171         _field.copyToBin(pMem);
00172     }
00173 }

template<class AttachmentDescT>
void osg::SimpleAttachment< AttachmentDescT >::copyFromBin BinaryDataHandler pMem,
const BitVector whichField
[inline, virtual]
 

Reimplemented from osg::Attachment.

Definition at line 176 of file OSGAttachmentImpl.inl.

References osg::SimpleAttachment< AttachmentDescT >::_field, osg::Attachment::copyFromBin(), osg::FieldBits::NoField, and osg::SimpleAttachment< AttachmentDescT >::SimpleFieldMask.

00179 {
00180     Inherited::copyFromBin(pMem, whichField);
00181 
00182     if(FieldBits::NoField != (SimpleFieldMask & whichField))
00183     {
00184         _field.copyFromBin(pMem);
00185     }
00186 }

template<class AttachmentDescT>
void osg::SimpleAttachment< AttachmentDescT >::dump UInt32  uiIndent = 0,
const BitVector  bvFlags = 0
const [inline, virtual]
 

Reimplemented from osg::Attachment.

Definition at line 192 of file OSGAttachmentImpl.inl.

References osg::Attachment::dump().

00194 {
00195     Inherited::dump(uiIndent, bvFlags);
00196 }

template<class AttachmentDescT>
void osg::SimpleAttachment< AttachmentDescT >::executeSync FieldContainer other,
const BitVector whichField
[inline, protected, virtual]
 

Reimplemented from osg::Attachment.

Definition at line 229 of file OSGAttachmentImpl.inl.

References osg::SimpleAttachment< AttachmentDescT >::executeSyncImpl().

00232 {
00233     this->executeSyncImpl(static_cast<SimpleAttachment *>(&other)    ,
00234                                                            whichField);
00235 }

template<class AttachmentDescT>
void osg::SimpleAttachment< AttachmentDescT >::executeSyncImpl SimpleAttachment< AttachmentDescT > *  pOther,
const BitVector whichField
[inline, protected]
 

Definition at line 238 of file OSGAttachmentImpl.inl.

References osg::SimpleAttachment< AttachmentDescT >::_field, osg::Attachment::executeSyncImpl(), osg::FieldBits::NoField, and osg::SimpleAttachment< AttachmentDescT >::SimpleFieldMask.

Referenced by osg::SimpleAttachment< AttachmentDescT >::executeSync().

00241 {
00242     Inherited::executeSyncImpl(pOther, whichField);
00243 
00244     if(FieldBits::NoField != (SimpleFieldMask & whichField))
00245     {
00246         _field.syncWith(pOther->_field);
00247     }
00248 }

template<class AttachmentDescT>
SimpleAttachment& osg::SimpleAttachment< AttachmentDescT >::operator= const SimpleAttachment< AttachmentDescT > &  source  )  [private]
 

MFFieldContainerPtr & Attachment::getParents void   )  [inherited]
 

Definition at line 95 of file OSGAttachment.cpp.

00096 {
00097     return _parents;
00098 }

const MFFieldContainerPtr & Attachment::getParents void   )  const [inherited]
 

Definition at line 100 of file OSGAttachment.cpp.

References osg::Attachment::_parents.

00101 {
00102     return _parents;
00103 }

MFFieldContainerPtr * Attachment::getMFParents void   )  [inherited]
 

Definition at line 105 of file OSGAttachment.cpp.

References osg::Attachment::_parents.

Referenced by osg::DVRLookupTable::changed().

00106 {
00107     return &_parents;
00108 }

void Attachment::addParent FieldContainerPtr  parent  )  [inherited]
 

Definition at line 110 of file OSGAttachment.cpp.

References osg::Attachment::_parents, and osg::MField< FieldTypeT, fieldNameSpace >::push_back().

00111 {
00112     _parents.push_back(parent);
00113 }

void Attachment::subParent FieldContainerPtr  parent  )  [inherited]
 

Definition at line 115 of file OSGAttachment.cpp.

References osg::Attachment::_parents, osg::MField< FieldTypeT, fieldNameSpace >::end(), osg::MField< FieldTypeT, fieldNameSpace >::erase(), and osg::MField< FieldTypeT, fieldNameSpace >::find().

00116 {
00117     MFFieldContainerPtr::iterator parentIt = _parents.find(parent);
00118 
00119     if(parentIt != _parents.end())
00120     {
00121         _parents.erase(parentIt);
00122     }
00123 }

Int32 Attachment::findParent FieldContainerPtr  parent  )  [inherited]
 

Definition at line 125 of file OSGAttachment.cpp.

References osg::Attachment::_parents, osg::MField< FieldTypeT, fieldNameSpace >::begin(), osg::MField< FieldTypeT, fieldNameSpace >::end(), and osg::MField< FieldTypeT, fieldNameSpace >::find().

00126 {
00127     MFFieldContainerPtr::iterator parentIt = _parents.find(parent);
00128 
00129     if(parentIt != _parents.end())
00130     {
00131         return parentIt - _parents.begin();
00132     }
00133     else
00134     {
00135         return -1;
00136     }
00137 }

SFBool & Attachment::getInternal void   )  [inherited]
 

Definition at line 142 of file OSGAttachment.cpp.

References osg::Attachment::_sfInternal.

00143 {
00144     return _sfInternal;
00145 }

const SFBool & Attachment::getInternal void   )  const [inherited]
 

Definition at line 147 of file OSGAttachment.cpp.

References osg::Attachment::_sfInternal.

00148 {
00149     return _sfInternal;
00150 }

SFBool * Attachment::getSFInternal void   )  [inherited]
 

Definition at line 152 of file OSGAttachment.cpp.

References osg::Attachment::_sfInternal.

00153 {
00154     return &_sfInternal;
00155 }

void Attachment::setInternal bool  bVal  )  [inherited]
 

Definition at line 157 of file OSGAttachment.cpp.

References osg::Attachment::_sfInternal, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00158 {
00159     _sfInternal.setValue(bVal);
00160 }

void Attachment::onDestroy void   )  [protected, virtual, inherited]
 

Reimplemented from osg::FieldContainer.

Reimplemented in osg::ShaderParameterChunk, and osg::SHLChunk.

Definition at line 285 of file OSGAttachment.cpp.

Referenced by osg::ShaderParameterChunk::onDestroy().

00286 {
00287 }

void Attachment::executeSyncImpl Attachment pOther,
const BitVector whichField
[protected, inherited]
 

Definition at line 306 of file OSGAttachment.cpp.

References osg::Attachment::_parents, osg::Attachment::_sfInternal, osg::FieldContainer::executeSyncImpl(), osg::Attachment::InternalFieldMask, osg::FieldBits::NoField, osg::Attachment::ParentsFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::syncWith(), and osg::SField< FieldTypeT, fieldNameSpace >::syncWith().

Referenced by osg::Attachment::executeSync(), osg::StateChunkBase::executeSyncImpl(), osg::DVRVolumeTextureBase::executeSyncImpl(), osg::DVRLookupTableBase::executeSyncImpl(), osg::DVRIsoSurfaceBase::executeSyncImpl(), osg::DVRClipObjectsBase::executeSyncImpl(), and osg::SimpleAttachment< AttachmentDescT >::executeSyncImpl().

00308 {
00309     Inherited::executeSyncImpl(pOther, whichField);
00310 
00311     if(FieldBits::NoField != (InternalFieldMask & whichField))
00312     {
00313         _sfInternal.syncWith(pOther->_sfInternal);
00314     }
00315 
00316     if(FieldBits::NoField != (ParentsFieldMask & whichField))
00317     {
00318         _parents.syncWith(pOther->_parents);
00319     }
00320 }

void osg::FieldContainer::executeSyncImpl FieldContainer pOther,
const BitVector whichField
[inline, protected, inherited]
 

Definition at line 333 of file OSGFieldContainerImpl.inl.

Referenced by osg::StateBase::executeSyncImpl(), osg::DVRShaderBase::executeSyncImpl(), osg::DVRClipGeometryBase::executeSyncImpl(), osg::AttachmentContainer::executeSyncImpl(), and osg::Attachment::executeSyncImpl().

00335 {
00336 }

UInt16 osg::FieldContainer::getClassGroupId void   )  [inline, static, inherited]
 

Definition at line 71 of file OSGFieldContainerImpl.inl.

References osg::FieldContainer::_type, and osg::FieldContainerType::getGroupId().

00072 {
00073     return _type.getGroupId();
00074 }

UInt32 osg::FieldContainer::getTypeId void   )  const [inline, inherited]
 

Definition at line 77 of file OSGFieldContainerImpl.inl.

References osg::TypeBase::getId(), and osg::FieldContainer::getType().

Referenced by osg::TextureChunk::changeFrom(), and osg::CubeTextureChunk::changeFrom().

00078 {
00079     return getType().getId();
00080 }

UInt16 osg::FieldContainer::getGroupId void   )  const [inline, inherited]
 

Definition at line 83 of file OSGFieldContainerImpl.inl.

References osg::FieldContainerType::getGroupId(), and osg::FieldContainer::getType().

Referenced by osg::Image::setAttachmentField().

00084 {
00085     return getType().getGroupId();
00086 }

const Char8 * osg::FieldContainer::getTypeName void   )  const [inline, inherited]
 

Definition at line 89 of file OSGFieldContainerImpl.inl.

References osg::TypeBase::getCName(), and osg::FieldContainer::getType().

00090 {
00091     return getType().getCName();
00092 }

Field * osg::FieldContainer::getField UInt32  fieldId  )  [inline, inherited]
 

Definition at line 95 of file OSGFieldContainerImpl.inl.

References osg::FieldDescription::getField(), osg::FieldContainerType::getFieldDescription(), and osg::FieldContainer::getType().

Referenced by osg::QFCItem::expand(), osg::VRMLShapeDesc::getFieldAndDesc(), osg::QFieldViewBase::getFieldPtr(), osg::QFieldEditorBase::getFieldPtr(), osg::getParentsField(), and osg::QFCItem::setup().

00096 {
00097     const FieldDescription *desc = getType().getFieldDescription(fieldId);
00098 
00099     return desc ? desc->getField(*this) : NULL;
00100 }

Field * osg::FieldContainer::getField const Char8 fieldName  )  [inline, inherited]
 

Definition at line 103 of file OSGFieldContainerImpl.inl.

References osg::FieldContainerType::findFieldDescription(), osg::FieldDescription::getField(), and osg::FieldContainer::getType().

00104 {
00105     const FieldDescription *desc =getType().findFieldDescription(fieldName);
00106 
00107     return desc ? desc->getField(*this) : NULL;
00108 }

void FieldContainer::changed BitVector  whichField,
UInt32  origin
[virtual, inherited]
 

Reimplemented in osg::ClusterWindow, osg::DisplayCalibration, osg::ImageComposer, osg::MultiDisplayWindow, osg::SortFirstWindow, osg::AttachmentContainer, osg::Node, osg::Image, osg::ChunkMaterial, osg::FresnelMaterial, osg::Material, osg::MultiPassMaterial, osg::PhongMaterial, osg::SimpleMaterial, osg::SimpleTexturedMaterial, osg::Drawable, osg::MaterialDrawable, osg::Geometry, osg::Slices, osg::Particles, osg::DVRAppearance, osg::DVRClipGeometry, osg::DVRClipObjects, osg::DVRGeometry, osg::DVRIsoShader, osg::DVRIsoSurface, osg::DVRLookupTable, osg::DVRMtexLUTShader, osg::DVRShader, osg::DVRSimpleLUTShader, osg::DVRSimpleShader, osg::DVRVolume, osg::DVRVolumeTexture, osg::FatBorderChunk, osg::Surface, osg::Group, osg::DirectionalLight, osg::Light, osg::LightEnv, osg::PointLight, osg::SpotLight, osg::Billboard, osg::ComponentTransform, osg::DistanceLOD, osg::Inline, osg::InverseTransform, osg::MaterialGroup, osg::MaterialPool, osg::ProxyGroup, osg::StateSortingGroup, osg::Switch, osg::Transform, osg::BlendChunk, osg::ClipPlaneChunk, osg::ColorMaskChunk, osg::CubeTextureChunk, osg::DepthChunk, osg::FragmentProgramChunk, osg::LightChunk, osg::LineChunk, osg::MaterialChunk, osg::PointChunk, osg::PolygonChunk, osg::ProgramChunk, osg::RegisterCombinersChunk, osg::State, osg::StateChunk, osg::StencilChunk, osg::TexGenChunk, osg::TextureChunk, osg::TextureTransformChunk, osg::TransformChunk, osg::TwoSidedLightingChunk, osg::VertexProgramChunk, osg::GraphicStatisticsForeground, osg::SimpleStatisticsForeground, osg::StatisticsForeground, osg::Background, osg::Camera, osg::CameraDecorator, osg::ColorBufferViewport, osg::DepthClearBackground, osg::FileGrabForeground, osg::Foreground, osg::GrabForeground, osg::GradientBackground, osg::ImageBackground, osg::ImageForeground, osg::MatrixCamera, osg::MatrixCameraDecorator, osg::OffCenterPerspectiveCamera, osg::PassiveBackground, osg::PassiveViewport, osg::PassiveWindow, osg::PerspectiveCamera, osg::PolygonBackground, osg::PolygonForeground, osg::ProjectionCameraDecorator, osg::ShearedStereoCameraDecorator, osg::SkyBackground, osg::SolidBackground, osg::StereoBufferViewport, osg::StereoCameraDecorator, osg::TextureBackground, osg::TextureGrabBackground, osg::TextureGrabForeground, osg::TileCameraDecorator, osg::Viewport, osg::Window, osg::ShaderChunk, osg::ShaderParameter, osg::ShaderParameterBool, osg::ShaderParameterChunk, osg::ShaderParameterInt, osg::ShaderParameterMatrix, osg::ShaderParameterReal, osg::Shade