00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054 #ifndef _OSGTEXTURECHUNKBASE_H_
00055 #define _OSGTEXTURECHUNKBASE_H_
00056 #ifdef __sgi
00057 #pragma once
00058 #endif
00059
00060
00061 #include <OSGConfig.h>
00062 #include <OSGSystemDef.h>
00063
00064 #include <OSGBaseTypes.h>
00065 #include <OSGRefPtr.h>
00066 #include <OSGCoredNodePtr.h>
00067
00068 #include <OSGStateChunk.h>
00069
00070 #include <OSGImageFields.h>
00071 #include <OSGGLenumFields.h>
00072 #include <OSGGLenumFields.h>
00073 #include <OSGBoolFields.h>
00074 #include <OSGUInt32Fields.h>
00075 #include <OSGGLenumFields.h>
00076 #include <OSGGLenumFields.h>
00077 #include <OSGGLenumFields.h>
00078 #include <OSGGLenumFields.h>
00079 #include <OSGGLenumFields.h>
00080 #include <OSGGLenumFields.h>
00081 #include <OSGColor4fFields.h>
00082 #include <OSGGLenumFields.h>
00083 #include <OSGGLenumFields.h>
00084 #include <OSGReal32Fields.h>
00085 #include <OSGReal32Fields.h>
00086 #include <OSGGLenumFields.h>
00087 #include <OSGGLenumFields.h>
00088 #include <OSGGLenumFields.h>
00089 #include <OSGGLenumFields.h>
00090 #include <OSGGLenumFields.h>
00091 #include <OSGGLenumFields.h>
00092 #include <OSGGLenumFields.h>
00093 #include <OSGGLenumFields.h>
00094 #include <OSGGLenumFields.h>
00095 #include <OSGGLenumFields.h>
00096 #include <OSGGLenumFields.h>
00097 #include <OSGGLenumFields.h>
00098 #include <OSGGLenumFields.h>
00099 #include <OSGInt32Fields.h>
00100 #include <OSGBoolFields.h>
00101 #include <OSGReal32Fields.h>
00102 #include <OSGGLenumFields.h>
00103 #include <OSGGLenumFields.h>
00104 #include <OSGReal32Fields.h>
00105 #include <OSGReal32Fields.h>
00106 #include <OSGReal32Fields.h>
00107 #include <OSGGLenumFields.h>
00108 #include <OSGUInt8Fields.h>
00109 #include <OSGVec3fFields.h>
00110 #include <OSGReal32Fields.h>
00111 #include <OSGGLenumFields.h>
00112 #include <OSGInt32Fields.h>
00113 #include <OSGInt32Fields.h>
00114 #include <OSGInt32Fields.h>
00115 #include <OSGInt32Fields.h>
00116 #include <OSGInt32Fields.h>
00117 #include <OSGInt32Fields.h>
00118 #include <OSGInt32Fields.h>
00119 #include <OSGReal32Fields.h>
00120 #include <OSGColor4fFields.h>
00121 #include <OSGUInt32Fields.h>
00122 #include <OSGUInt32Fields.h>
00123
00124 #include <OSGTextureChunkFields.h>
00125
00126 OSG_BEGIN_NAMESPACE
00127
00128 class TextureChunk;
00129 class BinaryDataHandler;
00130
00132
00133 class OSG_SYSTEMLIB_DLLMAPPING TextureChunkBase : public StateChunk
00134 {
00135 private:
00136
00137 typedef StateChunk Inherited;
00138
00139
00140 public:
00141
00142 typedef TextureChunkPtr Ptr;
00143
00144 enum
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 };
00201
00202 static const OSG::BitVector ImageFieldMask;
00203 static const OSG::BitVector InternalFormatFieldMask;
00204 static const OSG::BitVector ExternalFormatFieldMask;
00205 static const OSG::BitVector ScaleFieldMask;
00206 static const OSG::BitVector FrameFieldMask;
00207 static const OSG::BitVector MinFilterFieldMask;
00208 static const OSG::BitVector MagFilterFieldMask;
00209 static const OSG::BitVector WrapSFieldMask;
00210 static const OSG::BitVector WrapTFieldMask;
00211 static const OSG::BitVector WrapRFieldMask;
00212 static const OSG::BitVector EnvModeFieldMask;
00213 static const OSG::BitVector EnvColorFieldMask;
00214 static const OSG::BitVector EnvCombineRGBFieldMask;
00215 static const OSG::BitVector EnvCombineAlphaFieldMask;
00216 static const OSG::BitVector EnvScaleRGBFieldMask;
00217 static const OSG::BitVector EnvScaleAlphaFieldMask;
00218 static const OSG::BitVector EnvSource0RGBFieldMask;
00219 static const OSG::BitVector EnvSource1RGBFieldMask;
00220 static const OSG::BitVector EnvSource2RGBFieldMask;
00221 static const OSG::BitVector EnvSource0AlphaFieldMask;
00222 static const OSG::BitVector EnvSource1AlphaFieldMask;
00223 static const OSG::BitVector EnvSource2AlphaFieldMask;
00224 static const OSG::BitVector EnvOperand0RGBFieldMask;
00225 static const OSG::BitVector EnvOperand1RGBFieldMask;
00226 static const OSG::BitVector EnvOperand2RGBFieldMask;
00227 static const OSG::BitVector EnvOperand0AlphaFieldMask;
00228 static const OSG::BitVector EnvOperand1AlphaFieldMask;
00229 static const OSG::BitVector EnvOperand2AlphaFieldMask;
00230 static const OSG::BitVector GLIdFieldMask;
00231 static const OSG::BitVector IgnoreGLForAspectFieldMask;
00232 static const OSG::BitVector PointSpriteFieldMask;
00233 static const OSG::BitVector PriorityFieldMask;
00234 static const OSG::BitVector ShaderOperationFieldMask;
00235 static const OSG::BitVector ShaderInputFieldMask;
00236 static const OSG::BitVector ShaderOffsetMatrixFieldMask;
00237 static const OSG::BitVector ShaderOffsetScaleFieldMask;
00238 static const OSG::BitVector ShaderOffsetBiasFieldMask;
00239 static const OSG::BitVector ShaderRGBADotProductFieldMask;
00240 static const OSG::BitVector ShaderCullModesFieldMask;
00241 static const OSG::BitVector ShaderConstEyeFieldMask;
00242 static const OSG::BitVector LodBiasFieldMask;
00243 static const OSG::BitVector TargetFieldMask;
00244 static const OSG::BitVector DirtyLeftFieldMask;
00245 static const OSG::BitVector DirtyMinXFieldMask;
00246 static const OSG::BitVector DirtyMaxXFieldMask;
00247 static const OSG::BitVector DirtyMinYFieldMask;
00248 static const OSG::BitVector DirtyMaxYFieldMask;
00249 static const OSG::BitVector DirtyMinZFieldMask;
00250 static const OSG::BitVector DirtyMaxZFieldMask;
00251 static const OSG::BitVector AnisotropyFieldMask;
00252 static const OSG::BitVector BorderColorFieldMask;
00253 static const OSG::BitVector BorderWidthFieldMask;
00254 static const OSG::BitVector NPOTMatrixScaleFieldMask;
00255
00256
00257 static const OSG::BitVector MTInfluenceMask;
00258
00259
00263 static FieldContainerType &getClassType (void);
00264 static UInt32 getClassTypeId (void);
00265
00267
00271 virtual FieldContainerType &getType (void);
00272 virtual const FieldContainerType &getType (void) const;
00273
00274 virtual UInt32 getContainerSize(void) const;
00275
00277
00281 SFImagePtr *getSFImage (void);
00282 SFGLenum *getSFInternalFormat (void);
00283 SFGLenum *getSFExternalFormat (void);
00284 SFBool *getSFScale (void);
00285 SFUInt32 *getSFFrame (void);
00286 SFGLenum *getSFMinFilter (void);
00287 SFGLenum *getSFMagFilter (void);
00288 SFGLenum *getSFWrapS (void);
00289 SFGLenum *getSFWrapT (void);
00290 SFGLenum *getSFWrapR (void);
00291 SFGLenum *getSFEnvMode (void);
00292 SFColor4f *getSFEnvColor (void);
00293 SFGLenum *getSFEnvCombineRGB (void);
00294 SFGLenum *getSFEnvCombineAlpha(void);
00295 SFReal32 *getSFEnvScaleRGB (void);
00296 SFReal32 *getSFEnvScaleAlpha (void);
00297 SFGLenum *getSFEnvSource0RGB (void);
00298 SFGLenum *getSFEnvSource1RGB (void);
00299 SFGLenum *getSFEnvSource2RGB (void);
00300 SFGLenum *getSFEnvSource0Alpha(void);
00301 SFGLenum *getSFEnvSource1Alpha(void);
00302 SFGLenum *getSFEnvSource2Alpha(void);
00303 SFGLenum *getSFEnvOperand0RGB (void);
00304 SFGLenum *getSFEnvOperand1RGB (void);
00305 SFGLenum *getSFEnvOperand2RGB (void);
00306 SFGLenum *getSFEnvOperand0Alpha(void);
00307 SFGLenum *getSFEnvOperand1Alpha(void);
00308 SFGLenum *getSFEnvOperand2Alpha(void);
00309 SFGLenum *getSFGLId (void);
00310 SFInt32 *getSFIgnoreGLForAspect(void);
00311 SFBool *getSFPointSprite (void);
00312 SFReal32 *getSFPriority (void);
00313 SFGLenum *getSFShaderOperation(void);
00314 SFGLenum *getSFShaderInput (void);
00315 MFReal32 *getMFShaderOffsetMatrix(void);
00316 SFReal32 *getSFShaderOffsetScale(void);
00317 SFReal32 *getSFShaderOffsetBias(void);
00318 SFGLenum *getSFShaderRGBADotProduct(void);
00319 SFUInt8 *getSFShaderCullModes(void);
00320 SFVec3f *getSFShaderConstEye (void);
00321 SFReal32 *getSFLodBias (void);
00322 SFGLenum *getSFTarget (void);
00323 SFInt32 *getSFDirtyLeft (void);
00324 SFInt32 *getSFDirtyMinX (void);
00325 SFInt32 *getSFDirtyMaxX (void);
00326 SFInt32 *getSFDirtyMinY (void);
00327 SFInt32 *getSFDirtyMaxY (void);
00328 SFInt32 *getSFDirtyMinZ (void);
00329 SFInt32 *getSFDirtyMaxZ (void);
00330 SFReal32 *getSFAnisotropy (void);
00331 SFColor4f *getSFBorderColor (void);
00332 SFUInt32 *getSFBorderWidth (void);
00333 SFUInt32 *getSFNPOTMatrixScale(void);
00334
00335 ImagePtr &getImage (void);
00336 const ImagePtr &getImage (void) const;
00337 GLenum &getInternalFormat (void);
00338 const GLenum &getInternalFormat (void) const;
00339 GLenum &getExternalFormat (void);
00340 const GLenum &getExternalFormat (void) const;
00341 bool &getScale (void);
00342 const bool &getScale (void) const;
00343 UInt32 &getFrame (void);
00344 const UInt32 &getFrame (void) const;
00345 GLenum &getMinFilter (void);
00346 const GLenum &getMinFilter (void) const;
00347 GLenum &getMagFilter (void);
00348 const GLenum &getMagFilter (void) const;
00349 GLenum &getWrapS (void);
00350 const GLenum &getWrapS (void) const;
00351 GLenum &getWrapT (void);
00352 const GLenum &getWrapT (void) const;
00353 GLenum &getWrapR (void);
00354 const GLenum &getWrapR (void) const;
00355 GLenum &getEnvMode (void);
00356 const GLenum &getEnvMode (void) const;
00357 Color4f &getEnvColor (void);
00358 const Color4f &getEnvColor (void) const;
00359 GLenum &getEnvCombineRGB (void);
00360 const GLenum &getEnvCombineRGB (void) const;
00361 GLenum &getEnvCombineAlpha(void);
00362 const GLenum &getEnvCombineAlpha(void) const;
00363 Real32 &getEnvScaleRGB (void);
00364 const Real32 &getEnvScaleRGB (void) const;
00365 Real32 &getEnvScaleAlpha (void);
00366 const Real32 &getEnvScaleAlpha (void) const;
00367 GLenum &getEnvSource0RGB (void);
00368 const GLenum &getEnvSource0RGB (void) const;
00369 GLenum &getEnvSource1RGB (void);
00370 const GLenum &getEnvSource1RGB (void) const;
00371 GLenum &getEnvSource2RGB (void);
00372 const GLenum &getEnvSource2RGB (void) const;
00373 GLenum &getEnvSource0Alpha(void);
00374 const GLenum &getEnvSource0Alpha(void) const;
00375 GLenum &getEnvSource1Alpha(void);
00376 const GLenum &getEnvSource1Alpha(void) const;
00377 GLenum &getEnvSource2Alpha(void);
00378 const GLenum &getEnvSource2Alpha(void) const;
00379 GLenum &getEnvOperand0RGB (void);
00380 const GLenum &getEnvOperand0RGB (void) const;
00381 GLenum &getEnvOperand1RGB (void);
00382 const GLenum &getEnvOperand1RGB (void) const;
00383 GLenum &getEnvOperand2RGB (void);
00384 const GLenum &getEnvOperand2RGB (void) const;
00385 GLenum &getEnvOperand0Alpha(void);
00386 const GLenum &getEnvOperand0Alpha(void) const;
00387 GLenum &getEnvOperand1Alpha(void);
00388 const GLenum &getEnvOperand1Alpha(void) const;
00389 GLenum &getEnvOperand2Alpha(void);
00390 const GLenum &getEnvOperand2Alpha(void) const;
00391 GLenum &getGLId (void);
00392 const GLenum &getGLId (void) const;
00393 Int32 &getIgnoreGLForAspect(void);
00394 const Int32 &getIgnoreGLForAspect(void) const;
00395 bool &getPointSprite (void);
00396 const bool &getPointSprite (void) const;
00397 Real32 &getPriority (void);
00398 const Real32 &getPriority (void) const;
00399 GLenum &getShaderOperation(void);
00400 const GLenum &getShaderOperation(void) const;
00401 GLenum &getShaderInput (void);
00402 const GLenum &getShaderInput (void) const;
00403 Real32 &getShaderOffsetScale(void);
00404 const Real32 &getShaderOffsetScale(void) const;
00405 Real32 &getShaderOffsetBias(void);
00406 const Real32 &getShaderOffsetBias(void) const;
00407 GLenum &getShaderRGBADotProduct(void);
00408 const GLenum &getShaderRGBADotProduct(void) const;
00409 UInt8 &getShaderCullModes(void);
00410 const UInt8 &getShaderCullModes(void) const;
00411 Vec3f &getShaderConstEye (void);
00412 const Vec3f &getShaderConstEye (void) const;
00413 Real32 &getLodBias (void);
00414 const Real32 &getLodBias (void) const;
00415 GLenum &getTarget (void);
00416 const GLenum &getTarget (void) const;
00417 Int32 &getDirtyLeft (void);
00418 const Int32 &getDirtyLeft (void) const;
00419 Int32 &getDirtyMinX (void);
00420 const Int32 &getDirtyMinX (void) const;
00421 Int32 &getDirtyMaxX (void);
00422 const Int32 &getDirtyMaxX (void) const;
00423 Int32 &getDirtyMinY (void);
00424 const Int32 &getDirtyMinY (void) const;
00425 Int32 &getDirtyMaxY (void);
00426 const Int32 &getDirtyMaxY (void) const;
00427 Int32 &getDirtyMinZ (void);
00428 const Int32 &getDirtyMinZ (void) const;
00429 Int32 &getDirtyMaxZ (void);
00430 const Int32 &getDirtyMaxZ (void) const;
00431 Real32 &getAnisotropy (void);
00432 const Real32 &getAnisotropy (void) const;
00433 Color4f &getBorderColor (void);
00434 const Color4f &getBorderColor (void) const;
00435 UInt32 &getBorderWidth (void);
00436 const UInt32 &getBorderWidth (void) const;
00437 UInt32 &getNPOTMatrixScale(void);
00438 const UInt32 &getNPOTMatrixScale(void) const;
00439 Real32 &getShaderOffsetMatrix(const UInt32 index);
00440 MFReal32 &getShaderOffsetMatrix(void);
00441 const MFReal32 &getShaderOffsetMatrix(void) const;
00442
00444
00448 void setImage ( const ImagePtr &value );
00449 void setInternalFormat ( const GLenum &value );
00450 void setExternalFormat ( const GLenum &value );
00451 void setScale ( const bool &value );
00452 void setFrame ( const UInt32 &value );
00453 void setMinFilter ( const GLenum &value );
00454 void setMagFilter ( const GLenum &value );
00455 void setWrapS ( const GLenum &value );
00456 void setWrapT ( const GLenum &value );
00457 void setWrapR ( const GLenum &value );
00458 void setEnvMode ( const GLenum &value );
00459 void setEnvColor ( const Color4f &value );
00460 void setEnvCombineRGB ( const GLenum &value );
00461 void setEnvCombineAlpha( const GLenum &value );
00462 void setEnvScaleRGB ( const Real32 &value );
00463 void setEnvScaleAlpha ( const Real32 &value );
00464 void setEnvSource0RGB ( const GLenum &value );
00465 void setEnvSource1RGB ( const GLenum &value );
00466 void setEnvSource2RGB ( const GLenum &value );
00467 void setEnvSource0Alpha( const GLenum &value );
00468 void setEnvSource1Alpha( const GLenum &value );
00469 void setEnvSource2Alpha( const GLenum &value );
00470 void setEnvOperand0RGB ( const GLenum &value );
00471 void setEnvOperand1RGB ( const GLenum &value );
00472 void setEnvOperand2RGB ( const GLenum &value );
00473 void setEnvOperand0Alpha( const GLenum &value );
00474 void setEnvOperand1Alpha( const GLenum &value );
00475 void setEnvOperand2Alpha( const GLenum &value );
00476 void setGLId ( const GLenum &value );
00477 void setIgnoreGLForAspect( const Int32 &value );
00478 void setPointSprite ( const bool &value );
00479 void setPriority ( const Real32 &value );
00480 void setShaderOperation( const GLenum &value );
00481 void setShaderInput ( const GLenum &value );
00482 void setShaderOffsetScale( const Real32 &value );
00483 void setShaderOffsetBias( const Real32 &value );
00484 void setShaderRGBADotProduct( const GLenum &value );
00485 void setShaderCullModes( const UInt8 &value );
00486 void setShaderConstEye ( const Vec3f &value );
00487 void setLodBias ( const Real32 &value );
00488 void setTarget ( const GLenum &value );
00489 void setDirtyLeft ( const Int32 &value );
00490 void setDirtyMinX ( const Int32 &value );
00491 void setDirtyMaxX ( const Int32 &value );
00492 void setDirtyMinY ( const Int32 &value );
00493 void setDirtyMaxY ( const Int32 &value );
00494 void setDirtyMinZ ( const Int32 &value );
00495 void setDirtyMaxZ ( const Int32 &value );
00496 void setAnisotropy ( const Real32 &value );
00497 void setBorderColor ( const Color4f &value );
00498 void setBorderWidth ( const UInt32 &value );
00499 void setNPOTMatrixScale( const UInt32 &value );
00500
00502
00507
00511 virtual UInt32 getBinSize (const BitVector &whichField);
00512 virtual void copyToBin ( BinaryDataHandler &pMem,
00513 const BitVector &whichField);
00514 virtual void copyFromBin( BinaryDataHandler &pMem,
00515 const BitVector &whichField);
00516
00517
00519
00523 static TextureChunkPtr create (void);
00524 static TextureChunkPtr createEmpty (void);
00525
00528
00532 virtual FieldContainerPtr shallowCopy (void) const;
00533
00535
00536 protected:
00537
00538
00542 SFImagePtr _sfImage;
00543 SFGLenum _sfInternalFormat;
00544 SFGLenum _sfExternalFormat;
00545 SFBool _sfScale;
00546 SFUInt32 _sfFrame;
00547 SFGLenum _sfMinFilter;
00548 SFGLenum _sfMagFilter;
00549 SFGLenum _sfWrapS;
00550 SFGLenum _sfWrapT;
00551 SFGLenum _sfWrapR;
00552 SFGLenum _sfEnvMode;
00553 SFColor4f _sfEnvColor;
00554 SFGLenum _sfEnvCombineRGB;
00555 SFGLenum _sfEnvCombineAlpha;
00556 SFReal32 _sfEnvScaleRGB;
00557 SFReal32 _sfEnvScaleAlpha;
00558 SFGLenum _sfEnvSource0RGB;
00559 SFGLenum _sfEnvSource1RGB;
00560 SFGLenum _sfEnvSource2RGB;
00561 SFGLenum _sfEnvSource0Alpha;
00562 SFGLenum _sfEnvSource1Alpha;
00563 SFGLenum _sfEnvSource2Alpha;
00564 SFGLenum _sfEnvOperand0RGB;
00565 SFGLenum _sfEnvOperand1RGB;
00566 SFGLenum _sfEnvOperand2RGB;
00567 SFGLenum _sfEnvOperand0Alpha;
00568 SFGLenum _sfEnvOperand1Alpha;
00569 SFGLenum _sfEnvOperand2Alpha;
00570 SFGLenum _sfGLId;
00571 SFInt32 _sfIgnoreGLForAspect;
00572 SFBool _sfPointSprite;
00573 SFReal32 _sfPriority;
00574 SFGLenum _sfShaderOperation;
00575 SFGLenum _sfShaderInput;
00576 MFReal32 _mfShaderOffsetMatrix;
00577 SFReal32 _sfShaderOffsetScale;
00578 SFReal32 _sfShaderOffsetBias;
00579 SFGLenum _sfShaderRGBADotProduct;
00580 SFUInt8 _sfShaderCullModes;
00581 SFVec3f _sfShaderConstEye;
00582 SFReal32 _sfLodBias;
00583 SFGLenum _sfTarget;
00584 SFInt32 _sfDirtyLeft;
00585 SFInt32 _sfDirtyMinX;
00586 SFInt32 _sfDirtyMaxX;
00587 SFInt32 _sfDirtyMinY;
00588 SFInt32 _sfDirtyMaxY;
00589 SFInt32 _sfDirtyMinZ;
00590 SFInt32 _sfDirtyMaxZ;
00591 SFReal32 _sfAnisotropy;
00592 SFColor4f _sfBorderColor;
00593 SFUInt32 _sfBorderWidth;
00594 SFUInt32 _sfNPOTMatrixScale;
00595
00597
00601 TextureChunkBase(void);
00602 TextureChunkBase(const TextureChunkBase &source);
00603
00605
00609 virtual ~TextureChunkBase(void);
00610
00612
00616 #if !defined(OSG_FIXED_MFIELDSYNC)
00617 void executeSyncImpl( TextureChunkBase *pOther,
00618 const BitVector &whichField);
00619
00620 virtual void executeSync( FieldContainer &other,
00621 const BitVector &whichField);
00622 #else
00623 void executeSyncImpl( TextureChunkBase *pOther,
00624 const BitVector &whichField,
00625 const SyncInfo &sInfo );
00626
00627 virtual void executeSync( FieldContainer &other,
00628 const BitVector &whichField,
00629 const SyncInfo &sInfo);
00630
00631 virtual void execBeginEdit (const BitVector &whichField,
00632 UInt32 uiAspect,
00633 UInt32 uiContainerSize);
00634
00635 void execBeginEditImpl (const BitVector &whichField,
00636 UInt32 uiAspect,
00637 UInt32 uiContainerSize);
00638
00639 virtual void onDestroyAspect(UInt32 uiId, UInt32 uiAspect);
00640 #endif
00641
00643
00644 private:
00645
00646 friend class FieldContainer;
00647
00648 static FieldDescription *_desc[];
00649 static FieldContainerType _type;
00650
00651
00652
00653 void operator =(const TextureChunkBase &source);
00654 };
00655
00656
00657
00658
00659
00660
00661 typedef TextureChunkBase *TextureChunkBaseP;
00662
00663 typedef osgIF<TextureChunkBase::isNodeCore,
00664 CoredNodePtr<TextureChunk>,
00665 FieldContainer::attempt_to_create_CoredNodePtr_on_non_NodeCore_FC
00666 >::_IRet TextureChunkNodePtr;
00667
00668 typedef RefPtr<TextureChunkPtr> TextureChunkRefPtr;
00669
00670 OSG_END_NAMESPACE
00671
00672 #define OSGTEXTURECHUNKBASE_HEADER_CVSID "@(#)$Id: FCBaseTemplate_h.h,v 1.40 2005/07/20 00:10:14 vossg Exp $"
00673
00674 #endif