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_COMPILEFBOVIEWPORTINST
00055
00056 #include <stdlib.h>
00057 #include <stdio.h>
00058
00059 #include <OSGConfig.h>
00060
00061 #include "OSGFBOViewportBase.h"
00062 #include "OSGFBOViewport.h"
00063
00064
00065 OSG_BEGIN_NAMESPACE
00066
00067 const OSG::BitVector FBOViewportBase::EnabledFieldMask =
00068 (TypeTraits<BitVector>::One << FBOViewportBase::EnabledFieldId);
00069
00070 const OSG::BitVector FBOViewportBase::ExcludeNodesFieldMask =
00071 (TypeTraits<BitVector>::One << FBOViewportBase::ExcludeNodesFieldId);
00072
00073 const OSG::BitVector FBOViewportBase::RenderNodesFieldMask =
00074 (TypeTraits<BitVector>::One << FBOViewportBase::RenderNodesFieldId);
00075
00076 const OSG::BitVector FBOViewportBase::TexturesFieldMask =
00077 (TypeTraits<BitVector>::One << FBOViewportBase::TexturesFieldId);
00078
00079 const OSG::BitVector FBOViewportBase::FboOnFieldMask =
00080 (TypeTraits<BitVector>::One << FBOViewportBase::FboOnFieldId);
00081
00082 const OSG::BitVector FBOViewportBase::StorageWidthFieldMask =
00083 (TypeTraits<BitVector>::One << FBOViewportBase::StorageWidthFieldId);
00084
00085 const OSG::BitVector FBOViewportBase::StorageHeightFieldMask =
00086 (TypeTraits<BitVector>::One << FBOViewportBase::StorageHeightFieldId);
00087
00088 const OSG::BitVector FBOViewportBase::GenCubemapsFieldMask =
00089 (TypeTraits<BitVector>::One << FBOViewportBase::GenCubemapsFieldId);
00090
00091 const OSG::BitVector FBOViewportBase::GenDepthmapsFieldMask =
00092 (TypeTraits<BitVector>::One << FBOViewportBase::GenDepthmapsFieldId);
00093
00094 const OSG::BitVector FBOViewportBase::FrameBufferIndexFieldMask =
00095 (TypeTraits<BitVector>::One << FBOViewportBase::FrameBufferIndexFieldId);
00096
00097 const OSG::BitVector FBOViewportBase::DepthBufferIndexFieldMask =
00098 (TypeTraits<BitVector>::One << FBOViewportBase::DepthBufferIndexFieldId);
00099
00100 const OSG::BitVector FBOViewportBase::StencilBufferIndexFieldMask =
00101 (TypeTraits<BitVector>::One << FBOViewportBase::StencilBufferIndexFieldId);
00102
00103 const OSG::BitVector FBOViewportBase::DirtyFieldMask =
00104 (TypeTraits<BitVector>::One << FBOViewportBase::DirtyFieldId);
00105
00106 const OSG::BitVector FBOViewportBase::ReadBufferFieldMask =
00107 (TypeTraits<BitVector>::One << FBOViewportBase::ReadBufferFieldId);
00108
00109 const OSG::BitVector FBOViewportBase::MTInfluenceMask =
00110 (Inherited::MTInfluenceMask) |
00111 (static_cast<BitVector>(0x0) << Inherited::NextFieldId);
00112
00113
00114
00115
00159
00160
00161 FieldDescription *FBOViewportBase::_desc[] =
00162 {
00163 new FieldDescription(SFBool::getClassType(),
00164 "enabled",
00165 EnabledFieldId, EnabledFieldMask,
00166 false,
00167 (FieldAccessMethod) &FBOViewportBase::getSFEnabled),
00168 new FieldDescription(MFNodePtr::getClassType(),
00169 "excludeNodes",
00170 ExcludeNodesFieldId, ExcludeNodesFieldMask,
00171 false,
00172 (FieldAccessMethod) &FBOViewportBase::getMFExcludeNodes),
00173 new FieldDescription(MFNodePtr::getClassType(),
00174 "renderNodes",
00175 RenderNodesFieldId, RenderNodesFieldMask,
00176 false,
00177 (FieldAccessMethod) &FBOViewportBase::getMFRenderNodes),
00178 new FieldDescription(MFTextureChunkPtr::getClassType(),
00179 "textures",
00180 TexturesFieldId, TexturesFieldMask,
00181 false,
00182 (FieldAccessMethod) &FBOViewportBase::getMFTextures),
00183 new FieldDescription(SFBool::getClassType(),
00184 "fboOn",
00185 FboOnFieldId, FboOnFieldMask,
00186 false,
00187 (FieldAccessMethod) &FBOViewportBase::getSFFboOn),
00188 new FieldDescription(SFInt32::getClassType(),
00189 "storageWidth",
00190 StorageWidthFieldId, StorageWidthFieldMask,
00191 false,
00192 (FieldAccessMethod) &FBOViewportBase::getSFStorageWidth),
00193 new FieldDescription(SFInt32::getClassType(),
00194 "storageHeight",
00195 StorageHeightFieldId, StorageHeightFieldMask,
00196 false,
00197 (FieldAccessMethod) &FBOViewportBase::getSFStorageHeight),
00198 new FieldDescription(SFBool::getClassType(),
00199 "genCubemaps",
00200 GenCubemapsFieldId, GenCubemapsFieldMask,
00201 false,
00202 (FieldAccessMethod) &FBOViewportBase::getSFGenCubemaps),
00203 new FieldDescription(SFBool::getClassType(),
00204 "genDepthmaps",
00205 GenDepthmapsFieldId, GenDepthmapsFieldMask,
00206 false,
00207 (FieldAccessMethod) &FBOViewportBase::getSFGenDepthmaps),
00208 new FieldDescription(SFUInt32::getClassType(),
00209 "frameBufferIndex",
00210 FrameBufferIndexFieldId, FrameBufferIndexFieldMask,
00211 false,
00212 (FieldAccessMethod) &FBOViewportBase::getSFFrameBufferIndex),
00213 new FieldDescription(SFUInt32::getClassType(),
00214 "depthBufferIndex",
00215 DepthBufferIndexFieldId, DepthBufferIndexFieldMask,
00216 false,
00217 (FieldAccessMethod) &FBOViewportBase::getSFDepthBufferIndex),
00218 new FieldDescription(SFUInt32::getClassType(),
00219 "stencilBufferIndex",
00220 StencilBufferIndexFieldId, StencilBufferIndexFieldMask,
00221 false,
00222 (FieldAccessMethod) &FBOViewportBase::getSFStencilBufferIndex),
00223 new FieldDescription(SFBool::getClassType(),
00224 "dirty",
00225 DirtyFieldId, DirtyFieldMask,
00226 false,
00227 (FieldAccessMethod) &FBOViewportBase::getSFDirty),
00228 new FieldDescription(SFBool::getClassType(),
00229 "readBuffer",
00230 ReadBufferFieldId, ReadBufferFieldMask,
00231 false,
00232 (FieldAccessMethod) &FBOViewportBase::getSFReadBuffer)
00233 };
00234
00235
00236 FieldContainerType FBOViewportBase::_type(
00237 "FBOViewport",
00238 "Viewport",
00239 NULL,
00240 (PrototypeCreateF) &FBOViewportBase::createEmpty,
00241 FBOViewport::initMethod,
00242 _desc,
00243 sizeof(_desc));
00244
00245
00246
00247
00248
00249 FieldContainerType &FBOViewportBase::getType(void)
00250 {
00251 return _type;
00252 }
00253
00254 const FieldContainerType &FBOViewportBase::getType(void) const
00255 {
00256 return _type;
00257 }
00258
00259
00260 FieldContainerPtr FBOViewportBase::shallowCopy(void) const
00261 {
00262 FBOViewportPtr returnValue;
00263
00264 newPtr(returnValue, dynamic_cast<const FBOViewport *>(this));
00265
00266 return returnValue;
00267 }
00268
00269 UInt32 FBOViewportBase::getContainerSize(void) const
00270 {
00271 return sizeof(FBOViewport);
00272 }
00273
00274
00275 #if !defined(OSG_FIXED_MFIELDSYNC)
00276 void FBOViewportBase::executeSync( FieldContainer &other,
00277 const BitVector &whichField)
00278 {
00279 this->executeSyncImpl((FBOViewportBase *) &other, whichField);
00280 }
00281 #else
00282 void FBOViewportBase::executeSync( FieldContainer &other,
00283 const BitVector &whichField, const SyncInfo &sInfo )
00284 {
00285 this->executeSyncImpl((FBOViewportBase *) &other, whichField, sInfo);
00286 }
00287 void FBOViewportBase::execBeginEdit(const BitVector &whichField,
00288 UInt32 uiAspect,
00289 UInt32 uiContainerSize)
00290 {
00291 this->execBeginEditImpl(whichField, uiAspect, uiContainerSize);
00292 }
00293
00294 void FBOViewportBase::onDestroyAspect(UInt32 uiId, UInt32 uiAspect)
00295 {
00296 Inherited::onDestroyAspect(uiId, uiAspect);
00297
00298 _mfExcludeNodes.terminateShare(uiAspect, this->getContainerSize());
00299 _mfRenderNodes.terminateShare(uiAspect, this->getContainerSize());
00300 _mfTextures.terminateShare(uiAspect, this->getContainerSize());
00301 }
00302 #endif
00303
00304
00305
00306 #ifdef OSG_WIN32_ICL
00307 #pragma warning (disable : 383)
00308 #endif
00309
00310 FBOViewportBase::FBOViewportBase(void) :
00311 _sfEnabled (bool(true)),
00312 _mfExcludeNodes (),
00313 _mfRenderNodes (),
00314 _mfTextures (),
00315 _sfFboOn (bool(true)),
00316 _sfStorageWidth (Int32(256)),
00317 _sfStorageHeight (Int32(256)),
00318 _sfGenCubemaps (bool(false)),
00319 _sfGenDepthmaps (bool(false)),
00320 _sfFrameBufferIndex (UInt32(0)),
00321 _sfDepthBufferIndex (UInt32(0)),
00322 _sfStencilBufferIndex (UInt32(0)),
00323 _sfDirty (bool(true)),
00324 _sfReadBuffer (bool(false)),
00325 Inherited()
00326 {
00327 }
00328
00329 #ifdef OSG_WIN32_ICL
00330 #pragma warning (default : 383)
00331 #endif
00332
00333 FBOViewportBase::FBOViewportBase(const FBOViewportBase &source) :
00334 _sfEnabled (source._sfEnabled ),
00335 _mfExcludeNodes (source._mfExcludeNodes ),
00336 _mfRenderNodes (source._mfRenderNodes ),
00337 _mfTextures (source._mfTextures ),
00338 _sfFboOn (source._sfFboOn ),
00339 _sfStorageWidth (source._sfStorageWidth ),
00340 _sfStorageHeight (source._sfStorageHeight ),
00341 _sfGenCubemaps (source._sfGenCubemaps ),
00342 _sfGenDepthmaps (source._sfGenDepthmaps ),
00343 _sfFrameBufferIndex (source._sfFrameBufferIndex ),
00344 _sfDepthBufferIndex (source._sfDepthBufferIndex ),
00345 _sfStencilBufferIndex (source._sfStencilBufferIndex ),
00346 _sfDirty (source._sfDirty ),
00347 _sfReadBuffer (source._sfReadBuffer ),
00348 Inherited (source)
00349 {
00350 }
00351
00352
00353
00354 FBOViewportBase::~FBOViewportBase(void)
00355 {
00356 }
00357
00358
00359
00360 UInt32 FBOViewportBase::getBinSize(const BitVector &whichField)
00361 {
00362 UInt32 returnValue = Inherited::getBinSize(whichField);
00363
00364 if(FieldBits::NoField != (EnabledFieldMask & whichField))
00365 {
00366 returnValue += _sfEnabled.getBinSize();
00367 }
00368
00369 if(FieldBits::NoField != (ExcludeNodesFieldMask & whichField))
00370 {
00371 returnValue += _mfExcludeNodes.getBinSize();
00372 }
00373
00374 if(FieldBits::NoField != (RenderNodesFieldMask & whichField))
00375 {
00376 returnValue += _mfRenderNodes.getBinSize();
00377 }
00378
00379 if(FieldBits::NoField != (TexturesFieldMask & whichField))
00380 {
00381 returnValue += _mfTextures.getBinSize();
00382 }
00383
00384 if(FieldBits::NoField != (FboOnFieldMask & whichField))
00385 {
00386 returnValue += _sfFboOn.getBinSize();
00387 }
00388
00389 if(FieldBits::NoField != (StorageWidthFieldMask & whichField))
00390 {
00391 returnValue += _sfStorageWidth.getBinSize();
00392 }
00393
00394 if(FieldBits::NoField != (StorageHeightFieldMask & whichField))
00395 {
00396 returnValue += _sfStorageHeight.getBinSize();
00397 }
00398
00399 if(FieldBits::NoField != (GenCubemapsFieldMask & whichField))
00400 {
00401 returnValue += _sfGenCubemaps.getBinSize();
00402 }
00403
00404 if(FieldBits::NoField != (GenDepthmapsFieldMask & whichField))
00405 {
00406 returnValue += _sfGenDepthmaps.getBinSize();
00407 }
00408
00409 if(FieldBits::NoField != (FrameBufferIndexFieldMask & whichField))
00410 {
00411 returnValue += _sfFrameBufferIndex.getBinSize();
00412 }
00413
00414 if(FieldBits::NoField != (DepthBufferIndexFieldMask & whichField))
00415 {
00416 returnValue += _sfDepthBufferIndex.getBinSize();
00417 }
00418
00419 if(FieldBits::NoField != (StencilBufferIndexFieldMask & whichField))
00420 {
00421 returnValue += _sfStencilBufferIndex.getBinSize();
00422 }
00423
00424 if(FieldBits::NoField != (DirtyFieldMask & whichField))
00425 {
00426 returnValue += _sfDirty.getBinSize();
00427 }
00428
00429 if(FieldBits::NoField != (ReadBufferFieldMask & whichField))
00430 {
00431 returnValue += _sfReadBuffer.getBinSize();
00432 }
00433
00434
00435 return returnValue;
00436 }
00437
00438 void FBOViewportBase::copyToBin( BinaryDataHandler &pMem,
00439 const BitVector &whichField)
00440 {
00441 Inherited::copyToBin(pMem, whichField);
00442
00443 if(FieldBits::NoField != (EnabledFieldMask & whichField))
00444 {
00445 _sfEnabled.copyToBin(pMem);
00446 }
00447
00448 if(FieldBits::NoField != (ExcludeNodesFieldMask & whichField))
00449 {
00450 _mfExcludeNodes.copyToBin(pMem);
00451 }
00452
00453 if(FieldBits::NoField != (RenderNodesFieldMask & whichField))
00454 {
00455 _mfRenderNodes.copyToBin(pMem);
00456 }
00457
00458 if(FieldBits::NoField != (TexturesFieldMask & whichField))
00459 {
00460 _mfTextures.copyToBin(pMem);
00461 }
00462
00463 if(FieldBits::NoField != (FboOnFieldMask & whichField))
00464 {
00465 _sfFboOn.copyToBin(pMem);
00466 }
00467
00468 if(FieldBits::NoField != (StorageWidthFieldMask & whichField))
00469 {
00470 _sfStorageWidth.copyToBin(pMem);
00471 }
00472
00473 if(FieldBits::NoField != (StorageHeightFieldMask & whichField))
00474 {
00475 _sfStorageHeight.copyToBin(pMem);
00476 }
00477
00478 if(FieldBits::NoField != (GenCubemapsFieldMask & whichField))
00479 {
00480 _sfGenCubemaps.copyToBin(pMem);
00481 }
00482
00483 if(FieldBits::NoField != (GenDepthmapsFieldMask & whichField))
00484 {
00485 _sfGenDepthmaps.copyToBin(pMem);
00486 }
00487
00488 if(FieldBits::NoField != (FrameBufferIndexFieldMask & whichField))
00489 {
00490 _sfFrameBufferIndex.copyToBin(pMem);
00491 }
00492
00493 if(FieldBits::NoField != (DepthBufferIndexFieldMask & whichField))
00494 {
00495 _sfDepthBufferIndex.copyToBin(pMem);
00496 }
00497
00498 if(FieldBits::NoField != (StencilBufferIndexFieldMask & whichField))
00499 {
00500 _sfStencilBufferIndex.copyToBin(pMem);
00501 }
00502
00503 if(FieldBits::NoField != (DirtyFieldMask & whichField))
00504 {
00505 _sfDirty.copyToBin(pMem);
00506 }
00507
00508 if(FieldBits::NoField != (ReadBufferFieldMask & whichField))
00509 {
00510 _sfReadBuffer.copyToBin(pMem);
00511 }
00512
00513
00514 }
00515
00516 void FBOViewportBase::copyFromBin( BinaryDataHandler &pMem,
00517 const BitVector &whichField)
00518 {
00519 Inherited::copyFromBin(pMem, whichField);
00520
00521 if(FieldBits::NoField != (EnabledFieldMask & whichField))
00522 {
00523 _sfEnabled.copyFromBin(pMem);
00524 }
00525
00526 if(FieldBits::NoField != (ExcludeNodesFieldMask & whichField))
00527 {
00528 _mfExcludeNodes.copyFromBin(pMem);
00529 }
00530
00531 if(FieldBits::NoField != (RenderNodesFieldMask & whichField))
00532 {
00533 _mfRenderNodes.copyFromBin(pMem);
00534 }
00535
00536 if(FieldBits::NoField != (TexturesFieldMask & whichField))
00537 {
00538 _mfTextures.copyFromBin(pMem);
00539 }
00540
00541 if(FieldBits::NoField != (FboOnFieldMask & whichField))
00542 {
00543 _sfFboOn.copyFromBin(pMem);
00544 }
00545
00546 if(FieldBits::NoField != (StorageWidthFieldMask & whichField))
00547 {
00548 _sfStorageWidth.copyFromBin(pMem);
00549 }
00550
00551 if(FieldBits::NoField != (StorageHeightFieldMask & whichField))
00552 {
00553 _sfStorageHeight.copyFromBin(pMem);
00554 }
00555
00556 if(FieldBits::NoField != (GenCubemapsFieldMask & whichField))
00557 {
00558 _sfGenCubemaps.copyFromBin(pMem);
00559 }
00560
00561 if(FieldBits::NoField != (GenDepthmapsFieldMask & whichField))
00562 {
00563 _sfGenDepthmaps.copyFromBin(pMem);
00564 }
00565
00566 if(FieldBits::NoField != (FrameBufferIndexFieldMask & whichField))
00567 {
00568 _sfFrameBufferIndex.copyFromBin(pMem);
00569 }
00570
00571 if(FieldBits::NoField != (DepthBufferIndexFieldMask & whichField))
00572 {
00573 _sfDepthBufferIndex.copyFromBin(pMem);
00574 }
00575
00576 if(FieldBits::NoField != (StencilBufferIndexFieldMask & whichField))
00577 {
00578 _sfStencilBufferIndex.copyFromBin(pMem);
00579 }
00580
00581 if(FieldBits::NoField != (DirtyFieldMask & whichField))
00582 {
00583 _sfDirty.copyFromBin(pMem);
00584 }
00585
00586 if(FieldBits::NoField != (ReadBufferFieldMask & whichField))
00587 {
00588 _sfReadBuffer.copyFromBin(pMem);
00589 }
00590
00591
00592 }
00593
00594 #if !defined(OSG_FIXED_MFIELDSYNC)
00595 void FBOViewportBase::executeSyncImpl( FBOViewportBase *pOther,
00596 const BitVector &whichField)
00597 {
00598
00599 Inherited::executeSyncImpl(pOther, whichField);
00600
00601 if(FieldBits::NoField != (EnabledFieldMask & whichField))
00602 _sfEnabled.syncWith(pOther->_sfEnabled);
00603
00604 if(FieldBits::NoField != (ExcludeNodesFieldMask & whichField))
00605 _mfExcludeNodes.syncWith(pOther->_mfExcludeNodes);
00606
00607 if(FieldBits::NoField != (RenderNodesFieldMask & whichField))
00608 _mfRenderNodes.syncWith(pOther->_mfRenderNodes);
00609
00610 if(FieldBits::NoField != (TexturesFieldMask & whichField))
00611 _mfTextures.syncWith(pOther->_mfTextures);
00612
00613 if(FieldBits::NoField != (FboOnFieldMask & whichField))
00614 _sfFboOn.syncWith(pOther->_sfFboOn);
00615
00616 if(FieldBits::NoField != (StorageWidthFieldMask & whichField))
00617 _sfStorageWidth.syncWith(pOther->_sfStorageWidth);
00618
00619 if(FieldBits::NoField != (StorageHeightFieldMask & whichField))
00620 _sfStorageHeight.syncWith(pOther->_sfStorageHeight);
00621
00622 if(FieldBits::NoField != (GenCubemapsFieldMask & whichField))
00623 _sfGenCubemaps.syncWith(pOther->_sfGenCubemaps);
00624
00625 if(FieldBits::NoField != (GenDepthmapsFieldMask & whichField))
00626 _sfGenDepthmaps.syncWith(pOther->_sfGenDepthmaps);
00627
00628 if(FieldBits::NoField != (FrameBufferIndexFieldMask & whichField))
00629 _sfFrameBufferIndex.syncWith(pOther->_sfFrameBufferIndex);
00630
00631 if(FieldBits::NoField != (DepthBufferIndexFieldMask & whichField))
00632 _sfDepthBufferIndex.syncWith(pOther->_sfDepthBufferIndex);
00633
00634 if(FieldBits::NoField != (StencilBufferIndexFieldMask & whichField))
00635 _sfStencilBufferIndex.syncWith(pOther->_sfStencilBufferIndex);
00636
00637 if(FieldBits::NoField != (DirtyFieldMask & whichField))
00638 _sfDirty.syncWith(pOther->_sfDirty);
00639
00640 if(FieldBits::NoField != (ReadBufferFieldMask & whichField))
00641 _sfReadBuffer.syncWith(pOther->_sfReadBuffer);
00642
00643
00644 }
00645 #else
00646 void FBOViewportBase::executeSyncImpl( FBOViewportBase *pOther,
00647 const BitVector &whichField,
00648 const SyncInfo &sInfo )
00649 {
00650
00651 Inherited::executeSyncImpl(pOther, whichField, sInfo);
00652
00653 if(FieldBits::NoField != (EnabledFieldMask & whichField))
00654 _sfEnabled.syncWith(pOther->_sfEnabled);
00655
00656 if(FieldBits::NoField != (FboOnFieldMask & whichField))
00657 _sfFboOn.syncWith(pOther->_sfFboOn);
00658
00659 if(FieldBits::NoField != (StorageWidthFieldMask & whichField))
00660 _sfStorageWidth.syncWith(pOther->_sfStorageWidth);
00661
00662 if(FieldBits::NoField != (StorageHeightFieldMask & whichField))
00663 _sfStorageHeight.syncWith(pOther->_sfStorageHeight);
00664
00665 if(FieldBits::NoField != (GenCubemapsFieldMask & whichField))
00666 _sfGenCubemaps.syncWith(pOther->_sfGenCubemaps);
00667
00668 if(FieldBits::NoField != (GenDepthmapsFieldMask & whichField))
00669 _sfGenDepthmaps.syncWith(pOther->_sfGenDepthmaps);
00670
00671 if(FieldBits::NoField != (FrameBufferIndexFieldMask & whichField))
00672 _sfFrameBufferIndex.syncWith(pOther->_sfFrameBufferIndex);
00673
00674 if(FieldBits::NoField != (DepthBufferIndexFieldMask & whichField))
00675 _sfDepthBufferIndex.syncWith(pOther->_sfDepthBufferIndex);
00676
00677 if(FieldBits::NoField != (StencilBufferIndexFieldMask & whichField))
00678 _sfStencilBufferIndex.syncWith(pOther->_sfStencilBufferIndex);
00679
00680 if(FieldBits::NoField != (DirtyFieldMask & whichField))
00681 _sfDirty.syncWith(pOther->_sfDirty);
00682
00683 if(FieldBits::NoField != (ReadBufferFieldMask & whichField))
00684 _sfReadBuffer.syncWith(pOther->_sfReadBuffer);
00685
00686
00687 if(FieldBits::NoField != (ExcludeNodesFieldMask & whichField))
00688 _mfExcludeNodes.syncWith(pOther->_mfExcludeNodes, sInfo);
00689
00690 if(FieldBits::NoField != (RenderNodesFieldMask & whichField))
00691 _mfRenderNodes.syncWith(pOther->_mfRenderNodes, sInfo);
00692
00693 if(FieldBits::NoField != (TexturesFieldMask & whichField))
00694 _mfTextures.syncWith(pOther->_mfTextures, sInfo);
00695
00696
00697 }
00698
00699 void FBOViewportBase::execBeginEditImpl (const BitVector &whichField,
00700 UInt32 uiAspect,
00701 UInt32 uiContainerSize)
00702 {
00703 Inherited::execBeginEditImpl(whichField, uiAspect, uiContainerSize);
00704
00705 if(FieldBits::NoField != (ExcludeNodesFieldMask & whichField))
00706 _mfExcludeNodes.beginEdit(uiAspect, uiContainerSize);
00707
00708 if(FieldBits::NoField != (RenderNodesFieldMask & whichField))
00709 _mfRenderNodes.beginEdit(uiAspect, uiContainerSize);
00710
00711 if(FieldBits::NoField != (TexturesFieldMask & whichField))
00712 _mfTextures.beginEdit(uiAspect, uiContainerSize);
00713
00714 }
00715 #endif
00716
00717
00718
00719 OSG_END_NAMESPACE
00720
00721 #include <OSGSFieldTypeDef.inl>
00722 #include <OSGMFieldTypeDef.inl>
00723
00724 OSG_BEGIN_NAMESPACE
00725
00726 #if !defined(OSG_DO_DOC) || defined(OSG_DOC_DEV)
00727 DataType FieldDataTraits<FBOViewportPtr>::_type("FBOViewportPtr", "ViewportPtr");
00728 #endif
00729
00730 OSG_DLLEXPORT_SFIELD_DEF1(FBOViewportPtr, OSG_SYSTEMLIB_DLLTMPLMAPPING);
00731 OSG_DLLEXPORT_MFIELD_DEF1(FBOViewportPtr, OSG_SYSTEMLIB_DLLTMPLMAPPING);
00732
00733
00734
00735
00736
00737 #ifdef OSG_SGI_CC
00738 #pragma set woff 1174
00739 #endif
00740
00741 #ifdef OSG_LINUX_ICC
00742 #pragma warning( disable : 177 )
00743 #endif
00744
00745 namespace
00746 {
00747 static Char8 cvsid_cpp [] = "@(#)$Id: OSGFBOViewportBase.cpp,v 1.1 2007/03/12 15:03:02 a-m-z Exp $";
00748 static Char8 cvsid_hpp [] = OSGFBOVIEWPORTBASE_HEADER_CVSID;
00749 static Char8 cvsid_inl [] = OSGFBOVIEWPORTBASE_INLINE_CVSID;
00750
00751 static Char8 cvsid_fields_hpp[] = OSGFBOVIEWPORTFIELDS_HEADER_CVSID;
00752 }
00753
00754 OSG_END_NAMESPACE
00755