osg::CubeTextureChunkBase Class Reference

CubeTextureChunk Base Class.

#include <OSGCubeTextureChunkBase.h>

Inheritance diagram for osg::CubeTextureChunkBase:

osg::TextureChunk osg::TextureChunkBase osg::StateChunk osg::StateChunkBase osg::Attachment osg::FieldContainer osg::CubeTextureChunk

List of all members.

Public Types

enum  {
  PosZImageFieldId = Inherited::NextFieldId, PosXImageFieldId = PosZImageFieldId + 1, NegXImageFieldId = PosXImageFieldId + 1, PosYImageFieldId = NegXImageFieldId + 1,
  NegYImageFieldId = PosYImageFieldId + 1, IsReflectionMapFieldId = NegYImageFieldId + 1, NextFieldId = IsReflectionMapFieldId + 1
}
typedef CubeTextureChunkPtr Ptr
enum  NPOTMatrixScaleE {
  None_TT = 0, NPotTexScale_TT = 1, XFlip_TT = 2, YFlip_TT = 4,
  ZFlip_TT = 8
}
 Flags can be OR-ed, e.g. NPotTexScale for old gpu and YFlip for videos. More...
enum  {
  ImageFieldId = Inherited::NextFieldId, InternalFormatFieldId = ImageFieldId + 1, ExternalFormatFieldId = InternalFormatFieldId + 1, ScaleFieldId = ExternalFormatFieldId + 1,
  FrameFieldId = ScaleFieldId + 1, MinFilterFieldId = FrameFieldId + 1, MagFilterFieldId = MinFilterFieldId + 1, WrapSFieldId = MagFilterFieldId + 1,
  WrapTFieldId = WrapSFieldId + 1, WrapRFieldId = WrapTFieldId + 1, EnvModeFieldId = WrapRFieldId + 1, EnvColorFieldId = EnvModeFieldId + 1,
  EnvCombineRGBFieldId = EnvColorFieldId + 1, EnvCombineAlphaFieldId = EnvCombineRGBFieldId + 1, EnvScaleRGBFieldId = EnvCombineAlphaFieldId + 1, EnvScaleAlphaFieldId = EnvScaleRGBFieldId + 1,
  EnvSource0RGBFieldId = EnvScaleAlphaFieldId + 1, EnvSource1RGBFieldId = EnvSource0RGBFieldId + 1, EnvSource2RGBFieldId = EnvSource1RGBFieldId + 1, EnvSource0AlphaFieldId = EnvSource2RGBFieldId + 1,
  EnvSource1AlphaFieldId = EnvSource0AlphaFieldId + 1, EnvSource2AlphaFieldId = EnvSource1AlphaFieldId + 1, EnvOperand0RGBFieldId = EnvSource2AlphaFieldId + 1, EnvOperand1RGBFieldId = EnvOperand0RGBFieldId + 1,
  EnvOperand2RGBFieldId = EnvOperand1RGBFieldId + 1, EnvOperand0AlphaFieldId = EnvOperand2RGBFieldId + 1, EnvOperand1AlphaFieldId = EnvOperand0AlphaFieldId + 1, EnvOperand2AlphaFieldId = EnvOperand1AlphaFieldId + 1,
  GLIdFieldId = EnvOperand2AlphaFieldId + 1, IgnoreGLForAspectFieldId = GLIdFieldId + 1, PointSpriteFieldId = IgnoreGLForAspectFieldId + 1, PriorityFieldId = PointSpriteFieldId + 1,
  ShaderOperationFieldId = PriorityFieldId + 1, ShaderInputFieldId = ShaderOperationFieldId + 1, ShaderOffsetMatrixFieldId = ShaderInputFieldId + 1, ShaderOffsetScaleFieldId = ShaderOffsetMatrixFieldId + 1,
  ShaderOffsetBiasFieldId = ShaderOffsetScaleFieldId + 1, ShaderRGBADotProductFieldId = ShaderOffsetBiasFieldId + 1, ShaderCullModesFieldId = ShaderRGBADotProductFieldId + 1, ShaderConstEyeFieldId = ShaderCullModesFieldId + 1,
  LodBiasFieldId = ShaderConstEyeFieldId + 1, TargetFieldId = LodBiasFieldId + 1, DirtyLeftFieldId = TargetFieldId + 1, DirtyMinXFieldId = DirtyLeftFieldId + 1,
  DirtyMaxXFieldId = DirtyMinXFieldId + 1, DirtyMinYFieldId = DirtyMaxXFieldId + 1, DirtyMaxYFieldId = DirtyMinYFieldId + 1, DirtyMinZFieldId = DirtyMaxYFieldId + 1,
  DirtyMaxZFieldId = DirtyMinZFieldId + 1, AnisotropyFieldId = DirtyMaxZFieldId + 1, BorderColorFieldId = AnisotropyFieldId + 1, BorderWidthFieldId = BorderColorFieldId + 1,
  NPOTMatrixScaleFieldId = BorderWidthFieldId + 1, NextFieldId = NPOTMatrixScaleFieldId + 1
}
enum  { IgnoreFieldId = Inherited::NextFieldId, NextFieldId = IgnoreFieldId + 1 }
enum  { ParentsFieldId = Inherited::NextFieldId, InternalFieldId = ParentsFieldId + 1, NextFieldId = InternalFieldId + 1 }
enum  { NextFieldId = 1 }

Public Member Functions

FieldContainer Get


virtual FieldContainerTypegetType (void)
virtual const FieldContainerTypegetType (void) const
virtual UInt32 getContainerSize (void) const
Field Get


SFImagePtrgetSFPosZImage (void)
 Get the CubeTextureChunk::_sfPosZImage field.
SFImagePtrgetSFPosXImage (void)
 Get the CubeTextureChunk::_sfPosXImage field.
SFImagePtrgetSFNegXImage (void)
 Get the CubeTextureChunk::_sfNegXImage field.
SFImagePtrgetSFPosYImage (void)
 Get the CubeTextureChunk::_sfPosYImage field.
SFImagePtrgetSFNegYImage (void)
 Get the CubeTextureChunk::_sfNegYImage field.
SFBoolgetSFIsReflectionMap (void)
 Get the CubeTextureChunk::_sfIsReflectionMap field.
ImagePtrgetPosZImage (void)
 Get the value of the CubeTextureChunk::_sfPosZImage field.
const ImagePtrgetPosZImage (void) const
 Get the value of the CubeTextureChunk::_sfPosZImage field.
ImagePtrgetPosXImage (void)
 Get the value of the CubeTextureChunk::_sfPosXImage field.
const ImagePtrgetPosXImage (void) const
 Get the value of the CubeTextureChunk::_sfPosXImage field.
ImagePtrgetNegXImage (void)
 Get the value of the CubeTextureChunk::_sfNegXImage field.
const ImagePtrgetNegXImage (void) const
 Get the value of the CubeTextureChunk::_sfNegXImage field.
ImagePtrgetPosYImage (void)
 Get the value of the CubeTextureChunk::_sfPosYImage field.
const ImagePtrgetPosYImage (void) const
 Get the value of the CubeTextureChunk::_sfPosYImage field.
ImagePtrgetNegYImage (void)
 Get the value of the CubeTextureChunk::_sfNegYImage field.
const ImagePtrgetNegYImage (void) const
 Get the value of the CubeTextureChunk::_sfNegYImage field.
bool & getIsReflectionMap (void)
 Get the value of the CubeTextureChunk::_sfIsReflectionMap field.
const bool & getIsReflectionMap (void) const
 Get the value of the CubeTextureChunk::_sfIsReflectionMap field.
Field Set


void setPosZImage (const ImagePtr &value)
 Set the value of the CubeTextureChunk::_sfPosZImage field.
void setPosXImage (const ImagePtr &value)
 Set the value of the CubeTextureChunk::_sfPosXImage field.
void setNegXImage (const ImagePtr &value)
 Set the value of the CubeTextureChunk::_sfNegXImage field.
void setPosYImage (const ImagePtr &value)
 Set the value of the CubeTextureChunk::_sfPosYImage field.
void setNegYImage (const ImagePtr &value)
 Set the value of the CubeTextureChunk::_sfNegYImage field.
void setIsReflectionMap (const bool &value)
 Set the value of the CubeTextureChunk::_sfIsReflectionMap field.
Binary Access
virtual UInt32 getBinSize (const BitVector &whichField)
virtual void copyToBin (BinaryDataHandler &pMem, const BitVector &whichField)
virtual void copyFromBin (BinaryDataHandler &pMem, const BitVector &whichField)
Copy


virtual FieldContainerPtr shallowCopy (void) const
Chunk Class Access


virtual const StateChunkClassgetClass (void) const
Sync


virtual void changed (BitVector whichField, UInt32 origin)
Output


virtual void dump (UInt32 uiIndent=0, const BitVector bvFlags=0) const
State


virtual void activate (DrawActionBase *action, UInt32 index=0)
virtual void changeFrom (DrawActionBase *action, StateChunk *old, UInt32 index=0)
virtual void deactivate (DrawActionBase *action, UInt32 index=0)
virtual bool isTransparent (void) const
Comparison


virtual Real32 switchCost (StateChunk *chunk)
virtual bool operator< (const StateChunk &other) const
virtual bool operator== (const StateChunk &other) const
virtual bool operator!= (const StateChunk &other) const
Texture specific


void imageContentChanged (Int32 minx=-1, Int32 maxx=-1, Int32 miny=-1, Int32 maxy=-1, Int32 minz=-1, Int32 maxz=-1)
void setImage (ImagePtr &pImage)
void setShaderOffsetMatrix (Real32 m11, Real32 m12, Real32 m21, Real32 m22)
Field Set


void setImage (const ImagePtr &value)
 Set the value of the TextureChunk::_sfImage field.
void setInternalFormat (const GLenum &value)
 Set the value of the TextureChunk::_sfInternalFormat field.
void setExternalFormat (const GLenum &value)
 Set the value of the TextureChunk::_sfExternalFormat field.
void setScale (const bool &value)
 Set the value of the TextureChunk::_sfScale field.
void setFrame (const UInt32 &value)
 Set the value of the TextureChunk::_sfFrame field.
void setMinFilter (const GLenum &value)
 Set the value of the TextureChunk::_sfMinFilter field.
void setMagFilter (const GLenum &value)
 Set the value of the TextureChunk::_sfMagFilter field.
void setWrapS (const GLenum &value)
 Set the value of the TextureChunk::_sfWrapS field.
void setWrapT (const GLenum &value)
 Set the value of the TextureChunk::_sfWrapT field.
void setWrapR (const GLenum &value)
 Set the value of the TextureChunk::_sfWrapR field.
void setEnvMode (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvMode field.
void setEnvColor (const Color4f &value)
 Set the value of the TextureChunk::_sfEnvColor field.
void setEnvCombineRGB (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvCombineRGB field.
void setEnvCombineAlpha (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvCombineAlpha field.
void setEnvScaleRGB (const Real32 &value)
 Set the value of the TextureChunk::_sfEnvScaleRGB field.
void setEnvScaleAlpha (const Real32 &value)
 Set the value of the TextureChunk::_sfEnvScaleAlpha field.
void setEnvSource0RGB (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvSource0RGB field.
void setEnvSource1RGB (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvSource1RGB field.
void setEnvSource2RGB (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvSource2RGB field.
void setEnvSource0Alpha (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvSource0Alpha field.
void setEnvSource1Alpha (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvSource1Alpha field.
void setEnvSource2Alpha (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvSource2Alpha field.
void setEnvOperand0RGB (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvOperand0RGB field.
void setEnvOperand1RGB (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvOperand1RGB field.
void setEnvOperand2RGB (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvOperand2RGB field.
void setEnvOperand0Alpha (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvOperand0Alpha field.
void setEnvOperand1Alpha (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvOperand1Alpha field.
void setEnvOperand2Alpha (const GLenum &value)
 Set the value of the TextureChunk::_sfEnvOperand2Alpha field.
void setGLId (const GLenum &value)
 Set the value of the TextureChunk::_sfGLId field.
void setIgnoreGLForAspect (const Int32 &value)
 Set the value of the TextureChunk::_sfIgnoreGLForAspect field.
void setPointSprite (const bool &value)
 Set the value of the TextureChunk::_sfPointSprite field.
void setPriority (const Real32 &value)
 Set the value of the TextureChunk::_sfPriority field.
void setShaderOperation (const GLenum &value)
 Set the value of the TextureChunk::_sfShaderOperation field.
void setShaderInput (const GLenum &value)
 Set the value of the TextureChunk::_sfShaderInput field.
void setShaderOffsetScale (const Real32 &value)
 Set the value of the TextureChunk::_sfShaderOffsetScale field.
void setShaderOffsetBias (const Real32 &value)
 Set the value of the TextureChunk::_sfShaderOffsetBias field.
void setShaderRGBADotProduct (const GLenum &value)
 Set the value of the TextureChunk::_sfShaderRGBADotProduct field.
void setShaderCullModes (const UInt8 &value)
 Set the value of the TextureChunk::_sfShaderCullModes field.
void setShaderConstEye (const Vec3f &value)
 Set the value of the TextureChunk::_sfShaderConstEye field.
void setLodBias (const Real32 &value)
 Set the value of the TextureChunk::_sfLodBias field.
void setTarget (const GLenum &value)
 Set the value of the TextureChunk::_sfTarget field.
void setDirtyLeft (const Int32 &value)
 Set the value of the TextureChunk::_sfDirtyLeft field.
void setDirtyMinX (const Int32 &value)
 Set the value of the TextureChunk::_sfDirtyMinX field.
void setDirtyMaxX (const Int32 &value)
 Set the value of the TextureChunk::_sfDirtyMaxX field.
void setDirtyMinY (const Int32 &value)
 Set the value of the TextureChunk::_sfDirtyMinY field.
void setDirtyMaxY (const Int32 &value)
 Set the value of the TextureChunk::_sfDirtyMaxY field.
void setDirtyMinZ (const Int32 &value)
 Set the value of the TextureChunk::_sfDirtyMinZ field.
void setDirtyMaxZ (const Int32 &value)
 Set the value of the TextureChunk::_sfDirtyMaxZ field.
void setAnisotropy (const Real32 &value)
 Set the value of the TextureChunk::_sfAnisotropy field.
void setBorderColor (const Color4f &value)
 Set the value of the TextureChunk::_sfBorderColor field.
void setBorderWidth (const UInt32 &value)
 Set the value of the TextureChunk::_sfBorderWidth field.
void setNPOTMatrixScale (const UInt32 &value)
 Set the value of the TextureChunk::_sfNPOTMatrixScale field.
Field Get


SFImagePtrgetSFImage (void)
 Get the TextureChunk::_sfImage field.
SFGLenumgetSFInternalFormat (void)
 Get the TextureChunk::_sfInternalFormat field.
SFGLenumgetSFExternalFormat (void)
 Get the TextureChunk::_sfExternalFormat field.
SFBoolgetSFScale (void)
 Get the TextureChunk::_sfScale field.
SFUInt32getSFFrame (void)
 Get the TextureChunk::_sfFrame field.
SFGLenumgetSFMinFilter (void)
 Get the TextureChunk::_sfMinFilter field.
SFGLenumgetSFMagFilter (void)
 Get the TextureChunk::_sfMagFilter field.
SFGLenumgetSFWrapS (void)
 Get the TextureChunk::_sfWrapS field.
SFGLenumgetSFWrapT (void)
 Get the TextureChunk::_sfWrapT field.
SFGLenumgetSFWrapR (void)
 Get the TextureChunk::_sfWrapR field.
SFGLenumgetSFEnvMode (void)
 Get the TextureChunk::_sfEnvMode field.
SFColor4fgetSFEnvColor (void)
 Get the TextureChunk::_sfEnvColor field.
SFGLenumgetSFEnvCombineRGB (void)
 Get the TextureChunk::_sfEnvCombineRGB field.
SFGLenumgetSFEnvCombineAlpha (void)
 Get the TextureChunk::_sfEnvCombineAlpha field.
SFReal32getSFEnvScaleRGB (void)
 Get the TextureChunk::_sfEnvScaleRGB field.
SFReal32getSFEnvScaleAlpha (void)
 Get the TextureChunk::_sfEnvScaleAlpha field.
SFGLenumgetSFEnvSource0RGB (void)
 Get the TextureChunk::_sfEnvSource0RGB field.
SFGLenumgetSFEnvSource1RGB (void)
 Get the TextureChunk::_sfEnvSource1RGB field.
SFGLenumgetSFEnvSource2RGB (void)
 Get the TextureChunk::_sfEnvSource2RGB field.
SFGLenumgetSFEnvSource0Alpha (void)
 Get the TextureChunk::_sfEnvSource0Alpha field.
SFGLenumgetSFEnvSource1Alpha (void)
 Get the TextureChunk::_sfEnvSource1Alpha field.
SFGLenumgetSFEnvSource2Alpha (void)
 Get the TextureChunk::_sfEnvSource2Alpha field.
SFGLenumgetSFEnvOperand0RGB (void)
 Get the TextureChunk::_sfEnvOperand0RGB field.
SFGLenumgetSFEnvOperand1RGB (void)
 Get the TextureChunk::_sfEnvOperand1RGB field.
SFGLenumgetSFEnvOperand2RGB (void)
 Get the TextureChunk::_sfEnvOperand2RGB field.
SFGLenumgetSFEnvOperand0Alpha (void)
 Get the TextureChunk::_sfEnvOperand0Alpha field.
SFGLenumgetSFEnvOperand1Alpha (void)
 Get the TextureChunk::_sfEnvOperand1Alpha field.
SFGLenumgetSFEnvOperand2Alpha (void)
 Get the TextureChunk::_sfEnvOperand2Alpha field.
SFGLenumgetSFGLId (void)
 Get the TextureChunk::_sfGLId field.
SFInt32getSFIgnoreGLForAspect (void)
 Get the TextureChunk::_sfIgnoreGLForAspect field.
SFBoolgetSFPointSprite (void)
 Get the TextureChunk::_sfPointSprite field.
SFReal32getSFPriority (void)
 Get the TextureChunk::_sfPriority field.
SFGLenumgetSFShaderOperation (void)
 Get the TextureChunk::_sfShaderOperation field.
SFGLenumgetSFShaderInput (void)
 Get the TextureChunk::_sfShaderInput field.
MFReal32getMFShaderOffsetMatrix (void)
 Get the TextureChunk::_mfShaderOffsetMatrix field.
SFReal32getSFShaderOffsetScale (void)
 Get the TextureChunk::_sfShaderOffsetScale field.
SFReal32getSFShaderOffsetBias (void)
 Get the TextureChunk::_sfShaderOffsetBias field.
SFGLenumgetSFShaderRGBADotProduct (void)
 Get the TextureChunk::_sfShaderRGBADotProduct field.
SFUInt8getSFShaderCullModes (void)
 Get the TextureChunk::_sfShaderCullModes field.
SFVec3fgetSFShaderConstEye (void)
 Get the TextureChunk::_sfShaderConstEye field.
SFReal32getSFLodBias (void)
 Get the TextureChunk::_sfLodBias field.
SFGLenumgetSFTarget (void)
 Get the TextureChunk::_sfTarget field.
SFInt32getSFDirtyLeft (void)
 Get the TextureChunk::_sfDirtyLeft field.
SFInt32getSFDirtyMinX (void)
 Get the TextureChunk::_sfDirtyMinX field.
SFInt32getSFDirtyMaxX (void)
 Get the TextureChunk::_sfDirtyMaxX field.
SFInt32getSFDirtyMinY (void)
 Get the TextureChunk::_sfDirtyMinY field.
SFInt32getSFDirtyMaxY (void)
 Get the TextureChunk::_sfDirtyMaxY field.
SFInt32getSFDirtyMinZ (void)
 Get the TextureChunk::_sfDirtyMinZ field.
SFInt32getSFDirtyMaxZ (void)
 Get the TextureChunk::_sfDirtyMaxZ field.
SFReal32getSFAnisotropy (void)
 Get the TextureChunk::_sfAnisotropy field.
SFColor4fgetSFBorderColor (void)
 Get the TextureChunk::_sfBorderColor field.
SFUInt32getSFBorderWidth (void)
 Get the TextureChunk::_sfBorderWidth field.
SFUInt32getSFNPOTMatrixScale (void)
 Get the TextureChunk::_sfNPOTMatrixScale field.
ImagePtrgetImage (void)
 Get the value of the TextureChunk::_sfImage field.
const ImagePtrgetImage (void) const
 Get the value of the TextureChunk::_sfImage field.
GLenum & getInternalFormat (void)
 Get the value of the TextureChunk::_sfInternalFormat field.
const GLenum & getInternalFormat (void) const
 Get the value of the TextureChunk::_sfInternalFormat field.
GLenum & getExternalFormat (void)
 Get the value of the TextureChunk::_sfExternalFormat field.
const GLenum & getExternalFormat (void) const
 Get the value of the TextureChunk::_sfExternalFormat field.
bool & getScale (void)
 Get the value of the TextureChunk::_sfScale field.
const bool & getScale (void) const
 Get the value of the TextureChunk::_sfScale field.
UInt32getFrame (void)
 Get the value of the TextureChunk::_sfFrame field.
const UInt32getFrame (void) const
 Get the value of the TextureChunk::_sfFrame field.
GLenum & getMinFilter (void)
 Get the value of the TextureChunk::_sfMinFilter field.
const GLenum & getMinFilter (void) const
 Get the value of the TextureChunk::_sfMinFilter field.
GLenum & getMagFilter (void)
 Get the value of the TextureChunk::_sfMagFilter field.
const GLenum & getMagFilter (void) const
 Get the value of the TextureChunk::_sfMagFilter field.
GLenum & getWrapS (void)
 Get the value of the TextureChunk::_sfWrapS field.
const GLenum & getWrapS (void) const
 Get the value of the TextureChunk::_sfWrapS field.
GLenum & getWrapT (void)
 Get the value of the TextureChunk::_sfWrapT field.
const GLenum & getWrapT (void) const
 Get the value of the TextureChunk::_sfWrapT field.
GLenum & getWrapR (void)
 Get the value of the TextureChunk::_sfWrapR field.
const GLenum & getWrapR (void) const
 Get the value of the TextureChunk::_sfWrapR field.
GLenum & getEnvMode (void)
 Get the value of the TextureChunk::_sfEnvMode field.
const GLenum & getEnvMode (void) const
 Get the value of the TextureChunk::_sfEnvMode field.
Color4fgetEnvColor (void)
 Get the value of the TextureChunk::_sfEnvColor field.
const Color4fgetEnvColor (void) const
 Get the value of the TextureChunk::_sfEnvColor field.
GLenum & getEnvCombineRGB (void)
 Get the value of the TextureChunk::_sfEnvCombineRGB field.
const GLenum & getEnvCombineRGB (void) const
 Get the value of the TextureChunk::_sfEnvCombineRGB field.
GLenum & getEnvCombineAlpha (void)
 Get the value of the TextureChunk::_sfEnvCombineAlpha field.
const GLenum & getEnvCombineAlpha (void) const
 Get the value of the TextureChunk::_sfEnvCombineAlpha field.
Real32getEnvScaleRGB (void)
 Get the value of the TextureChunk::_sfEnvScaleRGB field.
const Real32getEnvScaleRGB (void) const
 Get the value of the TextureChunk::_sfEnvScaleRGB field.
Real32getEnvScaleAlpha (void)
 Get the value of the TextureChunk::_sfEnvScaleAlpha field.
const Real32getEnvScaleAlpha (void) const
 Get the value of the TextureChunk::_sfEnvScaleAlpha field.
GLenum & getEnvSource0RGB (void)
 Get the value of the TextureChunk::_sfEnvSource0RGB field.
const GLenum & getEnvSource0RGB (void) const
 Get the value of the TextureChunk::_sfEnvSource0RGB field.
GLenum & getEnvSource1RGB (void)
 Get the value of the TextureChunk::_sfEnvSource1RGB field.
const GLenum & getEnvSource1RGB (void) const
 Get the value of the TextureChunk::_sfEnvSource1RGB field.
GLenum & getEnvSource2RGB (void)
 Get the value of the TextureChunk::_sfEnvSource2RGB field.
const GLenum & getEnvSource2RGB (void) const
 Get the value of the TextureChunk::_sfEnvSource2RGB field.
GLenum & getEnvSource0Alpha (void)
 Get the value of the TextureChunk::_sfEnvSource0Alpha field.
const GLenum & getEnvSource0Alpha (void) const
 Get the value of the TextureChunk::_sfEnvSource0Alpha field.
GLenum & getEnvSource1Alpha (void)
 Get the value of the TextureChunk::_sfEnvSource1Alpha field.
const GLenum & getEnvSource1Alpha (void) const
 Get the value of the TextureChunk::_sfEnvSource1Alpha field.
GLenum & getEnvSource2Alpha (void)
 Get the value of the TextureChunk::_sfEnvSource2Alpha field.
const GLenum & getEnvSource2Alpha (void) const
 Get the value of the TextureChunk::_sfEnvSource2Alpha field.
GLenum & getEnvOperand0RGB (void)
 Get the value of the TextureChunk::_sfEnvOperand0RGB field.
const GLenum & getEnvOperand0RGB (void) const
 Get the value of the TextureChunk::_sfEnvOperand0RGB field.
GLenum & getEnvOperand1RGB (void)
 Get the value of the TextureChunk::_sfEnvOperand1RGB field.
const GLenum & getEnvOperand1RGB (void) const
 Get the value of the TextureChunk::_sfEnvOperand1RGB field.
GLenum & getEnvOperand2RGB (void)
 Get the value of the TextureChunk::_sfEnvOperand2RGB field.
const GLenum & getEnvOperand2RGB (void) const
 Get the value of the TextureChunk::_sfEnvOperand2RGB field.
GLenum & getEnvOperand0Alpha (void)
 Get the value of the TextureChunk::_sfEnvOperand0Alpha field.
const GLenum & getEnvOperand0Alpha (void) const
 Get the value of the TextureChunk::_sfEnvOperand0Alpha field.
GLenum & getEnvOperand1Alpha (void)
 Get the value of the TextureChunk::_sfEnvOperand1Alpha field.
const GLenum & getEnvOperand1Alpha (void) const
 Get the value of the TextureChunk::_sfEnvOperand1Alpha field.
GLenum & getEnvOperand2Alpha (void)
 Get the value of the TextureChunk::_sfEnvOperand2Alpha field.
const GLenum & getEnvOperand2Alpha (void) const
 Get the value of the TextureChunk::_sfEnvOperand2Alpha field.
GLenum & getGLId (void)
 Get the value of the TextureChunk::_sfGLId field.
const GLenum & getGLId (void) const
 Get the value of the TextureChunk::_sfGLId field.
Int32getIgnoreGLForAspect (void)
 Get the value of the TextureChunk::_sfIgnoreGLForAspect field.
const Int32getIgnoreGLForAspect (void) const
 Get the value of the TextureChunk::_sfIgnoreGLForAspect field.
bool & getPointSprite (void)
 Get the value of the TextureChunk::_sfPointSprite field.
const bool & getPointSprite (void) const
 Get the value of the TextureChunk::_sfPointSprite field.
Real32getPriority (void)
 Get the value of the TextureChunk::_sfPriority field.
const Real32getPriority (void) const
 Get the value of the TextureChunk::_sfPriority field.
GLenum & getShaderOperation (void)
 Get the value of the TextureChunk::_sfShaderOperation field.
const GLenum & getShaderOperation (void) const
 Get the value of the TextureChunk::_sfShaderOperation field.
GLenum & getShaderInput (void)
 Get the value of the TextureChunk::_sfShaderInput field.
const GLenum & getShaderInput (void) const
 Get the value of the TextureChunk::_sfShaderInput field.
Real32getShaderOffsetScale (void)
 Get the value of the TextureChunk::_sfShaderOffsetScale field.
const Real32getShaderOffsetScale (void) const
 Get the value of the TextureChunk::_sfShaderOffsetScale field.
Real32getShaderOffsetBias (void)
 Get the value of the TextureChunk::_sfShaderOffsetBias field.
const Real32getShaderOffsetBias (void) const
 Get the value of the TextureChunk::_sfShaderOffsetBias field.
GLenum & getShaderRGBADotProduct (void)
 Get the value of the TextureChunk::_sfShaderRGBADotProduct field.
const GLenum & getShaderRGBADotProduct (void) const
 Get the value of the TextureChunk::_sfShaderRGBADotProduct field.
UInt8getShaderCullModes (void)
 Get the value of the TextureChunk::_sfShaderCullModes field.
const UInt8getShaderCullModes (void) const
 Get the value of the TextureChunk::_sfShaderCullModes field.
Vec3fgetShaderConstEye (void)
 Get the value of the TextureChunk::_sfShaderConstEye field.
const Vec3fgetShaderConstEye (void) const
 Get the value of the TextureChunk::_sfShaderConstEye field.
Real32getLodBias (void)
 Get the value of the TextureChunk::_sfLodBias field.
const Real32getLodBias (void) const
 Get the value of the TextureChunk::_sfLodBias field.
GLenum & getTarget (void)
 Get the value of the TextureChunk::_sfTarget field.
const GLenum & getTarget (void) const
 Get the value of the TextureChunk::_sfTarget field.
Int32getDirtyLeft (void)
 Get the value of the TextureChunk::_sfDirtyLeft field.
const Int32getDirtyLeft (void) const
 Get the value of the TextureChunk::_sfDirtyLeft field.
Int32getDirtyMinX (void)
 Get the value of the TextureChunk::_sfDirtyMinX field.
const Int32getDirtyMinX (void) const
 Get the value of the TextureChunk::_sfDirtyMinX field.
Int32getDirtyMaxX (void)
 Get the value of the TextureChunk::_sfDirtyMaxX field.
const Int32getDirtyMaxX (void) const
 Get the value of the TextureChunk::_sfDirtyMaxX field.
Int32getDirtyMinY (void)
 Get the value of the TextureChunk::_sfDirtyMinY field.
const Int32getDirtyMinY (void) const
 Get the value of the TextureChunk::_sfDirtyMinY field.
Int32getDirtyMaxY (void)
 Get the value of the TextureChunk::_sfDirtyMaxY field.
const Int32getDirtyMaxY (void) const
 Get the value of the TextureChunk::_sfDirtyMaxY field.
Int32getDirtyMinZ (void)
 Get the value of the TextureChunk::_sfDirtyMinZ field.
const Int32getDirtyMinZ (void) const
 Get the value of the TextureChunk::_sfDirtyMinZ field.
Int32getDirtyMaxZ (void)
 Get the value of the TextureChunk::_sfDirtyMaxZ field.
const Int32getDirtyMaxZ (void) const
 Get the value of the TextureChunk::_sfDirtyMaxZ field.
Real32getAnisotropy (void)
 Get the value of the TextureChunk::_sfAnisotropy field.
const Real32getAnisotropy (void) const
 Get the value of the TextureChunk::_sfAnisotropy field.
Color4fgetBorderColor (void)
 Get the value of the TextureChunk::_sfBorderColor field.
const Color4fgetBorderColor (void) const
 Get the value of the TextureChunk::_sfBorderColor field.
UInt32getBorderWidth (void)
 Get the value of the TextureChunk::_sfBorderWidth field.
const UInt32getBorderWidth (void) const
 Get the value of the TextureChunk::_sfBorderWidth field.
UInt32getNPOTMatrixScale (void)
 Get the value of the TextureChunk::_sfNPOTMatrixScale field.
const UInt32getNPOTMatrixScale (void) const
 Get the value of the TextureChunk::_sfNPOTMatrixScale field.
Real32getShaderOffsetMatrix (const UInt32 index)
 Get the value of the index element the TextureChunk::_mfShaderOffsetMatrix field.
MFReal32getShaderOffsetMatrix (void)
 Get the TextureChunk::_mfShaderOffsetMatrix field.
const MFReal32getShaderOffsetMatrix (void) const
 Get the TextureChunk::_mfShaderOffsetMatrix field.
Chunk Class Access


UInt32 getClassId (void) const
State


virtual void update (DrawActionBase *action)
Field Get


SFBoolgetSFIgnore (void)
 Get the StateChunk::_sfIgnore field.
bool & getIgnore (void)
 Get the value of the StateChunk::_sfIgnore field.
const bool & getIgnore (void) const
 Get the value of the StateChunk::_sfIgnore field.
Field Set


void setIgnore (const bool &value)
 Set the value of the StateChunk::_sfIgnore field.
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


FieldgetField (UInt32 fieldId)
FieldgetField (const Char8 *fieldName)

Static Public Member Functions

Class Get


static FieldContainerTypegetClassType (void)
 access the type of the class
static UInt32 getClassTypeId (void)
 access the numerical type of the class
Construction


static CubeTextureChunkPtr create (void)
 create a new instance of the class
static CubeTextureChunkPtr createEmpty (void)
 create an empty new instance of the class, do not copy the prototype
Static Chunk Class Access


static UInt32 getStaticClassId (void)
static const StateChunkClassgetStaticClass (void)
Multitexture handling


static bool hasMultiTexture (Window *win)
static void activeTexture (Window *win, UInt16 texture)
 call glActiveTexture via the extension mechanism
static bool activateTexture (Window *win, UInt16 texture)
Get Class Type Information


static UInt16 getClassGroupId (void)

Static Public Attributes

static const osg::BitVector PosZImageFieldMask
static const osg::BitVector PosXImageFieldMask
static const osg::BitVector NegXImageFieldMask
static const osg::BitVector PosYImageFieldMask
static const osg::BitVector NegYImageFieldMask
static const osg::BitVector IsReflectionMapFieldMask
static const osg::BitVector MTInfluenceMask
static const osg::BitVector ImageFieldMask
static const osg::BitVector InternalFormatFieldMask
static const osg::BitVector ExternalFormatFieldMask
static const osg::BitVector ScaleFieldMask
static const osg::BitVector FrameFieldMask
static const osg::BitVector MinFilterFieldMask
static const osg::BitVector MagFilterFieldMask
static const osg::BitVector WrapSFieldMask
static const osg::BitVector WrapTFieldMask
static const osg::BitVector WrapRFieldMask
static const osg::BitVector EnvModeFieldMask
static const osg::BitVector EnvColorFieldMask
static const osg::BitVector EnvCombineRGBFieldMask
static const osg::BitVector EnvCombineAlphaFieldMask
static const osg::BitVector EnvScaleRGBFieldMask
static const osg::BitVector EnvScaleAlphaFieldMask
static const osg::BitVector EnvSource0RGBFieldMask
static const osg::BitVector EnvSource1RGBFieldMask
static const osg::BitVector EnvSource2RGBFieldMask
static const osg::BitVector EnvSource0AlphaFieldMask
static const osg::BitVector EnvSource1AlphaFieldMask
static const osg::BitVector EnvSource2AlphaFieldMask
static const osg::BitVector EnvOperand0RGBFieldMask
static const osg::BitVector EnvOperand1RGBFieldMask
static const osg::BitVector EnvOperand2RGBFieldMask
static const osg::BitVector EnvOperand0AlphaFieldMask
static const osg::BitVector EnvOperand1AlphaFieldMask
static const osg::BitVector EnvOperand2AlphaFieldMask
static const osg::BitVector GLIdFieldMask
static const osg::BitVector IgnoreGLForAspectFieldMask
static const osg::BitVector PointSpriteFieldMask
static const osg::BitVector PriorityFieldMask
static const osg::BitVector ShaderOperationFieldMask
static const osg::BitVector ShaderInputFieldMask
static const osg::BitVector ShaderOffsetMatrixFieldMask
static const osg::BitVector ShaderOffsetScaleFieldMask
static const osg::BitVector ShaderOffsetBiasFieldMask
static const osg::BitVector ShaderRGBADotProductFieldMask
static const osg::BitVector ShaderCullModesFieldMask
static const osg::BitVector ShaderConstEyeFieldMask
static const osg::BitVector LodBiasFieldMask
static const osg::BitVector TargetFieldMask
static const osg::BitVector DirtyLeftFieldMask
static const osg::BitVector DirtyMinXFieldMask
static const osg::BitVector DirtyMaxXFieldMask
static const osg::BitVector DirtyMinYFieldMask
static const osg::BitVector DirtyMaxYFieldMask
static const osg::BitVector DirtyMinZFieldMask
static const osg::BitVector DirtyMaxZFieldMask
static const osg::BitVector AnisotropyFieldMask
static const osg::BitVector BorderColorFieldMask
static const osg::BitVector BorderWidthFieldMask
static const osg::BitVector NPOTMatrixScaleFieldMask
static const osg::BitVector IgnoreFieldMask
static const BitVector InternalFieldMask = (1 << Attachment::InternalFieldId)
static const BitVector ParentsFieldMask = (1 << Attachment::ParentsFieldId)
static const BitVector NextFieldMask
CoredNodePtr helper


static const bool isNodeCore = false

Protected Member Functions

Constructors


 CubeTextureChunkBase (void)
 CubeTextureChunkBase (const CubeTextureChunkBase &source)
Destructors


virtual ~CubeTextureChunkBase (void)
Sync


void executeSyncImpl (CubeTextureChunkBase *pOther, const BitVector &whichField)
virtual void executeSync (FieldContainer &other, const BitVector &whichField)
Init


void onCreate (const TextureChunk *source=NULL)
void onDestroy (void)
MT Construction


void onCreate (const FieldContainer *source=NULL)
void onCreateAspect (const FieldContainer *aspect0, const FieldContainer *source=NULL)
GL


void handleTexture (Window *win, UInt32 id, GLenum bindtarget, GLenum paramtarget, GLenum imgtarget, Window::GLObjectStatusE mode, ImagePtr img, int side=0)
void handleTextureShader (Window *win, GLenum bindtarget)
Sync


void executeSyncImpl (TextureChunkBase *pOther, const BitVector &whichField)
Sync


void executeSyncImpl (StateChunkBase *pOther, const BitVector &whichField)
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)

Static Protected Member Functions

static void initMethod (void)
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


SFImagePtr _sfPosZImage
SFImagePtr _sfPosXImage
SFImagePtr _sfNegXImage
SFImagePtr _sfPosYImage
SFImagePtr _sfNegYImage
SFBool _sfIsReflectionMap
Fields


SFImagePtr _sfImage
SFGLenum _sfInternalFormat
SFGLenum _sfExternalFormat
SFBool _sfScale
SFUInt32 _sfFrame
SFGLenum _sfMinFilter
SFGLenum _sfMagFilter
SFGLenum _sfWrapS
SFGLenum _sfWrapT
SFGLenum _sfWrapR
SFGLenum _sfEnvMode
SFColor4f _sfEnvColor
SFGLenum _sfEnvCombineRGB
SFGLenum _sfEnvCombineAlpha
SFReal32 _sfEnvScaleRGB
SFReal32 _sfEnvScaleAlpha
SFGLenum _sfEnvSource0RGB
SFGLenum _sfEnvSource1RGB
SFGLenum _sfEnvSource2RGB
SFGLenum _sfEnvSource0Alpha
SFGLenum _sfEnvSource1Alpha
SFGLenum _sfEnvSource2Alpha
SFGLenum _sfEnvOperand0RGB
SFGLenum _sfEnvOperand1RGB
SFGLenum _sfEnvOperand2RGB
SFGLenum _sfEnvOperand0Alpha
SFGLenum _sfEnvOperand1Alpha
SFGLenum _sfEnvOperand2Alpha
SFGLenum _sfGLId
SFInt32 _sfIgnoreGLForAspect
SFBool _sfPointSprite
SFReal32 _sfPriority
SFGLenum _sfShaderOperation
SFGLenum _sfShaderInput
MFReal32 _mfShaderOffsetMatrix
SFReal32 _sfShaderOffsetScale
SFReal32 _sfShaderOffsetBias
SFGLenum _sfShaderRGBADotProduct
SFUInt8 _sfShaderCullModes
SFVec3f _sfShaderConstEye
SFReal32 _sfLodBias
SFGLenum _sfTarget
SFInt32 _sfDirtyLeft
SFInt32 _sfDirtyMinX
SFInt32 _sfDirtyMaxX
SFInt32 _sfDirtyMinY
SFInt32 _sfDirtyMaxY
SFInt32 _sfDirtyMinZ
SFInt32 _sfDirtyMaxZ
SFReal32 _sfAnisotropy
SFColor4f _sfBorderColor
SFUInt32 _sfBorderWidth
SFUInt32 _sfNPOTMatrixScale
Fields


SFBool _sfIgnore
Fields


SFBool _sfInternal
MFFieldContainerPtr _parents
Member


UInt32 _shares

Static Protected Attributes

static UInt32 _extTex3D
static UInt32 _arbMultiTex
static UInt32 _nvPointSprite
static UInt32 _nvTextureShader
static UInt32 _nvTextureShader2
static UInt32 _nvTextureShader3
static UInt32 _sgisGenerateMipmap
static UInt32 _extTextureLodBias
static UInt32 _arbTextureCompression
static UInt32 _arbTextureRectangle
static UInt32 _arbTextureNonPowerOfTwo
static UInt32 _extTextureFilterAnisotropic
static UInt32 _funcTexImage3D = Window::invalidFunctionID
static UInt32 _funcTexSubImage3D = Window::invalidFunctionID
static UInt32 _funcActiveTexture = Window::invalidFunctionID
static UInt32 _arbCubeTex
static UInt32 _funcCompressedTexImage1D = Window::invalidFunctionID
static UInt32 _funcCompressedTexSubImage1D = Window::invalidFunctionID
static UInt32 _funcCompressedTexImage2D = Window::invalidFunctionID
static UInt32 _funcCompressedTexSubImage2D = Window::invalidFunctionID
static UInt32 _funcCompressedTexImage3D = Window::invalidFunctionID
static UInt32 _funcCompressedTexSubImage3D = Window::invalidFunctionID
static StateChunkClass _class

Private Types

typedef TextureChunk Inherited

Private Member Functions

void operator= (const CubeTextureChunkBase &source)

Static Private Attributes

static FieldDescription_desc []
 CubeTextureChunk description.
static FieldContainerType _type

Friends

class FieldContainer


Detailed Description

Definition at line 86 of file OSGCubeTextureChunkBase.h.


Member Typedef Documentation

Reimplemented from osg::TextureChunk.

Reimplemented in osg::CubeTextureChunk.

Definition at line 90 of file OSGCubeTextureChunkBase.h.

Reimplemented from osg::TextureChunkBase.

Definition at line 95 of file OSGCubeTextureChunkBase.h.


Member Enumeration Documentation

anonymous enum

Enumerator:
PosZImageFieldId 
PosXImageFieldId 
NegXImageFieldId 
PosYImageFieldId 
NegYImageFieldId 
IsReflectionMapFieldId 
NextFieldId 

Definition at line 97 of file OSGCubeTextureChunkBase.h.

00098     {
00099         PosZImageFieldId       = Inherited::NextFieldId,
00100         PosXImageFieldId       = PosZImageFieldId       + 1,
00101         NegXImageFieldId       = PosXImageFieldId       + 1,
00102         PosYImageFieldId       = NegXImageFieldId       + 1,
00103         NegYImageFieldId       = PosYImageFieldId       + 1,
00104         IsReflectionMapFieldId = NegYImageFieldId       + 1,
00105         NextFieldId            = IsReflectionMapFieldId + 1
00106     };

Enumerator:
None_TT 
NPotTexScale_TT 
XFlip_TT 
YFlip_TT 
ZFlip_TT 

Definition at line 66 of file OSGTextureChunk.h.

00067     { 
00068         None_TT = 0, 
00069         NPotTexScale_TT = 1, 
00070         XFlip_TT = 2, 
00071         YFlip_TT = 4, 
00072         ZFlip_TT = 8 
00073     };

anonymous enum [inherited]

Enumerator:
ImageFieldId 
InternalFormatFieldId 
ExternalFormatFieldId 
ScaleFieldId 
FrameFieldId 
MinFilterFieldId 
MagFilterFieldId 
WrapSFieldId 
WrapTFieldId 
WrapRFieldId 
EnvModeFieldId 
EnvColorFieldId 
EnvCombineRGBFieldId 
EnvCombineAlphaFieldId 
EnvScaleRGBFieldId 
EnvScaleAlphaFieldId 
EnvSource0RGBFieldId 
EnvSource1RGBFieldId 
EnvSource2RGBFieldId 
EnvSource0AlphaFieldId 
EnvSource1AlphaFieldId 
EnvSource2AlphaFieldId 
EnvOperand0RGBFieldId 
EnvOperand1RGBFieldId 
EnvOperand2RGBFieldId 
EnvOperand0AlphaFieldId 
EnvOperand1AlphaFieldId 
EnvOperand2AlphaFieldId 
GLIdFieldId 
IgnoreGLForAspectFieldId 
PointSpriteFieldId 
PriorityFieldId 
ShaderOperationFieldId 
ShaderInputFieldId 
ShaderOffsetMatrixFieldId 
ShaderOffsetScaleFieldId 
ShaderOffsetBiasFieldId 
ShaderRGBADotProductFieldId 
ShaderCullModesFieldId 
ShaderConstEyeFieldId 
LodBiasFieldId 
TargetFieldId 
DirtyLeftFieldId 
DirtyMinXFieldId 
DirtyMaxXFieldId 
DirtyMinYFieldId 
DirtyMaxYFieldId 
DirtyMinZFieldId 
DirtyMaxZFieldId 
AnisotropyFieldId 
BorderColorFieldId 
BorderWidthFieldId 
NPOTMatrixScaleFieldId 
NextFieldId 

Definition at line 144 of file OSGTextureChunkBase.h.

00145     {
00146         ImageFieldId                = Inherited::NextFieldId,
00147         InternalFormatFieldId       = ImageFieldId                + 1,
00148         ExternalFormatFieldId       = InternalFormatFieldId       + 1,
00149         ScaleFieldId                = ExternalFormatFieldId       + 1,
00150         FrameFieldId                = ScaleFieldId                + 1,
00151         MinFilterFieldId            = FrameFieldId                + 1,
00152         MagFilterFieldId            = MinFilterFieldId            + 1,
00153         WrapSFieldId                = MagFilterFieldId            + 1,
00154         WrapTFieldId                = WrapSFieldId                + 1,
00155         WrapRFieldId                = WrapTFieldId                + 1,
00156         EnvModeFieldId              = WrapRFieldId                + 1,
00157         EnvColorFieldId             = EnvModeFieldId              + 1,
00158         EnvCombineRGBFieldId        = EnvColorFieldId             + 1,
00159         EnvCombineAlphaFieldId      = EnvCombineRGBFieldId        + 1,
00160         EnvScaleRGBFieldId          = EnvCombineAlphaFieldId      + 1,
00161         EnvScaleAlphaFieldId        = EnvScaleRGBFieldId          + 1,
00162         EnvSource0RGBFieldId        = EnvScaleAlphaFieldId        + 1,
00163         EnvSource1RGBFieldId        = EnvSource0RGBFieldId        + 1,
00164         EnvSource2RGBFieldId        = EnvSource1RGBFieldId        + 1,
00165         EnvSource0AlphaFieldId      = EnvSource2RGBFieldId        + 1,
00166         EnvSource1AlphaFieldId      = EnvSource0AlphaFieldId      + 1,
00167         EnvSource2AlphaFieldId      = EnvSource1AlphaFieldId      + 1,
00168         EnvOperand0RGBFieldId       = EnvSource2AlphaFieldId      + 1,
00169         EnvOperand1RGBFieldId       = EnvOperand0RGBFieldId       + 1,
00170         EnvOperand2RGBFieldId       = EnvOperand1RGBFieldId       + 1,
00171         EnvOperand0AlphaFieldId     = EnvOperand2RGBFieldId       + 1,
00172         EnvOperand1AlphaFieldId     = EnvOperand0AlphaFieldId     + 1,
00173         EnvOperand2AlphaFieldId     = EnvOperand1AlphaFieldId     + 1,
00174         GLIdFieldId                 = EnvOperand2AlphaFieldId     + 1,
00175         IgnoreGLForAspectFieldId    = GLIdFieldId                 + 1,
00176         PointSpriteFieldId          = IgnoreGLForAspectFieldId    + 1,
00177         PriorityFieldId             = PointSpriteFieldId          + 1,
00178         ShaderOperationFieldId      = PriorityFieldId             + 1,
00179         ShaderInputFieldId          = ShaderOperationFieldId      + 1,
00180         ShaderOffsetMatrixFieldId   = ShaderInputFieldId          + 1,
00181         ShaderOffsetScaleFieldId    = ShaderOffsetMatrixFieldId   + 1,
00182         ShaderOffsetBiasFieldId     = ShaderOffsetScaleFieldId    + 1,
00183         ShaderRGBADotProductFieldId = ShaderOffsetBiasFieldId     + 1,
00184         ShaderCullModesFieldId      = ShaderRGBADotProductFieldId + 1,
00185         ShaderConstEyeFieldId       = ShaderCullModesFieldId      + 1,
00186         LodBiasFieldId              = ShaderConstEyeFieldId       + 1,
00187         TargetFieldId               = LodBiasFieldId              + 1,
00188         DirtyLeftFieldId            = TargetFieldId               + 1,
00189         DirtyMinXFieldId            = DirtyLeftFieldId            + 1,
00190         DirtyMaxXFieldId            = DirtyMinXFieldId            + 1,
00191         DirtyMinYFieldId            = DirtyMaxXFieldId            + 1,
00192         DirtyMaxYFieldId            = DirtyMinYFieldId            + 1,
00193         DirtyMinZFieldId            = DirtyMaxYFieldId            + 1,
00194         DirtyMaxZFieldId            = DirtyMinZFieldId            + 1,
00195         AnisotropyFieldId           = DirtyMaxZFieldId            + 1,
00196         BorderColorFieldId          = AnisotropyFieldId           + 1,
00197         BorderWidthFieldId          = BorderColorFieldId          + 1,
00198         NPOTMatrixScaleFieldId      = BorderWidthFieldId          + 1,
00199         NextFieldId                 = NPOTMatrixScaleFieldId      + 1
00200     };

anonymous enum [inherited]

Enumerator:
IgnoreFieldId 
NextFieldId 

Definition at line 92 of file OSGStateChunkBase.h.

00093     {
00094         IgnoreFieldId = Inherited::NextFieldId,
00095         NextFieldId   = IgnoreFieldId + 1
00096     };

anonymous enum [inherited]

Enumerator:
ParentsFieldId 
InternalFieldId 
NextFieldId 

Definition at line 86 of file OSGAttachmentImpl.h.

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

anonymous enum [inherited]

Enumerator:
NextFieldId 

Definition at line 73 of file OSGFieldContainerImpl.h.

00073 { NextFieldId = 1 };


Constructor & Destructor Documentation

CubeTextureChunkBase::CubeTextureChunkBase ( void   )  [protected]

Definition at line 219 of file OSGCubeTextureChunkBase.cpp.

00219                                                :
00220     _sfPosZImage              (), 
00221     _sfPosXImage              (), 
00222     _sfNegXImage              (), 
00223     _sfPosYImage              (), 
00224     _sfNegYImage              (), 
00225     _sfIsReflectionMap        (bool(true)), 
00226     Inherited() 
00227 {
00228 }

CubeTextureChunkBase::CubeTextureChunkBase ( const CubeTextureChunkBase source  )  [protected]

Definition at line 234 of file OSGCubeTextureChunkBase.cpp.

00234                                                                              :
00235     _sfPosZImage              (source._sfPosZImage              ), 
00236     _sfPosXImage              (source._sfPosXImage              ), 
00237     _sfNegXImage              (source._sfNegXImage              ), 
00238     _sfPosYImage              (source._sfPosYImage              ), 
00239     _sfNegYImage              (source._sfNegYImage              ), 
00240     _sfIsReflectionMap        (source._sfIsReflectionMap        ), 
00241     Inherited                 (source)
00242 {
00243 }

CubeTextureChunkBase::~CubeTextureChunkBase ( void   )  [protected, virtual]

Definition at line 247 of file OSGCubeTextureChunkBase.cpp.

00248 {
00249 }


Member Function Documentation

osg::FieldContainerType & osg::CubeTextureChunkBase::getClassType ( void   )  [inline, static]

Reimplemented from osg::TextureChunkBase.

Definition at line 58 of file OSGCubeTextureChunkBase.inl.

References _type.

Referenced by create(), and osg::RemoteAspect::RemoteAspect().

00059 {
00060     return _type; 
00061 } 

osg::UInt32 osg::CubeTextureChunkBase::getClassTypeId ( void   )  [inline, static]

Reimplemented from osg::TextureChunkBase.

Definition at line 65 of file OSGCubeTextureChunkBase.inl.

References _type, and osg::TypeBase::getId().

00066 {
00067     return _type.getId(); 
00068 } 

FieldContainerType & CubeTextureChunkBase::getType ( void   )  [virtual]

Reimplemented from osg::TextureChunkBase.

Definition at line 161 of file OSGCubeTextureChunkBase.cpp.

References _type.

00162 {
00163     return _type; 
00164 } 

const FieldContainerType & CubeTextureChunkBase::getType ( void   )  const [virtual]

Reimplemented from osg::TextureChunkBase.

Definition at line 166 of file OSGCubeTextureChunkBase.cpp.

References _type.

00167 {
00168     return _type;
00169 } 

UInt32 CubeTextureChunkBase::getContainerSize ( void   )  const [virtual]

Reimplemented from osg::TextureChunkBase.

Definition at line 181 of file OSGCubeTextureChunkBase.cpp.

00182 { 
00183     return sizeof(CubeTextureChunk); 
00184 }

SFImagePtr * osg::CubeTextureChunkBase::getSFPosZImage ( void   )  [inline]

Definition at line 101 of file OSGCubeTextureChunkBase.inl.

References _sfPosZImage.

00102 {
00103     return &_sfPosZImage;
00104 }

SFImagePtr * osg::CubeTextureChunkBase::getSFPosXImage ( void   )  [inline]

Definition at line 108 of file OSGCubeTextureChunkBase.inl.

References _sfPosXImage.

00109 {
00110     return &_sfPosXImage;
00111 }

SFImagePtr * osg::CubeTextureChunkBase::getSFNegXImage ( void   )  [inline]

Definition at line 115 of file OSGCubeTextureChunkBase.inl.

References _sfNegXImage.

00116 {
00117     return &_sfNegXImage;
00118 }

SFImagePtr * osg::CubeTextureChunkBase::getSFPosYImage ( void   )  [inline]

Definition at line 122 of file OSGCubeTextureChunkBase.inl.

References _sfPosYImage.

00123 {
00124     return &_sfPosYImage;
00125 }

SFImagePtr * osg::CubeTextureChunkBase::getSFNegYImage ( void   )  [inline]

Definition at line 129 of file OSGCubeTextureChunkBase.inl.

References _sfNegYImage.

00130 {
00131     return &_sfNegYImage;
00132 }

SFBool * osg::CubeTextureChunkBase::getSFIsReflectionMap ( void   )  [inline]

Definition at line 136 of file OSGCubeTextureChunkBase.inl.

References _sfIsReflectionMap.

00137 {
00138     return &_sfIsReflectionMap;
00139 }

ImagePtr & osg::CubeTextureChunkBase::getPosZImage ( void   )  [inline]

const ImagePtr & osg::CubeTextureChunkBase::getPosZImage ( void   )  const [inline]

Definition at line 151 of file OSGCubeTextureChunkBase.inl.

References _sfPosZImage, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00152 {
00153     return _sfPosZImage.getValue();
00154 }

ImagePtr & osg::CubeTextureChunkBase::getPosXImage ( void   )  [inline]

const ImagePtr & osg::CubeTextureChunkBase::getPosXImage ( void   )  const [inline]

Definition at line 172 of file OSGCubeTextureChunkBase.inl.

References _sfPosXImage, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00173 {
00174     return _sfPosXImage.getValue();
00175 }

ImagePtr & osg::CubeTextureChunkBase::getNegXImage ( void   )  [inline]

const ImagePtr & osg::CubeTextureChunkBase::getNegXImage ( void   )  const [inline]

Definition at line 193 of file OSGCubeTextureChunkBase.inl.

References _sfNegXImage, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00194 {
00195     return _sfNegXImage.getValue();
00196 }

ImagePtr & osg::CubeTextureChunkBase::getPosYImage ( void   )  [inline]

const ImagePtr & osg::CubeTextureChunkBase::getPosYImage ( void   )  const [inline]

Definition at line 214 of file OSGCubeTextureChunkBase.inl.

References _sfPosYImage, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00215 {
00216     return _sfPosYImage.getValue();
00217 }

ImagePtr & osg::CubeTextureChunkBase::getNegYImage ( void   )  [inline]

const ImagePtr & osg::CubeTextureChunkBase::getNegYImage ( void   )  const [inline]

Definition at line 235 of file OSGCubeTextureChunkBase.inl.

References _sfNegYImage, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00236 {
00237     return _sfNegYImage.getValue();
00238 }

bool & osg::CubeTextureChunkBase::getIsReflectionMap ( void   )  [inline]

Definition at line 249 of file OSGCubeTextureChunkBase.inl.

References _sfIsReflectionMap, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00250 {
00251     return _sfIsReflectionMap.getValue();
00252 }

const bool & osg::CubeTextureChunkBase::getIsReflectionMap ( void   )  const [inline]

Definition at line 256 of file OSGCubeTextureChunkBase.inl.

References _sfIsReflectionMap, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00257 {
00258     return _sfIsReflectionMap.getValue();
00259 }

void osg::CubeTextureChunkBase::setPosZImage ( const ImagePtr value  )  [inline]

Definition at line 158 of file OSGCubeTextureChunkBase.inl.

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

00159 {
00160     _sfPosZImage.setValue(value);
00161 }

void osg::CubeTextureChunkBase::setPosXImage ( const ImagePtr value  )  [inline]

Definition at line 179 of file OSGCubeTextureChunkBase.inl.

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

00180 {
00181     _sfPosXImage.setValue(value);
00182 }

void osg::CubeTextureChunkBase::setNegXImage ( const ImagePtr value  )  [inline]

Definition at line 200 of file OSGCubeTextureChunkBase.inl.

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

00201 {
00202     _sfNegXImage.setValue(value);
00203 }

void osg::CubeTextureChunkBase::setPosYImage ( const ImagePtr value  )  [inline]

Definition at line 221 of file OSGCubeTextureChunkBase.inl.

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

00222 {
00223     _sfPosYImage.setValue(value);
00224 }

void osg::CubeTextureChunkBase::setNegYImage ( const ImagePtr value  )  [inline]

Definition at line 242 of file OSGCubeTextureChunkBase.inl.

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

00243 {
00244     _sfNegYImage.setValue(value);
00245 }

void osg::CubeTextureChunkBase::setIsReflectionMap ( const bool &  value  )  [inline]

Definition at line 263 of file OSGCubeTextureChunkBase.inl.

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

00264 {
00265     _sfIsReflectionMap.setValue(value);
00266 }

UInt32 CubeTextureChunkBase::getBinSize ( const BitVector whichField  )  [virtual]

Reimplemented from osg::TextureChunkBase.

Definition at line 253 of file OSGCubeTextureChunkBase.cpp.

References _sfIsReflectionMap, _sfNegXImage, _sfNegYImage, _sfPosXImage, _sfPosYImage, _sfPosZImage, osg::SField< FieldTypeT, fieldNameSpace >::getBinSize(), osg::TextureChunkBase::getBinSize(), IsReflectionMapFieldMask, NegXImageFieldMask, NegYImageFieldMask, osg::FieldBits::NoField, PosXImageFieldMask, PosYImageFieldMask, and PosZImageFieldMask.

00254 {
00255     UInt32 returnValue = Inherited::getBinSize(whichField);
00256 
00257     if(FieldBits::NoField != (PosZImageFieldMask & whichField))
00258     {
00259         returnValue += _sfPosZImage.getBinSize();
00260     }
00261 
00262     if(FieldBits::NoField != (PosXImageFieldMask & whichField))
00263     {
00264         returnValue += _sfPosXImage.getBinSize();
00265     }
00266 
00267     if(FieldBits::NoField != (NegXImageFieldMask & whichField))
00268     {
00269         returnValue += _sfNegXImage.getBinSize();
00270     }
00271 
00272     if(FieldBits::NoField != (PosYImageFieldMask & whichField))
00273     {
00274         returnValue += _sfPosYImage.getBinSize();
00275     }
00276 
00277     if(FieldBits::NoField != (NegYImageFieldMask & whichField))
00278     {
00279         returnValue += _sfNegYImage.getBinSize();
00280     }
00281 
00282     if(FieldBits::NoField != (IsReflectionMapFieldMask & whichField))
00283     {
00284         returnValue += _sfIsReflectionMap.getBinSize();
00285     }
00286 
00287 
00288     return returnValue;
00289 }

void CubeTextureChunkBase::copyToBin ( BinaryDataHandler pMem,
const BitVector whichField 
) [virtual]

Reimplemented from osg::TextureChunkBase.

Definition at line 291 of file OSGCubeTextureChunkBase.cpp.

References _sfIsReflectionMap, _sfNegXImage, _sfNegYImage, _sfPosXImage, _sfPosYImage, _sfPosZImage, osg::SField< FieldTypeT, fieldNameSpace >::copyToBin(), osg::TextureChunkBase::copyToBin(), IsReflectionMapFieldMask, NegXImageFieldMask, NegYImageFieldMask, osg::FieldBits::NoField, PosXImageFieldMask, PosYImageFieldMask, and PosZImageFieldMask.

00293 {
00294     Inherited::copyToBin(pMem, whichField);
00295 
00296     if(FieldBits::NoField != (PosZImageFieldMask & whichField))
00297     {
00298         _sfPosZImage.copyToBin(pMem);
00299     }
00300 
00301     if(FieldBits::NoField != (PosXImageFieldMask & whichField))
00302     {
00303         _sfPosXImage.copyToBin(pMem);
00304     }
00305 
00306     if(FieldBits::NoField != (NegXImageFieldMask & whichField))
00307     {
00308         _sfNegXImage.copyToBin(pMem);
00309     }
00310 
00311     if(FieldBits::NoField != (PosYImageFieldMask & whichField))
00312     {
00313         _sfPosYImage.copyToBin(pMem);
00314     }
00315 
00316     if(FieldBits::NoField != (NegYImageFieldMask & whichField))
00317     {
00318         _sfNegYImage.copyToBin(pMem);
00319     }
00320 
00321     if(FieldBits::NoField != (IsReflectionMapFieldMask & whichField))
00322     {
00323         _sfIsReflectionMap.copyToBin(pMem);
00324     }
00325 
00326 
00327 }

void CubeTextureChunkBase::copyFromBin ( BinaryDataHandler pMem,
const BitVector whichField 
) [virtual]

Reimplemented from osg::TextureChunkBase.

Definition at line 329 of file OSGCubeTextureChunkBase.cpp.

References _sfIsReflectionMap, _sfNegXImage, _sfNegYImage, _sfPosXImage, _sfPosYImage, _sfPosZImage, osg::SField< FieldTypeT, fieldNameSpace >::copyFromBin(), osg::TextureChunkBase::copyFromBin(), IsReflectionMapFieldMask, NegXImageFieldMask, NegYImageFieldMask, osg::FieldBits::NoField, PosXImageFieldMask, PosYImageFieldMask, and PosZImageFieldMask.

00331 {
00332     Inherited::copyFromBin(pMem, whichField);
00333 
00334     if(FieldBits::NoField != (PosZImageFieldMask & whichField))
00335     {
00336         _sfPosZImage.copyFromBin(pMem);
00337     }
00338 
00339     if(FieldBits::NoField != (PosXImageFieldMask & whichField))
00340     {
00341         _sfPosXImage.copyFromBin(pMem);
00342     }
00343 
00344     if(FieldBits::NoField != (NegXImageFieldMask & whichField))
00345     {
00346         _sfNegXImage.copyFromBin(pMem);
00347     }
00348 
00349     if(FieldBits::NoField != (PosYImageFieldMask & whichField))
00350     {
00351         _sfPosYImage.copyFromBin(pMem);
00352     }
00353 
00354     if(FieldBits::NoField != (NegYImageFieldMask & whichField))
00355     {
00356         _sfNegYImage.copyFromBin(pMem);
00357     }
00358 
00359     if(FieldBits::NoField != (IsReflectionMapFieldMask & whichField))
00360     {
00361         _sfIsReflectionMap.copyFromBin(pMem);
00362     }
00363 
00364 
00365 }

CubeTextureChunkPtr osg::CubeTextureChunkBase::create ( void   )  [inline, static]

Reimplemented from osg::TextureChunkBase.

Definition at line 72 of file OSGCubeTextureChunkBase.inl.

References osg::AttachmentPtr::dcast(), getClassType(), osg::NullFC, and shallowCopy().

00073 {
00074     CubeTextureChunkPtr fc; 
00075 
00076     if(getClassType().getPrototype() != OSG::NullFC) 
00077     {
00078         fc = CubeTextureChunkPtr::dcast(
00079             getClassType().getPrototype()-> shallowCopy()); 
00080     }
00081     
00082     return fc; 
00083 }

CubeTextureChunkPtr osg::CubeTextureChunkBase::createEmpty ( void   )  [inline, static]

Reimplemented from osg::TextureChunkBase.

Definition at line 87 of file OSGCubeTextureChunkBase.inl.

References osg::FieldContainer::newPtr().

00088 { 
00089     CubeTextureChunkPtr returnValue; 
00090     
00091     newPtr(returnValue); 
00092 
00093     return returnValue; 
00094 }

FieldContainerPtr CubeTextureChunkBase::shallowCopy ( void   )  const [virtual]

Reimplemented from osg::TextureChunkBase.

Definition at line 172 of file OSGCubeTextureChunkBase.cpp.

References osg::FieldContainer::newPtr().

Referenced by create().

00173 { 
00174     CubeTextureChunkPtr returnValue; 
00175 
00176     newPtr(returnValue, dynamic_cast<const CubeTextureChunk *>(this)); 
00177 
00178     return returnValue; 
00179 }

void CubeTextureChunkBase::executeSyncImpl ( CubeTextureChunkBase pOther,
const BitVector whichField 
) [protected]

void CubeTextureChunkBase::executeSync ( FieldContainer other,
const BitVector whichField 
) [protected, virtual]

Reimplemented from osg::TextureChunkBase.

Definition at line 188 of file OSGCubeTextureChunkBase.cpp.

References executeSyncImpl().

00190 {
00191     this->executeSyncImpl((CubeTextureChunkBase *) &other, whichField);
00192 }

void osg::CubeTextureChunkBase::operator= ( const CubeTextureChunkBase source  )  [private]

const StateChunkClass * TextureChunk::getClass ( void   )  const [virtual, inherited]

Reimplemented from osg::StateChunk.

Reimplemented in osg::CubeTextureChunk.

Definition at line 244 of file OSGTextureChunk.cpp.

References osg::TextureChunk::_class.

Referenced by osg::CubeTextureChunk::getClass().

00245 {
00246     return &_class;
00247 }

UInt32 osg::TextureChunk::getStaticClassId ( void   )  [inline, static, inherited]

Reimplemented from osg::StateChunk.

Reimplemented in osg::CubeTextureChunk.

Definition at line 47 of file OSGTextureChunk.inl.

References osg::StateChunkClass::getId(), and osg::TextureChunk::getStaticClass().

Referenced by osg::TextureTransformChunk::checkTexChunkOrder(), and osg::VRMLWriteAction::writeMaterial().

00048 {
00049     return getStaticClass()->getId();
00050 }

const StateChunkClass * osg::TextureChunk::getStaticClass ( void   )  [inline, static, inherited]

Reimplemented from osg::StateChunk.

Reimplemented in osg::CubeTextureChunk.

Definition at line 53 of file OSGTextureChunk.inl.

References osg::TextureChunk::_class.

Referenced by osg::TextureTransformChunk::checkTexChunkOrder(), and osg::TextureChunk::getStaticClassId().

00054 {
00055     return &TextureChunk::_class;
00056 }

void TextureChunk::changed ( BitVector  whichField,
UInt32  origin 
) [virtual, inherited]

React to field changes. Note: this function also handles CubeTexture changes, make sure to keep it consistent with the cubeTexture specifics

Reimplemented from osg::StateChunk.

Reimplemented in osg::CubeTextureChunk.

Definition at line 256 of file OSGTextureChunk.cpp.

References osg::TextureChunkBase::_sfIgnoreGLForAspect, osg::TextureChunkBase::_sfImage, osg::ChangedOrigin::Abstract, osg::ChangedOrigin::AbstrIncRefCount, osg::addRefCP(), osg::beginEditCP(), osg::StateChunk::changed(), osg::TextureChunkBase::DirtyMaxXFieldMask, osg::TextureChunkBase::DirtyMaxYFieldMask, osg::TextureChunkBase::DirtyMaxZFieldMask, osg::TextureChunkBase::DirtyMinXFieldMask, osg::TextureChunkBase::DirtyMinYFieldMask, osg::TextureChunkBase::DirtyMinZFieldMask, osg::endEditCP(), osg::TextureChunkBase::FrameFieldMask, osg::PThreadBase::getAspect(), osg::TextureChunkBase::getGLId(), osg::TextureChunkBase::getMinFilter(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::TextureChunkBase::GLIdFieldMask, osg::TextureChunk::handleGL(), osg::TextureChunk::imageContentChanged(), osg::TextureChunkBase::ImageFieldMask, osg::TextureChunkBase::MagFilterFieldMask, osg::TextureChunkBase::MinFilterFieldMask, osg::NullFC, osg::osgTypedMethodVoidFunctor2ObjCPtrPtr(), osg::TextureChunkBase::PriorityFieldMask, osg::Window::refreshGLObject(), osg::Window::registerGLObject(), osg::Window::reinitializeGLObject(), osg::TextureChunkBase::setGLId(), osg::TextureChunk::setImage(), and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

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

00257 {
00258     if(Thread::getAspect() != _sfIgnoreGLForAspect.getValue())
00259     {
00260         if(getGLId() == 0)
00261         {
00262             TextureChunkPtr tmpPtr(*this);
00263 
00264             beginEditCP(tmpPtr, TextureChunk::GLIdFieldMask);
00265             
00266             setGLId(
00267                 Window::registerGLObject(
00268                     osgTypedMethodVoidFunctor2ObjCPtrPtr<TextureChunkPtr,
00269                                                  Window ,
00270                                                  UInt32>(
00271                                                      tmpPtr,
00272                                                      &TextureChunk::handleGL),
00273                     1));
00274             
00275             endEditCP(tmpPtr, TextureChunk::GLIdFieldMask);
00276         }
00277     }
00278 
00279     // Only filter changed? Mipmaps need reinit.
00280     if((whichField & ~(MinFilterFieldMask | MagFilterFieldMask)) == 0)
00281     {
00282         if((getMinFilter() != GL_NEAREST) &&
00283            (getMinFilter() != GL_LINEAR))
00284         {
00285             if(Thread::getAspect() != _sfIgnoreGLForAspect.getValue())
00286             {
00287                 Window::reinitializeGLObject(getGLId());
00288             }
00289         }
00290         else
00291         {
00292             imageContentChanged();
00293         }
00294     } // Only priority changed? Refresh is fine.
00295     else if((whichField & ~(PriorityFieldMask | FrameFieldMask)) == 0)
00296     {
00297         imageContentChanged();
00298     } // Only dirty rectangle changed? Refresh is fine.
00299     else if ((whichField & ~(DirtyMinXFieldMask | DirtyMaxXFieldMask |
00300                              DirtyMinYFieldMask | DirtyMaxYFieldMask |
00301                              DirtyMinZFieldMask | DirtyMaxZFieldMask)) == 0)
00302     {
00303         if(Thread::getAspect() != _sfIgnoreGLForAspect.getValue())
00304         {
00305             Window::refreshGLObject(getGLId());
00306         }
00307     }
00308     else // Play it safe, do a reinit
00309     {
00310         if(Thread::getAspect() != _sfIgnoreGLForAspect.getValue())
00311         {
00312             Window::reinitializeGLObject(getGLId());
00313         }
00314     }
00315 
00316     if(whichField & ImageFieldMask)
00317     {
00318         if(origin & ChangedOrigin::Abstract)
00319         {
00320             if(origin & ChangedOrigin::AbstrIncRefCount)
00321             {
00322                 addRefCP(_sfImage.getValue());
00323             }
00324             else
00325             {
00326                 ImagePtr pImage = _sfImage.getValue();
00327 
00328                 _sfImage.setValue(NullFC);
00329 
00330                 setImage(pImage);
00331             }
00332         }
00333     }
00334 
00335     Inherited::changed(whichField, origin);
00336 }

void TextureChunk::dump ( UInt32  uiIndent = 0,
const BitVector  bvFlags = 0 
) const [virtual, inherited]

Reimplemented from osg::StateChunk.

Reimplemented in osg::CubeTextureChunk.

Definition at line 387 of file OSGTextureChunk.cpp.

References SLOG.

00389 {
00390     SLOG << "Dump TextureChunk NI" << std::endl;
00391 }

void TextureChunk::activate ( DrawActionBase action,
UInt32  index = 0 
) [virtual, inherited]

Reimplemented from osg::StateChunk.

Reimplemented in osg::CubeTextureChunk.

Definition at line 1559 of file OSGTextureChunk.cpp.

References osg::TextureChunk::_arbTextureNonPowerOfTwo, osg::TextureChunk::_extTex3D, osg::TextureChunk::_extTextureLodBias, osg::TextureChunk::_nvPointSprite, osg::TextureChunk::_nvTextureShader, osg::TextureChunk::activateTexture(), FDEBUG, FWARNING, osg::Window::getConstantValue(), osg::StatCollector::getElem(), osg::TextureChunkBase::getEnvColor(), osg::TextureChunkBase::getEnvCombineAlpha(), osg::TextureChunkBase::getEnvCombineRGB(), osg::TextureChunkBase::getEnvMode(), osg::TextureChunkBase::getEnvOperand0Alpha(), osg::TextureChunkBase::getEnvOperand0RGB(), osg::TextureChunkBase::getEnvOperand1Alpha(), osg::TextureChunkBase::getEnvOperand1RGB(), osg::TextureChunkBase::getEnvOperand2Alpha(), osg::TextureChunkBase::getEnvOperand2RGB(), osg::TextureChunkBase::getEnvScaleAlpha(), osg::TextureChunkBase::getEnvScaleRGB(), osg::TextureChunkBase::getEnvSource0Alpha(), osg::TextureChunkBase::getEnvSource0RGB(), osg::TextureChunkBase::getEnvSource1Alpha(), osg::TextureChunkBase::getEnvSource1RGB(), osg::TextureChunkBase::getEnvSource2Alpha(), osg::TextureChunkBase::getEnvSource2RGB(), osg::TextureChunkBase::getGLId(), osg::Window::getGLObjectId(), osg::Window::getGLVersion(), osg::TextureChunkBase::getImage(), osg::TextureChunkBase::getLodBias(), osg::TextureChunkBase::getNPOTMatrixScale(), osg::TextureChunkBase::getPointSprite(), osg::TextureChunkBase::getScale(), osg::TextureChunkBase::getShaderOperation(), osg::DrawActionBase::getStatistics(), osg::TextureChunkBase::getTarget(), osg::TransformationMatrix< ValueTypeT >::getValues(), osg::DrawActionBase::getWindow(), GL_COMBINE_ALPHA_EXT, GL_COMBINE_EXT, GL_COMBINE_RGB_EXT, GL_COORD_REPLACE_NV, GL_MAX_TEXTURE_COORDS_ARB, GL_MAX_TEXTURE_IMAGE_UNITS_ARB, GL_MAX_TEXTURE_UNITS_ARB, GL_OPERAND0_ALPHA_EXT, GL_OPERAND0_RGB_EXT, GL_OPERAND1_ALPHA_EXT, GL_OPERAND1_RGB_EXT, GL_OPERAND2_ALPHA_EXT, GL_OPERAND2_RGB_EXT, GL_POINT_SPRITE_NV, GL_RGB_SCALE_EXT, GL_SOURCE0_ALPHA_EXT, GL_SOURCE0_RGB_EXT, GL_SOURCE1_ALPHA_EXT, GL_SOURCE1_RGB_EXT, GL_SOURCE2_ALPHA_EXT, GL_SOURCE2_RGB_EXT, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT, GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_SHADER_NV, GLenum, glErr, osg::TextureChunk::handleTextureShader(), osg::Window::hasExtension(), osg::TextureChunk::NPotTexScale_TT, osg::NullFC, osg::osgnextpower2(), osg::TransformationMatrix< ValueTypeT >::setIdentity(), osg::TransformationMatrix< ValueTypeT >::setScale(), osg::TransformationMatrix< ValueTypeT >::setTranslate(), osg::RenderAction::statNTexBytes, osg::RenderAction::statNTextures, osg::Window::unknownConstant, osg::Window::validateGLObject(), osg::TextureChunk::XFlip_TT, osg::TextureChunk::YFlip_TT, and osg::TextureChunk::ZFlip_TT.

Referenced by osg::TextureChunk::changeFrom().

01560 {    
01561     Window *win = action->getWindow();
01562     
01563     Real32 nteximages, ntexcoords;
01564     if((nteximages = win->getConstantValue(GL_MAX_TEXTURE_IMAGE_UNITS_ARB)) ==
01565        Window::unknownConstant
01566       )
01567     {
01568         nteximages = win->getConstantValue(GL_MAX_TEXTURE_UNITS_ARB);
01569         // sgi doesn't support GL_MAX_TEXTURE_UNITS_ARB!
01570         if(nteximages == Window::unknownConstant)
01571             nteximages = 1.0f;
01572     }
01573     if((ntexcoords = win->getConstantValue(GL_MAX_TEXTURE_COORDS_ARB)) ==
01574        Window::unknownConstant
01575       )
01576     {
01577         ntexcoords = win->getConstantValue(GL_MAX_TEXTURE_UNITS_ARB);
01578         // sgi doesn't support GL_MAX_TEXTURE_UNITS_ARB!
01579         if(ntexcoords == Window::unknownConstant)
01580             ntexcoords = 1.0f;
01581     }
01582 
01583     if(idx >= static_cast<UInt32>(nteximages))
01584     {
01585 #ifdef OSG_DEBUG
01586         FWARNING(("TextureChunk::activate: Trying to bind image unit %d,"
01587                   " but Window %p only supports %d!\n",
01588                   idx, win, nteximages));
01589 #endif
01590         return;        
01591     }
01592 
01593     if(activateTexture(win, idx))
01594         return; // trying to access too many textures
01595 
01596     win->validateGLObject(getGLId());
01597 
01598     ImagePtr img = getImage();
01599     GLenum target = getTarget();
01600 
01601     if( img == NullFC || ! img->getDimension()) // no image ?
01602         return;
01603 
01604     glErr("TextureChunk::activate precheck");
01605 
01606     if(img->getSideCount() == 1)
01607     {
01608         if ( target == GL_NONE )
01609         {
01610             if ( img->getDepth() > 1 )
01611             {
01612                     if(win->hasExtension(_extTex3D) ||
01613                        win->getGLVersion() >= 0x0102
01614                       )
01615                         target = GL_TEXTURE_3D;
01616                     else
01617                     {
01618                         FWARNING(("TextureChunk::activate: 3D textures not "
01619                                     "supported for this window!\n"));
01620                         return;
01621                     }
01622             }
01623             else if(img->getHeight() > 1)   target = GL_TEXTURE_2D;
01624             else                            target = GL_TEXTURE_1D;
01625         }
01626     }
01627     else
01628     {
01629         target = GL_TEXTURE_CUBE_MAP_ARB;
01630     }
01631 
01632     FDEBUG(("TextureChunk::activate - %d\n", getGLId()));
01633 
01634     action->getStatistics()->getElem(RenderAction::statNTextures)->inc(getGLId());
01635     action->getStatistics()->getElem(RenderAction::statNTexBytes)->add(
01636                                      getGLId(), getImage()->getSize());
01637 
01638     glBindTexture(target, win->getGLObjectId(getGLId()));
01639 
01640 #ifdef GL_NV_point_sprite
01641     if(idx < static_cast<UInt32>(ntexcoords))
01642     {
01643         if(getPointSprite() &&
01644            win->hasExtension(_nvPointSprite))
01645         {
01646             glTexEnvi(GL_POINT_SPRITE_NV, GL_COORD_REPLACE_NV, GL_TRUE);
01647         }
01648     }
01649 #endif
01650 
01651     if(idx < static_cast<UInt32>(nteximages))
01652     {
01653         if(getLodBias() != 0.0f &&
01654            win->hasExtension(_extTextureLodBias))
01655         {
01656             glTexEnvf(GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT,
01657                   getLodBias());
01658         }
01659     }
01660 
01661     Real32 ntexunits = win->getConstantValue(GL_MAX_TEXTURE_UNITS_ARB);
01662 
01663     // sgi doesn't support GL_MAX_TEXTURE_UNITS_ARB!
01664     if(ntexunits == Window::unknownConstant)
01665         ntexunits = 1.0f;
01666 
01667     if(idx < static_cast<UInt32>(ntexunits))
01668     {
01669         // texture env
01670         glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, getEnvMode());
01671         glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR,
01672                     (GLfloat*)getEnvColor().getValuesRGBA());
01673 
01674         if(getEnvMode() == GL_COMBINE_EXT)
01675         {
01676             glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT,  getEnvCombineRGB ());
01677             glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT,    getEnvScaleRGB   ());
01678             glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_EXT,  getEnvSource0RGB ());
01679             glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT,  getEnvSource1RGB ());
01680             glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_RGB_EXT,  getEnvSource2RGB ());
01681             glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_EXT, getEnvOperand0RGB());
01682             glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_EXT, getEnvOperand1RGB());
01683             glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB_EXT, getEnvOperand2RGB());
01684 
01685             glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_EXT, getEnvCombineAlpha ());
01686             glTexEnvf(GL_TEXTURE_ENV, GL_ALPHA_SCALE,       getEnvScaleAlpha   ());
01687             glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_EXT, getEnvSource0Alpha ());
01688             glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA_EXT, getEnvSource1Alpha ());
01689             glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_ALPHA_EXT, getEnvSource2Alpha ());
01690             glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_EXT,getEnvOperand0Alpha());
01691             glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA_EXT,getEnvOperand1Alpha());
01692             glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_ALPHA_EXT,getEnvOperand2Alpha());
01693         }
01694 
01695         handleTextureShader(win, target);
01696 
01697         if(getShaderOperation() != GL_NONE &&
01698            win->hasExtension(_nvTextureShader) &&
01699            idx == 0)
01700         {
01701             glEnable(GL_TEXTURE_SHADER_NV);
01702         }
01703         glEnable(target);
01704     }
01705     
01706     // Use texture matrix for scaling
01707     UInt32 NpotMatScale = getNPOTMatrixScale();
01708     bool setMatrix = false;
01709     
01710     if ( idx < static_cast<UInt32>(ntexcoords) &&
01711         !getScale() && NpotMatScale )
01712     {
01713         ImagePtr i = getImage();
01714         
01715         if (i != NullFC)
01716         {
01717             Real32 sw=1.f, sh=1.f, sd=1.f,
01718                    tw=0.f, th=0.f, td=0.f;
01719             
01720             if ( (NpotMatScale & NPotTexScale_TT) &&
01721                   getTarget() != GL_TEXTURE_RECTANGLE_ARB &&
01722                  !win->hasExtension(_arbTextureNonPowerOfTwo) )
01723             {
01724                 UInt32 w,h,d,nw,nh,nd;
01725                 
01726                 w = i->getWidth();
01727                 h = i->getHeight();
01728                 d = i->getDepth();
01729                 
01730                 nw = osgnextpower2(w);
01731                 nh = osgnextpower2(h);
01732                 nd = osgnextpower2(d);
01733                 
01734                 sw = w / static_cast<Real32>(nw);
01735                 sh = h / static_cast<Real32>(nh);
01736                 sd = d / static_cast<Real32>(nd);
01737                 
01738                 setMatrix = true;
01739             }
01740             if ( (NpotMatScale & XFlip_TT) )
01741             {
01742                 tw = sw - 1.f;
01743                 sw *= -1.f;
01744                 
01745                 setMatrix = true;
01746             }
01747             if ( (NpotMatScale & YFlip_TT) )
01748             {
01749                 th = sh - 1.f;
01750                 sh *= -1.f;
01751                 
01752                 setMatrix = true;
01753             }
01754             if ( (NpotMatScale & ZFlip_TT) )
01755             {
01756                 td = sd - 1.f;
01757                 sd *= -1.f;
01758                 
01759                 setMatrix = true;
01760             }
01761             
01762             if (setMatrix)
01763             {
01764                 Matrix m;
01765                 
01766                 m.setIdentity();
01767                 m.setScale( Vec3f(sw, sh, sd) );
01768                 m.setTranslate( Vec3f(tw, th, td) );
01769 
01770                 glPushAttrib(GL_TRANSFORM_BIT);
01771                 glMatrixMode(GL_TEXTURE);
01772                 glLoadMatrixf(m.getValues());
01773                 glPopAttrib();
01774             }
01775         }
01776     }
01777     
01778     if (!setMatrix && idx < static_cast<UInt32>(ntexcoords))
01779     {
01780         glPushAttrib(GL_TRANSFORM_BIT);
01781         glMatrixMode(GL_TEXTURE);
01782         glLoadIdentity();
01783         glPopAttrib();
01784     }
01785     
01786     glErr("TextureChunk::activate");
01787 }

void TextureChunk::changeFrom ( DrawActionBase action,
StateChunk old,
UInt32  index = 0 
) [virtual, inherited]

Reimplemented from osg::StateChunk.

Reimplemented in osg::CubeTextureChunk.

Definition at line 1790 of file OSGTextureChunk.cpp.

References osg::TextureChunk::_arbTextureNonPowerOfTwo, osg::TextureChunk::_extTex3D, osg::TextureChunk::_extTextureLodBias, osg::TextureChunk::_nvPointSprite, osg::TextureChunk::_nvTextureShader, osg::TextureChunk::activate(), osg::TextureChunk::activateTexture(), osg::TextureChunk::deactivate(), osg::StateChunk::deactivate(), FWARNING, osg::Window::getConstantValue(), osg::StatCollector::getElem(), osg::TextureChunkBase::getEnvColor(), osg::TextureChunkBase::getEnvCombineAlpha(), osg::TextureChunkBase::getEnvCombineRGB(), osg::TextureChunkBase::getEnvMode(), osg::TextureChunkBase::getEnvOperand0Alpha(), osg::TextureChunkBase::getEnvOperand0RGB(), osg::TextureChunkBase::getEnvOperand1Alpha(), osg::TextureChunkBase::getEnvOperand1RGB(), osg::TextureChunkBase::getEnvOperand2Alpha(), osg::TextureChunkBase::getEnvOperand2RGB(), osg::TextureChunkBase::getEnvScaleAlpha(), osg::TextureChunkBase::getEnvScaleRGB(), osg::TextureChunkBase::getEnvSource0Alpha(), osg::TextureChunkBase::getEnvSource0RGB(), osg::TextureChunkBase::getEnvSource1Alpha(), osg::TextureChunkBase::getEnvSource1RGB(), osg::TextureChunkBase::getEnvSource2Alpha(), osg::TextureChunkBase::getEnvSource2RGB(), osg::TextureChunkBase::getGLId(), osg::Window::getGLObjectId(), osg::Window::getGLVersion(), osg::TextureChunkBase::getImage(), osg::TextureChunkBase::getLodBias(), osg::TextureChunkBase::getNPOTMatrixScale(), osg::TextureChunkBase::getPointSprite(), osg::TextureChunkBase::getScale(), osg::TextureChunkBase::getShaderOperation(), osg::DrawActionBase::getStatistics(), osg::TextureChunkBase::getTarget(), osg::FieldContainer::getTypeId(), osg::TransformationMatrix< ValueTypeT >::getValues(), osg::DrawActionBase::getWindow(), GL_COMBINE_ALPHA_EXT, GL_COMBINE_EXT, GL_COMBINE_RGB_EXT, GL_COORD_REPLACE_NV, GL_MAX_TEXTURE_COORDS_ARB, GL_MAX_TEXTURE_IMAGE_UNITS_ARB, GL_MAX_TEXTURE_UNITS_ARB, GL_OPERAND0_ALPHA_EXT, GL_OPERAND0_RGB_EXT, GL_OPERAND1_ALPHA_EXT, GL_OPERAND1_RGB_EXT, GL_OPERAND2_ALPHA_EXT, GL_OPERAND2_RGB_EXT, GL_POINT_SPRITE_NV, GL_RGB_SCALE_EXT, GL_SHADER_OPERATION_NV, GL_SOURCE0_ALPHA_EXT, GL_SOURCE0_RGB_EXT, GL_SOURCE1_ALPHA_EXT, GL_SOURCE1_RGB_EXT, GL_SOURCE2_ALPHA_EXT, GL_SOURCE2_RGB_EXT, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT, GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_SHADER_NV, GLenum, glErr, osg::TextureChunk::handleTextureShader(), osg::Window::hasExtension(), osg::TextureChunk::NPotTexScale_TT, osg::NullFC, osg::osgnextpower2(), osg::TransformationMatrix< ValueTypeT >::setIdentity(), osg::TransformationMatrix< ValueTypeT >::setScale(), osg::TransformationMatrix< ValueTypeT >::setTranslate(), osg::RenderAction::statNTexBytes, osg::RenderAction::statNTextures, osg::Window::unknownConstant, osg::Window::validateGLObject(), osg::TextureChunk::XFlip_TT, osg::TextureChunk::YFlip_TT, and osg::TextureChunk::ZFlip_TT.

01793 {
01794     // change from me to me?
01795     // this assumes I haven't changed in the meantime.
01796     // is that a valid assumption?
01797     if(old == this)
01798         return;
01799 
01800     // If the old one is not a texture chunk, deactivate it and activate
01801     // ourselves
01802     // Need to check for exact type, as derived chunks might change
01803     // different state (e.g. CubeTexture)
01804     if(getTypeId() != old->getTypeId())
01805     {
01806         old->deactivate(action, idx);
01807         activate(action, idx);
01808         return;
01809     }
01810 
01811     TextureChunk *oldp      = dynamic_cast<TextureChunk *>(old);
01812 
01813     ImagePtr      img       = getImage();
01814     GLenum        target    = getTarget();
01815     GLenum        oldtarget = oldp->getTarget();
01816     bool          oldused   = (oldp->getImage() != NullFC &&
01817                                oldp->getImage()->getDimension());
01818     
01819     if(img == NullFC || img->getDimension() == 0)
01820     {
01821         oldp->deactivate(action, idx);
01822         return;
01823     }
01824 
01825     glErr("TextureChunk::changeFrom precheck");
01826 
01827     Window *win = action->getWindow();   
01828 
01829     if(activateTexture(win, idx))
01830         return; // trying to use too many textures
01831 
01832     UInt32 nteximages, ntexcoords, ntexunits;
01833     
01834     Real32 dummy = win->getConstantValue(GL_MAX_TEXTURE_UNITS_ARB);
01835     
01836     if(dummy == Window::unknownConstant)
01837     {
01838         ntexunits = 1;
01839     }
01840     else
01841     {
01842         ntexunits = static_cast<UInt32>(dummy);
01843     }
01844 
01845     if((dummy = win->getConstantValue(GL_MAX_TEXTURE_IMAGE_UNITS_ARB)) ==
01846        Window::unknownConstant
01847       )
01848     {
01849         nteximages = ntexunits;
01850     }
01851     else
01852     {
01853         nteximages = static_cast<UInt32>(dummy);
01854     }
01855     
01856     if((dummy = win->getConstantValue(GL_MAX_TEXTURE_COORDS_ARB)) ==
01857        Window::unknownConstant
01858       )
01859     {
01860         ntexcoords = ntexunits;
01861     }
01862     else
01863     {
01864         ntexcoords = static_cast<UInt32>(dummy);
01865     }
01866 
01867     if(idx >= nteximages)
01868     {
01869 #ifdef OSG_DEBUG
01870         FWARNING(("TextureChunk::activate: Trying to bind image unit %d,"
01871                   " but Window %p only supports %d!\n",
01872                   idx, win, nteximages));
01873 #endif
01874         return;        
01875     }
01876 
01877     if(img->getSideCount() == 1)
01878     {
01879         if ( target == GL_NONE )
01880         {
01881             if ( img->getDepth() > 1 )
01882             {
01883                     if(win->hasExtension(_extTex3D) ||
01884                        win->getGLVersion() >= 0x0102
01885                       )
01886                         target = GL_TEXTURE_3D;
01887                     else
01888                     {
01889                         FWARNING(("TextureChunk::activate: 3D textures not "
01890                                     "supported for this window!\n"));
01891                         return;
01892                     }
01893             }
01894             else if(img->getHeight() > 1)   target = GL_TEXTURE_2D;
01895             else                            target = GL_TEXTURE_1D;
01896         }
01897     }
01898     else
01899     {
01900         target = GL_TEXTURE_CUBE_MAP_ARB;
01901     }
01902 
01903     if(oldused)
01904     {
01905         if(oldp->getImage()->getSideCount() == 1)
01906         {
01907             if(oldtarget == GL_NONE)
01908             {
01909                 if(oldp->getImage()->getDepth() > 1)
01910                 {
01911                     if(win->hasExtension(_extTex3D) ||
01912                        win->getGLVersion() >= 0x0102
01913                       )
01914                         oldtarget = GL_TEXTURE_3D;
01915                     else
01916                     {
01917                         FWARNING(("TextureChunk::changeFrom: 3D textures not "
01918                                     "supported for this window!\n"));
01919                         oldp->deactivate(action, idx);
01920                         return;
01921                     }
01922                 }
01923                 else if(oldp->getImage()->getHeight() > 1)
01924                 {
01925                     oldtarget = GL_TEXTURE_2D;
01926                 }
01927                 else
01928                 {
01929                     oldtarget = GL_TEXTURE_1D;
01930                 }
01931             }
01932         }
01933         else
01934         {
01935             oldtarget = GL_TEXTURE_CUBE_MAP_ARB;
01936         }
01937 
01938         if(target != oldtarget && idx < ntexunits)
01939         {
01940             glDisable(oldtarget);
01941         }
01942     }
01943 
01944     win->validateGLObject(getGLId());
01945 
01946     action->getStatistics()->getElem(RenderAction::statNTextures)->inc(getGLId());
01947     action->getStatistics()->getElem(RenderAction::statNTexBytes)->add(
01948         getGLId(), getImage()->getSize());
01949 
01950     glBindTexture(target, win->getGLObjectId(getGLId()));
01951  
01952 #ifdef GL_NV_point_sprite
01953     if(idx < ntexcoords)
01954     {
01955         if((!oldused || oldp->getPointSprite() != getPointSprite()) &&
01956            win->hasExtension(_nvPointSprite)
01957           )
01958         {
01959             glTexEnvi(GL_POINT_SPRITE_NV, GL_COORD_REPLACE_NV, getPointSprite());
01960         }
01961     }
01962 #endif
01963 
01964     if(idx < nteximages)
01965     {
01966         if((!oldused || oldp->getLodBias() != getLodBias()) &&
01967            win->hasExtension(_extTextureLodBias)
01968           )
01969         {
01970             glTexEnvf(GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT,
01971                   getLodBias());
01972         }
01973     }
01974 
01975     if(idx < ntexunits)
01976     {
01977         if(!oldused || oldp->getEnvMode() != getEnvMode())
01978             glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, getEnvMode());
01979 
01980         glTexEnvfv(GL_TEXTURE_ENV, GL_TEXTURE_ENV_COLOR,
01981                         (GLfloat*)getEnvColor().getValuesRGBA());
01982 
01983         if(getEnvMode() == GL_COMBINE_EXT)
01984         {
01985             glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_RGB_EXT,  getEnvCombineRGB ());
01986             glTexEnvf(GL_TEXTURE_ENV, GL_RGB_SCALE_EXT,    getEnvScaleRGB   ());
01987             glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_RGB_EXT,  getEnvSource0RGB ());
01988             glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_RGB_EXT,  getEnvSource1RGB ());
01989             glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_RGB_EXT,  getEnvSource2RGB ());
01990             glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_RGB_EXT, getEnvOperand0RGB());
01991             glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_RGB_EXT, getEnvOperand1RGB());
01992             glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_RGB_EXT, getEnvOperand2RGB());
01993 
01994             glTexEnvi(GL_TEXTURE_ENV, GL_COMBINE_ALPHA_EXT, getEnvCombineAlpha ());
01995             glTexEnvf(GL_TEXTURE_ENV, GL_ALPHA_SCALE,       getEnvScaleAlpha   ());
01996             glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE0_ALPHA_EXT, getEnvSource0Alpha ());
01997             glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE1_ALPHA_EXT, getEnvSource1Alpha ());
01998             glTexEnvi(GL_TEXTURE_ENV, GL_SOURCE2_ALPHA_EXT, getEnvSource2Alpha ());
01999             glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND0_ALPHA_EXT,getEnvOperand0Alpha());
02000             glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND1_ALPHA_EXT,getEnvOperand1Alpha());
02001             glTexEnvi(GL_TEXTURE_ENV, GL_OPERAND2_ALPHA_EXT,getEnvOperand2Alpha());
02002         }
02003 
02004         if(target != oldtarget)
02005         {
02006             glEnable(target);
02007         }
02008 
02009         if(win->hasExtension(_nvTextureShader))
02010         {
02011             if(      getShaderOperation() != GL_NONE &&
02012                (!oldused || oldp->getShaderOperation() == GL_NONE)
02013               )
02014             {
02015                 handleTextureShader(win, target);
02016                 if(idx == 0)
02017                     glEnable(GL_TEXTURE_SHADER_NV);
02018             }
02019             else if(      getShaderOperation() == GL_NONE &&
02020                     (!oldused || oldp->getShaderOperation() != GL_NONE)
02021                    )
02022             {
02023                 glTexEnvi(GL_TEXTURE_SHADER_NV, GL_SHADER_OPERATION_NV, GL_NONE);
02024                 if(idx == 0)
02025                     glDisable(GL_TEXTURE_SHADER_NV);
02026             }
02027         }
02028     }
02029     
02030     // Use texture matrix for scaling
02031     UInt32 NpotMatScale = getNPOTMatrixScale();
02032     bool setMatrix = false;
02033     
02034     if ( idx < static_cast<UInt32>(ntexcoords) &&
02035         !getScale() && NpotMatScale )
02036     {
02037         ImagePtr i = getImage();
02038         
02039         if (i != NullFC)
02040         {
02041             Real32 sw=1.f, sh=1.f, sd=1.f,
02042                    tw=0.f, th=0.f, td=0.f;
02043             
02044             if ( (NpotMatScale & NPotTexScale_TT) &&
02045                   getTarget() != GL_TEXTURE_RECTANGLE_ARB &&
02046                  !win->hasExtension(_arbTextureNonPowerOfTwo) )
02047             {
02048                 UInt32 w,h,d,nw,nh,nd;
02049                 
02050                 w = i->getWidth();
02051                 h = i->getHeight();
02052                 d = i->getDepth();
02053                 
02054                 nw = osgnextpower2(w);
02055                 nh = osgnextpower2(h);
02056                 nd = osgnextpower2(d);
02057                 
02058                 sw = w / static_cast<Real32>(nw);
02059                 sh = h / static_cast<Real32>(nh);
02060                 sd = d / static_cast<Real32>(nd);
02061                 
02062                 setMatrix = true;
02063             }
02064             if ( (NpotMatScale & XFlip_TT) )
02065             {
02066                 tw = sw - 1.f;
02067                 sw *= -1.f;
02068                 
02069                 setMatrix = true;
02070             }
02071             if ( (NpotMatScale & YFlip_TT) )
02072             {
02073                 th = sh - 1.f;
02074                 sh *= -1.f;
02075                 
02076                 setMatrix = true;
02077             }
02078             if ( (NpotMatScale & ZFlip_TT) )
02079             {
02080                 td = sd - 1.f;
02081                 sd *= -1.f;
02082                 
02083                 setMatrix = true;
02084             }
02085             
02086             if (setMatrix)
02087             {
02088                 Matrix m;
02089                 
02090                 m.setIdentity();
02091                 m.setScale( Vec3f(sw, sh, sd) );
02092                 m.setTranslate( Vec3f(tw, th, td) );
02093                 
02094                 glPushAttrib(GL_TRANSFORM_BIT);
02095                 glMatrixMode(GL_TEXTURE);
02096                 glLoadMatrixf(m.getValues());
02097                 glPopAttrib();
02098             }
02099         }
02100     }
02101 
02102     if (!setMatrix && idx < static_cast<UInt32>(ntexcoords))
02103     {
02104         glPushAttrib(GL_TRANSFORM_BIT);
02105         glMatrixMode(GL_TEXTURE);
02106         glLoadIdentity();
02107         glPopAttrib();
02108     }
02109     
02110     glErr("TextureChunk::changeFrom");
02111 }

void TextureChunk::deactivate ( DrawActionBase action,
UInt32  index = 0 
) [virtual, inherited]

Reimplemented from osg::StateChunk.

Reimplemented in osg::CubeTextureChunk.

Definition at line 2113 of file OSGTextureChunk.cpp.

References osg::TextureChunk::_extTex3D, osg::TextureChunk::_extTextureLodBias, osg::TextureChunk::_nvPointSprite, osg::TextureChunk::_nvTextureShader, osg::TextureChunk::activateTexture(), FWARNING, osg::Window::getConstantValue(), osg::Window::getGLVersion(), osg::TextureChunkBase::getImage(), osg::TextureChunkBase::getLodBias(), osg::TextureChunkBase::getPointSprite(), osg::TextureChunkBase::getShaderOperation(), osg::TextureChunkBase::getTarget(), osg::DrawActionBase::getWindow(), GL_COORD_REPLACE_NV, GL_MAX_TEXTURE_COORDS_ARB, GL_MAX_TEXTURE_IMAGE_UNITS_ARB, GL_MAX_TEXTURE_UNITS_ARB, GL_POINT_SPRITE_NV, GL_SHADER_OPERATION_NV, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT, GL_TEXTURE_SHADER_NV, GLenum, glErr, osg::Window::hasExtension(), osg::NullFC, and osg::Window::unknownConstant.

Referenced by osg::TextureChunk::changeFrom().

02114 {
02115     Window *win = action->getWindow();   
02116 
02117     Real32 nteximages, ntexcoords;
02118     if((nteximages = win->getConstantValue(GL_MAX_TEXTURE_IMAGE_UNITS_ARB)) ==
02119        Window::unknownConstant
02120       )
02121     {
02122         nteximages = win->getConstantValue(GL_MAX_TEXTURE_UNITS_ARB);
02123         // sgi doesn't support GL_MAX_TEXTURE_UNITS_ARB!
02124         if(nteximages == Window::unknownConstant)
02125             nteximages = 1.0f;
02126     }
02127     if((ntexcoords = win->getConstantValue(GL_MAX_TEXTURE_COORDS_ARB)) ==
02128        Window::unknownConstant
02129       )
02130     {
02131         ntexcoords = win->getConstantValue(GL_MAX_TEXTURE_UNITS_ARB);
02132         // sgi doesn't support GL_MAX_TEXTURE_UNITS_ARB!
02133         if(ntexcoords == Window::unknownConstant)
02134             ntexcoords = 1.0f;
02135     }
02136 
02137     if(idx >= static_cast<UInt32>(nteximages))
02138     {
02139 #ifdef OSG_DEBUG
02140         FWARNING(("TextureChunk::deactivate: Trying to bind image unit %d,"
02141                   " but Window %p only supports %d!\n",
02142                   idx, win, nteximages));
02143 #endif
02144         return;        
02145     }
02146 
02147     ImagePtr img = getImage();
02148     GLenum target = getTarget();
02149 
02150     if(img == NullFC || ! img->getDimension())
02151       return;
02152 
02153     glErr("TextureChunk::deactivate precheck");
02154 
02155     bool isActive = false;
02156 
02157 #ifdef GL_NV_point_sprite
02158     if(getPointSprite() &&
02159        win->hasExtension(_nvPointSprite) &&
02160        idx < static_cast<UInt32>(ntexcoords)
02161       )
02162     {
02163         if(!isActive)
02164         {
02165             activateTexture(win, idx);
02166             isActive = true;
02167         }
02168         glTexEnvi(GL_POINT_SPRITE_NV, GL_COORD_REPLACE_NV, GL_FALSE);
02169     }
02170 #endif
02171 
02172     if(getLodBias() != 0.0f &&
02173        win->hasExtension(_extTextureLodBias))
02174     {
02175         if(!isActive)
02176             activateTexture(win, idx);
02177         glTexEnvf(GL_TEXTURE_FILTER_CONTROL_EXT, GL_TEXTURE_LOD_BIAS_EXT,
02178                 0.0f);
02179     }
02180     
02181     Real32 ntexunits = win->getConstantValue(GL_MAX_TEXTURE_UNITS_ARB);
02182     if(ntexunits == Window::unknownConstant)
02183         ntexunits = 1.0f;
02184 
02185     if(idx >= static_cast<UInt32>(ntexunits))
02186         return; // textures >= MTU are not enabled and don't have an env
02187         
02188     if(!isActive)
02189         activateTexture(win, idx);
02190 
02191     if(img->getSideCount() == 1)
02192     {
02193         if ( target == GL_NONE )
02194         {
02195             if ( img->getDepth() > 1 )
02196             {
02197                     if(win->hasExtension(_extTex3D) ||
02198                        win->getGLVersion() >= 0x0102
02199                       )
02200                         target = GL_TEXTURE_3D;
02201                     else
02202                     {
02203                         FWARNING(("TextureChunk::activate: 3D textures not "
02204                                     "supported for this window!\n"));
02205                         return;
02206                     }
02207             }
02208             else if(img->getHeight() > 1)   target = GL_TEXTURE_2D;
02209             else                            target = GL_TEXTURE_1D;
02210         }
02211     }
02212     else
02213     {
02214         target = GL_TEXTURE_CUBE_MAP_ARB;
02215     }
02216 
02217     if(getShaderOperation() != GL_NONE &&
02218        win->hasExtension(_nvTextureShader))
02219     {
02220         glTexEnvi(GL_TEXTURE_SHADER_NV, GL_SHADER_OPERATION_NV, GL_NONE);
02221 
02222         if(idx == 0)
02223             glDisable(GL_TEXTURE_SHADER_NV);
02224     }
02225     
02226     // be consistent with TextureTransform which has to multiply
02227     //UInt32 NpotMatScale = getNPOTMatrixScale();
02228     
02229     if ( idx < static_cast<UInt32>(ntexcoords) )
02230     {
02231         glPushAttrib(GL_TRANSFORM_BIT);
02232         glMatrixMode(GL_TEXTURE);
02233         glLoadIdentity();
02234         glPopAttrib();
02235     }
02236     
02237     glDisable(target);
02238 
02239     glErr("TextureChunk::deactivate");
02240 }

bool TextureChunk::isTransparent ( void   )  const [virtual, inherited]

Reimplemented from osg::StateChunk.

Definition at line 338 of file OSGTextureChunk.cpp.

00339 {
00340     // Even if the texture has alpha, the Blending makes the sorting
00341     // important, thus textures per se are not transparent
00342     return false;
00343 }

Real32 TextureChunk::switchCost ( StateChunk chunk  )  [virtual, inherited]

Reimplemented from osg::StateChunk.

Reimplemented in osg::CubeTextureChunk.

Definition at line 2244 of file OSGTextureChunk.cpp.

02245 {
02246     return 0;
02247 }

bool TextureChunk::operator< ( const StateChunk other  )  const [virtual, inherited]

Reimplemented from osg::StateChunk.

Reimplemented in osg::CubeTextureChunk.

Definition at line 2249 of file OSGTextureChunk.cpp.

02250 {
02251     return this < &other;
02252 }

bool TextureChunk::operator== ( const StateChunk other  )  const [virtual, inherited]

Reimplemented from osg::StateChunk.

Reimplemented in osg::CubeTextureChunk.

Definition at line 2254 of file OSGTextureChunk.cpp.

References osg::Eps, osg::TextureChunkBase::getEnvCombineAlpha(), osg::TextureChunkBase::getEnvCombineRGB(), osg::TextureChunkBase::getEnvMode(), osg::TextureChunkBase::getEnvOperand0Alpha(), osg::TextureChunkBase::getEnvOperand0RGB(), osg::TextureChunkBase::getEnvOperand1Alpha(), osg::TextureChunkBase::getEnvOperand1RGB(), osg::TextureChunkBase::getEnvOperand2Alpha(), osg::TextureChunkBase::getEnvOperand2RGB(), osg::TextureChunkBase::getEnvScaleAlpha(), osg::TextureChunkBase::getEnvScaleRGB(), osg::TextureChunkBase::getEnvSource0Alpha(), osg::TextureChunkBase::getEnvSource0RGB(), osg::TextureChunkBase::getEnvSource1Alpha(), osg::TextureChunkBase::getEnvSource1RGB(), osg::TextureChunkBase::getEnvSource2Alpha(), osg::TextureChunkBase::getEnvSource2RGB(), osg::TextureChunkBase::getImage(), osg::TextureChunkBase::getMagFilter(), osg::TextureChunkBase::getMinFilter(), osg::TextureChunkBase::getNPOTMatrixScale(), osg::TextureChunkBase::getPriority(), osg::TextureChunkBase::getWrapR(), osg::TextureChunkBase::getWrapS(), osg::TextureChunkBase::getWrapT(), and GL_COMBINE_EXT.

02255 {
02256     TextureChunk const *tother = dynamic_cast<TextureChunk const*>(&other);
02257 
02258     if(!tother)
02259         return false;
02260 
02261     if(tother == this)
02262         return true;
02263 
02264     bool returnValue =
02265         getImage    () == tother->getImage    () &&
02266         getMinFilter() == tother->getMinFilter() &&
02267         getMagFilter() == tother->getMagFilter() &&
02268         getWrapS    () == tother->getWrapS    () &&
02269         getWrapT    () == tother->getWrapT    () &&
02270         getWrapR    () == tother->getWrapR    () &&
02271         getPriority () == tother->getPriority () &&
02272         getEnvMode  () == tother->getEnvMode  () &&
02273         getNPOTMatrixScale() == tother->getNPOTMatrixScale();
02274 
02275     if(returnValue == true && getEnvMode() == GL_COMBINE_EXT)
02276     {
02277         returnValue =
02278             getEnvCombineRGB ()   == tother->getEnvCombineRGB   () &&
02279 
02280             getEnvSource0RGB ()   == tother->getEnvSource0RGB   () &&
02281             getEnvSource1RGB ()   == tother->getEnvSource1RGB   () &&
02282             getEnvSource2RGB ()   == tother->getEnvSource2RGB   () &&
02283 
02284             getEnvOperand0RGB()   == tother->getEnvOperand0RGB  () &&
02285             getEnvOperand1RGB()   == tother->getEnvOperand1RGB  () &&
02286             getEnvOperand2RGB()   == tother->getEnvOperand2RGB  () &&
02287 
02288             getEnvCombineAlpha () == tother->getEnvCombineAlpha () &&
02289 
02290             getEnvSource0Alpha () == tother->getEnvSource0Alpha () &&
02291             getEnvSource1Alpha () == tother->getEnvSource1Alpha () &&
02292             getEnvSource2Alpha () == tother->getEnvSource2Alpha () &&
02293 
02294             getEnvOperand0Alpha() == tother->getEnvOperand0Alpha() &&
02295             getEnvOperand1Alpha() == tother->getEnvOperand1Alpha() &&
02296             getEnvOperand2Alpha() == tother->getEnvOperand2Alpha();
02297 
02298         returnValue &=
02299            ((        getEnvScaleRGB  () - tother->getEnvScaleRGB  ()) < Eps) &&
02300            ((tother->getEnvScaleRGB  () -         getEnvScaleRGB  ()) < Eps) &&
02301            ((        getEnvScaleAlpha() - tother->getEnvScaleAlpha()) < Eps) &&
02302            ((tother->getEnvScaleAlpha() -         getEnvScaleAlpha()) < Eps);
02303     }
02304 
02305     return returnValue;
02306 }

bool TextureChunk::operator!= ( const StateChunk other  )  const [virtual, inherited]

Reimplemented from osg::StateChunk.

Reimplemented in osg::CubeTextureChunk.

Definition at line 2308 of file OSGTextureChunk.cpp.

02309 {
02310     return ! (*this == other);
02311 }

void osg::TextureChunk::imageContentChanged ( Int32  minx = -1,
Int32  maxx = -1,
Int32  miny = -1,
Int32  maxy = -1,
Int32  minz = -1,
Int32  maxz = -1 
) [inline, inherited]

Utility function to be called whenever the contents of the image change. Forces efficient update of the texture. Should not be called when the size of the texture changes, in that case setImage() should be called to renew the texture.

Definition at line 75 of file OSGTextureChunk.inl.

References osg::beginEditCP(), osg::TextureChunkBase::DirtyMaxXFieldMask, osg::TextureChunkBase::DirtyMaxYFieldMask, osg::TextureChunkBase::DirtyMaxZFieldMask, osg::TextureChunkBase::DirtyMinXFieldMask, osg::TextureChunkBase::DirtyMinYFieldMask, osg::TextureChunkBase::DirtyMinZFieldMask, and osg::endEditCP().

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

00078 {
00079     TextureChunkPtr tc(*this);
00080     
00081     beginEditCP(tc, DirtyMinXFieldMask | DirtyMaxXFieldMask |
00082                     DirtyMinYFieldMask | DirtyMaxYFieldMask |
00083                     DirtyMinZFieldMask | DirtyMaxZFieldMask);
00084     
00085     tc->setDirtyMinX(minx);
00086     tc->setDirtyMaxX(maxx);
00087     tc->setDirtyMinY(miny);
00088     tc->setDirtyMaxY(maxy);
00089     tc->setDirtyMinZ(minz);
00090     tc->setDirtyMaxZ(maxz);
00091     
00092     endEditCP(  tc, DirtyMinXFieldMask | DirtyMaxXFieldMask |
00093                     DirtyMinYFieldMask | DirtyMaxYFieldMask |
00094                     DirtyMinZFieldMask | DirtyMaxZFieldMask);
00095 }

void osg::TextureChunk::setImage ( ImagePtr pImage  )  [inline, inherited]

Utility function to be called whenever the contents of the image change. Forces efficient update of the texture. Should not be called when the size of the texture changes, in that case setImage() should be called to renew the texture.

Definition at line 59 of file OSGTextureChunk.inl.

References osg::TextureChunkBase::_sfImage, osg::addRefCP(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::SField< FieldTypeT, fieldNameSpace >::setValue(), and osg::subRefCP().

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

00060 {
00061      addRefCP(pImage);
00062 
00063      subRefCP(_sfImage.getValue());
00064 
00065     _sfImage.setValue(pImage);
00066 }

void osg::TextureChunkBase::setImage ( const ImagePtr value  )  [inline, inherited]

Definition at line 487 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfImage, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00488 {
00489     _sfImage.setValue(value);
00490 }

void osg::TextureChunk::setShaderOffsetMatrix ( Real32  m11,
Real32  m12,
Real32  m21,
Real32  m22 
) [inline, inherited]

Utility function to be called whenever the contents of the image change. Forces efficient update of the texture. Should not be called when the size of the texture changes, in that case setImage() should be called to renew the texture.

Definition at line 140 of file OSGTextureChunk.inl.

References osg::TextureChunkBase::getShaderOffsetMatrix(), and osg::MField< FieldTypeT, fieldNameSpace >::resize().

00142 {
00143     getShaderOffsetMatrix().resize(4);
00144 
00145     getShaderOffsetMatrix()[0] = m11;
00146     getShaderOffsetMatrix()[1] = m12;
00147     getShaderOffsetMatrix()[2] = m21;
00148     getShaderOffsetMatrix()[3] = m22;
00149 }

bool osg::TextureChunk::hasMultiTexture ( Window win  )  [inline, static, inherited]

Definition at line 99 of file OSGTextureChunk.inl.

References osg::TextureChunk::_arbMultiTex, and osg::Window::hasExtension().

Referenced by osg::TextureChunk::activateTexture().

00100 {
00101     return win->hasExtension(_arbMultiTex);
00102 }

void osg::TextureChunk::activeTexture ( Window win,
UInt16  texture 
) [inline, static, inherited]

Definition at line 106 of file OSGTextureChunk.inl.

References osg::TextureChunk::_funcActiveTexture, osg::Window::getFunction(), GL_TEXTURE0_ARB, GLenum, and OSG_APIENTRY.

Referenced by osg::TextureChunk::activateTexture().

00107 {
00108     void (OSG_APIENTRY *ActiveTexture)(GLenum target) = 
00109         (void (OSG_APIENTRY*)(GLenum target))
00110             win->getFunction(_funcActiveTexture);
00111 
00112     ActiveTexture(GL_TEXTURE0_ARB + texture);
00113 }

bool osg::TextureChunk::activateTexture ( Window win,
UInt16  texture 
) [inline, static, inherited]

call glActiveTexture via the extension mechanism, if MultiTextures are supported. Return false if successful, true if not.

Definition at line 118 of file OSGTextureChunk.inl.

References osg::TextureChunk::activeTexture(), FWARNING, and osg::TextureChunk::hasMultiTexture().

Referenced by osg::TextureTransformChunk::activate(), osg::TextureChunk::activate(), osg::TexGenChunk::activate(), osg::CubeTextureChunk::activate(), osg::TextureTransformChunk::changeFrom(), osg::TextureChunk::changeFrom(), osg::TexGenChunk::changeFrom(), osg::CubeTextureChunk::changeFrom(), osg::TextureTransformChunk::deactivate(), osg::TextureChunk::deactivate(), osg::TexGenChunk::deactivate(), and osg::CubeTextureChunk::deactivate().

00119 {
00120     if(hasMultiTexture(win))
00121     {
00122         activeTexture(win, texture);
00123     }
00124 #ifdef OSG_DEBUG
00125     else
00126     {
00127         if(texture != 0)
00128         {
00129             FWARNING(("TextureChunk::activateTexture: trying to activate "
00130                 "texture %d, but Window %p doesn't support multi-textures!\n",
00131                 texture, win));
00132             return true;
00133         }
00134     }
00135 #endif
00136     return false;
00137 }

void TextureChunk::onCreate ( const TextureChunk source = NULL  )  [protected, inherited]

Definition at line 348 of file OSGTextureChunk.cpp.

References osg::TextureChunkBase::_sfIgnoreGLForAspect, osg::beginEditCP(), osg::endEditCP(), osg::PThreadBase::getAspect(), osg::SField< FieldTypeT, fieldNameSpace >::getValue(), osg::TextureChunkBase::GLIdFieldMask, osg::GlobalSystemState, osg::TextureChunk::handleGL(), osg::osgTypedMethodVoidFunctor2ObjCPtrPtr(), osg::Window::registerGLObject(), osg::TextureChunkBase::setGLId(), and osg::Startup.

00349 {
00350     if(GlobalSystemState == Startup)
00351         return;
00352 
00353     // !!! this temporary is needed to work around compiler problems (sgi)
00354     // CHECK CHECK
00355     //  TextureChunkPtr tmpPtr = FieldContainer::getPtr<TextureChunkPtr>(*this);
00356     TextureChunkPtr tmpPtr(*this);
00357 
00358     if(Thread::getAspect() != _sfIgnoreGLForAspect.getValue())
00359     {
00360         beginEditCP(tmpPtr, TextureChunk::GLIdFieldMask);
00361 
00362         setGLId(
00363             Window::registerGLObject(
00364                 osgTypedMethodVoidFunctor2ObjCPtrPtr<TextureChunkPtr,
00365                                                  Window ,
00366                                                  UInt32>(
00367                                                      tmpPtr,
00368                                                      &TextureChunk::handleGL),
00369                 1));
00370 
00371         endEditCP(tmpPtr, TextureChunk::GLIdFieldMask);
00372     }
00373 }

void osg::FieldContainer::onCreate ( const FieldContainer source = NULL  )  [inline, protected, inherited]

Definition at line 318 of file OSGFieldContainerImpl.inl.

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

00319 {
00320 }

void TextureChunk::onDestroy ( void   )  [protected, virtual, inherited]

void TextureChunk::handleTexture ( Window win,
UInt32  id,
GLenum  bindtarget,
GLenum  paramtarget,
GLenum  imgtarget,
Window::GLObjectStatusE  mode,
ImagePtr  img,
int  side = 0 
) [protected, inherited]

Definition at line 521 of file OSGTextureChunk.cpp.

References osg::TextureChunk::_arbCubeTex, osg::TextureChunk::_arbTextureCompression, osg::TextureChunk::_arbTextureNonPowerOfTwo, osg::TextureChunk::_arbTextureRectangle, osg::TextureChunk::_extTex3D, osg::TextureChunk::_extTextureFilterAnisotropic, osg::TextureChunk::_funcCompressedTexImage1D, osg::TextureChunk::_funcCompressedTexImage2D, osg::TextureChunk::_funcCompressedTexImage3D, osg::TextureChunk::_funcCompressedTexSubImage1D, osg::TextureChunk::_funcCompressedTexSubImage2D, osg::TextureChunk::_funcCompressedTexSubImage3D, osg::TextureChunk::_funcTexImage3D, osg::TextureChunk::_funcTexSubImage3D, osg::TextureChunk::_sgisGenerateMipmap, FDEBUG, FINFO, FNOTICE, FWARNING, osg::TextureChunkBase::getAnisotropy(), osg::TextureChunkBase::getBorderColor(), osg::TextureChunkBase::getBorderWidth(), osg::TextureChunkBase::getDirtyMaxX(), osg::TextureChunkBase::getDirtyMaxY(), osg::TextureChunkBase::getDirtyMaxZ(), osg::TextureChunkBase::getDirtyMinX(), osg::TextureChunkBase::getDirtyMinY(), osg::TextureChunkBase::getDirtyMinZ(), osg::TextureChunkBase::getExternalFormat(), osg::TextureChunkBase::getFrame(), osg::Window::getFunction(), osg::Window::getGLVersion(), osg::TextureChunkBase::getInternalFormat(), osg::TextureChunkBase::getMagFilter(), osg::TextureChunkBase::getMinFilter(), osg::TextureChunkBase::getPriority(), osg::TextureChunkBase::getScale(), osg::TextureChunkBase::getWrapR(), osg::TextureChunkBase::getWrapS(), osg::TextureChunkBase::getWrapT(), GL_BGR, GL_BGRA, GL_GENERATE_MIPMAP_SGIS, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_ARB, GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB, GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB, GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB, GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB, GL_TEXTURE_MAX_ANISOTROPY_EXT, GL_TEXTURE_RECTANGLE_ARB, GL_TEXTURE_WRAP_R, GL_UNPACK_SKIP_IMAGES, GLenum, glErr, GLsizei, GLuint(), osg::Window::hasExtension(), osg::Window::initialize, osg::Window::needrefresh, osg::NullFC, OSG_APIENTRY, osg::osgispower2(), osg::osgnextpower2(), osg::Window::reinitialize, SFATAL, and SWARNING.

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

00526 {
00527     if( img==NullFC || ! img->getDimension()) // no image ?
00528         return;
00529 
00530     if(mode == Window::initialize || mode == Window::reinitialize)
00531     {
00532         if(bindtarget == GL_TEXTURE_3D && 
00533             !win->hasExtension(_extTex3D) &&
00534              win->getGLVersion() < 0x0102
00535           )
00536         {
00537             FNOTICE(("3D textures not supported on Window %p!\n", win));
00538             return;
00539         }
00540 
00541         if(imgtarget == GL_TEXTURE_RECTANGLE_ARB &&
00542            !win->hasExtension(_arbTextureRectangle))
00543         {
00544             FNOTICE(("Rectangular textures not supported on Window %p!\n", win));
00545             return;
00546         }
00547 
00548         if(paramtarget == GL_TEXTURE_CUBE_MAP_ARB && 
00549            !win->hasExtension(_arbCubeTex))
00550         {
00551             FNOTICE(("Cube textures not supported on Window %p!\n", win));
00552             return;
00553         }
00554         
00555         if(img->hasCompressedData() && 
00556            !win->hasExtension(_arbTextureCompression))
00557         {
00558             FNOTICE(("Compressed textures not supported on Window %p!\n", win));
00559             return;
00560         }
00561 
00562         if(mode == Window::reinitialize)
00563         {
00564             GLuint tex = id;
00565             glDeleteTextures(1, &tex);
00566         }
00567 
00568         // 3D texture functions
00569         void (OSG_APIENTRY*TexImage3D)(GLenum target, GLint level, GLenum internalformat,
00570                            GLsizei width, GLsizei height, GLsizei depth,
00571                            GLint border, GLenum format, GLenum type,
00572                            const GLvoid *pixels) =
00573             (void (OSG_APIENTRY*)(GLenum target, GLint level, GLenum internalformat,
00574                       GLsizei width, GLsizei height, GLsizei depth,
00575                       GLint border, GLenum format, GLenum type,
00576                       const GLvoid *pixels))
00577             win->getFunction(_funcTexImage3D);
00578 
00579         void (OSG_APIENTRY*TexSubImage3D)
00580                           (GLenum target, GLint level, GLint xoffset,
00581                            GLint yoffset, GLint zoffset, GLsizei width,
00582                            GLsizei height, GLsizei depth, GLenum format,
00583                            GLenum type, const GLvoid *pixels) =
00584             (void (OSG_APIENTRY*)(GLenum target, GLint level, GLint xoffset,
00585                       GLint yoffset, GLint zoffset, GLsizei width,
00586                       GLsizei height, GLsizei depth, GLenum format,
00587                       GLenum type, const GLvoid *pixels))
00588             win->getFunction(_funcTexSubImage3D);
00589 
00590         // Compressed texture functions
00591         void (OSG_APIENTRY*CompressedTexImage1D)(GLenum target, GLint level, 
00592                            GLenum internalformat, GLsizei width, GLint border, 
00593                            GLsizei imageSize, const GLvoid *pixels) =
00594             (void (OSG_APIENTRY*)(GLenum target, GLint level, 
00595                            GLenum internalformat, GLsizei width, GLint border,  
00596                            GLsizei imageSize, const GLvoid *pixels))
00597             win->getFunction(_funcCompressedTexImage1D);
00598 
00599         void (OSG_APIENTRY*CompressedTexSubImage1D)
00600                           (GLenum target, GLint level, GLint xoffset, GLsizei width,
00601                            GLenum format, GLsizei imageSize, const GLvoid *pixels) =
00602             (void (OSG_APIENTRY*)(GLenum target, GLint level, GLint xoffset, GLsizei width,
00603                            GLenum format, GLsizei imageSize, const GLvoid *pixels))
00604             win->getFunction(_funcCompressedTexSubImage1D);
00605 
00606         void (OSG_APIENTRY*CompressedTexImage2D)(GLenum target, GLint level, 
00607                            GLenum internalformat, GLsizei width, GLsizei height, 
00608                            GLint border, 
00609                            GLsizei imageSize, const GLvoid *pixels) =
00610             (void (OSG_APIENTRY*)(GLenum target, GLint level, 
00611                            GLenum internalformat, GLsizei width, GLsizei height, 
00612                            GLint border, 
00613                            GLsizei imageSize, const GLvoid *pixels))
00614             win->getFunction(_funcCompressedTexImage2D);
00615 
00616         void (OSG_APIENTRY*CompressedTexSubImage2D)
00617                           (GLenum target, GLint level, 
00618                            GLint xoffset, GLint yoffset, 
00619                            GLsizei width, GLsizei height, GLenum format,
00620                            GLsizei imageSize, const GLvoid *pixels) =
00621             (void (OSG_APIENTRY*)(GLenum target, GLint level, 
00622                            GLint xoffset, GLint yoffset, 
00623                            GLsizei width, GLsizei height, GLenum format,
00624                            GLsizei imageSize, const GLvoid *pixels))
00625             win->getFunction(_funcCompressedTexSubImage2D);
00626 
00627         void (OSG_APIENTRY*CompressedTexImage3D)(GLenum target, GLint level, 
00628                            GLenum internalformat,
00629                            GLsizei width, GLsizei height, GLsizei depth,
00630                            GLint border,
00631                            GLsizei imageSize, const GLvoid *pixels) =
00632             (void (OSG_APIENTRY*)(GLenum target, GLint level, 
00633                            GLenum internalformat,
00634                            GLsizei width, GLsizei height, GLsizei depth,
00635                            GLint border,
00636                            GLsizei imageSize, const GLvoid *pixels))
00637             win->getFunction(_funcCompressedTexImage3D);
00638 
00639         void (OSG_APIENTRY*CompressedTexSubImage3D)
00640                           (GLenum target, GLint level, 
00641                            GLint xoffset, GLint yoffset, GLint zoffset, 
00642                            GLsizei width, GLsizei height, GLsizei depth, 
00643                            GLenum format, GLsizei imageSize, const GLvoid *pixels) =
00644             (void (OSG_APIENTRY*)(GLenum target, GLint level, 
00645                            GLint xoffset, GLint yoffset, GLint zoffset, 
00646                            GLsizei width, GLsizei height, GLsizei depth, 
00647                            GLenum format, GLsizei imageSize, const GLvoid *pixels))
00648             win->getFunction(_funcCompressedTexSubImage3D);
00649 
00650         // as we're not allocating anything here, the same code can be used
00651         // for reinitialization
00652         if(! img || ! img->getDimension()) // no image ?
00653             return;
00654 
00655         glErr("TextureChunk::initialize precheck");
00656 
00657         FDEBUG(("texture (re-)initialize\n"));
00658         
00659         glBindTexture(bindtarget, id);
00660 
00661         if(paramtarget != GL_NONE)
00662         {
00663             // set the parameters
00664             glTexParameterf(paramtarget, GL_TEXTURE_PRIORITY,   getPriority());
00665             glTexParameteri(paramtarget, GL_TEXTURE_MIN_FILTER, getMinFilter());
00666             glTexParameteri(paramtarget, GL_TEXTURE_MAG_FILTER, getMagFilter());
00667             glTexParameteri(paramtarget, GL_TEXTURE_WRAP_S, getWrapS());
00668             if(paramtarget == GL_TEXTURE_2D ||
00669                paramtarget == GL_TEXTURE_3D ||
00670                paramtarget == GL_TEXTURE_CUBE_MAP_ARB ||
00671                paramtarget == GL_TEXTURE_RECTANGLE_ARB
00672               )
00673                 glTexParameteri(paramtarget, GL_TEXTURE_WRAP_T, getWrapT());
00674             if(paramtarget == GL_TEXTURE_3D ||
00675                paramtarget == GL_TEXTURE_CUBE_MAP_ARB)
00676                 glTexParameteri(paramtarget, GL_TEXTURE_WRAP_R, getWrapR());
00677 
00678             if(getAnisotropy() > 1.0f && win->hasExtension(_extTextureFilterAnisotropic))
00679                 glTexParameterf(paramtarget, GL_TEXTURE_MAX_ANISOTROPY_EXT, getAnisotropy());
00680 
00681             glTexParameterfv(paramtarget, GL_TEXTURE_BORDER_COLOR,
00682                              (GLfloat*)getBorderColor().getValuesRGBA());
00683 
00684             glErr("TextureChunk::initialize params");
00685         }
00686 
00687         // set the image
00688         GLenum internalFormat = getInternalFormat();
00689         GLenum externalFormat = img->getPixelFormat();
00690         GLenum type           = img->getDataType();
00691         UInt32 width          = img->getWidth();
00692         UInt32 height         = img->getHeight();
00693         UInt32 depth          = img->getDepth();
00694         bool   compressedData = img->hasCompressedData();
00695 
00696         bool doScale = getScale(); // scale the texture to 2^?
00697         UInt32 frame = getFrame();
00698 
00699         bool defined = false;   // Texture defined ?
00700         bool needMipmaps =  getMinFilter() == GL_NEAREST_MIPMAP_NEAREST ||
00701                             getMinFilter() == GL_LINEAR_MIPMAP_NEAREST  ||
00702                             getMinFilter() == GL_NEAREST_MIPMAP_LINEAR  ||
00703                             getMinFilter() == GL_LINEAR_MIPMAP_LINEAR   ;
00704 
00705         if(internalFormat == GL_NONE)
00706         {
00707             switch(externalFormat)
00708             {
00709 #if defined(GL_BGR) && defined(GL_BGR_EXT)
00710             case GL_BGR:
00711 #else
00712 #  if defined(GL_BGR)
00713             case GL_BGR:
00714 #  endif
00715 #  if defined(GL_BGR_EXT)
00716             case GL_BGR_EXT:
00717 #  endif
00718 #endif
00719 #if defined(GL_BGR) || defined(GL_BGR_EXT)
00720                             internalFormat = GL_RGB;
00721                             break;
00722 #endif
00723 #if defined(GL_BGRA) && defined(GL_BGRA_EXT)
00724             case GL_BGRA:
00725 #else
00726 #  if defined(GL_BGRA)
00727             case GL_BGRA:
00728 #  endif
00729 #  if defined(GL_BGRA_EXT)
00730             case GL_BGRA_EXT:
00731 #  endif
00732 #endif
00733 #if defined(GL_BGRA) || defined(GL_BGRA_EXT)
00734                             internalFormat = GL_RGBA;
00735                             break;
00736 #endif
00737             case GL_INTENSITY:
00738                             internalFormat = GL_INTENSITY;
00739                             externalFormat = GL_LUMINANCE;
00740                             break;
00741                             
00742             default:    internalFormat = externalFormat;
00743                         break;
00744             }
00745         }
00746          
00747         if(getExternalFormat() != GL_NONE)
00748             externalFormat = getExternalFormat();
00749        
00750         if(imgtarget == GL_TEXTURE_RECTANGLE_ARB && needMipmaps)
00751         {
00752             SWARNING << "TextureChunk::initialize: Can't do mipmaps"
00753                      << "with GL_TEXTURE_RECTANGLE_ARB target! Ignored"
00754                      << std::endl;
00755             needMipmaps= false;
00756         }
00757         
00758         // do we need mipmaps?
00759         if(needMipmaps)
00760         {
00761             // do we have usable mipmaps ?
00762             if(img->getMipMapCount() == img->calcMipmapLevelCount() &&
00763                  osgispower2(width) && osgispower2(height) &&
00764                  osgispower2(depth)
00765               )
00766             {
00767                 for(UInt16 i = 0; i < img->getMipMapCount(); i++)
00768                 {
00769                     UInt32 w, h, d;
00770                     img->calcMipmapGeometry(i, w, h, d);
00771 
00772                     if(compressedData)
00773                     {
00774                         switch (imgtarget)
00775                         {
00776                         case GL_TEXTURE_1D:
00777                             CompressedTexImage1D(GL_TEXTURE_1D, i, internalFormat,
00778                                             w, getBorderWidth(),
00779                                             img->calcMipmapLevelSize(i),
00780                                             img->getData(i, frame, side));
00781                             break;
00782                         case GL_TEXTURE_2D:
00783                             CompressedTexImage2D(imgtarget, i, internalFormat,
00784                                             w, h, getBorderWidth(),
00785                                             img->calcMipmapLevelSize(i),
00786                                             img->getData(i, frame, side));
00787                             break;
00788                         case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB:
00789                         case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB:
00790                         case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB:
00791                         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB:
00792                         case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB:
00793                         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB:
00794                             CompressedTexImage2D(imgtarget, i, internalFormat,
00795                                             w, h, getBorderWidth(),
00796                                             img->calcMipmapLevelSize(i), 
00797                                             img->getData(i, frame, side));
00798                             break;
00799                         case GL_TEXTURE_3D:
00800                             CompressedTexImage3D(GL_TEXTURE_3D, i, internalFormat,
00801                                             w, h, d, getBorderWidth(),
00802                                             img->calcMipmapLevelSize(i),
00803                                             img->getData(i, frame, side));
00804                             break;
00805                        default:
00806                                 SFATAL << "TextureChunk::initialize1: unknown target "
00807                                        << imgtarget << "!!!" << std::endl;
00808                                 break;
00809                         }
00810                     }
00811                     else
00812                     {
00813                         switch (imgtarget)
00814                         {
00815                         case GL_TEXTURE_1D:
00816                             glTexImage1D(GL_TEXTURE_1D, i, internalFormat,
00817                                             w, getBorderWidth(),
00818                                             externalFormat, type,
00819                                             img->getData(i, frame, side));
00820                             break;
00821                         case GL_TEXTURE_2D:
00822                         case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB:
00823                         case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB:
00824                         case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB:
00825                         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB:
00826                         case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB:
00827                         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB:
00828                             glTexImage2D(imgtarget, i, internalFormat,
00829                                             w, h, getBorderWidth(),
00830                                             externalFormat, type,
00831                                             img->getData(i, frame, side));
00832                             break;
00833                         case GL_TEXTURE_3D:
00834                               TexImage3D(GL_TEXTURE_3D, i, internalFormat,
00835                                             w, h, d, getBorderWidth(),
00836                                             externalFormat, type,
00837                                             img->getData(i, frame, side));
00838                             break;
00839                        default:
00840                                 SFATAL << "TextureChunk::initialize1: unknown target "
00841                                        << imgtarget << "!!!" << std::endl;
00842                                 break;
00843                         }
00844                     }
00845                 }
00846                 defined = true;
00847             }
00848 
00849             if(! defined)
00850             {
00851                 // Nope, do we have SGIS_generate_mipmaps?
00852                 if(win->hasExtension(_sgisGenerateMipmap))
00853                 {
00854                     if(paramtarget != GL_NONE)
00855                         glTexParameteri(paramtarget, GL_GENERATE_MIPMAP_SGIS, GL_TRUE);
00856                         // same as GL_GENERATE_MIPMAP which is part of the standard since 1.4
00857                     glErr("TextureChunk::activate generate_mipmaps");
00858                     needMipmaps = false; // automagic does it
00859                 }
00860                 else
00861                 {
00862                     // Nope, try to use gluBuild?DMipmaps
00863                     void * data = NULL;
00864                     
00865                     // can we use it directly?
00866                     if(! osgispower2(width) ||
00867                          ! osgispower2(height) ||
00868                          ! osgispower2(depth)
00869                       )
00870                     {
00871                         // scale is only implemented for 2D
00872                         if(imgtarget != GL_TEXTURE_2D)
00873                         {
00874                             SWARNING << "TextureChunk::initialize: can't mipmap "
00875                                      << "non-2D textures that are not 2^x !!!"
00876                                      << std::endl;
00877                         }
00878                         else
00879                         {
00880                             UInt32 outw = osgnextpower2(width);
00881                             UInt32 outh = osgnextpower2(height);
00882 
00883                             data = malloc(outw * outh * img->getBpp());
00884                             
00885                             // should we scale to next power of 2?
00886                             if(doScale)
00887                             {
00888                                 GLint res = gluScaleImage(externalFormat,
00889                                                 width, height, type, img->getData(0, frame, side),
00890                                                 outw, outh, type, data);
00891 
00892                                 if(res)
00893                                 {
00894                                     SWARNING << "TextureChunk::initialize: "
00895                                              << "gluScaleImage failed: "
00896                                              << gluErrorString(res) << "("
00897                                              << res << ")!"
00898                                              << std::endl;
00899                                     free(data);
00900                                     data = NULL;
00901                                 }
00902                                 else
00903                                 {
00904                                     width = outw;
00905                                     height = outh;
00906                                 }
00907                             }
00908                             else // nope, just copy the image to the lower left part
00909                             {
00910                                 memset(data, 0, outw * outh * img->getBpp());
00911 
00912                                 UInt16 bpl = width * img->getBpp();
00913                                 UInt8 * src = (UInt8 *) img->getData(0, frame, side);
00914                                 UInt8 * dest= (UInt8 *) data;
00915 
00916                                 for(UInt32 y = 0; y < height; y++)
00917                                 {
00918                                     memcpy(dest, src, bpl);
00919 
00920                                     src  += bpl;
00921                                     dest += outw * img->getBpp();
00922                                 }
00923                                 width = outw;
00924                                 height = outh;
00925                             }
00926                         }
00927                     }
00928                     else
00929                         data = img->getData(0, frame, side);
00930                     
00931                     if(data)
00932                     {
00933                         switch (imgtarget)
00934                         {
00935                         case GL_TEXTURE_1D:
00936                                 gluBuild1DMipmaps(imgtarget, internalFormat, width,
00937                                                     externalFormat, type, data);
00938                                 break;
00939                         case GL_TEXTURE_2D:
00940                         case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB:
00941                         case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB:
00942                         case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB:
00943                         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB:
00944                         case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB:
00945                         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB:
00946                                 gluBuild2DMipmaps(imgtarget, internalFormat,
00947                                                     width, height,
00948                                                     externalFormat, type, data);
00949                                 break;
00950                         case GL_TEXTURE_3D:
00951 #  ifdef GLU_VERSION_1_3
00952                                 gluBuild3DMipmaps(imgtarget, internalFormat,
00953                                                     width, height, depth,
00954                                                     externalFormat, type, data);
00955 #  else
00956                                 FWARNING(("TextureChunk::initialize: 3d textures "
00957                                           "supported, but GLU version < 1.3, thus "
00958                                           "gluBuild3DMipmaps not supported!\n"));
00959 #  endif
00960                                 break;
00961                         default:
00962                                 SFATAL << "TextureChunk::initialize2: unknown target "
00963                                        << imgtarget << "!!!" << std::endl;
00964                         }
00965 
00966                         
00967                         if(data != img->getData(0, frame, side))
00968                             free(data);
00969                         defined = true;
00970                     } // data
00971                 } // need to use gluBuildMipmaps?
00972             } // got them from the image already?
00973         } // need mipmaps?
00974 
00975         // no mipmaps, or mipmapping failed?
00976         if(! defined)
00977         {
00978             // got here needing mipmaps?
00979             if(needMipmaps && paramtarget != GL_NONE)  // turn them off
00980                 glTexParameteri(paramtarget, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
00981 
00982             void * data = NULL;
00983             UInt32 datasize = 0;
00984 
00985             // Do we need to massage the texture or can we just use it?
00986             if(imgtarget != GL_TEXTURE_RECTANGLE_ARB &&
00987                !win->hasExtension(_arbTextureNonPowerOfTwo) &&
00988                (!osgispower2(width) || !osgispower2(height) || !osgispower2(depth))
00989               )
00990             {
00991                 // No, need to scale or cut
00992                 
00993                 // should we scale to next power of 2?
00994                 if(doScale)
00995                 {
00996                     // scale is only implemented for 2D
00997                     if(imgtarget != GL_TEXTURE_2D &&
00998                        imgtarget != GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB &&
00999                        imgtarget != GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB &&
01000                        imgtarget != GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB &&
01001                        imgtarget != GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB &&
01002                        imgtarget != GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB &&
01003                        imgtarget != GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB
01004                       )
01005                     {
01006                         SWARNING << "TextureChunk::initialize: can't scale "
01007                                  << "non-2D textures that are not 2^x !!!"
01008                                  << std::endl;
01009                     }
01010                     else
01011                     {
01012                         UInt32 outw = osgnextpower2(width);
01013                         UInt32 outh = osgnextpower2(height);
01014 
01015                         data = malloc(outw * outh * img->getBpp());
01016                         datasize = outw * outh * img->getBpp();
01017                         
01018                         GLint res = gluScaleImage(externalFormat,
01019                                         width, height, type, 
01020                                         img->getData(0, frame, side),
01021                                         outw, outh, type, data);
01022 
01023                         if(res)
01024                         {
01025                             SWARNING << "TextureChunk::initialize: "
01026                                      << "gluScaleImage failed: "
01027                                      << gluErrorString(res) << "("
01028                                      << res << ")!" << std::endl;
01029                             free(data);
01030                             data = NULL;
01031                         }
01032                         else
01033                         {
01034                             width = outw;
01035                             height = outh;
01036                         }
01037                     }
01038                 
01039                 }
01040                 else // don't scale, just use ll corner
01041                 {
01042                    if(compressedData)
01043                    {
01044                        switch (imgtarget)
01045                        {
01046                        case GL_TEXTURE_1D:
01047                            CompressedTexImage1D(GL_TEXTURE_1D, 0, internalFormat,
01048                                            osgnextpower2(width), getBorderWidth(), 0, NULL);
01049                            CompressedTexSubImage1D(GL_TEXTURE_1D, 0, 0, width,
01050                                            externalFormat, 
01051                                            img->getFrameSize(), 
01052                                            img->getData(0, frame, side));
01053                            break;
01054                        case GL_TEXTURE_2D:
01055                            CompressedTexImage2D(imgtarget, 0, internalFormat,
01056                                            osgnextpower2(width),
01057                                            osgnextpower2(height), getBorderWidth(),
01058                                            0, NULL);
01059                            CompressedTexSubImage2D(imgtarget, 0, 0, 0, width, height,
01060                                            externalFormat,
01061                                            img->getFrameSize(), 
01062                                            img->getData(0, frame, side));
01063                            break;
01064                        case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB:
01065                        case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB:
01066                        case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB:
01067                        case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB:
01068                        case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB:
01069                        case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB:
01070                            CompressedTexImage2D(imgtarget, 0, internalFormat,
01071                                            osgnextpower2(width),
01072                                            osgnextpower2(height), getBorderWidth(),
01073                                            0, NULL);
01074                            CompressedTexSubImage2D(imgtarget, 0, 0, 0, width, height,
01075                                            externalFormat,
01076                                            (img->getSideCount() > 1) ? img->getSideSize() :
01077                                                 img->getFrameSize(), 
01078                                            img->getData(0, frame, side));
01079                            break;
01080                        case GL_TEXTURE_RECTANGLE_ARB:
01081                            CompressedTexImage2D( GL_TEXTURE_RECTANGLE_ARB, 0, internalFormat,
01082                                            width, height, getBorderWidth(),
01083                                            img->getFrameSize(), 
01084                                            img->getData(0, frame, side));
01085                            break;
01086                        case GL_TEXTURE_3D:
01087                            CompressedTexImage3D(GL_TEXTURE_3D, 0, internalFormat,
01088                                            osgnextpower2(width),
01089                                            osgnextpower2(height),
01090                                            osgnextpower2(depth),
01091                                            getBorderWidth(), 0, NULL);
01092                            CompressedTexSubImage3D(GL_TEXTURE_3D, 0,  0, 0, 0,
01093                                            width, height, depth,
01094                                            externalFormat,
01095                                            img->getFrameSize(), 
01096                                            img->getData(0, frame, side));
01097                            break;
01098                        default:
01099                                SFATAL << "TextureChunk::initialize4: unknown target "
01100                                       << imgtarget << "!!!" << std::endl;
01101                        }
01102                    }
01103                    else
01104                    {
01105                        switch (imgtarget)
01106                        {
01107                        case GL_TEXTURE_1D:
01108                            glTexImage1D(GL_TEXTURE_1D, 0, internalFormat,
01109                                            osgnextpower2(width), getBorderWidth(),
01110                                            externalFormat, type,
01111                                            NULL);
01112                            glTexSubImage1D(GL_TEXTURE_1D, 0, 0, width,
01113                                            externalFormat, type,
01114                                             img->getData(0, frame, side));
01115                            break;
01116                        case GL_TEXTURE_2D:
01117                        case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB:
01118                        case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB:
01119                        case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB:
01120                        case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB:
01121                        case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB:
01122                        case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB:
01123                            glTexImage2D(imgtarget, 0, internalFormat,
01124                                            osgnextpower2(width),
01125                                            osgnextpower2(height), getBorderWidth(),
01126                                            externalFormat, type,
01127                                            NULL);
01128                            glTexSubImage2D(imgtarget, 0, 0, 0, width, height,
01129                                            externalFormat, type,
01130                                            img->getData(0, frame, side));
01131                            break;
01132                        case GL_TEXTURE_RECTANGLE_ARB:
01133                            glTexImage2D( GL_TEXTURE_RECTANGLE_ARB, 0, internalFormat,
01134                                            width, height, getBorderWidth(),
01135                                            externalFormat, type,
01136                                            img->getData(0, frame, side));
01137                            break;
01138                        case GL_TEXTURE_3D:
01139                              TexImage3D(GL_TEXTURE_3D, 0, internalFormat,
01140                                            osgnextpower2(width),
01141                                            osgnextpower2(height),
01142                                            osgnextpower2(depth),
01143                                            getBorderWidth(), externalFormat, type, NULL);
01144                              TexSubImage3D(GL_TEXTURE_3D, 0,  0, 0, 0,
01145                                            width, height, depth,
01146                                            externalFormat, type,
01147                                            img->getData(0, frame, side));
01148                            break;
01149                        default:
01150                                SFATAL << "TextureChunk::initialize4: unknown target "
01151                                       << imgtarget << "!!!" << std::endl;
01152                        } // switch imgtarget
01153                    } // compressed data?
01154                        
01155                    defined = true;
01156                 } // do scale  
01157             } 
01158             else // can we use it directly?
01159             {
01160                data = img->getData(0, frame, side);
01161                datasize = (img->getSideCount() > 1) ? img->getSideSize() :
01162                                                       img->getFrameSize();
01163             } // can we use it directly?
01164             
01165             if(!defined) // either we can use the texture directly, or it was scaled
01166             {
01167                 // A image without data is quite handy if you need the
01168                 // texture only on the graphics card. So don't check for data here
01169                
01170                  if(compressedData)
01171                  {
01172                      switch (imgtarget)
01173                      {
01174                      case GL_TEXTURE_1D:
01175                          CompressedTexImage1D(GL_TEXTURE_1D, 0, internalFormat,
01176                                          width, getBorderWidth(),
01177                                          datasize, data);
01178                          break;
01179                      case GL_TEXTURE_2D:
01180                      case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB:
01181                      case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB:
01182                      case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB:
01183                      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB:
01184                      case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB:
01185                      case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB:
01186                          CompressedTexImage2D(imgtarget, 0, internalFormat,
01187                                          width, height, getBorderWidth(),
01188                                           datasize, data);
01189                          break;
01190                      case GL_TEXTURE_RECTANGLE_ARB:
01191                          CompressedTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, internalFormat,
01192                                          width, height, getBorderWidth(),
01193                                          datasize, data);
01194                          break;
01195                      case GL_TEXTURE_3D:
01196                          CompressedTexImage3D(GL_TEXTURE_3D, 0, internalFormat,
01197                                          width, height, depth, getBorderWidth(),
01198                                          datasize, data);
01199                          break;
01200                      default:
01201                          SFATAL << "TextureChunk::initialize3: unknown target "
01202                                 << imgtarget << "!!!" << std::endl;
01203                      }
01204                  }
01205                  else
01206                  {
01207                         switch (imgtarget)
01208                         {
01209                         case GL_TEXTURE_1D:
01210                             glTexImage1D(GL_TEXTURE_1D, 0, internalFormat,
01211                                             width, getBorderWidth(),
01212                                             externalFormat, type,
01213                                             data);
01214                             break;
01215                         case GL_TEXTURE_2D:
01216                         case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB:
01217                         case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB:
01218                         case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB:
01219                         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB:
01220                         case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB:
01221                         case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB:
01222                             glTexImage2D(imgtarget, 0, internalFormat,
01223                                             width, height, getBorderWidth(),
01224                                             externalFormat, type,
01225                                             data);
01226                             break;
01227                         case GL_TEXTURE_RECTANGLE_ARB:
01228                             glTexImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, internalFormat,
01229                                             width, height, getBorderWidth(),
01230                                             externalFormat, type,
01231                                             data);
01232                             break;
01233                         case GL_TEXTURE_3D:
01234                               TexImage3D(GL_TEXTURE_3D, 0, internalFormat,
01235                                             width, height, depth, getBorderWidth(),
01236                                             externalFormat, type,
01237                                             data);
01238                             break;
01239                         default:
01240                             SFATAL << "TextureChunk::initialize3: unknown target "
01241                                    << imgtarget << "!!!" << std::endl;
01242                         }
01243                     }
01244                 
01245             }
01246 
01247             if(data != img->getData(0, frame, side))
01248                 free(data);
01249         }
01250 
01251         glErr("TextureChunk::initialize image");
01252     }
01253     else if(mode == Window::needrefresh)
01254     {
01255         void (OSG_APIENTRY*TexSubImage3D)
01256                           (GLenum target, GLint level, GLint xoffset,
01257                            GLint yoffset, GLint zoffset, GLsizei width,
01258                            GLsizei height, GLsizei depth, GLenum format,
01259                            GLenum type, const GLvoid *pixels) =
01260             (void (OSG_APIENTRY*)(GLenum target, GLint level, GLint xoffset,
01261                       GLint yoffset, GLint zoffset, GLsizei width,
01262                       GLsizei height, GLsizei depth, GLenum format,
01263                       GLenum type, const GLvoid *pixels))
01264             win->getFunction(_funcTexSubImage3D);
01265 
01266         void (OSG_APIENTRY*CompressedTexSubImage1D)
01267                           (GLenum target, GLint level, GLint xoffset, GLsizei width,
01268                            GLenum format, GLsizei imageSize, const GLvoid *pixels) =
01269             (void (OSG_APIENTRY*)(GLenum target, GLint level, GLint xoffset, GLsizei width,
01270                            GLenum format, GLsizei imageSize, const GLvoid *pixels))
01271             win->getFunction(_funcCompressedTexSubImage1D);
01272 
01273         void (OSG_APIENTRY*CompressedTexSubImage2D)
01274                           (GLenum target, GLint level, 
01275                            GLint xoffset, GLint yoffset, 
01276                            GLsizei width, GLsizei height, GLenum format,
01277                            GLsizei imageSize, const GLvoid *pixels) =
01278             (void (OSG_APIENTRY*)(GLenum target, GLint level, 
01279                            GLint xoffset, GLint yoffset, 
01280                            GLsizei width, GLsizei height, GLenum format,
01281                            GLsizei imageSize, const GLvoid *pixels))
01282             win->getFunction(_funcCompressedTexSubImage2D);
01283 
01284         void (OSG_APIENTRY*CompressedTexSubImage3D)
01285                           (GLenum target, GLint level, 
01286                            GLint xoffset, GLint yoffset, GLint zoffset, 
01287                            GLsizei width, GLsizei height, GLsizei depth, 
01288                            GLenum format, GLsizei imageSize, const GLvoid *pixels) =
01289             (void (OSG_APIENTRY*)(GLenum target, GLint level, 
01290                            GLint xoffset, GLint yoffset, GLint zoffset, 
01291                            GLsizei width, GLsizei height, GLsizei depth, 
01292                            GLenum format, GLsizei imageSize, const GLvoid *pixels))
01293             win->getFunction(_funcCompressedTexSubImage3D);
01294 
01295         GLenum externalFormat = img->getPixelFormat();
01296         GLenum type           = img->getDataType();
01297         bool   compressedData = img->hasCompressedData();
01298         bool   has3DTex       = win->hasExtension(_extTex3D) ||
01299                                 win->getGLVersion() >= 0x0102;
01300         
01301         if(bindtarget == GL_TEXTURE_3D && !has3DTex)
01302         {
01303             FINFO(("3D textures not supported on Window %p!\n", win));
01304             return;
01305         }
01306 
01307         if(! img) // no image ?
01308             return;
01309 
01310         if(getExternalFormat() != GL_NONE)
01311             externalFormat = getExternalFormat();
01312 
01313         if(!getScale() || imgtarget == GL_TEXTURE_RECTANGLE_ARB
01314                        || win->hasExtension(_arbTextureNonPowerOfTwo) 
01315                        ||  (osgispower2(img->getWidth() ) &&
01316                             osgispower2(img->getHeight()) &&
01317                             osgispower2(img->getDepth() )
01318           )                )
01319         {
01320             // activate the texture
01321             glBindTexture(bindtarget, id);
01322 
01323             // Find out what to update
01324             UInt32 ix, ax, iy, ay, iz, az;
01325             ix = (getDirtyMinX()!=-1) ? getDirtyMinX() : 0;
01326             ax = (getDirtyMaxX()!=-1) ? getDirtyMaxX() : img->getWidth() - 1;
01327             iy = (getDirtyMinY()!=-1) ? getDirtyMinY() : 0;
01328             ay = (getDirtyMaxY()!=-1) ? getDirtyMaxY() : img->getHeight() - 1;
01329             iz = (getDirtyMinZ()!=-1) ? getDirtyMinZ() : 0;
01330             az = (getDirtyMaxZ()!=-1) ? getDirtyMaxZ() : img->getDepth() - 1;
01331             
01332             UInt32 w, h, d;
01333             w = ax - ix + 1;
01334             h = ay - iy + 1;
01335             d = az - iz + 1;
01336 
01337             if(w != img->getWidth())
01338                 glPixelStorei(GL_UNPACK_ROW_LENGTH,  img->getWidth());
01339             if(ix != 0)
01340                 glPixelStorei(GL_UNPACK_SKIP_PIXELS, ix);
01341             if(iy != 0)
01342                 glPixelStorei(GL_UNPACK_SKIP_ROWS,   iy);
01343             if(has3DTex && iz != 0)
01344                 glPixelStorei(GL_UNPACK_SKIP_IMAGES, iz);
01345             
01346             if(compressedData)
01347             {
01348                 switch (imgtarget)
01349                 {
01350                 case GL_TEXTURE_1D:
01351                     CompressedTexSubImage1D(GL_TEXTURE_1D, 0, ix, w,
01352                                     externalFormat, img->getFrameSize(),
01353                                     img->getData( 0, getFrame(), side ) );
01354                     break;
01355                 case GL_TEXTURE_2D:
01356                     CompressedTexSubImage2D(imgtarget, 0, ix, iy, w, h,
01357                                     externalFormat, img->getFrameSize(),
01358                                     img->getData( 0, getFrame(), side ) );
01359                     break;
01360                 case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB:
01361                 case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB:
01362                 case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB:
01363                 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB:
01364                 case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB:
01365                 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB:
01366                     CompressedTexSubImage2D(imgtarget, 0, ix, iy, w, h,
01367                                     externalFormat,     
01368                                     (img->getSideCount() > 1) ? img->getSideSize() :
01369                                                                 img->getFrameSize(), 
01370                                     img->getData( 0, getFrame(), side ) );
01371                     break;
01372                 case GL_TEXTURE_RECTANGLE_ARB:
01373                     CompressedTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0, 
01374                                     ix, iy, w, h,
01375                                     externalFormat, img->getFrameSize(),
01376                                     img->getData( 0, getFrame(), side ) );
01377                     break;
01378                 case GL_TEXTURE_3D:
01379                       CompressedTexSubImage3D(GL_TEXTURE_3D, 0,  ix, iy, iz,
01380                                     w, h, d,
01381                                     externalFormat, img->getFrameSize(),
01382                                     img->getData( 0, getFrame(), side ) );
01383                     break;
01384                 default:
01385                         SFATAL << "TextureChunk::refresh: unknown target "
01386                                << imgtarget << "!!!" << std::endl;
01387                 }
01388             }
01389             else
01390             {
01391                 switch (imgtarget)
01392                 {
01393                 case GL_TEXTURE_1D:
01394                     glTexSubImage1D(GL_TEXTURE_1D, 0, ix, w,
01395                                     externalFormat, type,
01396                                     img->getData( 0, getFrame(), side ) );
01397                     break;
01398                 case GL_TEXTURE_2D:
01399                 case GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB:
01400                 case GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB:
01401                 case GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB:
01402                 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB:
01403                 case GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB:
01404                 case GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB:
01405                     glTexSubImage2D(imgtarget, 0, ix, iy, w, h,
01406                                     externalFormat, type,
01407                                     img->getData( 0, getFrame(), side ) );
01408                     break;
01409                 case GL_TEXTURE_RECTANGLE_ARB:
01410                     glTexSubImage2D(GL_TEXTURE_RECTANGLE_ARB, 0,
01411                                     ix, iy, w, h,
01412                                     externalFormat, type,
01413                                     img->getData( 0, getFrame(), side ) );
01414                     break;
01415                 case GL_TEXTURE_3D:
01416                       TexSubImage3D(GL_TEXTURE_3D, 0,  ix, iy, iz,
01417                                     w, h, d,
01418                                     externalFormat, type,
01419                                     img->getData( 0, getFrame(), side ) );
01420                     break;
01421                 default:
01422                         SFATAL << "TextureChunk::refresh: unknown target "
01423                                << imgtarget << "!!!" << std::endl;
01424                 }
01425             }
01426 
01427 
01428             if(w != img->getWidth())
01429                 glPixelStorei(GL_UNPACK_ROW_LENGTH,  0);
01430             if(ix != 0)
01431                 glPixelStorei(GL_UNPACK_SKIP_PIXELS, 0);
01432             if(iy != 0)
01433                 glPixelStorei(GL_UNPACK_SKIP_ROWS,   0);
01434             if(has3DTex && iz != 0)
01435                 glPixelStorei(GL_UNPACK_SKIP_IMAGES, 0);
01436            
01437             if(paramtarget != GL_NONE)
01438                 glTexParameterf(paramtarget, GL_TEXTURE_PRIORITY,
01439                                   getPriority());
01440         }
01441         else
01442         {
01443             SWARNING << "TextureChunk::refresh: not implemented yet for "
01444                      << "scaling!!!" << std::endl;
01445         }
01446 
01447         glErr("TextureChunk::refresh image");
01448     }
01449 }

void TextureChunk::handleTextureShader ( Window win,
GLenum  bindtarget 
) [protected, inherited]

Texture handler. Create/update a single texture. Also used by derived CubeMap chunk.

Definition at line 400 of file OSGTextureChunk.cpp.

References osg::TextureChunk::_nvTextureShader, osg::TextureChunk::_nvTextureShader2, FINFO, FWARNING, osg::TextureChunkBase::getShaderConstEye(), osg::TextureChunkBase::getShaderCullModes(), osg::TextureChunkBase::getShaderInput(), osg::TextureChunkBase::getShaderOffsetBias(), osg::TextureChunkBase::getShaderOffsetMatrix(), osg::TextureChunkBase::getShaderOffsetScale(), osg::TextureChunkBase::getShaderOperation(), osg::TextureChunkBase::getShaderRGBADotProduct(), GL_CONST_EYE_NV, GL_CULL_MODES_NV, GL_OFFSET_TEXTURE_BIAS_NV, GL_OFFSET_TEXTURE_MATRIX_NV, GL_OFFSET_TEXTURE_SCALE_NV, GL_PREVIOUS_TEXTURE_INPUT_NV, GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV, GL_SHADER_CONSISTENT_NV, GL_SHADER_OPERATION_NV, GL_TEXTURE_3D, GL_TEXTURE_SHADER_NV, glErr, and osg::Window::hasExtension().

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

00401 {
00402     if(!win->hasExtension(_nvTextureShader))
00403     {
00404         if(getShaderOperation() != GL_NONE)
00405             FINFO(("NV Texture Shaders not supported on Window %p!\n", win));
00406         return;
00407     }
00408 
00409     glErr("textureShader precheck");
00410 
00411     glTexEnvi(GL_TEXTURE_SHADER_NV, GL_SHADER_OPERATION_NV,
00412                 getShaderOperation());
00413 
00414     glErr("textureShader setup: operation");
00415 
00416     if(getShaderOperation() == GL_NONE)
00417         return;
00418 
00419     if(bindtarget == GL_TEXTURE_3D && !win->hasExtension(_nvTextureShader2))
00420     {
00421         FINFO(("NV Texture Shaders 2 not supported on Window %p!\n", win));
00422         return;
00423     }
00424 
00425     if(getShaderInput() != GL_NONE)
00426         glTexEnvi(GL_TEXTURE_SHADER_NV, GL_PREVIOUS_TEXTURE_INPUT_NV,
00427                     getShaderInput());
00428 
00429     glErr("textureShader setup: input");
00430 
00431     if(getShaderRGBADotProduct() != GL_NONE)
00432         glTexEnvi(GL_TEXTURE_SHADER_NV, GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV,
00433                     getShaderRGBADotProduct());
00434 
00435     glErr("textureShader setup: rgba dotprod");
00436 
00437     if(getShaderOffsetMatrix().size() == 4)
00438     {
00439         glTexEnvfv(GL_TEXTURE_SHADER_NV, GL_OFFSET_TEXTURE_MATRIX_NV,
00440                     (GLfloat*)&(getShaderOffsetMatrix()[0]));
00441 
00442         glErr("textureShader setup: offset matrix");
00443     }
00444     else if(getShaderOffsetMatrix().size() != 0)
00445     {
00446         FWARNING(("TextureChunk::handleTextureShader: shaderOffsetMatrix has"
00447                     " to have 4 entries, not %d!\n",
00448                     getShaderOffsetMatrix().size() ));
00449     }
00450 
00451     glTexEnvf(GL_TEXTURE_SHADER_NV, GL_OFFSET_TEXTURE_SCALE_NV,
00452                 getShaderOffsetScale());
00453 
00454     glErr("textureShader setup: offset scale");
00455 
00456     glTexEnvf(GL_TEXTURE_SHADER_NV, GL_OFFSET_TEXTURE_BIAS_NV,
00457                 getShaderOffsetBias());
00458 
00459     glErr("textureShader setup: offset bias");
00460 
00461     GLint cullmodes[4];
00462     if(getShaderCullModes() & 0x1)
00463     {
00464         cullmodes[0] = GL_GEQUAL;
00465     }
00466     else
00467     {
00468         cullmodes[0] = GL_LESS;
00469     }
00470 
00471     if(getShaderCullModes() & 0x2)
00472     {
00473         cullmodes[1] = GL_GEQUAL;
00474     }
00475     else
00476     {
00477         cullmodes[1] = GL_LESS;
00478     }
00479 
00480     if(getShaderCullModes() & 0x4)
00481     {
00482         cullmodes[2] = GL_GEQUAL;
00483     }
00484     else
00485     {
00486         cullmodes[2] = GL_LESS;
00487     }
00488 
00489     if(getShaderCullModes() & 0x8)
00490     {
00491         cullmodes[3] = GL_GEQUAL;
00492     }
00493     else
00494     {
00495         cullmodes[3] = GL_LESS;
00496     }
00497 
00498     glTexEnviv(GL_TEXTURE_SHADER_NV, GL_CULL_MODES_NV,
00499                     cullmodes);
00500 
00501     glErr("textureShader setup: cull modes");
00502 
00503     glTexEnvfv(GL_TEXTURE_SHADER_NV, GL_CONST_EYE_NV,
00504                     getShaderConstEye().getValues());
00505 
00506     glErr("textureShader setup: const eye");
00507 
00508 
00509 
00510 #ifdef OSG_DEBUG
00511     GLint consistent;
00512     glGetTexEnviv(GL_TEXTURE_SHADER_NV, GL_SHADER_CONSISTENT_NV,
00513           &consistent);
00514     if(!consistent)
00515     {
00516         FWARNING(("Texture shaders not consistent!\n"));
00517     }
00518 #endif
00519 }

void TextureChunk::initMethod ( void   )  [static, protected, inherited]

Reimplemented from osg::StateChunk.

Definition at line 149 of file OSGTextureChunk.cpp.

00150 {
00151 }

SFImagePtr * osg::TextureChunkBase::getSFImage ( void   )  [inline, inherited]

Definition at line 101 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfImage.

00102 {
00103     return &_sfImage;
00104 }

SFGLenum * osg::TextureChunkBase::getSFInternalFormat ( void   )  [inline, inherited]

Definition at line 108 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfInternalFormat.

00109 {
00110     return &_sfInternalFormat;
00111 }

SFGLenum * osg::TextureChunkBase::getSFExternalFormat ( void   )  [inline, inherited]

Definition at line 115 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfExternalFormat.

00116 {
00117     return &_sfExternalFormat;
00118 }

SFBool * osg::TextureChunkBase::getSFScale ( void   )  [inline, inherited]

Definition at line 122 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfScale.

00123 {
00124     return &_sfScale;
00125 }

SFUInt32 * osg::TextureChunkBase::getSFFrame ( void   )  [inline, inherited]

Definition at line 129 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfFrame.

00130 {
00131     return &_sfFrame;
00132 }

SFGLenum * osg::TextureChunkBase::getSFMinFilter ( void   )  [inline, inherited]

Definition at line 136 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfMinFilter.

00137 {
00138     return &_sfMinFilter;
00139 }

SFGLenum * osg::TextureChunkBase::getSFMagFilter ( void   )  [inline, inherited]

Definition at line 143 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfMagFilter.

00144 {
00145     return &_sfMagFilter;
00146 }

SFGLenum * osg::TextureChunkBase::getSFWrapS ( void   )  [inline, inherited]

Definition at line 150 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfWrapS.

00151 {
00152     return &_sfWrapS;
00153 }

SFGLenum * osg::TextureChunkBase::getSFWrapT ( void   )  [inline, inherited]

Definition at line 157 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfWrapT.

00158 {
00159     return &_sfWrapT;
00160 }

SFGLenum * osg::TextureChunkBase::getSFWrapR ( void   )  [inline, inherited]

Definition at line 164 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfWrapR.

00165 {
00166     return &_sfWrapR;
00167 }

SFGLenum * osg::TextureChunkBase::getSFEnvMode ( void   )  [inline, inherited]

Definition at line 171 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvMode.

00172 {
00173     return &_sfEnvMode;
00174 }

SFColor4f * osg::TextureChunkBase::getSFEnvColor ( void   )  [inline, inherited]

Definition at line 178 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvColor.

00179 {
00180     return &_sfEnvColor;
00181 }

SFGLenum * osg::TextureChunkBase::getSFEnvCombineRGB ( void   )  [inline, inherited]

Definition at line 185 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvCombineRGB.

00186 {
00187     return &_sfEnvCombineRGB;
00188 }

SFGLenum * osg::TextureChunkBase::getSFEnvCombineAlpha ( void   )  [inline, inherited]

Definition at line 192 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvCombineAlpha.

00193 {
00194     return &_sfEnvCombineAlpha;
00195 }

SFReal32 * osg::TextureChunkBase::getSFEnvScaleRGB ( void   )  [inline, inherited]

Definition at line 199 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvScaleRGB.

00200 {
00201     return &_sfEnvScaleRGB;
00202 }

SFReal32 * osg::TextureChunkBase::getSFEnvScaleAlpha ( void   )  [inline, inherited]

Definition at line 206 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvScaleAlpha.

00207 {
00208     return &_sfEnvScaleAlpha;
00209 }

SFGLenum * osg::TextureChunkBase::getSFEnvSource0RGB ( void   )  [inline, inherited]

Definition at line 213 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvSource0RGB.

00214 {
00215     return &_sfEnvSource0RGB;
00216 }

SFGLenum * osg::TextureChunkBase::getSFEnvSource1RGB ( void   )  [inline, inherited]

Definition at line 220 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvSource1RGB.

00221 {
00222     return &_sfEnvSource1RGB;
00223 }

SFGLenum * osg::TextureChunkBase::getSFEnvSource2RGB ( void   )  [inline, inherited]

Definition at line 227 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvSource2RGB.

00228 {
00229     return &_sfEnvSource2RGB;
00230 }

SFGLenum * osg::TextureChunkBase::getSFEnvSource0Alpha ( void   )  [inline, inherited]

Definition at line 234 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvSource0Alpha.

00235 {
00236     return &_sfEnvSource0Alpha;
00237 }

SFGLenum * osg::TextureChunkBase::getSFEnvSource1Alpha ( void   )  [inline, inherited]

Definition at line 241 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvSource1Alpha.

00242 {
00243     return &_sfEnvSource1Alpha;
00244 }

SFGLenum * osg::TextureChunkBase::getSFEnvSource2Alpha ( void   )  [inline, inherited]

Definition at line 248 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvSource2Alpha.

00249 {
00250     return &_sfEnvSource2Alpha;
00251 }

SFGLenum * osg::TextureChunkBase::getSFEnvOperand0RGB ( void   )  [inline, inherited]

Definition at line 255 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvOperand0RGB.

00256 {
00257     return &_sfEnvOperand0RGB;
00258 }

SFGLenum * osg::TextureChunkBase::getSFEnvOperand1RGB ( void   )  [inline, inherited]

Definition at line 262 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvOperand1RGB.

00263 {
00264     return &_sfEnvOperand1RGB;
00265 }

SFGLenum * osg::TextureChunkBase::getSFEnvOperand2RGB ( void   )  [inline, inherited]

Definition at line 269 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvOperand2RGB.

00270 {
00271     return &_sfEnvOperand2RGB;
00272 }

SFGLenum * osg::TextureChunkBase::getSFEnvOperand0Alpha ( void   )  [inline, inherited]

Definition at line 276 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvOperand0Alpha.

00277 {
00278     return &_sfEnvOperand0Alpha;
00279 }

SFGLenum * osg::TextureChunkBase::getSFEnvOperand1Alpha ( void   )  [inline, inherited]

Definition at line 283 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvOperand1Alpha.

00284 {
00285     return &_sfEnvOperand1Alpha;
00286 }

SFGLenum * osg::TextureChunkBase::getSFEnvOperand2Alpha ( void   )  [inline, inherited]

Definition at line 290 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvOperand2Alpha.

00291 {
00292     return &_sfEnvOperand2Alpha;
00293 }

SFGLenum * osg::TextureChunkBase::getSFGLId ( void   )  [inline, inherited]

Definition at line 297 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfGLId.

00298 {
00299     return &_sfGLId;
00300 }

SFInt32 * osg::TextureChunkBase::getSFIgnoreGLForAspect ( void   )  [inline, inherited]

Definition at line 304 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfIgnoreGLForAspect.

00305 {
00306     return &_sfIgnoreGLForAspect;
00307 }

SFBool * osg::TextureChunkBase::getSFPointSprite ( void   )  [inline, inherited]

Definition at line 311 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfPointSprite.

00312 {
00313     return &_sfPointSprite;
00314 }

SFReal32 * osg::TextureChunkBase::getSFPriority ( void   )  [inline, inherited]

Definition at line 318 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfPriority.

00319 {
00320     return &_sfPriority;
00321 }

SFGLenum * osg::TextureChunkBase::getSFShaderOperation ( void   )  [inline, inherited]

Definition at line 325 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfShaderOperation.

00326 {
00327     return &_sfShaderOperation;
00328 }

SFGLenum * osg::TextureChunkBase::getSFShaderInput ( void   )  [inline, inherited]

Definition at line 332 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfShaderInput.

00333 {
00334     return &_sfShaderInput;
00335 }

MFReal32 * osg::TextureChunkBase::getMFShaderOffsetMatrix ( void   )  [inline, inherited]

Definition at line 339 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_mfShaderOffsetMatrix.

00340 {
00341     return &_mfShaderOffsetMatrix;
00342 }

SFReal32 * osg::TextureChunkBase::getSFShaderOffsetScale ( void   )  [inline, inherited]

Definition at line 346 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfShaderOffsetScale.

00347 {
00348     return &_sfShaderOffsetScale;
00349 }

SFReal32 * osg::TextureChunkBase::getSFShaderOffsetBias ( void   )  [inline, inherited]

Definition at line 353 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfShaderOffsetBias.

00354 {
00355     return &_sfShaderOffsetBias;
00356 }

SFGLenum * osg::TextureChunkBase::getSFShaderRGBADotProduct ( void   )  [inline, inherited]

Definition at line 360 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfShaderRGBADotProduct.

00361 {
00362     return &_sfShaderRGBADotProduct;
00363 }

SFUInt8 * osg::TextureChunkBase::getSFShaderCullModes ( void   )  [inline, inherited]

Definition at line 367 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfShaderCullModes.

00368 {
00369     return &_sfShaderCullModes;
00370 }

SFVec3f * osg::TextureChunkBase::getSFShaderConstEye ( void   )  [inline, inherited]

Definition at line 374 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfShaderConstEye.

00375 {
00376     return &_sfShaderConstEye;
00377 }

SFReal32 * osg::TextureChunkBase::getSFLodBias ( void   )  [inline, inherited]

Definition at line 381 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfLodBias.

00382 {
00383     return &_sfLodBias;
00384 }

SFGLenum * osg::TextureChunkBase::getSFTarget ( void   )  [inline, inherited]

Definition at line 388 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfTarget.

00389 {
00390     return &_sfTarget;
00391 }

SFInt32 * osg::TextureChunkBase::getSFDirtyLeft ( void   )  [inline, inherited]

Definition at line 395 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyLeft.

00396 {
00397     return &_sfDirtyLeft;
00398 }

SFInt32 * osg::TextureChunkBase::getSFDirtyMinX ( void   )  [inline, inherited]

Definition at line 402 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMinX.

00403 {
00404     return &_sfDirtyMinX;
00405 }

SFInt32 * osg::TextureChunkBase::getSFDirtyMaxX ( void   )  [inline, inherited]

Definition at line 409 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMaxX.

00410 {
00411     return &_sfDirtyMaxX;
00412 }

SFInt32 * osg::TextureChunkBase::getSFDirtyMinY ( void   )  [inline, inherited]

Definition at line 416 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMinY.

00417 {
00418     return &_sfDirtyMinY;
00419 }

SFInt32 * osg::TextureChunkBase::getSFDirtyMaxY ( void   )  [inline, inherited]

Definition at line 423 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMaxY.

00424 {
00425     return &_sfDirtyMaxY;
00426 }

SFInt32 * osg::TextureChunkBase::getSFDirtyMinZ ( void   )  [inline, inherited]

Definition at line 430 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMinZ.

00431 {
00432     return &_sfDirtyMinZ;
00433 }

SFInt32 * osg::TextureChunkBase::getSFDirtyMaxZ ( void   )  [inline, inherited]

Definition at line 437 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMaxZ.

00438 {
00439     return &_sfDirtyMaxZ;
00440 }

SFReal32 * osg::TextureChunkBase::getSFAnisotropy ( void   )  [inline, inherited]

Definition at line 444 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfAnisotropy.

00445 {
00446     return &_sfAnisotropy;
00447 }

SFColor4f * osg::TextureChunkBase::getSFBorderColor ( void   )  [inline, inherited]

Definition at line 451 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfBorderColor.

00452 {
00453     return &_sfBorderColor;
00454 }

SFUInt32 * osg::TextureChunkBase::getSFBorderWidth ( void   )  [inline, inherited]

Definition at line 458 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfBorderWidth.

00459 {
00460     return &_sfBorderWidth;
00461 }

SFUInt32 * osg::TextureChunkBase::getSFNPOTMatrixScale ( void   )  [inline, inherited]

Definition at line 465 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfNPOTMatrixScale.

00466 {
00467     return &_sfNPOTMatrixScale;
00468 }

ImagePtr & osg::TextureChunkBase::getImage ( void   )  [inline, inherited]

const ImagePtr & osg::TextureChunkBase::getImage ( void   )  const [inline, inherited]

Definition at line 480 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfImage, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00481 {
00482     return _sfImage.getValue();
00483 }

GLenum & osg::TextureChunkBase::getInternalFormat ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getInternalFormat ( void   )  const [inline, inherited]

Definition at line 501 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfInternalFormat, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00502 {
00503     return _sfInternalFormat.getValue();
00504 }

GLenum & osg::TextureChunkBase::getExternalFormat ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getExternalFormat ( void   )  const [inline, inherited]

Definition at line 522 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfExternalFormat, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00523 {
00524     return _sfExternalFormat.getValue();
00525 }

bool & osg::TextureChunkBase::getScale ( void   )  [inline, inherited]

const bool & osg::TextureChunkBase::getScale ( void   )  const [inline, inherited]

Definition at line 543 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfScale, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00544 {
00545     return _sfScale.getValue();
00546 }

UInt32 & osg::TextureChunkBase::getFrame ( void   )  [inline, inherited]

Definition at line 557 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfFrame, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::TextureChunk::handleTexture().

00558 {
00559     return _sfFrame.getValue();
00560 }

const UInt32 & osg::TextureChunkBase::getFrame ( void   )  const [inline, inherited]

Definition at line 564 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfFrame, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00565 {
00566     return _sfFrame.getValue();
00567 }

GLenum & osg::TextureChunkBase::getMinFilter ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getMinFilter ( void   )  const [inline, inherited]

Definition at line 585 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfMinFilter, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00586 {
00587     return _sfMinFilter.getValue();
00588 }

GLenum & osg::TextureChunkBase::getMagFilter ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getMagFilter ( void   )  const [inline, inherited]

Definition at line 606 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfMagFilter, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00607 {
00608     return _sfMagFilter.getValue();
00609 }

GLenum & osg::TextureChunkBase::getWrapS ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getWrapS ( void   )  const [inline, inherited]

Definition at line 627 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfWrapS, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00628 {
00629     return _sfWrapS.getValue();
00630 }

GLenum & osg::TextureChunkBase::getWrapT ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getWrapT ( void   )  const [inline, inherited]

Definition at line 648 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfWrapT, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00649 {
00650     return _sfWrapT.getValue();
00651 }

GLenum & osg::TextureChunkBase::getWrapR ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getWrapR ( void   )  const [inline, inherited]

Definition at line 669 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfWrapR, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00670 {
00671     return _sfWrapR.getValue();
00672 }

GLenum & osg::TextureChunkBase::getEnvMode ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvMode ( void   )  const [inline, inherited]

Definition at line 690 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvMode, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00691 {
00692     return _sfEnvMode.getValue();
00693 }

Color4f & osg::TextureChunkBase::getEnvColor ( void   )  [inline, inherited]

const Color4f & osg::TextureChunkBase::getEnvColor ( void   )  const [inline, inherited]

Definition at line 711 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvColor, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00712 {
00713     return _sfEnvColor.getValue();
00714 }

GLenum & osg::TextureChunkBase::getEnvCombineRGB ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvCombineRGB ( void   )  const [inline, inherited]

Definition at line 732 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvCombineRGB, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00733 {
00734     return _sfEnvCombineRGB.getValue();
00735 }

GLenum & osg::TextureChunkBase::getEnvCombineAlpha ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvCombineAlpha ( void   )  const [inline, inherited]

Definition at line 753 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvCombineAlpha, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00754 {
00755     return _sfEnvCombineAlpha.getValue();
00756 }

Real32 & osg::TextureChunkBase::getEnvScaleRGB ( void   )  [inline, inherited]

const Real32 & osg::TextureChunkBase::getEnvScaleRGB ( void   )  const [inline, inherited]

Definition at line 774 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvScaleRGB, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00775 {
00776     return _sfEnvScaleRGB.getValue();
00777 }

Real32 & osg::TextureChunkBase::getEnvScaleAlpha ( void   )  [inline, inherited]

const Real32 & osg::TextureChunkBase::getEnvScaleAlpha ( void   )  const [inline, inherited]

Definition at line 795 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvScaleAlpha, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00796 {
00797     return _sfEnvScaleAlpha.getValue();
00798 }

GLenum & osg::TextureChunkBase::getEnvSource0RGB ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvSource0RGB ( void   )  const [inline, inherited]

Definition at line 816 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvSource0RGB, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00817 {
00818     return _sfEnvSource0RGB.getValue();
00819 }

GLenum & osg::TextureChunkBase::getEnvSource1RGB ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvSource1RGB ( void   )  const [inline, inherited]

Definition at line 837 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvSource1RGB, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00838 {
00839     return _sfEnvSource1RGB.getValue();
00840 }

GLenum & osg::TextureChunkBase::getEnvSource2RGB ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvSource2RGB ( void   )  const [inline, inherited]

Definition at line 858 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvSource2RGB, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00859 {
00860     return _sfEnvSource2RGB.getValue();
00861 }

GLenum & osg::TextureChunkBase::getEnvSource0Alpha ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvSource0Alpha ( void   )  const [inline, inherited]

Definition at line 879 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvSource0Alpha, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00880 {
00881     return _sfEnvSource0Alpha.getValue();
00882 }

GLenum & osg::TextureChunkBase::getEnvSource1Alpha ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvSource1Alpha ( void   )  const [inline, inherited]

Definition at line 900 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvSource1Alpha, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00901 {
00902     return _sfEnvSource1Alpha.getValue();
00903 }

GLenum & osg::TextureChunkBase::getEnvSource2Alpha ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvSource2Alpha ( void   )  const [inline, inherited]

Definition at line 921 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvSource2Alpha, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00922 {
00923     return _sfEnvSource2Alpha.getValue();
00924 }

GLenum & osg::TextureChunkBase::getEnvOperand0RGB ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvOperand0RGB ( void   )  const [inline, inherited]

Definition at line 942 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvOperand0RGB, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00943 {
00944     return _sfEnvOperand0RGB.getValue();
00945 }

GLenum & osg::TextureChunkBase::getEnvOperand1RGB ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvOperand1RGB ( void   )  const [inline, inherited]

Definition at line 963 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvOperand1RGB, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00964 {
00965     return _sfEnvOperand1RGB.getValue();
00966 }

GLenum & osg::TextureChunkBase::getEnvOperand2RGB ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvOperand2RGB ( void   )  const [inline, inherited]

Definition at line 984 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvOperand2RGB, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00985 {
00986     return _sfEnvOperand2RGB.getValue();
00987 }

GLenum & osg::TextureChunkBase::getEnvOperand0Alpha ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvOperand0Alpha ( void   )  const [inline, inherited]

GLenum & osg::TextureChunkBase::getEnvOperand1Alpha ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvOperand1Alpha ( void   )  const [inline, inherited]

GLenum & osg::TextureChunkBase::getEnvOperand2Alpha ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getEnvOperand2Alpha ( void   )  const [inline, inherited]

GLenum & osg::TextureChunkBase::getGLId ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getGLId ( void   )  const [inline, inherited]

Definition at line 1068 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfGLId, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01069 {
01070     return _sfGLId.getValue();
01071 }

Int32 & osg::TextureChunkBase::getIgnoreGLForAspect ( void   )  [inline, inherited]

const Int32 & osg::TextureChunkBase::getIgnoreGLForAspect ( void   )  const [inline, inherited]

bool & osg::TextureChunkBase::getPointSprite ( void   )  [inline, inherited]

const bool & osg::TextureChunkBase::getPointSprite ( void   )  const [inline, inherited]

Definition at line 1110 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfPointSprite, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01111 {
01112     return _sfPointSprite.getValue();
01113 }

Real32 & osg::TextureChunkBase::getPriority ( void   )  [inline, inherited]

const Real32 & osg::TextureChunkBase::getPriority ( void   )  const [inline, inherited]

Definition at line 1131 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfPriority, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01132 {
01133     return _sfPriority.getValue();
01134 }

GLenum & osg::TextureChunkBase::getShaderOperation ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getShaderOperation ( void   )  const [inline, inherited]

GLenum & osg::TextureChunkBase::getShaderInput ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getShaderInput ( void   )  const [inline, inherited]

Definition at line 1173 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfShaderInput, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01174 {
01175     return _sfShaderInput.getValue();
01176 }

Real32 & osg::TextureChunkBase::getShaderOffsetScale ( void   )  [inline, inherited]

const Real32 & osg::TextureChunkBase::getShaderOffsetScale ( void   )  const [inline, inherited]

Real32 & osg::TextureChunkBase::getShaderOffsetBias ( void   )  [inline, inherited]

const Real32 & osg::TextureChunkBase::getShaderOffsetBias ( void   )  const [inline, inherited]

GLenum & osg::TextureChunkBase::getShaderRGBADotProduct ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getShaderRGBADotProduct ( void   )  const [inline, inherited]

UInt8 & osg::TextureChunkBase::getShaderCullModes ( void   )  [inline, inherited]

const UInt8 & osg::TextureChunkBase::getShaderCullModes ( void   )  const [inline, inherited]

Vec3f & osg::TextureChunkBase::getShaderConstEye ( void   )  [inline, inherited]

const Vec3f & osg::TextureChunkBase::getShaderConstEye ( void   )  const [inline, inherited]

Definition at line 1278 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfShaderConstEye, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01279 {
01280     return _sfShaderConstEye.getValue();
01281 }

Real32 & osg::TextureChunkBase::getLodBias ( void   )  [inline, inherited]

const Real32 & osg::TextureChunkBase::getLodBias ( void   )  const [inline, inherited]

Definition at line 1299 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfLodBias, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01300 {
01301     return _sfLodBias.getValue();
01302 }

GLenum & osg::TextureChunkBase::getTarget ( void   )  [inline, inherited]

const GLenum & osg::TextureChunkBase::getTarget ( void   )  const [inline, inherited]

Definition at line 1320 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfTarget, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01321 {
01322     return _sfTarget.getValue();
01323 }

Int32 & osg::TextureChunkBase::getDirtyLeft ( void   )  [inline, inherited]

Definition at line 1334 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyLeft, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01335 {
01336     return _sfDirtyLeft.getValue();
01337 }

const Int32 & osg::TextureChunkBase::getDirtyLeft ( void   )  const [inline, inherited]

Definition at line 1341 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyLeft, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01342 {
01343     return _sfDirtyLeft.getValue();
01344 }

Int32 & osg::TextureChunkBase::getDirtyMinX ( void   )  [inline, inherited]

Definition at line 1355 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMinX, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::TextureChunk::handleTexture().

01356 {
01357     return _sfDirtyMinX.getValue();
01358 }

const Int32 & osg::TextureChunkBase::getDirtyMinX ( void   )  const [inline, inherited]

Definition at line 1362 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMinX, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01363 {
01364     return _sfDirtyMinX.getValue();
01365 }

Int32 & osg::TextureChunkBase::getDirtyMaxX ( void   )  [inline, inherited]

Definition at line 1376 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMaxX, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::TextureChunk::handleTexture().

01377 {
01378     return _sfDirtyMaxX.getValue();
01379 }

const Int32 & osg::TextureChunkBase::getDirtyMaxX ( void   )  const [inline, inherited]

Definition at line 1383 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMaxX, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01384 {
01385     return _sfDirtyMaxX.getValue();
01386 }

Int32 & osg::TextureChunkBase::getDirtyMinY ( void   )  [inline, inherited]

Definition at line 1397 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMinY, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::TextureChunk::handleTexture().

01398 {
01399     return _sfDirtyMinY.getValue();
01400 }

const Int32 & osg::TextureChunkBase::getDirtyMinY ( void   )  const [inline, inherited]

Definition at line 1404 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMinY, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01405 {
01406     return _sfDirtyMinY.getValue();
01407 }

Int32 & osg::TextureChunkBase::getDirtyMaxY ( void   )  [inline, inherited]

Definition at line 1418 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMaxY, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::TextureChunk::handleTexture().

01419 {
01420     return _sfDirtyMaxY.getValue();
01421 }

const Int32 & osg::TextureChunkBase::getDirtyMaxY ( void   )  const [inline, inherited]

Definition at line 1425 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMaxY, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01426 {
01427     return _sfDirtyMaxY.getValue();
01428 }

Int32 & osg::TextureChunkBase::getDirtyMinZ ( void   )  [inline, inherited]

Definition at line 1439 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMinZ, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::TextureChunk::handleTexture().

01440 {
01441     return _sfDirtyMinZ.getValue();
01442 }

const Int32 & osg::TextureChunkBase::getDirtyMinZ ( void   )  const [inline, inherited]

Definition at line 1446 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMinZ, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01447 {
01448     return _sfDirtyMinZ.getValue();
01449 }

Int32 & osg::TextureChunkBase::getDirtyMaxZ ( void   )  [inline, inherited]

Definition at line 1460 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMaxZ, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

Referenced by osg::TextureChunk::handleTexture().

01461 {
01462     return _sfDirtyMaxZ.getValue();
01463 }

const Int32 & osg::TextureChunkBase::getDirtyMaxZ ( void   )  const [inline, inherited]

Definition at line 1467 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfDirtyMaxZ, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01468 {
01469     return _sfDirtyMaxZ.getValue();
01470 }

Real32 & osg::TextureChunkBase::getAnisotropy ( void   )  [inline, inherited]

const Real32 & osg::TextureChunkBase::getAnisotropy ( void   )  const [inline, inherited]

Definition at line 1488 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfAnisotropy, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01489 {
01490     return _sfAnisotropy.getValue();
01491 }

Color4f & osg::TextureChunkBase::getBorderColor ( void   )  [inline, inherited]

const Color4f & osg::TextureChunkBase::getBorderColor ( void   )  const [inline, inherited]

Definition at line 1509 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfBorderColor, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01510 {
01511     return _sfBorderColor.getValue();
01512 }

UInt32 & osg::TextureChunkBase::getBorderWidth ( void   )  [inline, inherited]

const UInt32 & osg::TextureChunkBase::getBorderWidth ( void   )  const [inline, inherited]

Definition at line 1530 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfBorderWidth, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

01531 {
01532     return _sfBorderWidth.getValue();
01533 }

UInt32 & osg::TextureChunkBase::getNPOTMatrixScale ( void   )  [inline, inherited]

const UInt32 & osg::TextureChunkBase::getNPOTMatrixScale ( void   )  const [inline, inherited]

Real32 & osg::TextureChunkBase::getShaderOffsetMatrix ( const UInt32  index  )  [inline, inherited]

Definition at line 1566 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_mfShaderOffsetMatrix.

01567 {
01568     return _mfShaderOffsetMatrix[index];
01569 }

MFReal32 & osg::TextureChunkBase::getShaderOffsetMatrix ( void   )  [inline, inherited]

const MFReal32 & osg::TextureChunkBase::getShaderOffsetMatrix ( void   )  const [inline, inherited]

Definition at line 1580 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_mfShaderOffsetMatrix.

01581 {
01582     return _mfShaderOffsetMatrix;
01583 }

void osg::TextureChunkBase::setInternalFormat ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setExternalFormat ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setScale ( const bool &  value  )  [inline, inherited]

Definition at line 550 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfScale, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00551 {
00552     _sfScale.setValue(value);
00553 }

void osg::TextureChunkBase::setFrame ( const UInt32 value  )  [inline, inherited]

Definition at line 571 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfFrame, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00572 {
00573     _sfFrame.setValue(value);
00574 }

void osg::TextureChunkBase::setMinFilter ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setMagFilter ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setWrapS ( const GLenum &  value  )  [inline, inherited]

Definition at line 634 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfWrapS, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00635 {
00636     _sfWrapS.setValue(value);
00637 }

void osg::TextureChunkBase::setWrapT ( const GLenum &  value  )  [inline, inherited]

Definition at line 655 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfWrapT, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00656 {
00657     _sfWrapT.setValue(value);
00658 }

void osg::TextureChunkBase::setWrapR ( const GLenum &  value  )  [inline, inherited]

Definition at line 676 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfWrapR, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00677 {
00678     _sfWrapR.setValue(value);
00679 }

void osg::TextureChunkBase::setEnvMode ( const GLenum &  value  )  [inline, inherited]

Definition at line 697 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfEnvMode, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00698 {
00699     _sfEnvMode.setValue(value);
00700 }

void osg::TextureChunkBase::setEnvColor ( const Color4f value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvCombineRGB ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvCombineAlpha ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvScaleRGB ( const Real32 value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvScaleAlpha ( const Real32 value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvSource0RGB ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvSource1RGB ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvSource2RGB ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvSource0Alpha ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvSource1Alpha ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvSource2Alpha ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvOperand0RGB ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvOperand1RGB ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvOperand2RGB ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvOperand0Alpha ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvOperand1Alpha ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setEnvOperand2Alpha ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setGLId ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setIgnoreGLForAspect ( const Int32 value  )  [inline, inherited]

void osg::TextureChunkBase::setPointSprite ( const bool &  value  )  [inline, inherited]

void osg::TextureChunkBase::setPriority ( const Real32 value  )  [inline, inherited]

void osg::TextureChunkBase::setShaderOperation ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setShaderInput ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setShaderOffsetScale ( const Real32 value  )  [inline, inherited]

void osg::TextureChunkBase::setShaderOffsetBias ( const Real32 value  )  [inline, inherited]

void osg::TextureChunkBase::setShaderRGBADotProduct ( const GLenum &  value  )  [inline, inherited]

void osg::TextureChunkBase::setShaderCullModes ( const UInt8 value  )  [inline, inherited]

void osg::TextureChunkBase::setShaderConstEye ( const Vec3f value  )  [inline, inherited]

void osg::TextureChunkBase::setLodBias ( const Real32 value  )  [inline, inherited]

void osg::TextureChunkBase::setTarget ( const GLenum &  value  )  [inline, inherited]

Definition at line 1327 of file OSGTextureChunkBase.inl.

References osg::TextureChunkBase::_sfTarget, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

01328 {
01329     _sfTarget.setValue(value);
01330 }

void osg::TextureChunkBase::setDirtyLeft ( const Int32 value  )  [inline, inherited]

void osg::TextureChunkBase::setDirtyMinX ( const Int32 value  )  [inline, inherited]

void osg::TextureChunkBase::setDirtyMaxX ( const Int32 value  )  [inline, inherited]

void osg::TextureChunkBase::setDirtyMinY ( const Int32 value  )  [inline, inherited]

void osg::TextureChunkBase::setDirtyMaxY ( const Int32 value  )  [inline, inherited]

void osg::TextureChunkBase::setDirtyMinZ ( const Int32 value  )  [inline, inherited]

void osg::TextureChunkBase::setDirtyMaxZ ( const Int32 value  )  [inline, inherited]

void osg::TextureChunkBase::setAnisotropy ( const Real32 value  )  [inline, inherited]

void osg::TextureChunkBase::setBorderColor ( const Color4f value  )  [inline, inherited]

void osg::TextureChunkBase::setBorderWidth ( const UInt32 value  )  [inline, inherited]

void osg::TextureChunkBase::setNPOTMatrixScale ( const UInt32 value  )  [inline, inherited]

void osg::TextureChunkBase::executeSyncImpl ( TextureChunkBase pOther,
const BitVector whichField 
) [protected, inherited]

Definition at line 1712 of file OSGTextureChunkBase.cpp.

References osg::TextureChunkBase::_mfShaderOffsetMatrix, osg::TextureChunkBase::_sfAnisotropy, osg::TextureChunkBase::_sfBorderColor, osg::TextureChunkBase::_sfBorderWidth, osg::TextureChunkBase::_sfDirtyLeft, osg::TextureChunkBase::_sfDirtyMaxX, osg::TextureChunkBase::_sfDirtyMaxY, osg::TextureChunkBase::_sfDirtyMaxZ, osg::TextureChunkBase::_sfDirtyMinX, osg::TextureChunkBase::_sfDirtyMinY, osg::TextureChunkBase::_sfDirtyMinZ, osg::TextureChunkBase::_sfEnvColor, osg::TextureChunkBase::_sfEnvCombineAlpha, osg::TextureChunkBase::_sfEnvCombineRGB, osg::TextureChunkBase::_sfEnvMode, osg::TextureChunkBase::_sfEnvOperand0Alpha, osg::TextureChunkBase::_sfEnvOperand0RGB, osg::TextureChunkBase::_sfEnvOperand1Alpha, osg::TextureChunkBase::_sfEnvOperand1RGB, osg::TextureChunkBase::_sfEnvOperand2Alpha, osg::TextureChunkBase::_sfEnvOperand2RGB, osg::TextureChunkBase::_sfEnvScaleAlpha, osg::TextureChunkBase::_sfEnvScaleRGB, osg::TextureChunkBase::_sfEnvSource0Alpha, osg::TextureChunkBase::_sfEnvSource0RGB, osg::TextureChunkBase::_sfEnvSource1Alpha, osg::TextureChunkBase::_sfEnvSource1RGB, osg::TextureChunkBase::_sfEnvSource2Alpha, osg::TextureChunkBase::_sfEnvSource2RGB, osg::TextureChunkBase::_sfExternalFormat, osg::TextureChunkBase::_sfFrame, osg::TextureChunkBase::_sfGLId, osg::TextureChunkBase::_sfIgnoreGLForAspect, osg::TextureChunkBase::_sfImage, osg::TextureChunkBase::_sfInternalFormat, osg::TextureChunkBase::_sfLodBias, osg::TextureChunkBase::_sfMagFilter, osg::TextureChunkBase::_sfMinFilter, osg::TextureChunkBase::_sfNPOTMatrixScale, osg::TextureChunkBase::_sfPointSprite, osg::TextureChunkBase::_sfPriority, osg::TextureChunkBase::_sfScale, osg::TextureChunkBase::_sfShaderConstEye, osg::TextureChunkBase::_sfShaderCullModes, osg::TextureChunkBase::_sfShaderInput, osg::TextureChunkBase::_sfShaderOffsetBias, osg::TextureChunkBase::_sfShaderOffsetScale, osg::TextureChunkBase::_sfShaderOperation, osg::TextureChunkBase::_sfShaderRGBADotProduct, osg::TextureChunkBase::_sfTarget, osg::TextureChunkBase::_sfWrapR, osg::TextureChunkBase::_sfWrapS, osg::TextureChunkBase::_sfWrapT, osg::TextureChunkBase::AnisotropyFieldMask, osg::TextureChunkBase::BorderColorFieldMask, osg::TextureChunkBase::BorderWidthFieldMask, osg::TextureChunkBase::DirtyLeftFieldMask, osg::TextureChunkBase::DirtyMaxXFieldMask, osg::TextureChunkBase::DirtyMaxYFieldMask, osg::TextureChunkBase::DirtyMaxZFieldMask, osg::TextureChunkBase::DirtyMinXFieldMask, osg::TextureChunkBase::DirtyMinYFieldMask, osg::TextureChunkBase::DirtyMinZFieldMask, osg::TextureChunkBase::EnvColorFieldMask, osg::TextureChunkBase::EnvCombineAlphaFieldMask, osg::TextureChunkBase::EnvCombineRGBFieldMask, osg::TextureChunkBase::EnvModeFieldMask, osg::TextureChunkBase::EnvOperand0AlphaFieldMask, osg::TextureChunkBase::EnvOperand0RGBFieldMask, osg::TextureChunkBase::EnvOperand1AlphaFieldMask, osg::TextureChunkBase::EnvOperand1RGBFieldMask, osg::TextureChunkBase::EnvOperand2AlphaFieldMask, osg::TextureChunkBase::EnvOperand2RGBFieldMask, osg::TextureChunkBase::EnvScaleAlphaFieldMask, osg::TextureChunkBase::EnvScaleRGBFieldMask, osg::TextureChunkBase::EnvSource0AlphaFieldMask, osg::TextureChunkBase::EnvSource0RGBFieldMask, osg::TextureChunkBase::EnvSource1AlphaFieldMask, osg::TextureChunkBase::EnvSource1RGBFieldMask, osg::TextureChunkBase::EnvSource2AlphaFieldMask, osg::TextureChunkBase::EnvSource2RGBFieldMask, osg::StateChunkBase::executeSyncImpl(), osg::TextureChunkBase::ExternalFormatFieldMask, osg::TextureChunkBase::FrameFieldMask, osg::TextureChunkBase::GLIdFieldMask, osg::TextureChunkBase::IgnoreGLForAspectFieldMask, osg::TextureChunkBase::ImageFieldMask, osg::TextureChunkBase::InternalFormatFieldMask, osg::TextureChunkBase::LodBiasFieldMask, osg::TextureChunkBase::MagFilterFieldMask, osg::TextureChunkBase::MinFilterFieldMask, osg::FieldBits::NoField, osg::TextureChunkBase::NPOTMatrixScaleFieldMask, osg::TextureChunkBase::PointSpriteFieldMask, osg::TextureChunkBase::PriorityFieldMask, osg::TextureChunkBase::ScaleFieldMask, osg::TextureChunkBase::ShaderConstEyeFieldMask, osg::TextureChunkBase::ShaderCullModesFieldMask, osg::TextureChunkBase::ShaderInputFieldMask, osg::TextureChunkBase::ShaderOffsetBiasFieldMask, osg::TextureChunkBase::ShaderOffsetMatrixFieldMask, osg::TextureChunkBase::ShaderOffsetScaleFieldMask, osg::TextureChunkBase::ShaderOperationFieldMask, osg::TextureChunkBase::ShaderRGBADotProductFieldMask, osg::MField< FieldTypeT, fieldNameSpace >::syncWith(), osg::SField< FieldTypeT, fieldNameSpace >::syncWith(), osg::TextureChunkBase::TargetFieldMask, osg::TextureChunkBase::WrapRFieldMask, osg::TextureChunkBase::WrapSFieldMask, and osg::TextureChunkBase::WrapTFieldMask.

Referenced by osg::TextureChunkBase::executeSync(), and executeSyncImpl().

01714 {
01715 
01716     Inherited::executeSyncImpl(pOther, whichField);
01717 
01718     if(FieldBits::NoField != (ImageFieldMask & whichField))
01719         _sfImage.syncWith(pOther->_sfImage);
01720 
01721     if(FieldBits::NoField != (InternalFormatFieldMask & whichField))
01722         _sfInternalFormat.syncWith(pOther->_sfInternalFormat);
01723 
01724     if(FieldBits::NoField != (ExternalFormatFieldMask & whichField))
01725         _sfExternalFormat.syncWith(pOther->_sfExternalFormat);
01726 
01727     if(FieldBits::NoField != (ScaleFieldMask & whichField))
01728         _sfScale.syncWith(pOther->_sfScale);
01729 
01730     if(FieldBits::NoField != (FrameFieldMask & whichField))
01731         _sfFrame.syncWith(pOther->_sfFrame);
01732 
01733     if(FieldBits::NoField != (MinFilterFieldMask & whichField))
01734         _sfMinFilter.syncWith(pOther->_sfMinFilter);
01735 
01736     if(FieldBits::NoField != (MagFilterFieldMask & whichField))
01737         _sfMagFilter.syncWith(pOther->_sfMagFilter);
01738 
01739     if(FieldBits::NoField != (WrapSFieldMask & whichField))
01740         _sfWrapS.syncWith(pOther->_sfWrapS);
01741 
01742     if(FieldBits::NoField != (WrapTFieldMask & whichField))
01743         _sfWrapT.syncWith(pOther->_sfWrapT);
01744 
01745     if(FieldBits::NoField != (WrapRFieldMask & whichField))
01746         _sfWrapR.syncWith(pOther->_sfWrapR);
01747 
01748     if(FieldBits::NoField != (EnvModeFieldMask & whichField))
01749         _sfEnvMode.syncWith(pOther->_sfEnvMode);
01750 
01751     if(FieldBits::NoField != (EnvColorFieldMask & whichField))
01752         _sfEnvColor.syncWith(pOther->_sfEnvColor);
01753 
01754     if(FieldBits::NoField != (EnvCombineRGBFieldMask & whichField))
01755         _sfEnvCombineRGB.syncWith(pOther->_sfEnvCombineRGB);
01756 
01757     if(FieldBits::NoField != (EnvCombineAlphaFieldMask & whichField))
01758         _sfEnvCombineAlpha.syncWith(pOther->_sfEnvCombineAlpha);
01759 
01760     if(FieldBits::NoField != (EnvScaleRGBFieldMask & whichField))
01761         _sfEnvScaleRGB.syncWith(pOther->_sfEnvScaleRGB);
01762 
01763     if(FieldBits::NoField != (EnvScaleAlphaFieldMask & whichField))
01764         _sfEnvScaleAlpha.syncWith(pOther->_sfEnvScaleAlpha);
01765 
01766     if(FieldBits::NoField != (EnvSource0RGBFieldMask & whichField))
01767         _sfEnvSource0RGB.syncWith(pOther->_sfEnvSource0RGB);
01768 
01769     if(FieldBits::NoField != (EnvSource1RGBFieldMask & whichField))
01770         _sfEnvSource1RGB.syncWith(pOther->_sfEnvSource1RGB);
01771 
01772     if(FieldBits::NoField != (EnvSource2RGBFieldMask & whichField))
01773         _sfEnvSource2RGB.syncWith(pOther->_sfEnvSource2RGB);
01774 
01775     if(FieldBits::NoField != (EnvSource0AlphaFieldMask & whichField))
01776         _sfEnvSource0Alpha.syncWith(pOther->_sfEnvSource0Alpha);
01777 
01778     if(FieldBits::NoField != (EnvSource1AlphaFieldMask & whichField))
01779         _sfEnvSource1Alpha.syncWith(pOther->_sfEnvSource1Alpha);
01780 
01781     if(FieldBits::NoField != (EnvSource2AlphaFieldMask & whichField))
01782         _sfEnvSource2Alpha.syncWith(pOther->_sfEnvSource2Alpha);
01783 
01784     if(FieldBits::NoField != (EnvOperand0RGBFieldMask & whichField))
01785         _sfEnvOperand0RGB.syncWith(pOther->_sfEnvOperand0RGB);
01786 
01787     if(FieldBits::NoField != (EnvOperand1RGBFieldMask & whichField))
01788         _sfEnvOperand1RGB.syncWith(pOther->_sfEnvOperand1RGB);
01789 
01790     if(FieldBits::NoField != (EnvOperand2RGBFieldMask & whichField))
01791         _sfEnvOperand2RGB.syncWith(pOther->_sfEnvOperand2RGB);
01792 
01793     if(FieldBits::NoField != (EnvOperand0AlphaFieldMask & whichField))
01794         _sfEnvOperand0Alpha.syncWith(pOther->_sfEnvOperand0Alpha);
01795 
01796     if(FieldBits::NoField != (EnvOperand1AlphaFieldMask & whichField))
01797         _sfEnvOperand1Alpha.syncWith(pOther->_sfEnvOperand1Alpha);
01798 
01799     if(FieldBits::NoField != (EnvOperand2AlphaFieldMask & whichField))
01800         _sfEnvOperand2Alpha.syncWith(pOther->_sfEnvOperand2Alpha);
01801 
01802     if(FieldBits::NoField != (GLIdFieldMask & whichField))
01803         _sfGLId.syncWith(pOther->_sfGLId);
01804 
01805     if(FieldBits::NoField != (IgnoreGLForAspectFieldMask & whichField))
01806         _sfIgnoreGLForAspect.syncWith(pOther->_sfIgnoreGLForAspect);
01807 
01808     if(FieldBits::NoField != (PointSpriteFieldMask & whichField))
01809         _sfPointSprite.syncWith(pOther->_sfPointSprite);
01810 
01811     if(FieldBits::NoField != (PriorityFieldMask & whichField))
01812         _sfPriority.syncWith(pOther->_sfPriority);
01813 
01814     if(FieldBits::NoField != (ShaderOperationFieldMask & whichField))
01815         _sfShaderOperation.syncWith(pOther->_sfShaderOperation);
01816 
01817     if(FieldBits::NoField != (ShaderInputFieldMask & whichField))
01818         _sfShaderInput.syncWith(pOther->_sfShaderInput);
01819 
01820     if(FieldBits::NoField != (ShaderOffsetMatrixFieldMask & whichField))
01821         _mfShaderOffsetMatrix.syncWith(pOther->_mfShaderOffsetMatrix);
01822 
01823     if(FieldBits::NoField != (ShaderOffsetScaleFieldMask & whichField))
01824         _sfShaderOffsetScale.syncWith(pOther->_sfShaderOffsetScale);
01825 
01826     if(FieldBits::NoField != (ShaderOffsetBiasFieldMask & whichField))
01827         _sfShaderOffsetBias.syncWith(pOther->_sfShaderOffsetBias);
01828 
01829     if(FieldBits::NoField != (ShaderRGBADotProductFieldMask & whichField))
01830         _sfShaderRGBADotProduct.syncWith(pOther->_sfShaderRGBADotProduct);
01831 
01832     if(FieldBits::NoField != (ShaderCullModesFieldMask & whichField))
01833         _sfShaderCullModes.syncWith(pOther->_sfShaderCullModes);
01834 
01835     if(FieldBits::NoField != (ShaderConstEyeFieldMask & whichField))
01836         _sfShaderConstEye.syncWith(pOther->_sfShaderConstEye);
01837 
01838     if(FieldBits::NoField != (LodBiasFieldMask & whichField))
01839         _sfLodBias.syncWith(pOther->_sfLodBias);
01840 
01841     if(FieldBits::NoField != (TargetFieldMask & whichField))
01842         _sfTarget.syncWith(pOther->_sfTarget);
01843 
01844     if(FieldBits::NoField != (DirtyLeftFieldMask & whichField))
01845         _sfDirtyLeft.syncWith(pOther->_sfDirtyLeft);
01846 
01847     if(FieldBits::NoField != (DirtyMinXFieldMask & whichField))
01848         _sfDirtyMinX.syncWith(pOther->_sfDirtyMinX);
01849 
01850     if(FieldBits::NoField != (DirtyMaxXFieldMask & whichField))
01851         _sfDirtyMaxX.syncWith(pOther->_sfDirtyMaxX);
01852 
01853     if(FieldBits::NoField != (DirtyMinYFieldMask & whichField))
01854         _sfDirtyMinY.syncWith(pOther->_sfDirtyMinY);
01855 
01856     if(FieldBits::NoField != (DirtyMaxYFieldMask & whichField))
01857         _sfDirtyMaxY.syncWith(pOther->_sfDirtyMaxY);
01858 
01859     if(FieldBits::NoField != (DirtyMinZFieldMask & whichField))
01860         _sfDirtyMinZ.syncWith(pOther->_sfDirtyMinZ);
01861 
01862     if(FieldBits::NoField != (DirtyMaxZFieldMask & whichField))
01863         _sfDirtyMaxZ.syncWith(pOther->_sfDirtyMaxZ);
01864 
01865     if(FieldBits::NoField != (AnisotropyFieldMask & whichField))
01866         _sfAnisotropy.syncWith(pOther->_sfAnisotropy);
01867 
01868     if(FieldBits::NoField != (BorderColorFieldMask & whichField))
01869         _sfBorderColor.syncWith(pOther->_sfBorderColor);
01870 
01871     if(FieldBits::NoField != (BorderWidthFieldMask & whichField))
01872         _sfBorderWidth.syncWith(pOther->_sfBorderWidth);
01873 
01874     if(FieldBits::NoField != (NPOTMatrixScaleFieldMask & whichField))
01875         _sfNPOTMatrixScale.syncWith(pOther->_sfNPOTMatrixScale);
01876 
01877 
01878 }

void osg::StateChunkBase::executeSyncImpl ( StateChunkBase pOther,
const BitVector whichField 
) [protected, inherited]

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

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

UInt32 osg::StateChunk::getClassId ( void   )  const [inline, inherited]

Definition at line 48 of file OSGStateChunk.inl.

References osg::StateChunk::getClass(), and osg::StateChunkClass::getId().

00049 {
00050     return getClass()->getId();
00051 }

void StateChunk::update ( DrawActionBase action  )  [virtual, inherited]

Reimplemented in osg::SHLChunk.

Definition at line 311 of file OSGStateChunk.cpp.

00312 {
00313 }

SFBool * osg::StateChunkBase::getSFIgnore ( void   )  [inline, inherited]

Definition at line 75 of file OSGStateChunkBase.inl.

References osg::StateChunkBase::_sfIgnore.

00076 {
00077     return &_sfIgnore;
00078 }

bool & osg::StateChunkBase::getIgnore ( void   )  [inline, inherited]

Definition at line 83 of file OSGStateChunkBase.inl.

References osg::StateChunkBase::_sfIgnore, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00084 {
00085     return _sfIgnore.getValue();
00086 }

const bool & osg::StateChunkBase::getIgnore ( void   )  const [inline, inherited]

Definition at line 90 of file OSGStateChunkBase.inl.

References osg::StateChunkBase::_sfIgnore, and osg::SField< FieldTypeT, fieldNameSpace >::getValue().

00091 {
00092     return _sfIgnore.getValue();
00093 }

void osg::StateChunkBase::setIgnore ( const bool &  value  )  [inline, inherited]

Definition at line 97 of file OSGStateChunkBase.inl.

References osg::StateChunkBase::_sfIgnore, and osg::SField< FieldTypeT, fieldNameSpace >::setValue().

00098 {
00099     _sfIgnore.setValue(value);
00100 }

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]

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 }

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]

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]

Generic Field Access

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]

Generic Field Access

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 }

template<class ObjectPtrT>
void osg::FieldContainer::newPtr ( ObjectPtrT &  result,
const typename ObjectPtrT::StoredObjectType *  prototypeP 
) [inline, static, protected, inherited]

Definition at line 138 of file OSGFieldContainerImpl.inl.

References osg::ChangeList::addCreated(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ThreadManager::getNumAspects(), osg::FieldContainerFactory::registerFieldContainer(), and osg::FieldContainerFactory::the().

Referenced by osg::XWindowBase::createEmpty(), osg::WIN32WindowBase::createEmpty(), osg::ViewportBase::createEmpty(), osg::VertexProgramChunkBase::createEmpty(), osg::TwoSidedLightingChunkBase::createEmpty(), osg::TransformChunkBase::createEmpty(), osg::TransformBase::createEmpty(), osg::TileCameraDecoratorBase::createEmpty(), osg::TextureTransformChunkBase::createEmpty(), osg::TextureGrabForegroundBase::createEmpty(), osg::TextureGrabBackgroundBase::createEmpty(), osg::TextureChunkBase::createEmpty(), osg::TextureBackgroundBase::createEmpty(), osg::TexGenChunkBase::createEmpty(), osg::SwitchMaterialBase::createEmpty(), osg::SwitchBase::createEmpty(), osg::SurfaceBase::createEmpty(), osg::StringAttributeMapBase::createEmpty(), osg::StereoBufferViewportBase::createEmpty(), osg::StencilChunkBase::createEmpty(), osg::StateSortingGroupBase::createEmpty(), osg::StateBase::createEmpty(), osg::SpotLightBase::createEmpty(), osg::SortFirstWindowBase::createEmpty(), osg::SolidBackgroundBase::createEmpty(), osg::SlicesBase::createEmpty(), osg::SkyBackgroundBase::createEmpty(), osg::SimpleTexturedMaterialBase::createEmpty(), osg::SimpleStatisticsForegroundBase::createEmpty(), osg::SimpleMaterialBase::createEmpty(), osg::SHLParameterChunkBase::createEmpty(), osg::SHLChunkBase::createEmpty(), osg::ShearedStereoCameraDecoratorBase::createEmpty(), osg::ShaderParameterVec4fBase::createEmpty(), osg::ShaderParameterVec3fBase::createEmpty(), osg::ShaderParameterVec2fBase::createEmpty(), osg::ShaderParameterStringBase::createEmpty(), osg::ShaderParameterRealBase::createEmpty(), osg::ShaderParameterMVec4fBase::createEmpty(), osg::ShaderParameterMVec3fBase::createEmpty(), osg::ShaderParameterMVec2fBase::createEmpty(), osg::ShaderParameterMRealBase::createEmpty(), osg::ShaderParameterMMatrixBase::createEmpty(), osg::ShaderParameterMIntBase::createEmpty(), osg::ShaderParameterMatrixBase::createEmpty(), osg::ShaderParameterIntBase::createEmpty(), osg::ShaderParameterBoolBase::createEmpty(), osg::ScreenGroupBase::createEmpty(), osg::SClipPlaneChunkBase::createEmpty(), osg::ResolutionDisplayFilterBase::createEmpty(), osg::RenderOptionsBase::createEmpty(), osg::RegisterCombinersChunkBase::createEmpty(), osg::QTWindowBase::createEmpty(), osg::ProxyGroupBase::createEmpty(), osg::ProjectionCameraDecoratorBase::createEmpty(), osg::PolygonForegroundBase::createEmpty(), osg::PolygonChunkBase::createEmpty(), osg::PolygonBackgroundBase::createEmpty(), osg::PointLightBase::createEmpty(), osg::PointChunkBase::createEmpty(), osg::PhongMaterialBase::createEmpty(), osg::PerspectiveCameraBase::createEmpty(), osg::PassiveWindowBase::createEmpty(), osg::PassiveViewportBase::createEmpty(), osg::PassiveBackgroundBase::createEmpty(), osg::ParticlesBase::createEmpty(), osg::OrthographicCameraBase::createEmpty(), osg::OffCenterPerspectiveCameraBase::createEmpty(), osg::MultiPassMaterialBase::createEmpty(), osg::MultiDisplayWindowBase::createEmpty(), osg::MatrixCameraDecoratorBase::createEmpty(), osg::MatrixCameraBase::createEmpty(), osg::MaterialPoolBase::createEmpty(), osg::MaterialGroupBase::createEmpty(), osg::MaterialChunkBase::createEmpty(), osg::LogicOpChunkBase::createEmpty(), osg::LineChunkBase::createEmpty(), osg::LightModelChunkBase::createEmpty(), osg::LightEnvBase::createEmpty(), osg::LightChunkBase::createEmpty(), osg::InverseTransformBase::createEmpty(), osg::InlineBase::createEmpty(), osg::ImageForegroundBase::createEmpty(), osg::ImageBase::createEmpty(), osg::ImageBackgroundBase::createEmpty(), osg::GroupBase::createEmpty(), osg::GraphicStatisticsForegroundBase::createEmpty(), osg::GradientBackgroundBase::createEmpty(), osg::GrabForegroundBase::createEmpty(), osg::GLUTWindowBase::createEmpty(), osg::GeometryBase::createEmpty(), osg::FresnelMaterialBase::createEmpty(), osg::FragmentProgramChunkBase::createEmpty(), osg::FileGrabForegroundBase::createEmpty(), osg::FCPtrAttributeMapBase::createEmpty(), osg::FBOViewportBase::createEmpty(), osg::FatBorderChunkBase::createEmpty(), osg::DVRVolumeTextureBase::createEmpty(), osg::DVRVolumeBase::createEmpty(), osg::DVRSimpleShaderBase::createEmpty(), osg::DVRSimpleLUTShaderBase::createEmpty(), osg::DVRMtexLUTShaderBase::createEmpty(), osg::DVRLookupTableBase::createEmpty(), osg::DVRIsoSurfaceBase::createEmpty(), osg::DVRIsoShaderBase::createEmpty(), osg::DVRGeometryBase::createEmpty(), osg::DVRClipObjectsBase::createEmpty(), osg::DVRClipGeometryBase::createEmpty(), osg::DVRAppearanceBase::createEmpty(), osg::DistortionDisplayFilterBase::createEmpty(), osg::DistanceLODBase::createEmpty(), osg::DisplayFilterForegroundBase::createEmpty(), osg::DisplayCalibrationBase::createEmpty(), osg::DirectionalLightBase::createEmpty(), osg::DepthClearBackgroundBase::createEmpty(), osg::DepthChunkBase::createEmpty(), createEmpty(), osg::ComponentTransformBase::createEmpty(), osg::ColorMaskChunkBase::createEmpty(), osg::ColorDisplayFilterBase::createEmpty(), osg::ColorBufferViewportBase::createEmpty(), osg::ClusterWindowBase::createEmpty(), osg::ClipPlaneChunkBase::createEmpty(), osg::ClipPlaneBase::createEmpty(), osg::ChunkMaterialBase::createEmpty(), osg::BlendChunkBase::createEmpty(), osg::BillboardBase::createEmpty(), osg::XWindowBase::shallowCopy(), osg::WIN32WindowBase::shallowCopy(), osg::ViewportBase::shallowCopy(), osg::VertexProgramChunkBase::shallowCopy(), osg::TwoSidedLightingChunkBase::shallowCopy(), osg::TransformChunkBase::shallowCopy(), osg::TransformBase::shallowCopy(), osg::TileCameraDecoratorBase::shallowCopy(), osg::TextureTransformChunkBase::shallowCopy(), osg::TextureGrabForegroundBase::shallowCopy(), osg::TextureGrabBackgroundBase::shallowCopy(), osg::TextureChunkBase::shallowCopy(), osg::TextureBackgroundBase::shallowCopy(), osg::TexGenChunkBase::shallowCopy(), osg::SwitchMaterialBase::shallowCopy(), osg::SwitchBase::shallowCopy(), osg::SurfaceBase::shallowCopy(), osg::StringAttributeMapBase::shallowCopy(), osg::StereoBufferViewportBase::shallowCopy(), osg::StencilChunkBase::shallowCopy(), osg::StateSortingGroupBase::shallowCopy(), osg::StateBase::shallowCopy(), osg::SpotLightBase::shallowCopy(), osg::SortFirstWindowBase::shallowCopy(), osg::SolidBackgroundBase::shallowCopy(), osg::SlicesBase::shallowCopy(), osg::SkyBackgroundBase::shallowCopy(), osg::SimpleTexturedMaterialBase::shallowCopy(), osg::SimpleStatisticsForegroundBase::shallowCopy(), osg::SimpleMaterialBase::shallowCopy(), osg::SHLParameterChunkBase::shallowCopy(), osg::SHLChunkBase::shallowCopy(), osg::ShearedStereoCameraDecoratorBase::shallowCopy(), osg::ShaderParameterVec4fBase::shallowCopy(), osg::ShaderParameterVec3fBase::shallowCopy(), osg::ShaderParameterVec2fBase::shallowCopy(), osg::ShaderParameterStringBase::shallowCopy(), osg::ShaderParameterRealBase::shallowCopy(), osg::ShaderParameterMVec4fBase::shallowCopy(), osg::ShaderParameterMVec3fBase::shallowCopy(), osg::ShaderParameterMVec2fBase::shallowCopy(), osg::ShaderParameterMRealBase::shallowCopy(), osg::ShaderParameterMMatrixBase::shallowCopy(), osg::ShaderParameterMIntBase::shallowCopy(), osg::ShaderParameterMatrixBase::shallowCopy(), osg::ShaderParameterIntBase::shallowCopy(), osg::ShaderParameterBoolBase::shallowCopy(), osg::ScreenGroupBase::shallowCopy(), osg::SClipPlaneChunkBase::shallowCopy(), osg::ResolutionDisplayFilterBase::shallowCopy(), osg::RenderOptionsBase::shallowCopy(), osg::RegisterCombinersChunkBase::shallowCopy(), osg::QTWindowBase::shallowCopy(), osg::ProxyGroupBase::shallowCopy(), osg::ProjectionCameraDecoratorBase::shallowCopy(), osg::PolygonForegroundBase::shallowCopy(), osg::PolygonChunkBase::shallowCopy(), osg::PolygonBackgroundBase::shallowCopy(), osg::PointLightBase::shallowCopy(), osg::PointChunkBase::shallowCopy(), osg::PhongMaterialBase::shallowCopy(), osg::PerspectiveCameraBase::shallowCopy(), osg::PassiveWindowBase::shallowCopy(), osg::PassiveViewportBase::shallowCopy(), osg::PassiveBackgroundBase::shallowCopy(), osg::ParticlesBase::shallowCopy(), osg::OrthographicCameraBase::shallowCopy(), osg::OffCenterPerspectiveCameraBase::shallowCopy(), osg::MultiPassMaterialBase::shallowCopy(), osg::MultiDisplayWindowBase::shallowCopy(), osg::MatrixCameraDecoratorBase::shallowCopy(), osg::MatrixCameraBase::shallowCopy(), osg::MaterialPoolBase::shallowCopy(), osg::MaterialGroupBase::shallowCopy(), osg::MaterialChunkBase::shallowCopy(), osg::LogicOpChunkBase::shallowCopy(), osg::LineChunkBase::shallowCopy(), osg::LightModelChunkBase::shallowCopy(), osg::LightEnvBase::shallowCopy(), osg::LightChunkBase::shallowCopy(), osg::InverseTransformBase::shallowCopy(), osg::InlineBase::shallowCopy(), osg::ImageForegroundBase::shallowCopy(), osg::ImageBase::shallowCopy(), osg::ImageBackgroundBase::shallowCopy(), osg::GroupBase::shallowCopy(), osg::GraphicStatisticsForegroundBase::shallowCopy(), osg::GradientBackgroundBase::shallowCopy(), osg::GrabForegroundBase::shallowCopy(), osg::GLUTWindowBase::shallowCopy(), osg::GeometryBase::shallowCopy(), osg::FresnelMaterialBase::shallowCopy(), osg::FragmentProgramChunkBase::shallowCopy(), osg::FileGrabForegroundBase::shallowCopy(), osg::FCPtrAttributeMapBase::shallowCopy(), osg::FBOViewportBase::shallowCopy(), osg::FatBorderChunkBase::shallowCopy(), osg::DVRVolumeTextureBase::shallowCopy(), osg::DVRVolumeBase::shallowCopy(), osg::DVRSimpleShaderBase::shallowCopy(), osg::DVRSimpleLUTShaderBase::shallowCopy(), osg::DVRMtexLUTShaderBase::shallowCopy(), osg::DVRLookupTableBase::shallowCopy(), osg::DVRIsoSurfaceBase::shallowCopy(), osg::DVRIsoShaderBase::shallowCopy(), osg::DVRGeometryBase::shallowCopy(), osg::DVRClipObjectsBase::shallowCopy(), osg::DVRClipGeometryBase::shallowCopy(), osg::DVRAppearanceBase::shallowCopy(), osg::DistortionDisplayFilterBase::shallowCopy(), osg::DistanceLODBase::shallowCopy(), osg::DisplayFilterForegroundBase::shallowCopy(), osg::DisplayCalibrationBase::shallowCopy(), osg::DirectionalLightBase::shallowCopy(), osg::DepthClearBackgroundBase::shallowCopy(), osg::DepthChunkBase::shallowCopy(), shallowCopy(), osg::ComponentTransformBase::shallowCopy(), osg::ColorMaskChunkBase::shallowCopy(), osg::ColorDisplayFilterBase::shallowCopy(), osg::ColorBufferViewportBase::shallowCopy(), osg::ClusterWindowBase::shallowCopy(), osg::ClipPlaneChunkBase::shallowCopy(), osg::ClipPlaneBase::shallowCopy(), osg::ChunkMaterialBase::shallowCopy(), osg::BlendChunkBase::shallowCopy(), and osg::BillboardBase::shallowCopy().

00141 {
00142     typedef typename ObjectPtrT::StoredObjectType ObjectType;
00143     
00144     UInt8 *pTmp;
00145     
00146     result._containerSize = sizeof(ObjectType);
00147     
00148     pTmp        = 
00149         static_cast<UInt8 *>(operator new(
00150             sizeof(Int32)      + // ReferenceCount
00151             sizeof(UInt32)     + // ContainerId
00152             sizeof(ObjectType) * ThreadManager::getNumAspects()));
00153     
00154     *(reinterpret_cast<Int32 *>(pTmp)) = 0;
00155     
00156     pTmp += sizeof(Int32);
00157     
00158     result._storeP = (pTmp + sizeof(UInt32));
00159 
00160 #ifdef OSG_DEBUG_FCPTR
00161     result._typedStoreP = reinterpret_cast<FieldContainer *>(result._storeP);
00162 #endif
00163 
00164     *(reinterpret_cast<UInt32 *>(pTmp)) = 
00165         FieldContainerFactory::the()->registerFieldContainer(result);
00166     
00167     Thread::getCurrentChangeList()->addCreated(
00168         *(reinterpret_cast<UInt32 *>(pTmp)));
00169     
00170     pTmp += sizeof(UInt32);
00171     
00172     ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp);
00173 
00174     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00175     {
00176         pTmp = 
00177             reinterpret_cast<UInt8 *>(new (pTmp) ObjectType(*prototypeP));
00178         
00179         pTmp += sizeof(ObjectType);
00180     }
00181     
00182     result->onCreate(prototypeP);
00183 
00184     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00185     {
00186         aObject[i].onCreateAspect(aObject, prototypeP);
00187     }
00188 
00189 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM)
00190 
00191     fprintf(stderr, "GV_MEM_FC_DBG : (%u) cc (%p|%u)\n", 
00192             Thread::getAspect(),
00193             result._storeP,
00194 //            ObjectType::getClassType().getCName(),
00195             ObjectType::getClassType().getId());
00196 #endif
00197 
00198 #ifdef OSG_DEBUG_TYPED_FCPTR
00199     result.updateTypedStore();
00200 #endif
00201 }

template<class ObjectPtrT>
void osg::FieldContainer::newPtr ( ObjectPtrT &  result  )  [inline, static, protected, inherited]

Definition at line 204 of file OSGFieldContainerImpl.inl.

References osg::ChangeList::addCreated(), osg::PThreadBase::getAspect(), osg::PThreadBase::getCurrentChangeList(), osg::ThreadManager::getNumAspects(), osg::FieldContainerFactory::registerFieldContainer(), and osg::FieldContainerFactory::the().

00205 {
00206     typedef typename ObjectPtrT::StoredObjectType ObjectType;
00207     
00208     UInt8 *pTmp;
00209     
00210     result._containerSize = sizeof(ObjectType);
00211     
00212     pTmp        =             
00213         static_cast<UInt8 *>(operator new(
00214             sizeof(Int32)      + // ReferenceCount
00215             sizeof(UInt32)     + // ContainerId
00216             sizeof(ObjectType) * ThreadManager::getNumAspects()));
00217     
00218     *(reinterpret_cast<Int32 *>(pTmp)) = 0;
00219     
00220     pTmp  += sizeof(Int32);
00221     
00222     result._storeP = (pTmp + sizeof(UInt32));
00223     
00224 #ifdef OSG_DEBUG_FCPTR
00225     result._typedStoreP = reinterpret_cast<FieldContainer *>(result._storeP);
00226 #endif
00227 
00228     *(reinterpret_cast<UInt32 *>(pTmp)) = 
00229         FieldContainerFactory::the()->registerFieldContainer(result);
00230     
00231     Thread::getCurrentChangeList()->addCreated(
00232         *(reinterpret_cast<UInt32 *>(pTmp)));
00233     
00234     pTmp += sizeof(UInt32);
00235     
00236     ObjectType *aObject = reinterpret_cast<ObjectType *>(pTmp);
00237 
00238     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00239     {
00240         pTmp = reinterpret_cast<UInt8 *>(new (pTmp) ObjectType());
00241         
00242         pTmp += sizeof(ObjectType);
00243     }
00244     
00245     result->onCreate();
00246     
00247     for(UInt32 i = 0; i < ThreadManager::getNumAspects(); i++)
00248     {
00249         aObject[i].onCreateAspect(aObject);
00250     }
00251 
00252 #if defined(OSG_GV_BETA) && defined(OSG_DBG_MEM)
00253     fprintf(stderr, "GV_MEM_FC_DBG : (%u) c (%p|%u)\n", 
00254             Thread::getAspect(),
00255             result._storeP,
00256 //            ObjectType::getClassType().getCName(),
00257             ObjectType::getClassType().getId());
00258 #endif
00259     
00260 #ifdef OSG_DEBUG_TYPED_FCPTR
00261     result.updateTypedStore();
00262 #endif
00263 }

template<class FieldTypeT>
void osg::FieldContainer::beginEditX ( const BitVector whichField,
FieldTypeT &  field 
) [inline, protected, inherited]

Definition at line 285 of file OSGFieldContainerImpl.inl.

00286 {
00287 //    fieldR.beginEdit();
00288 }

template<class FieldTypeT>
void osg::FieldContainer::endEditX ( const BitVector whichField,
FieldTypeT &  field 
) [inline, protected, inherited]

Definition at line 291 of file OSGFieldContainerImpl.inl.

References osg::endEditCP().

00292 {
00293     FieldContainerPtr tmpPtr(this);
00294     endEditCP(tmpPtr, whichField);
00295 }

void osg::FieldContainer::onCreateAspect ( const FieldContainer aspect0,
const FieldContainer source = NULL 
) [inline, protected, inherited]

Definition at line 323 of file OSGFieldContainerImpl.inl.

00325 {
00326 }


Friends And Related Function Documentation

friend class FieldContainer [friend]

Reimplemented from osg::TextureChunk.

Reimplemented in osg::CubeTextureChunk.

Definition at line 270 of file OSGCubeTextureChunkBase.h.


Member Data Documentation

Initial value:

 
    (TypeTraits<BitVector>::One << CubeTextureChunkBase::PosZImageFieldId)

Definition at line 108 of file OSGCubeTextureChunkBase.h.

Referenced by osg::CubeTextureChunk::changed(), copyFromBin(), copyToBin(), executeSyncImpl(), and getBinSize().

Initial value:

 
    (TypeTraits<BitVector>::One << CubeTextureChunkBase::PosXImageFieldId)

Definition at line 109 of file OSGCubeTextureChunkBase.h.

Referenced by osg::CubeTextureChunk::changed(), copyFromBin(), copyToBin(), executeSyncImpl(), and getBinSize().

Initial value:

 
    (TypeTraits<BitVector>::One << CubeTextureChunkBase::NegXImageFieldId)

Definition at line 110 of file OSGCubeTextureChunkBase.h.

Referenced by osg::CubeTextureChunk::changed(), copyFromBin(), copyToBin(), executeSyncImpl(), and getBinSize().

Initial value:

 
    (TypeTraits<BitVector>::One << CubeTextureChunkBase::PosYImageFieldId)

Definition at line 111 of file OSGCubeTextureChunkBase.h.

Referenced by osg::CubeTextureChunk::changed(), copyFromBin(), copyToBin(), executeSyncImpl(), and getBinSize().

Initial value:

 
    (TypeTraits<BitVector>::One << CubeTextureChunkBase::NegYImageFieldId)

Definition at line 112 of file OSGCubeTextureChunkBase.h.

Referenced by osg::CubeTextureChunk::changed(), copyFromBin(), copyToBin(), executeSyncImpl(), and getBinSize().

Initial value:

 
    (TypeTraits<BitVector>::One << CubeTextureChunkBase::IsReflectionMapFieldId)

Definition at line 113 of file OSGCubeTextureChunkBase.h.

Referenced by copyFromBin(), copyToBin(), executeSyncImpl(), and getBinSize().

Initial value:

 
    (Inherited::MTInfluenceMask) | 
    (static_cast<BitVector>(0x0) << Inherited::NextFieldId)

Reimplemented from osg::TextureChunkBase.

Definition at line 116 of file OSGCubeTextureChunkBase.h.

The image for the positive Z direction for the cube tetxure.

Definition at line 218 of file OSGCubeTextureChunkBase.h.

Referenced by copyFromBin(), copyToBin(), executeSyncImpl(), getBinSize(), getIsReflectionMap(), getSFIsReflectionMap(), and setIsReflectionMap().

Reimplemented from osg::TextureChunkBase.

Definition at line 272 of file OSGCubeTextureChunkBase.h.

Reimplemented from osg::TextureChunkBase.

Definition at line 273 of file OSGCubeTextureChunkBase.h.

Referenced by getClassType(), getClassTypeId(), and getType().

UInt32 TextureChunk::_extTex3D [static, protected, inherited]

UInt32 TextureChunk::_arbMultiTex [static, protected, inherited]

UInt32 TextureChunk::_nvPointSprite [static, protected, inherited]

UInt32 TextureChunk::_nvTextureShader [static, protected, inherited]

UInt32 TextureChunk::_nvTextureShader2 [static, protected, inherited]

UInt32 TextureChunk::_nvTextureShader3 [static, protected, inherited]

Definition at line 202 of file OSGTextureChunk.h.

Referenced by osg::TextureChunk::TextureChunk().

UInt32 TextureChunk::_sgisGenerateMipmap [static, protected, inherited]

UInt32 TextureChunk::_extTextureLodBias [static, protected, inherited]

UInt32 TextureChunk::_arbTextureCompression [static, protected, inherited]

UInt32 TextureChunk::_arbTextureRectangle [static, protected, inherited]

UInt32 TextureChunk::_arbTextureNonPowerOfTwo [static, protected, inherited]

UInt32 TextureChunk::_extTextureFilterAnisotropic [static, protected, inherited]

UInt32 TextureChunk::_funcTexImage3D = Window::invalidFunctionID [static, protected, inherited]

UInt32 TextureChunk::_funcTexSubImage3D = Window::invalidFunctionID [static, protected, inherited]

UInt32 TextureChunk::_funcActiveTexture = Window::invalidFunctionID [static, protected, inherited]

UInt32 TextureChunk::_arbCubeTex [static, protected, inherited]

UInt32 TextureChunk::_funcCompressedTexImage1D = Window::invalidFunctionID [static, protected, inherited]

UInt32 TextureChunk::_funcCompressedTexSubImage1D = Window::invalidFunctionID [static, protected, inherited]

UInt32 TextureChunk::_funcCompressedTexImage2D = Window::invalidFunctionID [static, protected, inherited]

UInt32 TextureChunk::_funcCompressedTexSubImage2D = Window::invalidFunctionID [static, protected, inherited]

UInt32 TextureChunk::_funcCompressedTexImage3D = Window::invalidFunctionID [static, protected, inherited]

UInt32 TextureChunk::_funcCompressedTexSubImage3D = Window::invalidFunctionID [static, protected, inherited]

StateChunkClass TextureChunk::_class [static, protected, inherited]

ImagePtr osg::TextureChunkBase::_sfImage [protected, inherited]

GLenum osg::TextureChunkBase::_sfInternalFormat [protected, inherited]

GLenum osg::TextureChunkBase::_sfExternalFormat [protected, inherited]

bool osg::TextureChunkBase::_sfScale [protected, inherited]

Specifies whether the image should be scaled to the next power of two, thus filling the whole texture coordinate range, or if it should be put in the lower left corner, leaving the rest of the texture undefined. This is mainly used for rapidly changing non power of two textures, to get around the scaling overhead. If set to false, NPOTMatrixScale can be used to use the texture matrix to correct the texture coordinates to show the used part of the texture.

Definition at line 545 of file OSGTextureChunkBase.h.

Referenced by osg::TextureChunkBase::copyFromBin(), osg::TextureChunkBase::copyToBin(), osg::TextureChunkBase::executeSyncImpl(), osg::TextureChunkBase::getBinSize(), osg::TextureChunkBase::getScale(), osg::TextureChunkBase::getSFScale(), and osg::TextureChunkBase::setScale().

UInt32 osg::TextureChunkBase::_sfFrame [protected, inherited]

Select the frame of the image to be used. See osg::Image about details concerning multi-frame images. Hint! For fast update use GL_LINEAR or GL_NEAREST filters, as mipmap creation is slow right now.

Definition at line 546 of file OSGTextureChunkBase.h.

Referenced by osg::TextureChunkBase::copyFromBin(), osg::TextureChunkBase::copyToBin(), osg::TextureChunkBase::executeSyncImpl(), osg::TextureChunkBase::getBinSize(), osg::TextureChunkBase::getFrame(), osg::TextureChunkBase::getSFFrame(), and osg::TextureChunkBase::setFrame().

GLenum osg::TextureChunkBase::_sfMinFilter [protected, inherited]

GLenum osg::TextureChunkBase::_sfMagFilter [protected, inherited]

GLenum osg::TextureChunkBase::_sfWrapS [protected, inherited]

GLenum osg::TextureChunkBase::_sfWrapT [protected, inherited]

GLenum osg::TextureChunkBase::_sfWrapR [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvMode [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvCombineRGB [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvCombineAlpha [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvSource0RGB [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvSource1RGB [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvSource2RGB [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvSource0Alpha [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvSource1Alpha [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvSource2Alpha [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvOperand0RGB [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvOperand1RGB [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvOperand2RGB [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvOperand0Alpha [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvOperand1Alpha [protected, inherited]

GLenum osg::TextureChunkBase::_sfEnvOperand2Alpha [protected, inherited]

GLenum osg::TextureChunkBase::_sfGLId [protected, inherited]

bool osg::TextureChunkBase::_sfPointSprite [protected, inherited]

GLenum osg::TextureChunkBase::_sfShaderOperation [protected, inherited]

GLenum osg::TextureChunkBase::_sfShaderInput [protected, inherited]

GLenum osg::TextureChunkBase::_sfShaderRGBADotProduct [protected, inherited]

The CULL_MODES_NV value, coded into a single byte. The first 4 bits of the byte are used to indicate the wnated cull modes, a value of 0 signifies GL_LESS, a value of 1 GL_GEQUAL. Bit 0 (mask 1) is used for the S coordinate, bit 1 (mask 2) for T, bit 2 (mask 4) for R and bit 4 (mask 8) for Q.

Definition at line 580 of file OSGTextureChunkBase.h.

Referenced by osg::TextureChunkBase::copyFromBin(), osg::TextureChunkBase::copyToBin(), osg::TextureChunkBase::executeSyncImpl(), osg::TextureChunkBase::getBinSize(), osg::TextureChunkBase::getSFShaderCullModes(), osg::TextureChunkBase::getShaderCullModes(), and osg::TextureChunkBase::setShaderCullModes().

Real32 osg::TextureChunkBase::_sfLodBias [protected, inherited]

GLenum osg::TextureChunkBase::_sfTarget [protected, inherited]

Texture target. Overwrite automatically determined texture target based on the parameters of the assigned image if set to anything else than GL_NONE. Used for nVidia's rectangle textures. Be careful when using it!

Definition at line 583 of file OSGTextureChunkBase.h.

Referenced by osg::TextureChunkBase::copyFromBin(), osg::TextureChunkBase::copyToBin(), osg::TextureChunkBase::executeSyncImpl(), osg::TextureChunkBase::getBinSize(), osg::TextureChunkBase::getSFTarget(), osg::TextureChunkBase::getTarget(), and osg::TextureChunkBase::setTarget().

Left coordinate of the dirty rectangle to use for imageContentChanged(). This doesn't make sense to be stored in files, it does make sense on a cluster, though, that's why it's external.

Definition at line 584 of file OSGTextureChunkBase.h.

Referenced by osg::TextureChunkBase::copyFromBin(), osg::TextureChunkBase::copyToBin(), osg::TextureChunkBase::executeSyncImpl(), osg::TextureChunkBase::getBinSize(), osg::TextureChunkBase::getDirtyLeft(), osg::TextureChunkBase::getSFDirtyLeft(), and osg::TextureChunkBase::setDirtyLeft().

Minimum X coordinate of the dirty rectangle to use for imageContentChanged(). This doesn't make sense to be stored in files, it does make sense on a cluster, though, that's why it's external.

Definition at line 585 of file OSGTextureChunkBase.h.

Referenced by osg::TextureChunkBase::copyFromBin(), osg::TextureChunkBase::copyToBin(), osg::TextureChunkBase::executeSyncImpl(), osg::TextureChunkBase::getBinSize(), osg::TextureChunkBase::getDirtyMinX(), osg::TextureChunkBase::getSFDirtyMinX(), and osg::TextureChunkBase::setDirtyMinX().

Maximum X coordinate of the dirty rectangle to use for imageContentChanged(). This doesn't make sense to be stored in files, it does make sense on a cluster, though, that's why it's external.

Definition at line 586 of file OSGTextureChunkBase.h.

Referenced by osg::TextureChunkBase::copyFromBin(), osg::TextureChunkBase::copyToBin(), osg::TextureChunkBase::executeSyncImpl(), osg::TextureChunkBase::getBinSize(), osg::TextureChunkBase::getDirtyMaxX(), osg::TextureChunkBase::getSFDirtyMaxX(), and osg::TextureChunkBase::setDirtyMaxX().

Minimum Y coordinate of the dirty rectangle to use for imageContentChanged(). This doesn't make sense to be stored in files, it does make sense on a cluster, though, that's why it's external.

Definition at line 587 of file OSGTextureChunkBase.h.

Referenced by osg::TextureChunkBase::copyFromBin(), osg::TextureChunkBase::copyToBin(), osg::TextureChunkBase::executeSyncImpl(), osg::TextureChunkBase::getBinSize(), osg::TextureChunkBase::getDirtyMinY(), osg::TextureChunkBase::getSFDirtyMinY(), and osg::TextureChunkBase::setDirtyMinY().

Maximum Y coordinate of the dirty rectangle to use for imageContentChanged(). This doesn't make sense to be stored in files, it does make sense on a cluster, though, that's why it's external.

Definition at line 588 of file OSGTextureChunkBase.h.

Referenced by osg::TextureChunkBase::copyFromBin(), osg::TextureChunkBase::copyToBin(), osg::TextureChunkBase::executeSyncImpl(), osg::TextureChunkBase::getBinSize(), osg::TextureChunkBase::getDirtyMaxY(), osg::TextureChunkBase::getSFDirtyMaxY(), and osg::TextureChunkBase::setDirtyMaxY().

Minimum Z coordinate of the dirty rectangle to use for imageContentChanged(). This doesn't make sense to be stored in files, it does make sense on a cluster, though, that's why it's external.

Definition at line 589 of file OSGTextureChunkBase.h.

Referenced by osg::TextureChunkBase::copyFromBin(), osg::TextureChunkBase::copyToBin(), osg::TextureChunkBase::executeSyncImpl(), osg::TextureChunkBase::getBinSize(), osg::TextureChunkBase::getDirtyMinZ(), osg::TextureChunkBase::getSFDirtyMinZ(), and osg::TextureChunkBase::setDirtyMinZ().

Maximum Z coordinate of the dirty rectangle to use for imageContentChanged(). This doesn't make sense to be stored in files, it does make sense on a cluster, though, that's why it's external.

Definition at line 590 of file OSGTextureChunkBase.h.

Referenced by osg::TextureChunkBase::copyFromBin(), osg::TextureChunkBase::copyToBin(), osg::TextureChunkBase::executeSyncImpl(), osg::TextureChunkBase::getBinSize(), osg::TextureChunkBase::getDirtyMaxZ(), osg::TextureChunkBase::getSFDirtyMaxZ(), and osg::TextureChunkBase::setDirtyMaxZ().

Use the texture matrix to scale the texture coordinates for NPOT images. Only used if neither rectangular nor NPOT textures are supported. If set to false, the image is scaled to the next power of two before being used as a texture. For convenience xFlip/ yFlip can also be set. Note that this will interfere with other TextureTransform and TexGen chunks. Do not use it if you need to use those chunks!

Definition at line 594 of file OSGTextureChunkBase.h.

Referenced by osg::TextureChunkBase::copyFromBin(), osg::TextureChunkBase::copyToBin(), osg::TextureChunkBase::executeSyncImpl(), osg::TextureChunkBase::getBinSize(), osg::TextureChunkBase::getNPOTMatrixScale(), osg::TextureChunkBase::getSFNPOTMatrixScale(), and osg::TextureChunkBase::setNPOTMatrixScale().

bool osg::StateChunkBase::_sfIgnore [protected, inherited]

const BitVector Attachment::InternalFieldMask = (1 << Attachment::InternalFieldId) [static, inherited]

const BitVector Attachment::ParentsFieldMask = (1 << Attachment::ParentsFieldId) [static, inherited]

SFBool osg::Attachment::_sfInternal [protected, inherited]

const BitVector osg::FieldContainer::NextFieldMask [static, inherited]

Initial value:

 
                    (TypeTraits<BitVector>::One << NextFieldId)

Definition at line 75 of file OSGFieldContainerImpl.h.

const bool osg::FieldContainer::isNodeCore = false [static, inherited]

Reimplemented in osg::NodeCore.

Definition at line 181 of file OSGFieldContainerImpl.h.

UInt32 osg::FieldContainer::_shares [protected, inherited]

Definition at line 199 of file OSGFieldContainerImpl.h.


The documentation for this class was generated from the following files:

Generated on Mon Mar 17 11:17:12 2008 for OpenSG by  doxygen 1.5.5