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 #define OSG_COMPILETEXTURECHUNKINST
00055
00056 #include <stdlib.h>
00057 #include <stdio.h>
00058
00059 #include <OSGConfig.h>
00060
00061 #include "OSGTextureChunkBase.h"
00062 #include "OSGTextureChunk.h"
00063
00064 #include <OSGGL.h>
00065 #include <OSGGL.h>
00066 #include <OSGGL.h>
00067 #include <OSGGL.h>
00068 #include <OSGGL.h>
00069 #include <OSGGL.h>
00070 #include <OSGGL.h>
00071 #include <OSGGL.h>
00072 #include <OSGGL.h>
00073 #include <OSGGL.h>
00074 #include <OSGGL.h>
00075 #include <OSGGLEXT.h>
00076 #include <OSGGLEXT.h>
00077 #include <OSGGL.h>
00078 #include <OSGGLEXT.h>
00079 #include <OSGGLEXT.h>
00080 #include <OSGGL.h>
00081 #include <OSGGL.h>
00082 #include <OSGGL.h>
00083 #include <OSGGL.h>
00084 #include <OSGGL.h>
00085 #include <OSGGL.h>
00086 #include <OSGGL.h>
00087 #include <OSGGL.h>
00088 #include <OSGGL.h>
00089 #include <OSGGL.h>
00090 #include <OSGGL.h>
00091
00092 OSG_BEGIN_NAMESPACE
00093
00094 const OSG::BitVector TextureChunkBase::ImageFieldMask =
00095 (TypeTraits<BitVector>::One << TextureChunkBase::ImageFieldId);
00096
00097 const OSG::BitVector TextureChunkBase::InternalFormatFieldMask =
00098 (TypeTraits<BitVector>::One << TextureChunkBase::InternalFormatFieldId);
00099
00100 const OSG::BitVector TextureChunkBase::ExternalFormatFieldMask =
00101 (TypeTraits<BitVector>::One << TextureChunkBase::ExternalFormatFieldId);
00102
00103 const OSG::BitVector TextureChunkBase::ScaleFieldMask =
00104 (TypeTraits<BitVector>::One << TextureChunkBase::ScaleFieldId);
00105
00106 const OSG::BitVector TextureChunkBase::FrameFieldMask =
00107 (TypeTraits<BitVector>::One << TextureChunkBase::FrameFieldId);
00108
00109 const OSG::BitVector TextureChunkBase::MinFilterFieldMask =
00110 (TypeTraits<BitVector>::One << TextureChunkBase::MinFilterFieldId);
00111
00112 const OSG::BitVector TextureChunkBase::MagFilterFieldMask =
00113 (TypeTraits<BitVector>::One << TextureChunkBase::MagFilterFieldId);
00114
00115 const OSG::BitVector TextureChunkBase::WrapSFieldMask =
00116 (TypeTraits<BitVector>::One << TextureChunkBase::WrapSFieldId);
00117
00118 const OSG::BitVector TextureChunkBase::WrapTFieldMask =
00119 (TypeTraits<BitVector>::One << TextureChunkBase::WrapTFieldId);
00120
00121 const OSG::BitVector TextureChunkBase::WrapRFieldMask =
00122 (TypeTraits<BitVector>::One << TextureChunkBase::WrapRFieldId);
00123
00124 const OSG::BitVector TextureChunkBase::EnvModeFieldMask =
00125 (TypeTraits<BitVector>::One << TextureChunkBase::EnvModeFieldId);
00126
00127 const OSG::BitVector TextureChunkBase::EnvColorFieldMask =
00128 (TypeTraits<BitVector>::One << TextureChunkBase::EnvColorFieldId);
00129
00130 const OSG::BitVector TextureChunkBase::EnvCombineRGBFieldMask =
00131 (TypeTraits<BitVector>::One << TextureChunkBase::EnvCombineRGBFieldId);
00132
00133 const OSG::BitVector TextureChunkBase::EnvCombineAlphaFieldMask =
00134 (TypeTraits<BitVector>::One << TextureChunkBase::EnvCombineAlphaFieldId);
00135
00136 const OSG::BitVector TextureChunkBase::EnvScaleRGBFieldMask =
00137 (TypeTraits<BitVector>::One << TextureChunkBase::EnvScaleRGBFieldId);
00138
00139 const OSG::BitVector TextureChunkBase::EnvScaleAlphaFieldMask =
00140 (TypeTraits<BitVector>::One << TextureChunkBase::EnvScaleAlphaFieldId);
00141
00142 const OSG::BitVector TextureChunkBase::EnvSource0RGBFieldMask =
00143 (TypeTraits<BitVector>::One << TextureChunkBase::EnvSource0RGBFieldId);
00144
00145 const OSG::BitVector TextureChunkBase::EnvSource1RGBFieldMask =
00146 (TypeTraits<BitVector>::One << TextureChunkBase::EnvSource1RGBFieldId);
00147
00148 const OSG::BitVector TextureChunkBase::EnvSource2RGBFieldMask =
00149 (TypeTraits<BitVector>::One << TextureChunkBase::EnvSource2RGBFieldId);
00150
00151 const OSG::BitVector TextureChunkBase::EnvSource0AlphaFieldMask =
00152 (TypeTraits<BitVector>::One << TextureChunkBase::EnvSource0AlphaFieldId);
00153
00154 const OSG::BitVector TextureChunkBase::EnvSource1AlphaFieldMask =
00155 (TypeTraits<BitVector>::One << TextureChunkBase::EnvSource1AlphaFieldId);
00156
00157 const OSG::BitVector TextureChunkBase::EnvSource2AlphaFieldMask =
00158 (TypeTraits<BitVector>::One << TextureChunkBase::EnvSource2AlphaFieldId);
00159
00160 const OSG::BitVector TextureChunkBase::EnvOperand0RGBFieldMask =
00161 (TypeTraits<BitVector>::One << TextureChunkBase::EnvOperand0RGBFieldId);
00162
00163 const OSG::BitVector TextureChunkBase::EnvOperand1RGBFieldMask =
00164 (TypeTraits<BitVector>::One << TextureChunkBase::EnvOperand1RGBFieldId);
00165
00166 const OSG::BitVector TextureChunkBase::EnvOperand2RGBFieldMask =
00167 (TypeTraits<BitVector>::One << TextureChunkBase::EnvOperand2RGBFieldId);
00168
00169 const OSG::BitVector TextureChunkBase::EnvOperand0AlphaFieldMask =
00170 (TypeTraits<BitVector>::One << TextureChunkBase::EnvOperand0AlphaFieldId);
00171
00172 const OSG::BitVector TextureChunkBase::EnvOperand1AlphaFieldMask =
00173 (TypeTraits<BitVector>::One << TextureChunkBase::EnvOperand1AlphaFieldId);
00174
00175 const OSG::BitVector TextureChunkBase::EnvOperand2AlphaFieldMask =
00176 (TypeTraits<BitVector>::One << TextureChunkBase::EnvOperand2AlphaFieldId);
00177
00178 const OSG::BitVector TextureChunkBase::GLIdFieldMask =
00179 (TypeTraits<BitVector>::One << TextureChunkBase::GLIdFieldId);
00180
00181 const OSG::BitVector TextureChunkBase::IgnoreGLForAspectFieldMask =
00182 (TypeTraits<BitVector>::One << TextureChunkBase::IgnoreGLForAspectFieldId);
00183
00184 const OSG::BitVector TextureChunkBase::PointSpriteFieldMask =
00185 (TypeTraits<BitVector>::One << TextureChunkBase::PointSpriteFieldId);
00186
00187 const OSG::BitVector TextureChunkBase::PriorityFieldMask =
00188 (TypeTraits<BitVector>::One << TextureChunkBase::PriorityFieldId);
00189
00190 const OSG::BitVector TextureChunkBase::ShaderOperationFieldMask =
00191 (TypeTraits<BitVector>::One << TextureChunkBase::ShaderOperationFieldId);
00192
00193 const OSG::BitVector TextureChunkBase::ShaderInputFieldMask =
00194 (TypeTraits<BitVector>::One << TextureChunkBase::ShaderInputFieldId);
00195
00196 const OSG::BitVector TextureChunkBase::ShaderOffsetMatrixFieldMask =
00197 (TypeTraits<BitVector>::One << TextureChunkBase::ShaderOffsetMatrixFieldId);
00198
00199 const OSG::BitVector TextureChunkBase::ShaderOffsetScaleFieldMask =
00200 (TypeTraits<BitVector>::One << TextureChunkBase::ShaderOffsetScaleFieldId);
00201
00202 const OSG::BitVector TextureChunkBase::ShaderOffsetBiasFieldMask =
00203 (TypeTraits<BitVector>::One << TextureChunkBase::ShaderOffsetBiasFieldId);
00204
00205 const OSG::BitVector TextureChunkBase::ShaderRGBADotProductFieldMask =
00206 (TypeTraits<BitVector>::One << TextureChunkBase::ShaderRGBADotProductFieldId);
00207
00208 const OSG::BitVector TextureChunkBase::ShaderCullModesFieldMask =
00209 (TypeTraits<BitVector>::One << TextureChunkBase::ShaderCullModesFieldId);
00210
00211 const OSG::BitVector TextureChunkBase::ShaderConstEyeFieldMask =
00212 (TypeTraits<BitVector>::One << TextureChunkBase::ShaderConstEyeFieldId);
00213
00214 const OSG::BitVector TextureChunkBase::LodBiasFieldMask =
00215 (TypeTraits<BitVector>::One << TextureChunkBase::LodBiasFieldId);
00216
00217 const OSG::BitVector TextureChunkBase::TargetFieldMask =
00218 (TypeTraits<BitVector>::One << TextureChunkBase::TargetFieldId);
00219
00220 const OSG::BitVector TextureChunkBase::DirtyLeftFieldMask =
00221 (TypeTraits<BitVector>::One << TextureChunkBase::DirtyLeftFieldId);
00222
00223 const OSG::BitVector TextureChunkBase::DirtyMinXFieldMask =
00224 (TypeTraits<BitVector>::One << TextureChunkBase::DirtyMinXFieldId);
00225
00226 const OSG::BitVector TextureChunkBase::DirtyMaxXFieldMask =
00227 (TypeTraits<BitVector>::One << TextureChunkBase::DirtyMaxXFieldId);
00228
00229 const OSG::BitVector TextureChunkBase::DirtyMinYFieldMask =
00230 (TypeTraits<BitVector>::One << TextureChunkBase::DirtyMinYFieldId);
00231
00232 const OSG::BitVector TextureChunkBase::DirtyMaxYFieldMask =
00233 (TypeTraits<BitVector>::One << TextureChunkBase::DirtyMaxYFieldId);
00234
00235 const OSG::BitVector TextureChunkBase::DirtyMinZFieldMask =
00236 (TypeTraits<BitVector>::One << TextureChunkBase::DirtyMinZFieldId);
00237
00238 const OSG::BitVector TextureChunkBase::DirtyMaxZFieldMask =
00239 (TypeTraits<BitVector>::One << TextureChunkBase::DirtyMaxZFieldId);
00240
00241 const OSG::BitVector TextureChunkBase::AnisotropyFieldMask =
00242 (TypeTraits<BitVector>::One << TextureChunkBase::AnisotropyFieldId);
00243
00244 const OSG::BitVector TextureChunkBase::BorderColorFieldMask =
00245 (TypeTraits<BitVector>::One << TextureChunkBase::BorderColorFieldId);
00246
00247 const OSG::BitVector TextureChunkBase::BorderWidthFieldMask =
00248 (TypeTraits<BitVector>::One << TextureChunkBase::BorderWidthFieldId);
00249
00250 const OSG::BitVector TextureChunkBase::NPOTMatrixScaleFieldMask =
00251 (TypeTraits<BitVector>::One << TextureChunkBase::NPOTMatrixScaleFieldId);
00252
00253 const OSG::BitVector TextureChunkBase::MTInfluenceMask =
00254 (Inherited::MTInfluenceMask) |
00255 (static_cast<BitVector>(0x0) << Inherited::NextFieldId);
00256
00257
00258
00259
00420
00421
00422 FieldDescription *TextureChunkBase::_desc[] =
00423 {
00424 new FieldDescription(SFImagePtr::getClassType(),
00425 "image",
00426 ImageFieldId, ImageFieldMask,
00427 false,
00428 (FieldAccessMethod) &TextureChunkBase::getSFImage),
00429 new FieldDescription(SFGLenum::getClassType(),
00430 "internalFormat",
00431 InternalFormatFieldId, InternalFormatFieldMask,
00432 false,
00433 (FieldAccessMethod) &TextureChunkBase::getSFInternalFormat),
00434 new FieldDescription(SFGLenum::getClassType(),
00435 "externalFormat",
00436 ExternalFormatFieldId, ExternalFormatFieldMask,
00437 false,
00438 (FieldAccessMethod) &TextureChunkBase::getSFExternalFormat),
00439 new FieldDescription(SFBool::getClassType(),
00440 "scale",
00441 ScaleFieldId, ScaleFieldMask,
00442 false,
00443 (FieldAccessMethod) &TextureChunkBase::getSFScale),
00444 new FieldDescription(SFUInt32::getClassType(),
00445 "frame",
00446 FrameFieldId, FrameFieldMask,
00447 false,
00448 (FieldAccessMethod) &TextureChunkBase::getSFFrame),
00449 new FieldDescription(SFGLenum::getClassType(),
00450 "minFilter",
00451 MinFilterFieldId, MinFilterFieldMask,
00452 false,
00453 (FieldAccessMethod) &TextureChunkBase::getSFMinFilter),
00454 new FieldDescription(SFGLenum::getClassType(),
00455 "magFilter",
00456 MagFilterFieldId, MagFilterFieldMask,
00457 false,
00458 (FieldAccessMethod) &TextureChunkBase::getSFMagFilter),
00459 new FieldDescription(SFGLenum::getClassType(),
00460 "wrapS",
00461 WrapSFieldId, WrapSFieldMask,
00462 false,
00463 (FieldAccessMethod) &TextureChunkBase::getSFWrapS),
00464 new FieldDescription(SFGLenum::getClassType(),
00465 "wrapT",
00466 WrapTFieldId, WrapTFieldMask,
00467 false,
00468 (FieldAccessMethod) &TextureChunkBase::getSFWrapT),
00469 new FieldDescription(SFGLenum::getClassType(),
00470 "wrapR",
00471 WrapRFieldId, WrapRFieldMask,
00472 false,
00473 (FieldAccessMethod) &TextureChunkBase::getSFWrapR),
00474 new FieldDescription(SFGLenum::getClassType(),
00475 "envMode",
00476 EnvModeFieldId, EnvModeFieldMask,
00477 false,
00478 (FieldAccessMethod) &TextureChunkBase::getSFEnvMode),
00479 new FieldDescription(SFColor4f::getClassType(),
00480 "envColor",
00481 EnvColorFieldId, EnvColorFieldMask,
00482 false,
00483 (FieldAccessMethod) &TextureChunkBase::getSFEnvColor),
00484 new FieldDescription(SFGLenum::getClassType(),
00485 "envCombineRGB",
00486 EnvCombineRGBFieldId, EnvCombineRGBFieldMask,
00487 false,
00488 (FieldAccessMethod) &TextureChunkBase::getSFEnvCombineRGB),
00489 new FieldDescription(SFGLenum::getClassType(),
00490 "envCombineAlpha",
00491 EnvCombineAlphaFieldId, EnvCombineAlphaFieldMask,
00492 false,
00493 (FieldAccessMethod) &TextureChunkBase::getSFEnvCombineAlpha),
00494 new FieldDescription(SFReal32::getClassType(),
00495 "envScaleRGB",
00496 EnvScaleRGBFieldId, EnvScaleRGBFieldMask,
00497 false,
00498 (FieldAccessMethod) &TextureChunkBase::getSFEnvScaleRGB),
00499 new FieldDescription(SFReal32::getClassType(),
00500 "envScaleAlpha",
00501 EnvScaleAlphaFieldId, EnvScaleAlphaFieldMask,
00502 false,
00503 (FieldAccessMethod) &TextureChunkBase::getSFEnvScaleAlpha),
00504 new FieldDescription(SFGLenum::getClassType(),
00505 "envSource0RGB",
00506 EnvSource0RGBFieldId, EnvSource0RGBFieldMask,
00507 false,
00508 (FieldAccessMethod) &TextureChunkBase::getSFEnvSource0RGB),
00509 new FieldDescription(SFGLenum::getClassType(),
00510 "envSource1RGB",
00511 EnvSource1RGBFieldId, EnvSource1RGBFieldMask,
00512 false,
00513 (FieldAccessMethod) &TextureChunkBase::getSFEnvSource1RGB),
00514 new FieldDescription(SFGLenum::getClassType(),
00515 "envSource2RGB",
00516 EnvSource2RGBFieldId, EnvSource2RGBFieldMask,
00517 false,
00518 (FieldAccessMethod) &TextureChunkBase::getSFEnvSource2RGB),
00519 new FieldDescription(SFGLenum::getClassType(),
00520 "envSource0Alpha",
00521 EnvSource0AlphaFieldId, EnvSource0AlphaFieldMask,
00522 false,
00523 (FieldAccessMethod) &TextureChunkBase::getSFEnvSource0Alpha),
00524 new FieldDescription(SFGLenum::getClassType(),
00525 "envSource1Alpha",
00526 EnvSource1AlphaFieldId, EnvSource1AlphaFieldMask,
00527 false,
00528 (FieldAccessMethod) &TextureChunkBase::getSFEnvSource1Alpha),
00529 new FieldDescription(SFGLenum::getClassType(),
00530 "envSource2Alpha",
00531 EnvSource2AlphaFieldId, EnvSource2AlphaFieldMask,
00532 false,
00533 (FieldAccessMethod) &TextureChunkBase::getSFEnvSource2Alpha),
00534 new FieldDescription(SFGLenum::getClassType(),
00535 "envOperand0RGB",
00536 EnvOperand0RGBFieldId, EnvOperand0RGBFieldMask,
00537 false,
00538 (FieldAccessMethod) &TextureChunkBase::getSFEnvOperand0RGB),
00539 new FieldDescription(SFGLenum::getClassType(),
00540 "envOperand1RGB",
00541 EnvOperand1RGBFieldId, EnvOperand1RGBFieldMask,
00542 false,
00543 (FieldAccessMethod) &TextureChunkBase::getSFEnvOperand1RGB),
00544 new FieldDescription(SFGLenum::getClassType(),
00545 "envOperand2RGB",
00546 EnvOperand2RGBFieldId, EnvOperand2RGBFieldMask,
00547 false,
00548 (FieldAccessMethod) &TextureChunkBase::getSFEnvOperand2RGB),
00549 new FieldDescription(SFGLenum::getClassType(),
00550 "envOperand0Alpha",
00551 EnvOperand0AlphaFieldId, EnvOperand0AlphaFieldMask,
00552 false,
00553 (FieldAccessMethod) &TextureChunkBase::getSFEnvOperand0Alpha),
00554 new FieldDescription(SFGLenum::getClassType(),
00555 "envOperand1Alpha",
00556 EnvOperand1AlphaFieldId, EnvOperand1AlphaFieldMask,
00557 false,
00558 (FieldAccessMethod) &TextureChunkBase::getSFEnvOperand1Alpha),
00559 new FieldDescription(SFGLenum::getClassType(),
00560 "envOperand2Alpha",
00561 EnvOperand2AlphaFieldId, EnvOperand2AlphaFieldMask,
00562 false,
00563 (FieldAccessMethod) &TextureChunkBase::getSFEnvOperand2Alpha),
00564 new FieldDescription(SFGLenum::getClassType(),
00565 "GLId",
00566 GLIdFieldId, GLIdFieldMask,
00567 true,
00568 (FieldAccessMethod) &TextureChunkBase::getSFGLId),
00569 new FieldDescription(SFInt32::getClassType(),
00570 "IgnoreGLForAspect",
00571 IgnoreGLForAspectFieldId, IgnoreGLForAspectFieldMask,
00572 true,
00573 (FieldAccessMethod) &TextureChunkBase::getSFIgnoreGLForAspect),
00574 new FieldDescription(SFBool::getClassType(),
00575 "pointSprite",
00576 PointSpriteFieldId, PointSpriteFieldMask,
00577 false,
00578 (FieldAccessMethod) &TextureChunkBase::getSFPointSprite),
00579 new FieldDescription(SFReal32::getClassType(),
00580 "priority",
00581 PriorityFieldId, PriorityFieldMask,
00582 false,
00583 (FieldAccessMethod) &TextureChunkBase::getSFPriority),
00584 new FieldDescription(SFGLenum::getClassType(),
00585 "shaderOperation",
00586 ShaderOperationFieldId, ShaderOperationFieldMask,
00587 false,
00588 (FieldAccessMethod) &TextureChunkBase::getSFShaderOperation),
00589 new FieldDescription(SFGLenum::getClassType(),
00590 "shaderInput",
00591 ShaderInputFieldId, ShaderInputFieldMask,
00592 false,
00593 (FieldAccessMethod) &TextureChunkBase::getSFShaderInput),
00594 new FieldDescription(MFReal32::getClassType(),
00595 "shaderOffsetMatrix",
00596 ShaderOffsetMatrixFieldId, ShaderOffsetMatrixFieldMask,
00597 false,
00598 (FieldAccessMethod) &TextureChunkBase::getMFShaderOffsetMatrix),
00599 new FieldDescription(SFReal32::getClassType(),
00600 "shaderOffsetScale",
00601 ShaderOffsetScaleFieldId, ShaderOffsetScaleFieldMask,
00602 false,
00603 (FieldAccessMethod) &TextureChunkBase::getSFShaderOffsetScale),
00604 new FieldDescription(SFReal32::getClassType(),
00605 "shaderOffsetBias",
00606 ShaderOffsetBiasFieldId, ShaderOffsetBiasFieldMask,
00607 false,
00608 (FieldAccessMethod) &TextureChunkBase::getSFShaderOffsetBias),
00609 new FieldDescription(SFGLenum::getClassType(),
00610 "shaderRGBADotProduct",
00611 ShaderRGBADotProductFieldId, ShaderRGBADotProductFieldMask,
00612 false,
00613 (FieldAccessMethod) &TextureChunkBase::getSFShaderRGBADotProduct),
00614 new FieldDescription(SFUInt8::getClassType(),
00615 "shaderCullModes",
00616 ShaderCullModesFieldId, ShaderCullModesFieldMask,
00617 false,
00618 (FieldAccessMethod) &TextureChunkBase::getSFShaderCullModes),
00619 new FieldDescription(SFVec3f::getClassType(),
00620 "shaderConstEye",
00621 ShaderConstEyeFieldId, ShaderConstEyeFieldMask,
00622 false,
00623 (FieldAccessMethod) &TextureChunkBase::getSFShaderConstEye),
00624 new FieldDescription(SFReal32::getClassType(),
00625 "lodBias",
00626 LodBiasFieldId, LodBiasFieldMask,
00627 false,
00628 (FieldAccessMethod) &TextureChunkBase::getSFLodBias),
00629 new FieldDescription(SFGLenum::getClassType(),
00630 "target",
00631 TargetFieldId, TargetFieldMask,
00632 false,
00633 (FieldAccessMethod) &TextureChunkBase::getSFTarget),
00634 new FieldDescription(SFInt32::getClassType(),
00635 "dirtyLeft",
00636 DirtyLeftFieldId, DirtyLeftFieldMask,
00637 false,
00638 (FieldAccessMethod) &TextureChunkBase::getSFDirtyLeft),
00639 new FieldDescription(SFInt32::getClassType(),
00640 "dirtyMinX",
00641 DirtyMinXFieldId, DirtyMinXFieldMask,
00642 false,
00643 (FieldAccessMethod) &TextureChunkBase::getSFDirtyMinX),
00644 new FieldDescription(SFInt32::getClassType(),
00645 "dirtyMaxX",
00646 DirtyMaxXFieldId, DirtyMaxXFieldMask,
00647 false,
00648 (FieldAccessMethod) &TextureChunkBase::getSFDirtyMaxX),
00649 new FieldDescription(SFInt32::getClassType(),
00650 "dirtyMinY",
00651 DirtyMinYFieldId, DirtyMinYFieldMask,
00652 false,
00653 (FieldAccessMethod) &TextureChunkBase::getSFDirtyMinY),
00654 new FieldDescription(SFInt32::getClassType(),
00655 "dirtyMaxY",
00656 DirtyMaxYFieldId, DirtyMaxYFieldMask,
00657 false,
00658 (FieldAccessMethod) &TextureChunkBase::getSFDirtyMaxY),
00659 new FieldDescription(SFInt32::getClassType(),
00660 "dirtyMinZ",
00661 DirtyMinZFieldId, DirtyMinZFieldMask,
00662 false,
00663 (FieldAccessMethod) &TextureChunkBase::getSFDirtyMinZ),
00664 new FieldDescription(SFInt32::getClassType(),
00665 "dirtyMaxZ",
00666 DirtyMaxZFieldId, DirtyMaxZFieldMask,
00667 false,
00668 (FieldAccessMethod) &TextureChunkBase::getSFDirtyMaxZ),
00669 new FieldDescription(SFReal32::getClassType(),
00670 "anisotropy",
00671 AnisotropyFieldId, AnisotropyFieldMask,
00672 false,
00673 (FieldAccessMethod) &TextureChunkBase::getSFAnisotropy),
00674 new FieldDescription(SFColor4f::getClassType(),
00675 "borderColor",
00676 BorderColorFieldId, BorderColorFieldMask,
00677 false,
00678 (FieldAccessMethod) &TextureChunkBase::getSFBorderColor),
00679 new FieldDescription(SFUInt32::getClassType(),
00680 "borderWidth",
00681 BorderWidthFieldId, BorderWidthFieldMask,
00682 false,
00683 (FieldAccessMethod) &TextureChunkBase::getSFBorderWidth),
00684 new FieldDescription(SFUInt32::getClassType(),
00685 "NPOTMatrixScale",
00686 NPOTMatrixScaleFieldId, NPOTMatrixScaleFieldMask,
00687 false,
00688 (FieldAccessMethod) &TextureChunkBase::getSFNPOTMatrixScale)
00689 };
00690
00691
00692 FieldContainerType TextureChunkBase::_type(
00693 "TextureChunk",
00694 "StateChunk",
00695 NULL,
00696 (PrototypeCreateF) &TextureChunkBase::createEmpty,
00697 TextureChunk::initMethod,
00698 _desc,
00699 sizeof(_desc));
00700
00701
00702
00703
00704
00705 FieldContainerType &TextureChunkBase::getType(void)
00706 {
00707 return _type;
00708 }
00709
00710 const FieldContainerType &TextureChunkBase::getType(void) const
00711 {
00712 return _type;
00713 }
00714
00715
00716 FieldContainerPtr TextureChunkBase::shallowCopy(void) const
00717 {
00718 TextureChunkPtr returnValue;
00719
00720 newPtr(returnValue, dynamic_cast<const TextureChunk *>(this));
00721
00722 return returnValue;
00723 }
00724
00725 UInt32 TextureChunkBase::getContainerSize(void) const
00726 {
00727 return sizeof(TextureChunk);
00728 }
00729
00730
00731 #if !defined(OSG_FIXED_MFIELDSYNC)
00732 void TextureChunkBase::executeSync( FieldContainer &other,
00733 const BitVector &whichField)
00734 {
00735 this->executeSyncImpl((TextureChunkBase *) &other, whichField);
00736 }
00737 #else
00738 void TextureChunkBase::executeSync( FieldContainer &other,
00739 const BitVector &whichField, const SyncInfo &sInfo )
00740 {
00741 this->executeSyncImpl((TextureChunkBase *) &other, whichField, sInfo);
00742 }
00743 void TextureChunkBase::execBeginEdit(const BitVector &whichField,
00744 UInt32 uiAspect,
00745 UInt32 uiContainerSize)
00746 {
00747 this->execBeginEditImpl(whichField, uiAspect, uiContainerSize);
00748 }
00749
00750 void TextureChunkBase::onDestroyAspect(UInt32 uiId, UInt32 uiAspect)
00751 {
00752 Inherited::onDestroyAspect(uiId, uiAspect);
00753
00754 _mfShaderOffsetMatrix.terminateShare(uiAspect, this->getContainerSize());
00755 }
00756 #endif
00757
00758
00759
00760 #ifdef OSG_WIN32_ICL
00761 #pragma warning (disable : 383)
00762 #endif
00763
00764 TextureChunkBase::TextureChunkBase(void) :
00765 _sfImage (),
00766 _sfInternalFormat (GLenum(GL_NONE)),
00767 _sfExternalFormat (GLenum(GL_NONE)),
00768 _sfScale (bool(true)),
00769 _sfFrame (UInt32(0)),
00770 _sfMinFilter (GLenum(GL_LINEAR_MIPMAP_LINEAR)),
00771 _sfMagFilter (GLenum(GL_LINEAR)),
00772 _sfWrapS (GLenum(GL_REPEAT)),
00773 _sfWrapT (GLenum(GL_REPEAT)),
00774 _sfWrapR (GLenum(GL_REPEAT)),
00775 _sfEnvMode (GLenum(GL_REPLACE)),
00776 _sfEnvColor (Color4f(0,0,0,0)),
00777 _sfEnvCombineRGB (GLenum(GL_MODULATE)),
00778 _sfEnvCombineAlpha (GLenum(GL_MODULATE)),
00779 _sfEnvScaleRGB (Real32(1.0f)),
00780 _sfEnvScaleAlpha (Real32(1.0f)),
00781 _sfEnvSource0RGB (GLenum(GL_TEXTURE)),
00782 _sfEnvSource1RGB (GLenum(GL_PREVIOUS_EXT)),
00783 _sfEnvSource2RGB (GLenum(GL_CONSTANT_EXT)),
00784 _sfEnvSource0Alpha (GLenum(GL_TEXTURE)),
00785 _sfEnvSource1Alpha (GLenum(GL_PREVIOUS_EXT)),
00786 _sfEnvSource2Alpha (GLenum(GL_CONSTANT_EXT)),
00787 _sfEnvOperand0RGB (GLenum(GL_SRC_COLOR)),
00788 _sfEnvOperand1RGB (GLenum(GL_SRC_COLOR)),
00789 _sfEnvOperand2RGB (GLenum(GL_SRC_ALPHA)),
00790 _sfEnvOperand0Alpha (GLenum(GL_SRC_ALPHA)),
00791 _sfEnvOperand1Alpha (GLenum(GL_SRC_ALPHA)),
00792 _sfEnvOperand2Alpha (GLenum(GL_SRC_ALPHA)),
00793 _sfGLId (GLenum(0)),
00794 _sfIgnoreGLForAspect (Int32(-1)),
00795 _sfPointSprite (bool(GL_FALSE)),
00796 _sfPriority (Real32(1.f)),
00797 _sfShaderOperation (GLenum(GL_NONE)),
00798 _sfShaderInput (GLenum(GL_NONE)),
00799 _mfShaderOffsetMatrix (),
00800 _sfShaderOffsetScale (),
00801 _sfShaderOffsetBias (),
00802 _sfShaderRGBADotProduct (GLenum(GL_NONE)),
00803 _sfShaderCullModes (UInt8(0)),
00804 _sfShaderConstEye (),
00805 _sfLodBias (Real32(0.0)),
00806 _sfTarget (GLenum(GL_NONE)),
00807 _sfDirtyLeft (Int32(-1)),
00808 _sfDirtyMinX (Int32(-1)),
00809 _sfDirtyMaxX (Int32(-1)),
00810 _sfDirtyMinY (Int32(-1)),
00811 _sfDirtyMaxY (Int32(-1)),
00812 _sfDirtyMinZ (Int32(-1)),
00813 _sfDirtyMaxZ (Int32(-1)),
00814 _sfAnisotropy (Real32(1.0f)),
00815 _sfBorderColor (Color4f(0,0,0,0)),
00816 _sfBorderWidth (UInt32(0)),
00817 _sfNPOTMatrixScale (UInt32(0)),
00818 Inherited()
00819 {
00820 }
00821
00822 #ifdef OSG_WIN32_ICL
00823 #pragma warning (default : 383)
00824 #endif
00825
00826 TextureChunkBase::TextureChunkBase(const TextureChunkBase &source) :
00827 _sfImage (source._sfImage ),
00828 _sfInternalFormat (source._sfInternalFormat ),
00829 _sfExternalFormat (source._sfExternalFormat ),
00830 _sfScale (source._sfScale ),
00831 _sfFrame (source._sfFrame ),
00832 _sfMinFilter (source._sfMinFilter ),
00833 _sfMagFilter (source._sfMagFilter ),
00834 _sfWrapS (source._sfWrapS ),
00835 _sfWrapT (source._sfWrapT ),
00836 _sfWrapR (source._sfWrapR ),
00837 _sfEnvMode (source._sfEnvMode ),
00838 _sfEnvColor (source._sfEnvColor ),
00839 _sfEnvCombineRGB (source._sfEnvCombineRGB ),
00840 _sfEnvCombineAlpha (source._sfEnvCombineAlpha ),
00841 _sfEnvScaleRGB (source._sfEnvScaleRGB ),
00842 _sfEnvScaleAlpha (source._sfEnvScaleAlpha ),
00843 _sfEnvSource0RGB (source._sfEnvSource0RGB ),
00844 _sfEnvSource1RGB (source._sfEnvSource1RGB ),
00845 _sfEnvSource2RGB (source._sfEnvSource2RGB ),
00846 _sfEnvSource0Alpha (source._sfEnvSource0Alpha ),
00847 _sfEnvSource1Alpha (source._sfEnvSource1Alpha ),
00848 _sfEnvSource2Alpha (source._sfEnvSource2Alpha ),
00849 _sfEnvOperand0RGB (source._sfEnvOperand0RGB ),
00850 _sfEnvOperand1RGB (source._sfEnvOperand1RGB ),
00851 _sfEnvOperand2RGB (source._sfEnvOperand2RGB ),
00852 _sfEnvOperand0Alpha (source._sfEnvOperand0Alpha ),
00853 _sfEnvOperand1Alpha (source._sfEnvOperand1Alpha ),
00854 _sfEnvOperand2Alpha (source._sfEnvOperand2Alpha ),
00855 _sfGLId (source._sfGLId ),
00856 _sfIgnoreGLForAspect (source._sfIgnoreGLForAspect ),
00857 _sfPointSprite (source._sfPointSprite ),
00858 _sfPriority (source._sfPriority ),
00859 _sfShaderOperation (source._sfShaderOperation ),
00860 _sfShaderInput (source._sfShaderInput ),
00861 _mfShaderOffsetMatrix (source._mfShaderOffsetMatrix ),
00862 _sfShaderOffsetScale (source._sfShaderOffsetScale ),
00863 _sfShaderOffsetBias (source._sfShaderOffsetBias ),
00864 _sfShaderRGBADotProduct (source._sfShaderRGBADotProduct ),
00865 _sfShaderCullModes (source._sfShaderCullModes ),
00866 _sfShaderConstEye (source._sfShaderConstEye ),
00867 _sfLodBias (source._sfLodBias ),
00868 _sfTarget (source._sfTarget ),
00869 _sfDirtyLeft (source._sfDirtyLeft ),
00870 _sfDirtyMinX (source._sfDirtyMinX ),
00871 _sfDirtyMaxX (source._sfDirtyMaxX ),
00872 _sfDirtyMinY (source._sfDirtyMinY ),
00873 _sfDirtyMaxY (source._sfDirtyMaxY ),
00874 _sfDirtyMinZ (source._sfDirtyMinZ ),
00875 _sfDirtyMaxZ (source._sfDirtyMaxZ ),
00876 _sfAnisotropy (source._sfAnisotropy ),
00877 _sfBorderColor (source._sfBorderColor ),
00878 _sfBorderWidth (source._sfBorderWidth ),
00879 _sfNPOTMatrixScale (source._sfNPOTMatrixScale ),
00880 Inherited (source)
00881 {
00882 }
00883
00884
00885
00886 TextureChunkBase::~TextureChunkBase(void)
00887 {
00888 }
00889
00890
00891
00892 UInt32 TextureChunkBase::getBinSize(const BitVector &whichField)
00893 {
00894 UInt32 returnValue = Inherited::getBinSize(whichField);
00895
00896 if(FieldBits::NoField != (ImageFieldMask & whichField))
00897 {
00898 returnValue += _sfImage.getBinSize();
00899 }
00900
00901 if(FieldBits::NoField != (InternalFormatFieldMask & whichField))
00902 {
00903 returnValue += _sfInternalFormat.getBinSize();
00904 }
00905
00906 if(FieldBits::NoField != (ExternalFormatFieldMask & whichField))
00907 {
00908 returnValue += _sfExternalFormat.getBinSize();
00909 }
00910
00911 if(FieldBits::NoField != (ScaleFieldMask & whichField))
00912 {
00913 returnValue += _sfScale.getBinSize();
00914 }
00915
00916 if(FieldBits::NoField != (FrameFieldMask & whichField))
00917 {
00918 returnValue += _sfFrame.getBinSize();
00919 }
00920
00921 if(FieldBits::NoField != (MinFilterFieldMask & whichField))
00922 {
00923 returnValue += _sfMinFilter.getBinSize();
00924 }
00925
00926 if(FieldBits::NoField != (MagFilterFieldMask & whichField))
00927 {
00928 returnValue += _sfMagFilter.getBinSize();
00929 }
00930
00931 if(FieldBits::NoField != (WrapSFieldMask & whichField))
00932 {
00933 returnValue += _sfWrapS.getBinSize();
00934 }
00935
00936 if(FieldBits::NoField != (WrapTFieldMask & whichField))
00937 {
00938 returnValue += _sfWrapT.getBinSize();
00939 }
00940
00941 if(FieldBits::NoField != (WrapRFieldMask & whichField))
00942 {
00943 returnValue += _sfWrapR.getBinSize();
00944 }
00945
00946 if(FieldBits::NoField != (EnvModeFieldMask & whichField))
00947 {
00948 returnValue += _sfEnvMode.getBinSize();
00949 }
00950
00951 if(FieldBits::NoField != (EnvColorFieldMask & whichField))
00952 {
00953 returnValue += _sfEnvColor.getBinSize();
00954 }
00955
00956 if(FieldBits::NoField != (EnvCombineRGBFieldMask & whichField))
00957 {
00958 returnValue += _sfEnvCombineRGB.getBinSize();
00959 }
00960
00961 if(FieldBits::NoField != (EnvCombineAlphaFieldMask & whichField))
00962 {
00963 returnValue += _sfEnvCombineAlpha.getBinSize();
00964 }
00965
00966 if(FieldBits::NoField != (EnvScaleRGBFieldMask & whichField))
00967 {
00968 returnValue += _sfEnvScaleRGB.getBinSize();
00969 }
00970
00971 if(FieldBits::NoField != (EnvScaleAlphaFieldMask & whichField))
00972 {
00973 returnValue += _sfEnvScaleAlpha.getBinSize();
00974 }
00975
00976 if(FieldBits::NoField != (EnvSource0RGBFieldMask & whichField))
00977 {
00978 returnValue += _sfEnvSource0RGB.getBinSize();
00979 }
00980
00981 if(FieldBits::NoField != (EnvSource1RGBFieldMask & whichField))
00982 {
00983 returnValue += _sfEnvSource1RGB.getBinSize();
00984 }
00985
00986 if(FieldBits::NoField != (EnvSource2RGBFieldMask & whichField))
00987 {
00988 returnValue += _sfEnvSource2RGB.getBinSize();
00989 }
00990
00991 if(FieldBits::NoField != (EnvSource0AlphaFieldMask & whichField))
00992 {
00993 returnValue += _sfEnvSource0Alpha.getBinSize();
00994 }
00995
00996 if(FieldBits::NoField != (EnvSource1AlphaFieldMask & whichField))
00997 {
00998 returnValue += _sfEnvSource1Alpha.getBinSize();
00999 }
01000
01001 if(FieldBits::NoField != (EnvSource2AlphaFieldMask & whichField))
01002 {
01003 returnValue += _sfEnvSource2Alpha.getBinSize();
01004 }
01005
01006 if(FieldBits::NoField != (EnvOperand0RGBFieldMask & whichField))
01007 {
01008 returnValue += _sfEnvOperand0RGB.getBinSize();
01009 }
01010
01011 if(FieldBits::NoField != (EnvOperand1RGBFieldMask & whichField))
01012 {
01013 returnValue += _sfEnvOperand1RGB.getBinSize();
01014 }
01015
01016 if(FieldBits::NoField != (EnvOperand2RGBFieldMask & whichField))
01017 {
01018 returnValue += _sfEnvOperand2RGB.getBinSize();
01019 }
01020
01021 if(FieldBits::NoField != (EnvOperand0AlphaFieldMask & whichField))
01022 {
01023 returnValue += _sfEnvOperand0Alpha.getBinSize();
01024 }
01025
01026 if(FieldBits::NoField != (EnvOperand1AlphaFieldMask & whichField))
01027 {
01028 returnValue += _sfEnvOperand1Alpha.getBinSize();
01029 }
01030
01031 if(FieldBits::NoField != (EnvOperand2AlphaFieldMask & whichField))
01032 {
01033 returnValue += _sfEnvOperand2Alpha.getBinSize();
01034 }
01035
01036 if(FieldBits::NoField != (GLIdFieldMask & whichField))
01037 {
01038 returnValue += _sfGLId.getBinSize();
01039 }
01040
01041 if(FieldBits::NoField != (IgnoreGLForAspectFieldMask & whichField))
01042 {
01043 returnValue += _sfIgnoreGLForAspect.getBinSize();
01044 }
01045
01046 if(FieldBits::NoField != (PointSpriteFieldMask & whichField))
01047 {
01048 returnValue += _sfPointSprite.getBinSize();
01049 }
01050
01051 if(FieldBits::NoField != (PriorityFieldMask & whichField))
01052 {
01053 returnValue += _sfPriority.getBinSize();
01054 }
01055
01056 if(FieldBits::NoField != (ShaderOperationFieldMask & whichField))
01057 {
01058 returnValue += _sfShaderOperation.getBinSize();
01059 }
01060
01061 if(FieldBits::NoField != (ShaderInputFieldMask & whichField))
01062 {
01063 returnValue += _sfShaderInput.getBinSize();
01064 }
01065
01066 if(FieldBits::NoField != (ShaderOffsetMatrixFieldMask & whichField))
01067 {
01068 returnValue += _mfShaderOffsetMatrix.getBinSize();
01069 }
01070
01071 if(FieldBits::NoField != (ShaderOffsetScaleFieldMask & whichField))
01072 {
01073 returnValue += _sfShaderOffsetScale.getBinSize();
01074 }
01075
01076 if(FieldBits::NoField != (ShaderOffsetBiasFieldMask & whichField))
01077 {
01078 returnValue += _sfShaderOffsetBias.getBinSize();
01079 }
01080
01081 if(FieldBits::NoField != (ShaderRGBADotProductFieldMask & whichField))
01082 {
01083 returnValue += _sfShaderRGBADotProduct.getBinSize();
01084 }
01085
01086 if(FieldBits::NoField != (ShaderCullModesFieldMask & whichField))
01087 {
01088 returnValue += _sfShaderCullModes.getBinSize();
01089 }
01090
01091 if(FieldBits::NoField != (ShaderConstEyeFieldMask & whichField))
01092 {
01093 returnValue += _sfShaderConstEye.getBinSize();
01094 }
01095
01096 if(FieldBits::NoField != (LodBiasFieldMask & whichField))
01097 {
01098 returnValue += _sfLodBias.getBinSize();
01099 }
01100
01101 if(FieldBits::NoField != (TargetFieldMask & whichField))
01102 {
01103 returnValue += _sfTarget.getBinSize();
01104 }
01105
01106 if(FieldBits::NoField != (DirtyLeftFieldMask & whichField))
01107 {
01108 returnValue += _sfDirtyLeft.getBinSize();
01109 }
01110
01111 if(FieldBits::NoField != (DirtyMinXFieldMask & whichField))
01112 {
01113 returnValue += _sfDirtyMinX.getBinSize();
01114 }
01115
01116 if(FieldBits::NoField != (DirtyMaxXFieldMask & whichField))
01117 {
01118 returnValue += _sfDirtyMaxX.getBinSize();
01119 }
01120
01121 if(FieldBits::NoField != (DirtyMinYFieldMask & whichField))
01122 {
01123 returnValue += _sfDirtyMinY.getBinSize();
01124 }
01125
01126 if(FieldBits::NoField != (DirtyMaxYFieldMask & whichField))
01127 {
01128 returnValue += _sfDirtyMaxY.getBinSize();
01129 }
01130
01131 if(FieldBits::NoField != (DirtyMinZFieldMask & whichField))
01132 {
01133 returnValue += _sfDirtyMinZ.getBinSize();
01134 }
01135
01136 if(FieldBits::NoField != (DirtyMaxZFieldMask & whichField))
01137 {
01138 returnValue += _sfDirtyMaxZ.getBinSize();
01139 }
01140
01141 if(FieldBits::NoField != (AnisotropyFieldMask & whichField))
01142 {
01143 returnValue += _sfAnisotropy.getBinSize();
01144 }
01145
01146 if(FieldBits::NoField != (BorderColorFieldMask & whichField))
01147 {
01148 returnValue += _sfBorderColor.getBinSize();
01149 }
01150
01151 if(FieldBits::NoField != (BorderWidthFieldMask & whichField))
01152 {
01153 returnValue += _sfBorderWidth.getBinSize();
01154 }
01155
01156 if(FieldBits::NoField != (NPOTMatrixScaleFieldMask & whichField))
01157 {
01158 returnValue += _sfNPOTMatrixScale.getBinSize();
01159 }
01160
01161
01162 return returnValue;
01163 }
01164
01165 void TextureChunkBase::copyToBin( BinaryDataHandler &pMem,
01166 const BitVector &whichField)
01167 {
01168 Inherited::copyToBin(pMem, whichField);
01169
01170 if(FieldBits::NoField != (ImageFieldMask & whichField))
01171 {
01172 _sfImage.copyToBin(pMem);
01173 }
01174
01175 if(FieldBits::NoField != (InternalFormatFieldMask & whichField))
01176 {
01177 _sfInternalFormat.copyToBin(pMem);
01178 }
01179
01180 if(FieldBits::NoField != (ExternalFormatFieldMask & whichField))
01181 {
01182 _sfExternalFormat.copyToBin(pMem);
01183 }
01184
01185 if(FieldBits::NoField != (ScaleFieldMask & whichField))
01186 {
01187 _sfScale.copyToBin(pMem);
01188 }
01189
01190 if(FieldBits::NoField != (FrameFieldMask & whichField))
01191 {
01192 _sfFrame.copyToBin(pMem);
01193 }
01194
01195 if(FieldBits::NoField != (MinFilterFieldMask & whichField))
01196 {
01197 _sfMinFilter.copyToBin(pMem);
01198 }
01199
01200 if(FieldBits::NoField != (MagFilterFieldMask & whichField))
01201 {
01202 _sfMagFilter.copyToBin(pMem);
01203 }
01204
01205 if(FieldBits::NoField != (WrapSFieldMask & whichField))
01206 {
01207 _sfWrapS.copyToBin(pMem);
01208 }
01209
01210 if(FieldBits::NoField != (WrapTFieldMask & whichField))
01211 {
01212 _sfWrapT.copyToBin(pMem);
01213 }
01214
01215 if(FieldBits::NoField != (WrapRFieldMask & whichField))
01216 {
01217 _sfWrapR.copyToBin(pMem);
01218 }
01219
01220 if(FieldBits::NoField != (EnvModeFieldMask & whichField))
01221 {
01222 _sfEnvMode.copyToBin(pMem);
01223 }
01224
01225 if(FieldBits::NoField != (EnvColorFieldMask & whichField))
01226 {
01227 _sfEnvColor.copyToBin(pMem);
01228 }
01229
01230 if(FieldBits::NoField != (EnvCombineRGBFieldMask & whichField))
01231 {
01232 _sfEnvCombineRGB.copyToBin(pMem);
01233 }
01234
01235 if(FieldBits::NoField != (EnvCombineAlphaFieldMask & whichField))
01236 {
01237 _sfEnvCombineAlpha.copyToBin(pMem);
01238 }
01239
01240 if(FieldBits::NoField != (EnvScaleRGBFieldMask & whichField))
01241 {
01242 _sfEnvScaleRGB.copyToBin(pMem);
01243 }
01244
01245 if(FieldBits::NoField != (EnvScaleAlphaFieldMask & whichField))
01246 {
01247 _sfEnvScaleAlpha.copyToBin(pMem);
01248 }
01249
01250 if(FieldBits::NoField != (EnvSource0RGBFieldMask & whichField))
01251 {
01252 _sfEnvSource0RGB.copyToBin(pMem);
01253 }
01254
01255 if(FieldBits::NoField != (EnvSource1RGBFieldMask & whichField))
01256 {
01257 _sfEnvSource1RGB.copyToBin(pMem);
01258 }
01259
01260 if(FieldBits::NoField != (EnvSource2RGBFieldMask & whichField))
01261 {
01262 _sfEnvSource2RGB.copyToBin(pMem);
01263 }
01264
01265 if(FieldBits::NoField != (EnvSource0AlphaFieldMask & whichField))
01266 {
01267 _sfEnvSource0Alpha.copyToBin(pMem);
01268 }
01269
01270 if(FieldBits::NoField != (EnvSource1AlphaFieldMask & whichField))
01271 {
01272 _sfEnvSource1Alpha.copyToBin(pMem);
01273 }
01274
01275 if(FieldBits::NoField != (EnvSource2AlphaFieldMask & whichField))
01276 {
01277 _sfEnvSource2Alpha.copyToBin(pMem);
01278 }
01279
01280 if(FieldBits::NoField != (EnvOperand0RGBFieldMask & whichField))
01281 {
01282 _sfEnvOperand0RGB.copyToBin(pMem);
01283 }
01284
01285 if(FieldBits::NoField != (EnvOperand1RGBFieldMask & whichField))
01286 {
01287 _sfEnvOperand1RGB.copyToBin(pMem);
01288 }
01289
01290 if(FieldBits::NoField != (EnvOperand2RGBFieldMask & whichField))
01291 {
01292 _sfEnvOperand2RGB.copyToBin(pMem);
01293 }
01294
01295 if(FieldBits::NoField != (EnvOperand0AlphaFieldMask & whichField))
01296 {
01297 _sfEnvOperand0Alpha.copyToBin(pMem);
01298 }
01299
01300 if(FieldBits::NoField != (EnvOperand1AlphaFieldMask & whichField))
01301 {
01302 _sfEnvOperand1Alpha.copyToBin(pMem);
01303 }
01304
01305 if(FieldBits::NoField != (EnvOperand2AlphaFieldMask & whichField))
01306 {
01307 _sfEnvOperand2Alpha.copyToBin(pMem);
01308 }
01309
01310 if(FieldBits::NoField != (GLIdFieldMask & whichField))
01311 {
01312 _sfGLId.copyToBin(pMem);
01313 }
01314
01315 if(FieldBits::NoField != (IgnoreGLForAspectFieldMask & whichField))
01316 {
01317 _sfIgnoreGLForAspect.copyToBin(pMem);
01318 }
01319
01320 if(FieldBits::NoField != (PointSpriteFieldMask & whichField))
01321 {
01322 _sfPointSprite.copyToBin(pMem);
01323 }
01324
01325 if(FieldBits::NoField != (PriorityFieldMask & whichField))
01326 {
01327 _sfPriority.copyToBin(pMem);
01328 }
01329
01330 if(FieldBits::NoField != (ShaderOperationFieldMask & whichField))
01331 {
01332 _sfShaderOperation.copyToBin(pMem);
01333 }
01334
01335 if(FieldBits::NoField != (ShaderInputFieldMask & whichField))
01336 {
01337 _sfShaderInput.copyToBin(pMem);
01338 }
01339
01340 if(FieldBits::NoField != (ShaderOffsetMatrixFieldMask & whichField))
01341 {
01342 _mfShaderOffsetMatrix.copyToBin(pMem);
01343 }
01344
01345 if(FieldBits::NoField != (ShaderOffsetScaleFieldMask & whichField))
01346 {
01347 _sfShaderOffsetScale.copyToBin(pMem);
01348 }
01349
01350 if(FieldBits::NoField != (ShaderOffsetBiasFieldMask & whichField))
01351 {
01352 _sfShaderOffsetBias.copyToBin(pMem);
01353 }
01354
01355 if(FieldBits::NoField != (ShaderRGBADotProductFieldMask & whichField))
01356 {
01357 _sfShaderRGBADotProduct.copyToBin(pMem);
01358 }
01359
01360 if(FieldBits::NoField != (ShaderCullModesFieldMask & whichField))
01361 {
01362 _sfShaderCullModes.copyToBin(pMem);
01363 }
01364
01365 if(FieldBits::NoField != (ShaderConstEyeFieldMask & whichField))
01366 {
01367 _sfShaderConstEye.copyToBin(pMem);
01368 }
01369
01370 if(FieldBits::NoField != (LodBiasFieldMask & whichField))
01371 {
01372 _sfLodBias.copyToBin(pMem);
01373 }
01374
01375 if(FieldBits::NoField != (TargetFieldMask & whichField))
01376 {
01377 _sfTarget.copyToBin(pMem);
01378 }
01379
01380 if(FieldBits::NoField != (DirtyLeftFieldMask & whichField))
01381 {
01382 _sfDirtyLeft.copyToBin(pMem);
01383 }
01384
01385 if(FieldBits::NoField != (DirtyMinXFieldMask & whichField))
01386 {
01387 _sfDirtyMinX.copyToBin(pMem);
01388 }
01389
01390 if(FieldBits::NoField != (DirtyMaxXFieldMask & whichField))
01391 {
01392 _sfDirtyMaxX.copyToBin(pMem);
01393 }
01394
01395 if(FieldBits::NoField != (DirtyMinYFieldMask & whichField))
01396 {
01397 _sfDirtyMinY.copyToBin(pMem);
01398 }
01399
01400 if(FieldBits::NoField != (DirtyMaxYFieldMask & whichField))
01401 {
01402 _sfDirtyMaxY.copyToBin(pMem);
01403 }
01404
01405 if(FieldBits::NoField != (DirtyMinZFieldMask & whichField))
01406 {
01407 _sfDirtyMinZ.copyToBin(pMem);
01408 }
01409
01410 if(FieldBits::NoField != (DirtyMaxZFieldMask & whichField))
01411 {
01412 _sfDirtyMaxZ.copyToBin(pMem);
01413 }
01414
01415 if(FieldBits::NoField != (AnisotropyFieldMask & whichField))
01416 {
01417 _sfAnisotropy.copyToBin(pMem);
01418 }
01419
01420 if(FieldBits::NoField != (BorderColorFieldMask & whichField))
01421 {
01422 _sfBorderColor.copyToBin(pMem);
01423 }
01424
01425 if(FieldBits::NoField != (BorderWidthFieldMask & whichField))
01426 {
01427 _sfBorderWidth.copyToBin(pMem);
01428 }
01429
01430 if(FieldBits::NoField != (NPOTMatrixScaleFieldMask & whichField))
01431 {
01432 _sfNPOTMatrixScale.copyToBin(pMem);
01433 }
01434
01435
01436 }
01437
01438 void TextureChunkBase::copyFromBin( BinaryDataHandler &pMem,
01439 const BitVector &whichField)
01440 {
01441 Inherited::copyFromBin(pMem, whichField);
01442
01443 if(FieldBits::NoField != (ImageFieldMask & whichField))
01444 {
01445 _sfImage.copyFromBin(pMem);
01446 }
01447
01448 if(FieldBits::NoField != (InternalFormatFieldMask & whichField))
01449 {
01450 _sfInternalFormat.copyFromBin(pMem);
01451 }
01452
01453 if(FieldBits::NoField != (ExternalFormatFieldMask & whichField))
01454 {
01455 _sfExternalFormat.copyFromBin(pMem);
01456 }
01457
01458 if(FieldBits::NoField != (ScaleFieldMask & whichField))
01459 {
01460 _sfScale.copyFromBin(pMem);
01461 }
01462
01463 if(FieldBits::NoField != (FrameFieldMask & whichField))
01464 {
01465 _sfFrame.copyFromBin(pMem);
01466 }
01467
01468 if(FieldBits::NoField != (MinFilterFieldMask & whichField))
01469 {
01470 _sfMinFilter.copyFromBin(pMem);
01471 }
01472
01473 if(FieldBits::NoField != (MagFilterFieldMask & whichField))
01474 {
01475 _sfMagFilter.copyFromBin(pMem);
01476 }
01477
01478 if(FieldBits::NoField != (WrapSFieldMask & whichField))
01479 {
01480 _sfWrapS.copyFromBin(pMem);
01481 }
01482
01483 if(FieldBits::NoField != (WrapTFieldMask & whichField))
01484 {
01485 _sfWrapT.copyFromBin(pMem);
01486 }
01487
01488 if(FieldBits::NoField != (WrapRFieldMask & whichField))
01489 {
01490 _sfWrapR.copyFromBin(pMem);
01491 }
01492
01493 if(FieldBits::NoField != (EnvModeFieldMask & whichField))
01494 {
01495 _sfEnvMode.copyFromBin(pMem);
01496 }
01497
01498 if(FieldBits::NoField != (EnvColorFieldMask & whichField))
01499 {
01500 _sfEnvColor.copyFromBin(pMem);
01501 }
01502
01503 if(FieldBits::NoField != (EnvCombineRGBFieldMask & whichField))
01504 {
01505 _sfEnvCombineRGB.copyFromBin(pMem);
01506 }
01507
01508 if(FieldBits::NoField != (EnvCombineAlphaFieldMask & whichField))
01509 {
01510 _sfEnvCombineAlpha.copyFromBin(pMem);
01511 }
01512
01513 if(FieldBits::NoField != (EnvScaleRGBFieldMask & whichField))
01514 {
01515 _sfEnvScaleRGB.copyFromBin(pMem);
01516 }
01517
01518 if(FieldBits::NoField != (EnvScaleAlphaFieldMask & whichField))
01519 {
01520 _sfEnvScaleAlpha.copyFromBin(pMem);
01521 }
01522
01523 if(FieldBits::NoField != (EnvSource0RGBFieldMask & whichField))
01524 {
01525 _sfEnvSource0RGB.copyFromBin(pMem);
01526 }
01527
01528 if(FieldBits::NoField != (EnvSource1RGBFieldMask & whichField))
01529 {
01530 _sfEnvSource1RGB.copyFromBin(pMem);
01531 }
01532
01533 if(FieldBits::NoField != (EnvSource2RGBFieldMask & whichField))
01534 {
01535 _sfEnvSource2RGB.copyFromBin(pMem);
01536 }
01537
01538 if(FieldBits::NoField != (EnvSource0AlphaFieldMask & whichField))
01539 {
01540 _sfEnvSource0Alpha.copyFromBin(pMem);
01541 }
01542
01543 if(FieldBits::NoField != (EnvSource1AlphaFieldMask & whichField))
01544 {
01545 _sfEnvSource1Alpha.copyFromBin(pMem);
01546 }
01547
01548 if(FieldBits::NoField != (EnvSource2AlphaFieldMask & whichField))
01549 {
01550 _sfEnvSource2Alpha.copyFromBin(pMem);
01551 }
01552
01553 if(FieldBits::NoField != (EnvOperand0RGBFieldMask & whichField))
01554 {
01555 _sfEnvOperand0RGB.copyFromBin(pMem);
01556 }
01557
01558 if(FieldBits::NoField != (EnvOperand1RGBFieldMask & whichField))
01559 {
01560 _sfEnvOperand1RGB.copyFromBin(pMem);
01561 }
01562
01563 if(FieldBits::NoField != (EnvOperand2RGBFieldMask & whichField))
01564 {
01565 _sfEnvOperand2RGB.copyFromBin(pMem);
01566 }
01567
01568 if(FieldBits::NoField != (EnvOperand0AlphaFieldMask & whichField))
01569 {
01570 _sfEnvOperand0Alpha.copyFromBin(pMem);
01571 }
01572
01573 if(FieldBits::NoField != (EnvOperand1AlphaFieldMask & whichField))
01574 {
01575 _sfEnvOperand1Alpha.copyFromBin(pMem);
01576 }
01577
01578 if(FieldBits::NoField != (EnvOperand2AlphaFieldMask & whichField))
01579 {
01580 _sfEnvOperand2Alpha.copyFromBin(pMem);
01581 }
01582
01583 if(FieldBits::NoField != (GLIdFieldMask & whichField))
01584 {
01585 _sfGLId.copyFromBin(pMem);
01586 }
01587
01588 if(FieldBits::NoField != (IgnoreGLForAspectFieldMask & whichField))
01589 {
01590 _sfIgnoreGLForAspect.copyFromBin(pMem);
01591 }
01592
01593 if(FieldBits::NoField != (PointSpriteFieldMask & whichField))
01594 {
01595 _sfPointSprite.copyFromBin(pMem);
01596 }
01597
01598 if(FieldBits::NoField != (PriorityFieldMask & whichField))
01599 {
01600 _sfPriority.copyFromBin(pMem);
01601 }
01602
01603 if(FieldBits::NoField != (ShaderOperationFieldMask & whichField))
01604 {
01605 _sfShaderOperation.copyFromBin(pMem);
01606 }
01607
01608 if(FieldBits::NoField != (ShaderInputFieldMask & whichField))
01609 {
01610 _sfShaderInput.copyFromBin(pMem);
01611 }
01612
01613 if(FieldBits::NoField != (ShaderOffsetMatrixFieldMask & whichField))
01614 {
01615 _mfShaderOffsetMatrix.copyFromBin(pMem);
01616 }
01617
01618 if(FieldBits::NoField != (ShaderOffsetScaleFieldMask & whichField))
01619 {
01620 _sfShaderOffsetScale.copyFromBin(pMem);
01621 }
01622
01623 if(FieldBits::NoField != (ShaderOffsetBiasFieldMask & whichField))
01624 {
01625 _sfShaderOffsetBias.copyFromBin(pMem);
01626 }
01627
01628 if(FieldBits::NoField != (ShaderRGBADotProductFieldMask & whichField))
01629 {
01630 _sfShaderRGBADotProduct.copyFromBin(pMem);
01631 }
01632
01633 if(FieldBits::NoField != (ShaderCullModesFieldMask & whichField))
01634 {
01635 _sfShaderCullModes.copyFromBin(pMem);
01636 }
01637
01638 if(FieldBits::NoField != (ShaderConstEyeFieldMask & whichField))
01639 {
01640 _sfShaderConstEye.copyFromBin(pMem);
01641 }
01642
01643 if(FieldBits::NoField != (LodBiasFieldMask & whichField))
01644 {
01645 _sfLodBias.copyFromBin(pMem);
01646 }
01647
01648 if(FieldBits::NoField != (TargetFieldMask & whichField))
01649 {
01650 _sfTarget.copyFromBin(pMem);
01651 }
01652
01653 if(FieldBits::NoField != (DirtyLeftFieldMask & whichField))
01654 {
01655 _sfDirtyLeft.copyFromBin(pMem);
01656 }
01657
01658 if(FieldBits::NoField != (DirtyMinXFieldMask & whichField))
01659 {
01660 _sfDirtyMinX.copyFromBin(pMem);
01661 }
01662
01663 if(FieldBits::NoField != (DirtyMaxXFieldMask & whichField))
01664 {
01665 _sfDirtyMaxX.copyFromBin(pMem);
01666 }
01667
01668 if(FieldBits::NoField != (DirtyMinYFieldMask & whichField))
01669 {
01670 _sfDirtyMinY.copyFromBin(pMem);
01671 }
01672
01673 if(FieldBits::NoField != (DirtyMaxYFieldMask & whichField))
01674 {
01675 _sfDirtyMaxY.copyFromBin(pMem);
01676 }
01677
01678 if(FieldBits::NoField != (DirtyMinZFieldMask & whichField))
01679 {
01680 _sfDirtyMinZ.copyFromBin(pMem);
01681 }
01682
01683 if(FieldBits::NoField != (DirtyMaxZFieldMask & whichField))
01684 {
01685 _sfDirtyMaxZ.copyFromBin(pMem);
01686 }
01687
01688 if(FieldBits::NoField != (AnisotropyFieldMask & whichField))
01689 {
01690 _sfAnisotropy.copyFromBin(pMem);
01691 }
01692
01693 if(FieldBits::NoField != (BorderColorFieldMask & whichField))
01694 {
01695 _sfBorderColor.copyFromBin(pMem);
01696 }
01697
01698 if(FieldBits::NoField != (BorderWidthFieldMask & whichField))
01699 {
01700 _sfBorderWidth.copyFromBin(pMem);
01701 }
01702
01703 if(FieldBits::NoField != (NPOTMatrixScaleFieldMask & whichField))
01704 {
01705 _sfNPOTMatrixScale.copyFromBin(pMem);
01706 }
01707
01708
01709 }
01710
01711 #if !defined(OSG_FIXED_MFIELDSYNC)
01712 void TextureChunkBase::executeSyncImpl( TextureChunkBase *pOther,
01713 const BitVector &whichField)
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 }
01879 #else
01880 void TextureChunkBase::executeSyncImpl( TextureChunkBase *pOther,
01881 const BitVector &whichField,
01882 const SyncInfo &sInfo )
01883 {
01884
01885 Inherited::executeSyncImpl(pOther, whichField, sInfo);
01886
01887 if(FieldBits::NoField != (ImageFieldMask & whichField))
01888 _sfImage.syncWith(pOther->_sfImage);
01889
01890 if(FieldBits::NoField != (InternalFormatFieldMask & whichField))
01891 _sfInternalFormat.syncWith(pOther->_sfInternalFormat);
01892
01893 if(FieldBits::NoField != (ExternalFormatFieldMask & whichField))
01894 _sfExternalFormat.syncWith(pOther->_sfExternalFormat);
01895
01896 if(FieldBits::NoField != (ScaleFieldMask & whichField))
01897 _sfScale.syncWith(pOther->_sfScale);
01898
01899 if(FieldBits::NoField != (FrameFieldMask & whichField))
01900 _sfFrame.syncWith(pOther->_sfFrame);
01901
01902 if(FieldBits::NoField != (MinFilterFieldMask & whichField))
01903 _sfMinFilter.syncWith(pOther->_sfMinFilter);
01904
01905 if(FieldBits::NoField != (MagFilterFieldMask & whichField))
01906 _sfMagFilter.syncWith(pOther->_sfMagFilter);
01907
01908 if(FieldBits::NoField != (WrapSFieldMask & whichField))
01909 _sfWrapS.syncWith(pOther->_sfWrapS);
01910
01911 if(FieldBits::NoField != (WrapTFieldMask & whichField))
01912 _sfWrapT.syncWith(pOther->_sfWrapT);
01913
01914 if(FieldBits::NoField != (WrapRFieldMask & whichField))
01915 _sfWrapR.syncWith(pOther->_sfWrapR);
01916
01917 if(FieldBits::NoField != (EnvModeFieldMask & whichField))
01918 _sfEnvMode.syncWith(pOther->_sfEnvMode);
01919
01920 if(FieldBits::NoField != (EnvColorFieldMask & whichField))
01921 _sfEnvColor.syncWith(pOther->_sfEnvColor);
01922
01923 if(FieldBits::NoField != (EnvCombineRGBFieldMask & whichField))
01924 _sfEnvCombineRGB.syncWith(pOther->_sfEnvCombineRGB);
01925
01926 if(FieldBits::NoField != (EnvCombineAlphaFieldMask & whichField))
01927 _sfEnvCombineAlpha.syncWith(pOther->_sfEnvCombineAlpha);
01928
01929 if(FieldBits::NoField != (EnvScaleRGBFieldMask & whichField))
01930 _sfEnvScaleRGB.syncWith(pOther->_sfEnvScaleRGB);
01931
01932 if(FieldBits::NoField != (EnvScaleAlphaFieldMask & whichField))
01933 _sfEnvScaleAlpha.syncWith(pOther->_sfEnvScaleAlpha);
01934
01935 if(FieldBits::NoField != (EnvSource0RGBFieldMask & whichField))
01936 _sfEnvSource0RGB.syncWith(pOther->_sfEnvSource0RGB);
01937
01938 if(FieldBits::NoField != (EnvSource1RGBFieldMask & whichField))
01939 _sfEnvSource1RGB.syncWith(pOther->_sfEnvSource1RGB);
01940
01941 if(FieldBits::NoField != (EnvSource2RGBFieldMask & whichField))
01942 _sfEnvSource2RGB.syncWith(pOther->_sfEnvSource2RGB);
01943
01944 if(FieldBits::NoField != (EnvSource0AlphaFieldMask & whichField))
01945 _sfEnvSource0Alpha.syncWith(pOther->_sfEnvSource0Alpha);
01946
01947 if(FieldBits::NoField != (EnvSource1AlphaFieldMask & whichField))
01948 _sfEnvSource1Alpha.syncWith(pOther->_sfEnvSource1Alpha);
01949
01950 if(FieldBits::NoField != (EnvSource2AlphaFieldMask & whichField))
01951 _sfEnvSource2Alpha.syncWith(pOther->_sfEnvSource2Alpha);
01952
01953 if(FieldBits::NoField != (EnvOperand0RGBFieldMask & whichField))
01954 _sfEnvOperand0RGB.syncWith(pOther->_sfEnvOperand0RGB);
01955
01956 if(FieldBits::NoField != (EnvOperand1RGBFieldMask & whichField))
01957 _sfEnvOperand1RGB.syncWith(pOther->_sfEnvOperand1RGB);
01958
01959 if(FieldBits::NoField != (EnvOperand2RGBFieldMask & whichField))
01960 _sfEnvOperand2RGB.syncWith(pOther->_sfEnvOperand2RGB);
01961
01962 if(FieldBits::NoField != (EnvOperand0AlphaFieldMask & whichField))
01963 _sfEnvOperand0Alpha.syncWith(pOther->_sfEnvOperand0Alpha);
01964
01965 if(FieldBits::NoField != (EnvOperand1AlphaFieldMask & whichField))
01966 _sfEnvOperand1Alpha.syncWith(pOther->_sfEnvOperand1Alpha);
01967
01968 if(FieldBits::NoField != (EnvOperand2AlphaFieldMask & whichField))
01969 _sfEnvOperand2Alpha.syncWith(pOther->_sfEnvOperand2Alpha);
01970
01971 if(FieldBits::NoField != (GLIdFieldMask & whichField))
01972 _sfGLId.syncWith(pOther->_sfGLId);
01973
01974 if(FieldBits::NoField != (IgnoreGLForAspectFieldMask & whichField))
01975 _sfIgnoreGLForAspect.syncWith(pOther->_sfIgnoreGLForAspect);
01976
01977 if(FieldBits::NoField != (PointSpriteFieldMask & whichField))
01978 _sfPointSprite.syncWith(pOther->_sfPointSprite);
01979
01980 if(FieldBits::NoField != (PriorityFieldMask & whichField))
01981 _sfPriority.syncWith(pOther->_sfPriority);
01982
01983 if(FieldBits::NoField != (ShaderOperationFieldMask & whichField))
01984 _sfShaderOperation.syncWith(pOther->_sfShaderOperation);
01985
01986 if(FieldBits::NoField != (ShaderInputFieldMask & whichField))
01987 _sfShaderInput.syncWith(pOther->_sfShaderInput);
01988
01989 if(FieldBits::NoField != (ShaderOffsetScaleFieldMask & whichField))
01990 _sfShaderOffsetScale.syncWith(pOther->_sfShaderOffsetScale);
01991
01992 if(FieldBits::NoField != (ShaderOffsetBiasFieldMask & whichField))
01993 _sfShaderOffsetBias.syncWith(pOther->_sfShaderOffsetBias);
01994
01995 if(FieldBits::NoField != (ShaderRGBADotProductFieldMask & whichField))
01996 _sfShaderRGBADotProduct.syncWith(pOther->_sfShaderRGBADotProduct);
01997
01998 if(FieldBits::NoField != (ShaderCullModesFieldMask & whichField))
01999 _sfShaderCullModes.syncWith(pOther->_sfShaderCullModes);
02000
02001 if(FieldBits::NoField != (ShaderConstEyeFieldMask & whichField))
02002 _sfShaderConstEye.syncWith(pOther->_sfShaderConstEye);
02003
02004 if(FieldBits::NoField != (LodBiasFieldMask & whichField))
02005 _sfLodBias.syncWith(pOther->_sfLodBias);
02006
02007 if(FieldBits::NoField != (TargetFieldMask & whichField))
02008 _sfTarget.syncWith(pOther->_sfTarget);
02009
02010 if(FieldBits::NoField != (DirtyLeftFieldMask & whichField))
02011 _sfDirtyLeft.syncWith(pOther->_sfDirtyLeft);
02012
02013 if(FieldBits::NoField != (DirtyMinXFieldMask & whichField))
02014 _sfDirtyMinX.syncWith(pOther->_sfDirtyMinX);
02015
02016 if(FieldBits::NoField != (DirtyMaxXFieldMask & whichField))
02017 _sfDirtyMaxX.syncWith(pOther->_sfDirtyMaxX);
02018
02019 if(FieldBits::NoField != (DirtyMinYFieldMask & whichField))
02020 _sfDirtyMinY.syncWith(pOther->_sfDirtyMinY);
02021
02022 if(FieldBits::NoField != (DirtyMaxYFieldMask & whichField))
02023 _sfDirtyMaxY.syncWith(pOther->_sfDirtyMaxY);
02024
02025 if(FieldBits::NoField != (DirtyMinZFieldMask & whichField))
02026 _sfDirtyMinZ.syncWith(pOther->_sfDirtyMinZ);
02027
02028 if(FieldBits::NoField != (DirtyMaxZFieldMask & whichField))
02029 _sfDirtyMaxZ.syncWith(pOther->_sfDirtyMaxZ);
02030
02031 if(FieldBits::NoField != (AnisotropyFieldMask & whichField))
02032 _sfAnisotropy.syncWith(pOther->_sfAnisotropy);
02033
02034 if(FieldBits::NoField != (BorderColorFieldMask & whichField))
02035 _sfBorderColor.syncWith(pOther->_sfBorderColor);
02036
02037 if(FieldBits::NoField != (BorderWidthFieldMask & whichField))
02038 _sfBorderWidth.syncWith(pOther->_sfBorderWidth);
02039
02040 if(FieldBits::NoField != (NPOTMatrixScaleFieldMask & whichField))
02041 _sfNPOTMatrixScale.syncWith(pOther->_sfNPOTMatrixScale);
02042
02043
02044 if(FieldBits::NoField != (ShaderOffsetMatrixFieldMask & whichField))
02045 _mfShaderOffsetMatrix.syncWith(pOther->_mfShaderOffsetMatrix, sInfo);
02046
02047
02048 }
02049
02050 void TextureChunkBase::execBeginEditImpl (const BitVector &whichField,
02051 UInt32 uiAspect,
02052 UInt32 uiContainerSize)
02053 {
02054 Inherited::execBeginEditImpl(whichField, uiAspect, uiContainerSize);
02055
02056 if(FieldBits::NoField != (ShaderOffsetMatrixFieldMask & whichField))
02057 _mfShaderOffsetMatrix.beginEdit(uiAspect, uiContainerSize);
02058
02059 }
02060 #endif
02061
02062
02063
02064 OSG_END_NAMESPACE
02065
02066 #include <OSGSFieldTypeDef.inl>
02067 #include <OSGMFieldTypeDef.inl>
02068
02069 OSG_BEGIN_NAMESPACE
02070
02071 #if !defined(OSG_DO_DOC) || defined(OSG_DOC_DEV)
02072 DataType FieldDataTraits<TextureChunkPtr>::_type("TextureChunkPtr", "StateChunkPtr");
02073 #endif
02074
02075 OSG_DLLEXPORT_SFIELD_DEF1(TextureChunkPtr, OSG_SYSTEMLIB_DLLTMPLMAPPING);
02076 OSG_DLLEXPORT_MFIELD_DEF1(TextureChunkPtr, OSG_SYSTEMLIB_DLLTMPLMAPPING);
02077
02078
02079
02080
02081
02082 #ifdef OSG_SGI_CC
02083 #pragma set woff 1174
02084 #endif
02085
02086 #ifdef OSG_LINUX_ICC
02087 #pragma warning( disable : 177 )
02088 #endif
02089
02090 namespace
02091 {
02092 static Char8 cvsid_cpp [] = "@(#)$Id: FCBaseTemplate_cpp.h,v 1.47 2006/03/17 17:03:19 pdaehne Exp $";
02093 static Char8 cvsid_hpp [] = OSGTEXTURECHUNKBASE_HEADER_CVSID;
02094 static Char8 cvsid_inl [] = OSGTEXTURECHUNKBASE_INLINE_CVSID;
02095
02096 static Char8 cvsid_fields_hpp[] = OSGTEXTURECHUNKFIELDS_HEADER_CVSID;
02097 }
02098
02099 OSG_END_NAMESPACE
02100