1 /*---------------------------------------------------------------------------*\
5 * Copyright (C) 2000-2013 by the OpenSG Forum *
9 * contact: dirk@opensg.org, gerrit.voss@vossg.org, carsten_neumann@gmx.net *
11 \*---------------------------------------------------------------------------*/
12 /*---------------------------------------------------------------------------*\
15 * This library is free software; you can redistribute it and/or modify it *
16 * under the terms of the GNU Library General Public License as published *
17 * by the Free Software Foundation, version 2. *
19 * This library is distributed in the hope that it will be useful, but *
20 * WITHOUT ANY WARRANTY; without even the implied warranty of *
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
22 * Library General Public License for more details. *
24 * You should have received a copy of the GNU Library General Public *
25 * License along with this library; if not, write to the Free Software *
26 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
28 \*---------------------------------------------------------------------------*/
29 /*---------------------------------------------------------------------------*\
37 \*---------------------------------------------------------------------------*/
39 /*****************************************************************************\
40 *****************************************************************************
42 ** This file is automatically generated. **
44 ** Any changes made to this file WILL be lost when it is **
45 ** regenerated, which can become necessary at any time. **
47 ** Do not change this file, changes should be done in the derived **
48 ** class RegisterCombinersChunk!
50 *****************************************************************************
51 \*****************************************************************************/
57 #pragma warning(disable: 4355) // turn off 'this' : used in base member initializer list warning
58 #pragma warning(disable: 4290) // disable exception specification warning
61 #include "OSGConfig.h"
66 #include "OSGRegisterCombinersChunkBase.h"
67 #include "OSGRegisterCombinersChunk.h"
69 #include <boost/bind.hpp>
73 /***************************************************************************\
75 \***************************************************************************/
77 /*! \class OSG::RegisterCombinersChunk
78 See \ref PageSystemRegisterCombinersChunk for a description.
80 Try to avoid using this chunk, as it is very non-portable. Using a shader
81 instead is recommend, and much easier to do.
83 This chunk wraps nVidia's register combiners. The
84 OSG::RegisterCombinersChunk::setCombinerRGB and
85 OSG::RegisterCombinersChunk::setCombinerAlpha convenience functions
87 which set up all the parameters for a single combiner's RGB or alpha part.
88 OSG::RegisterCombinersChunk::setFinalCombiner sets all parameters for the
89 final combiner. The constants are set by
90 OSG::RegisterCombinersChunk::setConstantColors(Color4f &color0, Color4f
91 &color1) for the gloabl constants and
92 OSG::RegisterCombinersChunk::setConstantColors(UInt16 which,
94 Color4f &color1) for the per-combiner constants (if supported). To reset a
95 combiner one or all of the combiners use
96 OSG::RegisterCombinersChunk::clearCombiners or
97 OSG::RegisterCombinersChunk::clearCombiner.
99 Don't use the direct field access to set the register combiner's parameter
100 unlesss you really have to, as the internal representation is a bit
103 \ext To reduce the number of fields there isn't a field for every parameter,
104 instead they are kept in blocks of three in the fields. Please refer to the
105 source code for details.
109 /***************************************************************************\
110 * Field Documentation *
111 \***************************************************************************/
113 /*! \var Color4f RegisterCombinersChunkBase::_sfColor0
117 /*! \var Color4f RegisterCombinersChunkBase::_sfColor1
121 /*! \var bool RegisterCombinersChunkBase::_sfColorSumClamp
125 /*! \var GLenum RegisterCombinersChunkBase::_mfVariableArgb
126 input,mapping,component Usage triples for variable A, RGB part
129 /*! \var GLenum RegisterCombinersChunkBase::_mfVariableBrgb
133 /*! \var GLenum RegisterCombinersChunkBase::_mfVariableCrgb
137 /*! \var GLenum RegisterCombinersChunkBase::_mfVariableDrgb
141 /*! \var GLenum RegisterCombinersChunkBase::_mfVariableAalpha
145 /*! \var GLenum RegisterCombinersChunkBase::_mfVariableBalpha
149 /*! \var GLenum RegisterCombinersChunkBase::_mfVariableCalpha
153 /*! \var GLenum RegisterCombinersChunkBase::_mfVariableDalpha
157 /*! \var GLenum RegisterCombinersChunkBase::_mfOutputABrgb
161 /*! \var GLenum RegisterCombinersChunkBase::_mfOutputCDrgb
165 /*! \var GLenum RegisterCombinersChunkBase::_mfOutputSumrgb
169 /*! \var GLenum RegisterCombinersChunkBase::_mfScalergb
173 /*! \var GLenum RegisterCombinersChunkBase::_mfBiasrgb
177 /*! \var GLenum RegisterCombinersChunkBase::_mfOutputABalpha
181 /*! \var GLenum RegisterCombinersChunkBase::_mfOutputCDalpha
185 /*! \var GLenum RegisterCombinersChunkBase::_mfOutputSumalpha
189 /*! \var UInt8 RegisterCombinersChunkBase::_mfDotABrgb
193 /*! \var UInt8 RegisterCombinersChunkBase::_mfDotCDrgb
197 /*! \var UInt8 RegisterCombinersChunkBase::_mfMuxSumrgb
201 /*! \var GLenum RegisterCombinersChunkBase::_mfScalealpha
205 /*! \var GLenum RegisterCombinersChunkBase::_mfBiasalpha
209 /*! \var UInt8 RegisterCombinersChunkBase::_mfMuxSumalpha
213 /*! \var GLenum RegisterCombinersChunkBase::_mfVariableE
217 /*! \var GLenum RegisterCombinersChunkBase::_mfVariableF
221 /*! \var GLenum RegisterCombinersChunkBase::_mfVariableG
225 /*! \var Color4f RegisterCombinersChunkBase::_mfCombinerColor0
229 /*! \var Color4f RegisterCombinersChunkBase::_mfCombinerColor1
233 /*! \var UInt8 RegisterCombinersChunkBase::_sfPerStageConstants
238 /***************************************************************************\
239 * FieldType/FieldTrait Instantiation *
240 \***************************************************************************/
242 #if !defined(OSG_DO_DOC) || defined(OSG_DOC_DEV)
243 PointerType FieldTraits
<RegisterCombinersChunk
*, nsOSG
>::_type(
244 "RegisterCombinersChunkPtr",
246 RegisterCombinersChunk::getClassType(),
250 OSG_FIELDTRAITS_GETTYPE_NS(RegisterCombinersChunk
*, nsOSG
)
252 OSG_EXPORT_PTR_SFIELD_FULL(PointerSField
,
253 RegisterCombinersChunk
*,
256 OSG_EXPORT_PTR_MFIELD_FULL(PointerMField
,
257 RegisterCombinersChunk
*,
260 /***************************************************************************\
261 * Field Description *
262 \***************************************************************************/
264 void RegisterCombinersChunkBase::classDescInserter(TypeObject
&oType
)
266 FieldDescriptionBase
*pDesc
= NULL
;
269 pDesc
= new SFColor4f::Description(
270 SFColor4f::getClassType(),
273 Color0FieldId
, Color0FieldMask
,
275 (Field::SFDefaultFlags
| Field::FStdAccess
),
276 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleColor0
),
277 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleColor0
));
279 oType
.addInitialDesc(pDesc
);
281 pDesc
= new SFColor4f::Description(
282 SFColor4f::getClassType(),
285 Color1FieldId
, Color1FieldMask
,
287 (Field::SFDefaultFlags
| Field::FStdAccess
),
288 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleColor1
),
289 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleColor1
));
291 oType
.addInitialDesc(pDesc
);
293 pDesc
= new SFBool::Description(
294 SFBool::getClassType(),
297 ColorSumClampFieldId
, ColorSumClampFieldMask
,
299 (Field::SFDefaultFlags
| Field::FStdAccess
),
300 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleColorSumClamp
),
301 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleColorSumClamp
));
303 oType
.addInitialDesc(pDesc
);
305 pDesc
= new MFGLenum::Description(
306 MFGLenum::getClassType(),
308 "input,mapping,component Usage triples for variable A, RGB part\n",
309 VariableArgbFieldId
, VariableArgbFieldMask
,
311 (Field::MFDefaultFlags
| Field::FStdAccess
),
312 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleVariableArgb
),
313 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleVariableArgb
));
315 oType
.addInitialDesc(pDesc
);
317 pDesc
= new MFGLenum::Description(
318 MFGLenum::getClassType(),
321 VariableBrgbFieldId
, VariableBrgbFieldMask
,
323 (Field::MFDefaultFlags
| Field::FStdAccess
),
324 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleVariableBrgb
),
325 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleVariableBrgb
));
327 oType
.addInitialDesc(pDesc
);
329 pDesc
= new MFGLenum::Description(
330 MFGLenum::getClassType(),
333 VariableCrgbFieldId
, VariableCrgbFieldMask
,
335 (Field::MFDefaultFlags
| Field::FStdAccess
),
336 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleVariableCrgb
),
337 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleVariableCrgb
));
339 oType
.addInitialDesc(pDesc
);
341 pDesc
= new MFGLenum::Description(
342 MFGLenum::getClassType(),
345 VariableDrgbFieldId
, VariableDrgbFieldMask
,
347 (Field::MFDefaultFlags
| Field::FStdAccess
),
348 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleVariableDrgb
),
349 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleVariableDrgb
));
351 oType
.addInitialDesc(pDesc
);
353 pDesc
= new MFGLenum::Description(
354 MFGLenum::getClassType(),
357 VariableAalphaFieldId
, VariableAalphaFieldMask
,
359 (Field::MFDefaultFlags
| Field::FStdAccess
),
360 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleVariableAalpha
),
361 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleVariableAalpha
));
363 oType
.addInitialDesc(pDesc
);
365 pDesc
= new MFGLenum::Description(
366 MFGLenum::getClassType(),
369 VariableBalphaFieldId
, VariableBalphaFieldMask
,
371 (Field::MFDefaultFlags
| Field::FStdAccess
),
372 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleVariableBalpha
),
373 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleVariableBalpha
));
375 oType
.addInitialDesc(pDesc
);
377 pDesc
= new MFGLenum::Description(
378 MFGLenum::getClassType(),
381 VariableCalphaFieldId
, VariableCalphaFieldMask
,
383 (Field::MFDefaultFlags
| Field::FStdAccess
),
384 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleVariableCalpha
),
385 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleVariableCalpha
));
387 oType
.addInitialDesc(pDesc
);
389 pDesc
= new MFGLenum::Description(
390 MFGLenum::getClassType(),
393 VariableDalphaFieldId
, VariableDalphaFieldMask
,
395 (Field::MFDefaultFlags
| Field::FStdAccess
),
396 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleVariableDalpha
),
397 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleVariableDalpha
));
399 oType
.addInitialDesc(pDesc
);
401 pDesc
= new MFGLenum::Description(
402 MFGLenum::getClassType(),
405 OutputABrgbFieldId
, OutputABrgbFieldMask
,
407 (Field::MFDefaultFlags
| Field::FStdAccess
),
408 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleOutputABrgb
),
409 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleOutputABrgb
));
411 oType
.addInitialDesc(pDesc
);
413 pDesc
= new MFGLenum::Description(
414 MFGLenum::getClassType(),
417 OutputCDrgbFieldId
, OutputCDrgbFieldMask
,
419 (Field::MFDefaultFlags
| Field::FStdAccess
),
420 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleOutputCDrgb
),
421 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleOutputCDrgb
));
423 oType
.addInitialDesc(pDesc
);
425 pDesc
= new MFGLenum::Description(
426 MFGLenum::getClassType(),
429 OutputSumrgbFieldId
, OutputSumrgbFieldMask
,
431 (Field::MFDefaultFlags
| Field::FStdAccess
),
432 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleOutputSumrgb
),
433 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleOutputSumrgb
));
435 oType
.addInitialDesc(pDesc
);
437 pDesc
= new MFGLenum::Description(
438 MFGLenum::getClassType(),
441 ScalergbFieldId
, ScalergbFieldMask
,
443 (Field::MFDefaultFlags
| Field::FStdAccess
),
444 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleScalergb
),
445 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleScalergb
));
447 oType
.addInitialDesc(pDesc
);
449 pDesc
= new MFGLenum::Description(
450 MFGLenum::getClassType(),
453 BiasrgbFieldId
, BiasrgbFieldMask
,
455 (Field::MFDefaultFlags
| Field::FStdAccess
),
456 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleBiasrgb
),
457 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleBiasrgb
));
459 oType
.addInitialDesc(pDesc
);
461 pDesc
= new MFGLenum::Description(
462 MFGLenum::getClassType(),
465 OutputABalphaFieldId
, OutputABalphaFieldMask
,
467 (Field::MFDefaultFlags
| Field::FStdAccess
),
468 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleOutputABalpha
),
469 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleOutputABalpha
));
471 oType
.addInitialDesc(pDesc
);
473 pDesc
= new MFGLenum::Description(
474 MFGLenum::getClassType(),
477 OutputCDalphaFieldId
, OutputCDalphaFieldMask
,
479 (Field::MFDefaultFlags
| Field::FStdAccess
),
480 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleOutputCDalpha
),
481 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleOutputCDalpha
));
483 oType
.addInitialDesc(pDesc
);
485 pDesc
= new MFGLenum::Description(
486 MFGLenum::getClassType(),
489 OutputSumalphaFieldId
, OutputSumalphaFieldMask
,
491 (Field::MFDefaultFlags
| Field::FStdAccess
),
492 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleOutputSumalpha
),
493 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleOutputSumalpha
));
495 oType
.addInitialDesc(pDesc
);
497 pDesc
= new MFUInt8::Description(
498 MFUInt8::getClassType(),
501 DotABrgbFieldId
, DotABrgbFieldMask
,
503 (Field::MFDefaultFlags
| Field::FStdAccess
),
504 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleDotABrgb
),
505 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleDotABrgb
));
507 oType
.addInitialDesc(pDesc
);
509 pDesc
= new MFUInt8::Description(
510 MFUInt8::getClassType(),
513 DotCDrgbFieldId
, DotCDrgbFieldMask
,
515 (Field::MFDefaultFlags
| Field::FStdAccess
),
516 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleDotCDrgb
),
517 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleDotCDrgb
));
519 oType
.addInitialDesc(pDesc
);
521 pDesc
= new MFUInt8::Description(
522 MFUInt8::getClassType(),
525 MuxSumrgbFieldId
, MuxSumrgbFieldMask
,
527 (Field::MFDefaultFlags
| Field::FStdAccess
),
528 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleMuxSumrgb
),
529 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleMuxSumrgb
));
531 oType
.addInitialDesc(pDesc
);
533 pDesc
= new MFGLenum::Description(
534 MFGLenum::getClassType(),
537 ScalealphaFieldId
, ScalealphaFieldMask
,
539 (Field::MFDefaultFlags
| Field::FStdAccess
),
540 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleScalealpha
),
541 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleScalealpha
));
543 oType
.addInitialDesc(pDesc
);
545 pDesc
= new MFGLenum::Description(
546 MFGLenum::getClassType(),
549 BiasalphaFieldId
, BiasalphaFieldMask
,
551 (Field::MFDefaultFlags
| Field::FStdAccess
),
552 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleBiasalpha
),
553 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleBiasalpha
));
555 oType
.addInitialDesc(pDesc
);
557 pDesc
= new MFUInt8::Description(
558 MFUInt8::getClassType(),
561 MuxSumalphaFieldId
, MuxSumalphaFieldMask
,
563 (Field::MFDefaultFlags
| Field::FStdAccess
),
564 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleMuxSumalpha
),
565 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleMuxSumalpha
));
567 oType
.addInitialDesc(pDesc
);
569 pDesc
= new MFGLenum::Description(
570 MFGLenum::getClassType(),
573 VariableEFieldId
, VariableEFieldMask
,
575 (Field::MFDefaultFlags
| Field::FStdAccess
),
576 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleVariableE
),
577 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleVariableE
));
579 oType
.addInitialDesc(pDesc
);
581 pDesc
= new MFGLenum::Description(
582 MFGLenum::getClassType(),
585 VariableFFieldId
, VariableFFieldMask
,
587 (Field::MFDefaultFlags
| Field::FStdAccess
),
588 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleVariableF
),
589 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleVariableF
));
591 oType
.addInitialDesc(pDesc
);
593 pDesc
= new MFGLenum::Description(
594 MFGLenum::getClassType(),
597 VariableGFieldId
, VariableGFieldMask
,
599 (Field::MFDefaultFlags
| Field::FStdAccess
),
600 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleVariableG
),
601 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleVariableG
));
603 oType
.addInitialDesc(pDesc
);
605 pDesc
= new MFColor4f::Description(
606 MFColor4f::getClassType(),
609 CombinerColor0FieldId
, CombinerColor0FieldMask
,
611 (Field::MFDefaultFlags
| Field::FStdAccess
),
612 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleCombinerColor0
),
613 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleCombinerColor0
));
615 oType
.addInitialDesc(pDesc
);
617 pDesc
= new MFColor4f::Description(
618 MFColor4f::getClassType(),
621 CombinerColor1FieldId
, CombinerColor1FieldMask
,
623 (Field::MFDefaultFlags
| Field::FStdAccess
),
624 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandleCombinerColor1
),
625 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandleCombinerColor1
));
627 oType
.addInitialDesc(pDesc
);
629 pDesc
= new SFUInt8::Description(
630 SFUInt8::getClassType(),
633 PerStageConstantsFieldId
, PerStageConstantsFieldMask
,
635 (Field::SFDefaultFlags
| Field::FStdAccess
),
636 static_cast<FieldEditMethodSig
>(&RegisterCombinersChunk::editHandlePerStageConstants
),
637 static_cast<FieldGetMethodSig
>(&RegisterCombinersChunk::getHandlePerStageConstants
));
639 oType
.addInitialDesc(pDesc
);
643 RegisterCombinersChunkBase::TypeObject
RegisterCombinersChunkBase::_type(
644 RegisterCombinersChunkBase::getClassname(),
645 Inherited::getClassname(),
648 reinterpret_cast<PrototypeCreateF
>(&RegisterCombinersChunkBase::createEmptyLocal
),
649 reinterpret_cast<InitContainerF
>(&RegisterCombinersChunk::initMethod
),
650 reinterpret_cast<ExitContainerF
>(&RegisterCombinersChunk::exitMethod
),
651 reinterpret_cast<InitalInsertDescFunc
>(
652 reinterpret_cast<void *>(&RegisterCombinersChunk::classDescInserter
)),
655 "<?xml version=\"1.0\"?>\n"
658 " name=\"RegisterCombinersChunk\"\n"
659 " parent=\"StateChunk\"\n"
660 " library=\"State\"\n"
661 " pointerfieldtypes=\"both\"\n"
662 " structure=\"concrete\"\n"
663 " systemcomponent=\"true\"\n"
664 " parentsystemcomponent=\"true\"\n"
665 " decoratable=\"false\"\n"
666 " docGroupBase=\"GrpStateNVidia\"\n"
668 "See \\ref PageSystemRegisterCombinersChunk for a description.\n"
670 "Try to avoid using this chunk, as it is very non-portable. Using a shader \n"
671 "instead is recommend, and much easier to do.\n"
673 "This chunk wraps nVidia's register combiners. The\n"
674 "OSG::RegisterCombinersChunk::setCombinerRGB and\n"
675 "OSG::RegisterCombinersChunk::setCombinerAlpha convenience functions\n"
677 "which set up all the parameters for a single combiner's RGB or alpha part.\n"
678 "OSG::RegisterCombinersChunk::setFinalCombiner sets all parameters for the\n"
679 "final combiner. The constants are set by\n"
680 "OSG::RegisterCombinersChunk::setConstantColors(Color4f &color0, Color4f\n"
681 "&color1) for the gloabl constants and \n"
682 "OSG::RegisterCombinersChunk::setConstantColors(UInt16 which, \n"
684 "Color4f &color1) for the per-combiner constants (if supported). To reset a\n"
685 "combiner one or all of the combiners use\n"
686 "OSG::RegisterCombinersChunk::clearCombiners or \n"
687 "OSG::RegisterCombinersChunk::clearCombiner. \n"
689 "Don't use the direct field access to set the register combiner's parameter\n"
690 "unlesss you really have to, as the internal representation is a bit\n"
693 "\\ext To reduce the number of fields there isn't a field for every parameter,\n"
694 "instead they are kept in blocks of three in the fields. Please refer to the\n"
695 "source code for details.\n"
698 "\t name=\"color0\"\n"
699 "\t type=\"Color4f\"\n"
700 "\t cardinality=\"single\"\n"
701 "\t visibility=\"external\"\n"
702 "\t access=\"public\"\n"
706 "\t name=\"color1\"\n"
707 "\t type=\"Color4f\"\n"
708 "\t cardinality=\"single\"\n"
709 "\t visibility=\"external\"\n"
710 "\t access=\"public\"\n"
714 "\t name=\"colorSumClamp\"\n"
716 "\t cardinality=\"single\"\n"
717 "\t visibility=\"external\"\n"
718 "\t defaultValue=\"false\"\n"
719 "\t access=\"public\"\n"
723 "\t name=\"variableArgb\"\n"
724 "\t type=\"GLenum\"\n"
725 "\t cardinality=\"multi\"\n"
726 "\t visibility=\"external\"\n"
727 "\t access=\"public\"\n"
729 "\tinput,mapping,component Usage triples for variable A, RGB part\n"
732 "\t name=\"variableBrgb\"\n"
733 "\t type=\"GLenum\"\n"
734 "\t cardinality=\"multi\"\n"
735 "\t visibility=\"external\"\n"
736 "\t access=\"public\"\n"
740 "\t name=\"variableCrgb\"\n"
741 "\t type=\"GLenum\"\n"
742 "\t cardinality=\"multi\"\n"
743 "\t visibility=\"external\"\n"
744 "\t access=\"public\"\n"
748 "\t name=\"variableDrgb\"\n"
749 "\t type=\"GLenum\"\n"
750 "\t cardinality=\"multi\"\n"
751 "\t visibility=\"external\"\n"
752 "\t access=\"public\"\n"
756 "\t name=\"variableAalpha\"\n"
757 "\t type=\"GLenum\"\n"
758 "\t cardinality=\"multi\"\n"
759 "\t visibility=\"external\"\n"
760 "\t access=\"public\"\n"
764 "\t name=\"variableBalpha\"\n"
765 "\t type=\"GLenum\"\n"
766 "\t cardinality=\"multi\"\n"
767 "\t visibility=\"external\"\n"
768 "\t access=\"public\"\n"
772 "\t name=\"variableCalpha\"\n"
773 "\t type=\"GLenum\"\n"
774 "\t cardinality=\"multi\"\n"
775 "\t visibility=\"external\"\n"
776 "\t access=\"public\"\n"
780 "\t name=\"variableDalpha\"\n"
781 "\t type=\"GLenum\"\n"
782 "\t cardinality=\"multi\"\n"
783 "\t visibility=\"external\"\n"
784 "\t access=\"public\"\n"
788 "\t name=\"outputABrgb\"\n"
789 "\t type=\"GLenum\"\n"
790 "\t cardinality=\"multi\"\n"
791 "\t visibility=\"external\"\n"
792 "\t access=\"public\"\n"
796 "\t name=\"outputCDrgb\"\n"
797 "\t type=\"GLenum\"\n"
798 "\t cardinality=\"multi\"\n"
799 "\t visibility=\"external\"\n"
800 "\t access=\"public\"\n"
804 "\t name=\"outputSumrgb\"\n"
805 "\t type=\"GLenum\"\n"
806 "\t cardinality=\"multi\"\n"
807 "\t visibility=\"external\"\n"
808 "\t access=\"public\"\n"
812 "\t name=\"scalergb\"\n"
813 "\t type=\"GLenum\"\n"
814 "\t cardinality=\"multi\"\n"
815 "\t visibility=\"external\"\n"
816 "\t access=\"public\"\n"
820 "\t name=\"biasrgb\"\n"
821 "\t type=\"GLenum\"\n"
822 "\t cardinality=\"multi\"\n"
823 "\t visibility=\"external\"\n"
824 "\t access=\"public\"\n"
828 "\t name=\"outputABalpha\"\n"
829 "\t type=\"GLenum\"\n"
830 "\t cardinality=\"multi\"\n"
831 "\t visibility=\"external\"\n"
832 "\t access=\"public\"\n"
836 "\t name=\"outputCDalpha\"\n"
837 "\t type=\"GLenum\"\n"
838 "\t cardinality=\"multi\"\n"
839 "\t visibility=\"external\"\n"
840 "\t access=\"public\"\n"
844 "\t name=\"outputSumalpha\"\n"
845 "\t type=\"GLenum\"\n"
846 "\t cardinality=\"multi\"\n"
847 "\t visibility=\"external\"\n"
848 "\t access=\"public\"\n"
852 "\t name=\"dotABrgb\"\n"
853 "\t type=\"UInt8\"\n"
854 "\t cardinality=\"multi\"\n"
855 "\t visibility=\"external\"\n"
856 "\t access=\"public\"\n"
860 "\t name=\"dotCDrgb\"\n"
861 "\t type=\"UInt8\"\n"
862 "\t cardinality=\"multi\"\n"
863 "\t visibility=\"external\"\n"
864 "\t access=\"public\"\n"
868 "\t name=\"muxSumrgb\"\n"
869 "\t type=\"UInt8\"\n"
870 "\t cardinality=\"multi\"\n"
871 "\t visibility=\"external\"\n"
872 "\t access=\"public\"\n"
876 "\t name=\"scalealpha\"\n"
877 "\t type=\"GLenum\"\n"
878 "\t cardinality=\"multi\"\n"
879 "\t visibility=\"external\"\n"
880 "\t access=\"public\"\n"
884 "\t name=\"biasalpha\"\n"
885 "\t type=\"GLenum\"\n"
886 "\t cardinality=\"multi\"\n"
887 "\t visibility=\"external\"\n"
888 "\t access=\"public\"\n"
892 "\t name=\"muxSumalpha\"\n"
893 "\t type=\"UInt8\"\n"
894 "\t cardinality=\"multi\"\n"
895 "\t visibility=\"external\"\n"
896 "\t access=\"public\"\n"
900 "\t name=\"variableE\"\n"
901 "\t type=\"GLenum\"\n"
902 "\t cardinality=\"multi\"\n"
903 "\t visibility=\"external\"\n"
904 "\t access=\"public\"\n"
908 "\t name=\"variableF\"\n"
909 "\t type=\"GLenum\"\n"
910 "\t cardinality=\"multi\"\n"
911 "\t visibility=\"external\"\n"
912 "\t access=\"public\"\n"
916 "\t name=\"variableG\"\n"
917 "\t type=\"GLenum\"\n"
918 "\t cardinality=\"multi\"\n"
919 "\t visibility=\"external\"\n"
920 "\t access=\"public\"\n"
924 "\t name=\"combinerColor0\"\n"
925 "\t type=\"Color4f\"\n"
926 "\t cardinality=\"multi\"\n"
927 "\t visibility=\"external\"\n"
928 "\t access=\"public\"\n"
932 "\t name=\"combinerColor1\"\n"
933 "\t type=\"Color4f\"\n"
934 "\t cardinality=\"multi\"\n"
935 "\t visibility=\"external\"\n"
936 "\t access=\"public\"\n"
940 "\t name=\"perStageConstants\"\n"
941 "\t type=\"UInt8\"\n"
942 "\t cardinality=\"single\"\n"
943 "\t visibility=\"internal\"\n"
944 "\t access=\"public\"\n"
947 "</FieldContainer>\n",
948 "See \\ref PageSystemRegisterCombinersChunk for a description.\n"
950 "Try to avoid using this chunk, as it is very non-portable. Using a shader \n"
951 "instead is recommend, and much easier to do.\n"
953 "This chunk wraps nVidia's register combiners. The\n"
954 "OSG::RegisterCombinersChunk::setCombinerRGB and\n"
955 "OSG::RegisterCombinersChunk::setCombinerAlpha convenience functions\n"
957 "which set up all the parameters for a single combiner's RGB or alpha part.\n"
958 "OSG::RegisterCombinersChunk::setFinalCombiner sets all parameters for the\n"
959 "final combiner. The constants are set by\n"
960 "OSG::RegisterCombinersChunk::setConstantColors(Color4f &color0, Color4f\n"
961 "&color1) for the gloabl constants and \n"
962 "OSG::RegisterCombinersChunk::setConstantColors(UInt16 which, \n"
964 "Color4f &color1) for the per-combiner constants (if supported). To reset a\n"
965 "combiner one or all of the combiners use\n"
966 "OSG::RegisterCombinersChunk::clearCombiners or \n"
967 "OSG::RegisterCombinersChunk::clearCombiner. \n"
969 "Don't use the direct field access to set the register combiner's parameter\n"
970 "unlesss you really have to, as the internal representation is a bit\n"
973 "\\ext To reduce the number of fields there isn't a field for every parameter,\n"
974 "instead they are kept in blocks of three in the fields. Please refer to the\n"
975 "source code for details.\n"
979 /*------------------------------ get -----------------------------------*/
981 FieldContainerType
&RegisterCombinersChunkBase::getType(void)
986 const FieldContainerType
&RegisterCombinersChunkBase::getType(void) const
991 UInt32
RegisterCombinersChunkBase::getContainerSize(void) const
993 return sizeof(RegisterCombinersChunk
);
996 /*------------------------- decorator get ------------------------------*/
999 SFColor4f
*RegisterCombinersChunkBase::editSFColor0(void)
1001 editSField(Color0FieldMask
);
1006 const SFColor4f
*RegisterCombinersChunkBase::getSFColor0(void) const
1012 SFColor4f
*RegisterCombinersChunkBase::editSFColor1(void)
1014 editSField(Color1FieldMask
);
1019 const SFColor4f
*RegisterCombinersChunkBase::getSFColor1(void) const
1025 SFBool
*RegisterCombinersChunkBase::editSFColorSumClamp(void)
1027 editSField(ColorSumClampFieldMask
);
1029 return &_sfColorSumClamp
;
1032 const SFBool
*RegisterCombinersChunkBase::getSFColorSumClamp(void) const
1034 return &_sfColorSumClamp
;
1038 MFGLenum
*RegisterCombinersChunkBase::editMFVariableArgb(void)
1040 editMField(VariableArgbFieldMask
, _mfVariableArgb
);
1042 return &_mfVariableArgb
;
1045 const MFGLenum
*RegisterCombinersChunkBase::getMFVariableArgb(void) const
1047 return &_mfVariableArgb
;
1051 MFGLenum
*RegisterCombinersChunkBase::editMFVariableBrgb(void)
1053 editMField(VariableBrgbFieldMask
, _mfVariableBrgb
);
1055 return &_mfVariableBrgb
;
1058 const MFGLenum
*RegisterCombinersChunkBase::getMFVariableBrgb(void) const
1060 return &_mfVariableBrgb
;
1064 MFGLenum
*RegisterCombinersChunkBase::editMFVariableCrgb(void)
1066 editMField(VariableCrgbFieldMask
, _mfVariableCrgb
);
1068 return &_mfVariableCrgb
;
1071 const MFGLenum
*RegisterCombinersChunkBase::getMFVariableCrgb(void) const
1073 return &_mfVariableCrgb
;
1077 MFGLenum
*RegisterCombinersChunkBase::editMFVariableDrgb(void)
1079 editMField(VariableDrgbFieldMask
, _mfVariableDrgb
);
1081 return &_mfVariableDrgb
;
1084 const MFGLenum
*RegisterCombinersChunkBase::getMFVariableDrgb(void) const
1086 return &_mfVariableDrgb
;
1090 MFGLenum
*RegisterCombinersChunkBase::editMFVariableAalpha(void)
1092 editMField(VariableAalphaFieldMask
, _mfVariableAalpha
);
1094 return &_mfVariableAalpha
;
1097 const MFGLenum
*RegisterCombinersChunkBase::getMFVariableAalpha(void) const
1099 return &_mfVariableAalpha
;
1103 MFGLenum
*RegisterCombinersChunkBase::editMFVariableBalpha(void)
1105 editMField(VariableBalphaFieldMask
, _mfVariableBalpha
);
1107 return &_mfVariableBalpha
;
1110 const MFGLenum
*RegisterCombinersChunkBase::getMFVariableBalpha(void) const
1112 return &_mfVariableBalpha
;
1116 MFGLenum
*RegisterCombinersChunkBase::editMFVariableCalpha(void)
1118 editMField(VariableCalphaFieldMask
, _mfVariableCalpha
);
1120 return &_mfVariableCalpha
;
1123 const MFGLenum
*RegisterCombinersChunkBase::getMFVariableCalpha(void) const
1125 return &_mfVariableCalpha
;
1129 MFGLenum
*RegisterCombinersChunkBase::editMFVariableDalpha(void)
1131 editMField(VariableDalphaFieldMask
, _mfVariableDalpha
);
1133 return &_mfVariableDalpha
;
1136 const MFGLenum
*RegisterCombinersChunkBase::getMFVariableDalpha(void) const
1138 return &_mfVariableDalpha
;
1142 MFGLenum
*RegisterCombinersChunkBase::editMFOutputABrgb(void)
1144 editMField(OutputABrgbFieldMask
, _mfOutputABrgb
);
1146 return &_mfOutputABrgb
;
1149 const MFGLenum
*RegisterCombinersChunkBase::getMFOutputABrgb(void) const
1151 return &_mfOutputABrgb
;
1155 MFGLenum
*RegisterCombinersChunkBase::editMFOutputCDrgb(void)
1157 editMField(OutputCDrgbFieldMask
, _mfOutputCDrgb
);
1159 return &_mfOutputCDrgb
;
1162 const MFGLenum
*RegisterCombinersChunkBase::getMFOutputCDrgb(void) const
1164 return &_mfOutputCDrgb
;
1168 MFGLenum
*RegisterCombinersChunkBase::editMFOutputSumrgb(void)
1170 editMField(OutputSumrgbFieldMask
, _mfOutputSumrgb
);
1172 return &_mfOutputSumrgb
;
1175 const MFGLenum
*RegisterCombinersChunkBase::getMFOutputSumrgb(void) const
1177 return &_mfOutputSumrgb
;
1181 MFGLenum
*RegisterCombinersChunkBase::editMFScalergb(void)
1183 editMField(ScalergbFieldMask
, _mfScalergb
);
1185 return &_mfScalergb
;
1188 const MFGLenum
*RegisterCombinersChunkBase::getMFScalergb(void) const
1190 return &_mfScalergb
;
1194 MFGLenum
*RegisterCombinersChunkBase::editMFBiasrgb(void)
1196 editMField(BiasrgbFieldMask
, _mfBiasrgb
);
1201 const MFGLenum
*RegisterCombinersChunkBase::getMFBiasrgb(void) const
1207 MFGLenum
*RegisterCombinersChunkBase::editMFOutputABalpha(void)
1209 editMField(OutputABalphaFieldMask
, _mfOutputABalpha
);
1211 return &_mfOutputABalpha
;
1214 const MFGLenum
*RegisterCombinersChunkBase::getMFOutputABalpha(void) const
1216 return &_mfOutputABalpha
;
1220 MFGLenum
*RegisterCombinersChunkBase::editMFOutputCDalpha(void)
1222 editMField(OutputCDalphaFieldMask
, _mfOutputCDalpha
);
1224 return &_mfOutputCDalpha
;
1227 const MFGLenum
*RegisterCombinersChunkBase::getMFOutputCDalpha(void) const
1229 return &_mfOutputCDalpha
;
1233 MFGLenum
*RegisterCombinersChunkBase::editMFOutputSumalpha(void)
1235 editMField(OutputSumalphaFieldMask
, _mfOutputSumalpha
);
1237 return &_mfOutputSumalpha
;
1240 const MFGLenum
*RegisterCombinersChunkBase::getMFOutputSumalpha(void) const
1242 return &_mfOutputSumalpha
;
1246 MFUInt8
*RegisterCombinersChunkBase::editMFDotABrgb(void)
1248 editMField(DotABrgbFieldMask
, _mfDotABrgb
);
1250 return &_mfDotABrgb
;
1253 const MFUInt8
*RegisterCombinersChunkBase::getMFDotABrgb(void) const
1255 return &_mfDotABrgb
;
1259 MFUInt8
*RegisterCombinersChunkBase::editMFDotCDrgb(void)
1261 editMField(DotCDrgbFieldMask
, _mfDotCDrgb
);
1263 return &_mfDotCDrgb
;
1266 const MFUInt8
*RegisterCombinersChunkBase::getMFDotCDrgb(void) const
1268 return &_mfDotCDrgb
;
1272 MFUInt8
*RegisterCombinersChunkBase::editMFMuxSumrgb(void)
1274 editMField(MuxSumrgbFieldMask
, _mfMuxSumrgb
);
1276 return &_mfMuxSumrgb
;
1279 const MFUInt8
*RegisterCombinersChunkBase::getMFMuxSumrgb(void) const
1281 return &_mfMuxSumrgb
;
1285 MFGLenum
*RegisterCombinersChunkBase::editMFScalealpha(void)
1287 editMField(ScalealphaFieldMask
, _mfScalealpha
);
1289 return &_mfScalealpha
;
1292 const MFGLenum
*RegisterCombinersChunkBase::getMFScalealpha(void) const
1294 return &_mfScalealpha
;
1298 MFGLenum
*RegisterCombinersChunkBase::editMFBiasalpha(void)
1300 editMField(BiasalphaFieldMask
, _mfBiasalpha
);
1302 return &_mfBiasalpha
;
1305 const MFGLenum
*RegisterCombinersChunkBase::getMFBiasalpha(void) const
1307 return &_mfBiasalpha
;
1311 MFUInt8
*RegisterCombinersChunkBase::editMFMuxSumalpha(void)
1313 editMField(MuxSumalphaFieldMask
, _mfMuxSumalpha
);
1315 return &_mfMuxSumalpha
;
1318 const MFUInt8
*RegisterCombinersChunkBase::getMFMuxSumalpha(void) const
1320 return &_mfMuxSumalpha
;
1324 MFGLenum
*RegisterCombinersChunkBase::editMFVariableE(void)
1326 editMField(VariableEFieldMask
, _mfVariableE
);
1328 return &_mfVariableE
;
1331 const MFGLenum
*RegisterCombinersChunkBase::getMFVariableE(void) const
1333 return &_mfVariableE
;
1337 MFGLenum
*RegisterCombinersChunkBase::editMFVariableF(void)
1339 editMField(VariableFFieldMask
, _mfVariableF
);
1341 return &_mfVariableF
;
1344 const MFGLenum
*RegisterCombinersChunkBase::getMFVariableF(void) const
1346 return &_mfVariableF
;
1350 MFGLenum
*RegisterCombinersChunkBase::editMFVariableG(void)
1352 editMField(VariableGFieldMask
, _mfVariableG
);
1354 return &_mfVariableG
;
1357 const MFGLenum
*RegisterCombinersChunkBase::getMFVariableG(void) const
1359 return &_mfVariableG
;
1363 MFColor4f
*RegisterCombinersChunkBase::editMFCombinerColor0(void)
1365 editMField(CombinerColor0FieldMask
, _mfCombinerColor0
);
1367 return &_mfCombinerColor0
;
1370 const MFColor4f
*RegisterCombinersChunkBase::getMFCombinerColor0(void) const
1372 return &_mfCombinerColor0
;
1376 MFColor4f
*RegisterCombinersChunkBase::editMFCombinerColor1(void)
1378 editMField(CombinerColor1FieldMask
, _mfCombinerColor1
);
1380 return &_mfCombinerColor1
;
1383 const MFColor4f
*RegisterCombinersChunkBase::getMFCombinerColor1(void) const
1385 return &_mfCombinerColor1
;
1389 SFUInt8
*RegisterCombinersChunkBase::editSFPerStageConstants(void)
1391 editSField(PerStageConstantsFieldMask
);
1393 return &_sfPerStageConstants
;
1396 const SFUInt8
*RegisterCombinersChunkBase::getSFPerStageConstants(void) const
1398 return &_sfPerStageConstants
;
1406 /*------------------------------ access -----------------------------------*/
1408 SizeT
RegisterCombinersChunkBase::getBinSize(ConstFieldMaskArg whichField
)
1410 SizeT returnValue
= Inherited::getBinSize(whichField
);
1412 if(FieldBits::NoField
!= (Color0FieldMask
& whichField
))
1414 returnValue
+= _sfColor0
.getBinSize();
1416 if(FieldBits::NoField
!= (Color1FieldMask
& whichField
))
1418 returnValue
+= _sfColor1
.getBinSize();
1420 if(FieldBits::NoField
!= (ColorSumClampFieldMask
& whichField
))
1422 returnValue
+= _sfColorSumClamp
.getBinSize();
1424 if(FieldBits::NoField
!= (VariableArgbFieldMask
& whichField
))
1426 returnValue
+= _mfVariableArgb
.getBinSize();
1428 if(FieldBits::NoField
!= (VariableBrgbFieldMask
& whichField
))
1430 returnValue
+= _mfVariableBrgb
.getBinSize();
1432 if(FieldBits::NoField
!= (VariableCrgbFieldMask
& whichField
))
1434 returnValue
+= _mfVariableCrgb
.getBinSize();
1436 if(FieldBits::NoField
!= (VariableDrgbFieldMask
& whichField
))
1438 returnValue
+= _mfVariableDrgb
.getBinSize();
1440 if(FieldBits::NoField
!= (VariableAalphaFieldMask
& whichField
))
1442 returnValue
+= _mfVariableAalpha
.getBinSize();
1444 if(FieldBits::NoField
!= (VariableBalphaFieldMask
& whichField
))
1446 returnValue
+= _mfVariableBalpha
.getBinSize();
1448 if(FieldBits::NoField
!= (VariableCalphaFieldMask
& whichField
))
1450 returnValue
+= _mfVariableCalpha
.getBinSize();
1452 if(FieldBits::NoField
!= (VariableDalphaFieldMask
& whichField
))
1454 returnValue
+= _mfVariableDalpha
.getBinSize();
1456 if(FieldBits::NoField
!= (OutputABrgbFieldMask
& whichField
))
1458 returnValue
+= _mfOutputABrgb
.getBinSize();
1460 if(FieldBits::NoField
!= (OutputCDrgbFieldMask
& whichField
))
1462 returnValue
+= _mfOutputCDrgb
.getBinSize();
1464 if(FieldBits::NoField
!= (OutputSumrgbFieldMask
& whichField
))
1466 returnValue
+= _mfOutputSumrgb
.getBinSize();
1468 if(FieldBits::NoField
!= (ScalergbFieldMask
& whichField
))
1470 returnValue
+= _mfScalergb
.getBinSize();
1472 if(FieldBits::NoField
!= (BiasrgbFieldMask
& whichField
))
1474 returnValue
+= _mfBiasrgb
.getBinSize();
1476 if(FieldBits::NoField
!= (OutputABalphaFieldMask
& whichField
))
1478 returnValue
+= _mfOutputABalpha
.getBinSize();
1480 if(FieldBits::NoField
!= (OutputCDalphaFieldMask
& whichField
))
1482 returnValue
+= _mfOutputCDalpha
.getBinSize();
1484 if(FieldBits::NoField
!= (OutputSumalphaFieldMask
& whichField
))
1486 returnValue
+= _mfOutputSumalpha
.getBinSize();
1488 if(FieldBits::NoField
!= (DotABrgbFieldMask
& whichField
))
1490 returnValue
+= _mfDotABrgb
.getBinSize();
1492 if(FieldBits::NoField
!= (DotCDrgbFieldMask
& whichField
))
1494 returnValue
+= _mfDotCDrgb
.getBinSize();
1496 if(FieldBits::NoField
!= (MuxSumrgbFieldMask
& whichField
))
1498 returnValue
+= _mfMuxSumrgb
.getBinSize();
1500 if(FieldBits::NoField
!= (ScalealphaFieldMask
& whichField
))
1502 returnValue
+= _mfScalealpha
.getBinSize();
1504 if(FieldBits::NoField
!= (BiasalphaFieldMask
& whichField
))
1506 returnValue
+= _mfBiasalpha
.getBinSize();
1508 if(FieldBits::NoField
!= (MuxSumalphaFieldMask
& whichField
))
1510 returnValue
+= _mfMuxSumalpha
.getBinSize();
1512 if(FieldBits::NoField
!= (VariableEFieldMask
& whichField
))
1514 returnValue
+= _mfVariableE
.getBinSize();
1516 if(FieldBits::NoField
!= (VariableFFieldMask
& whichField
))
1518 returnValue
+= _mfVariableF
.getBinSize();
1520 if(FieldBits::NoField
!= (VariableGFieldMask
& whichField
))
1522 returnValue
+= _mfVariableG
.getBinSize();
1524 if(FieldBits::NoField
!= (CombinerColor0FieldMask
& whichField
))
1526 returnValue
+= _mfCombinerColor0
.getBinSize();
1528 if(FieldBits::NoField
!= (CombinerColor1FieldMask
& whichField
))
1530 returnValue
+= _mfCombinerColor1
.getBinSize();
1532 if(FieldBits::NoField
!= (PerStageConstantsFieldMask
& whichField
))
1534 returnValue
+= _sfPerStageConstants
.getBinSize();
1540 void RegisterCombinersChunkBase::copyToBin(BinaryDataHandler
&pMem
,
1541 ConstFieldMaskArg whichField
)
1543 Inherited::copyToBin(pMem
, whichField
);
1545 if(FieldBits::NoField
!= (Color0FieldMask
& whichField
))
1547 _sfColor0
.copyToBin(pMem
);
1549 if(FieldBits::NoField
!= (Color1FieldMask
& whichField
))
1551 _sfColor1
.copyToBin(pMem
);
1553 if(FieldBits::NoField
!= (ColorSumClampFieldMask
& whichField
))
1555 _sfColorSumClamp
.copyToBin(pMem
);
1557 if(FieldBits::NoField
!= (VariableArgbFieldMask
& whichField
))
1559 _mfVariableArgb
.copyToBin(pMem
);
1561 if(FieldBits::NoField
!= (VariableBrgbFieldMask
& whichField
))
1563 _mfVariableBrgb
.copyToBin(pMem
);
1565 if(FieldBits::NoField
!= (VariableCrgbFieldMask
& whichField
))
1567 _mfVariableCrgb
.copyToBin(pMem
);
1569 if(FieldBits::NoField
!= (VariableDrgbFieldMask
& whichField
))
1571 _mfVariableDrgb
.copyToBin(pMem
);
1573 if(FieldBits::NoField
!= (VariableAalphaFieldMask
& whichField
))
1575 _mfVariableAalpha
.copyToBin(pMem
);
1577 if(FieldBits::NoField
!= (VariableBalphaFieldMask
& whichField
))
1579 _mfVariableBalpha
.copyToBin(pMem
);
1581 if(FieldBits::NoField
!= (VariableCalphaFieldMask
& whichField
))
1583 _mfVariableCalpha
.copyToBin(pMem
);
1585 if(FieldBits::NoField
!= (VariableDalphaFieldMask
& whichField
))
1587 _mfVariableDalpha
.copyToBin(pMem
);
1589 if(FieldBits::NoField
!= (OutputABrgbFieldMask
& whichField
))
1591 _mfOutputABrgb
.copyToBin(pMem
);
1593 if(FieldBits::NoField
!= (OutputCDrgbFieldMask
& whichField
))
1595 _mfOutputCDrgb
.copyToBin(pMem
);
1597 if(FieldBits::NoField
!= (OutputSumrgbFieldMask
& whichField
))
1599 _mfOutputSumrgb
.copyToBin(pMem
);
1601 if(FieldBits::NoField
!= (ScalergbFieldMask
& whichField
))
1603 _mfScalergb
.copyToBin(pMem
);
1605 if(FieldBits::NoField
!= (BiasrgbFieldMask
& whichField
))
1607 _mfBiasrgb
.copyToBin(pMem
);
1609 if(FieldBits::NoField
!= (OutputABalphaFieldMask
& whichField
))
1611 _mfOutputABalpha
.copyToBin(pMem
);
1613 if(FieldBits::NoField
!= (OutputCDalphaFieldMask
& whichField
))
1615 _mfOutputCDalpha
.copyToBin(pMem
);
1617 if(FieldBits::NoField
!= (OutputSumalphaFieldMask
& whichField
))
1619 _mfOutputSumalpha
.copyToBin(pMem
);
1621 if(FieldBits::NoField
!= (DotABrgbFieldMask
& whichField
))
1623 _mfDotABrgb
.copyToBin(pMem
);
1625 if(FieldBits::NoField
!= (DotCDrgbFieldMask
& whichField
))
1627 _mfDotCDrgb
.copyToBin(pMem
);
1629 if(FieldBits::NoField
!= (MuxSumrgbFieldMask
& whichField
))
1631 _mfMuxSumrgb
.copyToBin(pMem
);
1633 if(FieldBits::NoField
!= (ScalealphaFieldMask
& whichField
))
1635 _mfScalealpha
.copyToBin(pMem
);
1637 if(FieldBits::NoField
!= (BiasalphaFieldMask
& whichField
))
1639 _mfBiasalpha
.copyToBin(pMem
);
1641 if(FieldBits::NoField
!= (MuxSumalphaFieldMask
& whichField
))
1643 _mfMuxSumalpha
.copyToBin(pMem
);
1645 if(FieldBits::NoField
!= (VariableEFieldMask
& whichField
))
1647 _mfVariableE
.copyToBin(pMem
);
1649 if(FieldBits::NoField
!= (VariableFFieldMask
& whichField
))
1651 _mfVariableF
.copyToBin(pMem
);
1653 if(FieldBits::NoField
!= (VariableGFieldMask
& whichField
))
1655 _mfVariableG
.copyToBin(pMem
);
1657 if(FieldBits::NoField
!= (CombinerColor0FieldMask
& whichField
))
1659 _mfCombinerColor0
.copyToBin(pMem
);
1661 if(FieldBits::NoField
!= (CombinerColor1FieldMask
& whichField
))
1663 _mfCombinerColor1
.copyToBin(pMem
);
1665 if(FieldBits::NoField
!= (PerStageConstantsFieldMask
& whichField
))
1667 _sfPerStageConstants
.copyToBin(pMem
);
1671 void RegisterCombinersChunkBase::copyFromBin(BinaryDataHandler
&pMem
,
1672 ConstFieldMaskArg whichField
)
1674 Inherited::copyFromBin(pMem
, whichField
);
1676 if(FieldBits::NoField
!= (Color0FieldMask
& whichField
))
1678 editSField(Color0FieldMask
);
1679 _sfColor0
.copyFromBin(pMem
);
1681 if(FieldBits::NoField
!= (Color1FieldMask
& whichField
))
1683 editSField(Color1FieldMask
);
1684 _sfColor1
.copyFromBin(pMem
);
1686 if(FieldBits::NoField
!= (ColorSumClampFieldMask
& whichField
))
1688 editSField(ColorSumClampFieldMask
);
1689 _sfColorSumClamp
.copyFromBin(pMem
);
1691 if(FieldBits::NoField
!= (VariableArgbFieldMask
& whichField
))
1693 editMField(VariableArgbFieldMask
, _mfVariableArgb
);
1694 _mfVariableArgb
.copyFromBin(pMem
);
1696 if(FieldBits::NoField
!= (VariableBrgbFieldMask
& whichField
))
1698 editMField(VariableBrgbFieldMask
, _mfVariableBrgb
);
1699 _mfVariableBrgb
.copyFromBin(pMem
);
1701 if(FieldBits::NoField
!= (VariableCrgbFieldMask
& whichField
))
1703 editMField(VariableCrgbFieldMask
, _mfVariableCrgb
);
1704 _mfVariableCrgb
.copyFromBin(pMem
);
1706 if(FieldBits::NoField
!= (VariableDrgbFieldMask
& whichField
))
1708 editMField(VariableDrgbFieldMask
, _mfVariableDrgb
);
1709 _mfVariableDrgb
.copyFromBin(pMem
);
1711 if(FieldBits::NoField
!= (VariableAalphaFieldMask
& whichField
))
1713 editMField(VariableAalphaFieldMask
, _mfVariableAalpha
);
1714 _mfVariableAalpha
.copyFromBin(pMem
);
1716 if(FieldBits::NoField
!= (VariableBalphaFieldMask
& whichField
))
1718 editMField(VariableBalphaFieldMask
, _mfVariableBalpha
);
1719 _mfVariableBalpha
.copyFromBin(pMem
);
1721 if(FieldBits::NoField
!= (VariableCalphaFieldMask
& whichField
))
1723 editMField(VariableCalphaFieldMask
, _mfVariableCalpha
);
1724 _mfVariableCalpha
.copyFromBin(pMem
);
1726 if(FieldBits::NoField
!= (VariableDalphaFieldMask
& whichField
))
1728 editMField(VariableDalphaFieldMask
, _mfVariableDalpha
);
1729 _mfVariableDalpha
.copyFromBin(pMem
);
1731 if(FieldBits::NoField
!= (OutputABrgbFieldMask
& whichField
))
1733 editMField(OutputABrgbFieldMask
, _mfOutputABrgb
);
1734 _mfOutputABrgb
.copyFromBin(pMem
);
1736 if(FieldBits::NoField
!= (OutputCDrgbFieldMask
& whichField
))
1738 editMField(OutputCDrgbFieldMask
, _mfOutputCDrgb
);
1739 _mfOutputCDrgb
.copyFromBin(pMem
);
1741 if(FieldBits::NoField
!= (OutputSumrgbFieldMask
& whichField
))
1743 editMField(OutputSumrgbFieldMask
, _mfOutputSumrgb
);
1744 _mfOutputSumrgb
.copyFromBin(pMem
);
1746 if(FieldBits::NoField
!= (ScalergbFieldMask
& whichField
))
1748 editMField(ScalergbFieldMask
, _mfScalergb
);
1749 _mfScalergb
.copyFromBin(pMem
);
1751 if(FieldBits::NoField
!= (BiasrgbFieldMask
& whichField
))
1753 editMField(BiasrgbFieldMask
, _mfBiasrgb
);
1754 _mfBiasrgb
.copyFromBin(pMem
);
1756 if(FieldBits::NoField
!= (OutputABalphaFieldMask
& whichField
))
1758 editMField(OutputABalphaFieldMask
, _mfOutputABalpha
);
1759 _mfOutputABalpha
.copyFromBin(pMem
);
1761 if(FieldBits::NoField
!= (OutputCDalphaFieldMask
& whichField
))
1763 editMField(OutputCDalphaFieldMask
, _mfOutputCDalpha
);
1764 _mfOutputCDalpha
.copyFromBin(pMem
);
1766 if(FieldBits::NoField
!= (OutputSumalphaFieldMask
& whichField
))
1768 editMField(OutputSumalphaFieldMask
, _mfOutputSumalpha
);
1769 _mfOutputSumalpha
.copyFromBin(pMem
);
1771 if(FieldBits::NoField
!= (DotABrgbFieldMask
& whichField
))
1773 editMField(DotABrgbFieldMask
, _mfDotABrgb
);
1774 _mfDotABrgb
.copyFromBin(pMem
);
1776 if(FieldBits::NoField
!= (DotCDrgbFieldMask
& whichField
))
1778 editMField(DotCDrgbFieldMask
, _mfDotCDrgb
);
1779 _mfDotCDrgb
.copyFromBin(pMem
);
1781 if(FieldBits::NoField
!= (MuxSumrgbFieldMask
& whichField
))
1783 editMField(MuxSumrgbFieldMask
, _mfMuxSumrgb
);
1784 _mfMuxSumrgb
.copyFromBin(pMem
);
1786 if(FieldBits::NoField
!= (ScalealphaFieldMask
& whichField
))
1788 editMField(ScalealphaFieldMask
, _mfScalealpha
);
1789 _mfScalealpha
.copyFromBin(pMem
);
1791 if(FieldBits::NoField
!= (BiasalphaFieldMask
& whichField
))
1793 editMField(BiasalphaFieldMask
, _mfBiasalpha
);
1794 _mfBiasalpha
.copyFromBin(pMem
);
1796 if(FieldBits::NoField
!= (MuxSumalphaFieldMask
& whichField
))
1798 editMField(MuxSumalphaFieldMask
, _mfMuxSumalpha
);
1799 _mfMuxSumalpha
.copyFromBin(pMem
);
1801 if(FieldBits::NoField
!= (VariableEFieldMask
& whichField
))
1803 editMField(VariableEFieldMask
, _mfVariableE
);
1804 _mfVariableE
.copyFromBin(pMem
);
1806 if(FieldBits::NoField
!= (VariableFFieldMask
& whichField
))
1808 editMField(VariableFFieldMask
, _mfVariableF
);
1809 _mfVariableF
.copyFromBin(pMem
);
1811 if(FieldBits::NoField
!= (VariableGFieldMask
& whichField
))
1813 editMField(VariableGFieldMask
, _mfVariableG
);
1814 _mfVariableG
.copyFromBin(pMem
);
1816 if(FieldBits::NoField
!= (CombinerColor0FieldMask
& whichField
))
1818 editMField(CombinerColor0FieldMask
, _mfCombinerColor0
);
1819 _mfCombinerColor0
.copyFromBin(pMem
);
1821 if(FieldBits::NoField
!= (CombinerColor1FieldMask
& whichField
))
1823 editMField(CombinerColor1FieldMask
, _mfCombinerColor1
);
1824 _mfCombinerColor1
.copyFromBin(pMem
);
1826 if(FieldBits::NoField
!= (PerStageConstantsFieldMask
& whichField
))
1828 editSField(PerStageConstantsFieldMask
);
1829 _sfPerStageConstants
.copyFromBin(pMem
);
1833 //! create a new instance of the class
1834 RegisterCombinersChunkTransitPtr
RegisterCombinersChunkBase::createLocal(BitVector bFlags
)
1836 RegisterCombinersChunkTransitPtr fc
;
1838 if(getClassType().getPrototype() != NULL
)
1840 FieldContainerTransitPtr tmpPtr
=
1841 getClassType().getPrototype()-> shallowCopyLocal(bFlags
);
1843 fc
= dynamic_pointer_cast
<RegisterCombinersChunk
>(tmpPtr
);
1849 //! create a new instance of the class, copy the container flags
1850 RegisterCombinersChunkTransitPtr
RegisterCombinersChunkBase::createDependent(BitVector bFlags
)
1852 RegisterCombinersChunkTransitPtr fc
;
1854 if(getClassType().getPrototype() != NULL
)
1856 FieldContainerTransitPtr tmpPtr
=
1857 getClassType().getPrototype()-> shallowCopyDependent(bFlags
);
1859 fc
= dynamic_pointer_cast
<RegisterCombinersChunk
>(tmpPtr
);
1865 //! create a new instance of the class
1866 RegisterCombinersChunkTransitPtr
RegisterCombinersChunkBase::create(void)
1868 RegisterCombinersChunkTransitPtr fc
;
1870 if(getClassType().getPrototype() != NULL
)
1872 FieldContainerTransitPtr tmpPtr
=
1873 getClassType().getPrototype()-> shallowCopy();
1875 fc
= dynamic_pointer_cast
<RegisterCombinersChunk
>(tmpPtr
);
1881 RegisterCombinersChunk
*RegisterCombinersChunkBase::createEmptyLocal(BitVector bFlags
)
1883 RegisterCombinersChunk
*returnValue
;
1885 newPtr
<RegisterCombinersChunk
>(returnValue
, bFlags
);
1887 returnValue
->_pFieldFlags
->_bNamespaceMask
&= ~bFlags
;
1892 //! create an empty new instance of the class, do not copy the prototype
1893 RegisterCombinersChunk
*RegisterCombinersChunkBase::createEmpty(void)
1895 RegisterCombinersChunk
*returnValue
;
1897 newPtr
<RegisterCombinersChunk
>(returnValue
, Thread::getCurrentLocalFlags());
1899 returnValue
->_pFieldFlags
->_bNamespaceMask
&=
1900 ~Thread::getCurrentLocalFlags();
1906 FieldContainerTransitPtr
RegisterCombinersChunkBase::shallowCopyLocal(
1907 BitVector bFlags
) const
1909 RegisterCombinersChunk
*tmpPtr
;
1911 newPtr(tmpPtr
, dynamic_cast<const RegisterCombinersChunk
*>(this), bFlags
);
1913 FieldContainerTransitPtr
returnValue(tmpPtr
);
1915 tmpPtr
->_pFieldFlags
->_bNamespaceMask
&= ~bFlags
;
1920 FieldContainerTransitPtr
RegisterCombinersChunkBase::shallowCopyDependent(
1921 BitVector bFlags
) const
1923 RegisterCombinersChunk
*tmpPtr
;
1925 newPtr(tmpPtr
, dynamic_cast<const RegisterCombinersChunk
*>(this), ~bFlags
);
1927 FieldContainerTransitPtr
returnValue(tmpPtr
);
1929 tmpPtr
->_pFieldFlags
->_bNamespaceMask
= bFlags
;
1934 FieldContainerTransitPtr
RegisterCombinersChunkBase::shallowCopy(void) const
1936 RegisterCombinersChunk
*tmpPtr
;
1939 dynamic_cast<const RegisterCombinersChunk
*>(this),
1940 Thread::getCurrentLocalFlags());
1942 tmpPtr
->_pFieldFlags
->_bNamespaceMask
&= ~Thread::getCurrentLocalFlags();
1944 FieldContainerTransitPtr
returnValue(tmpPtr
);
1952 /*------------------------- constructors ----------------------------------*/
1954 RegisterCombinersChunkBase::RegisterCombinersChunkBase(void) :
1958 _sfColorSumClamp (bool(false)),
1963 _mfVariableAalpha (),
1964 _mfVariableBalpha (),
1965 _mfVariableCalpha (),
1966 _mfVariableDalpha (),
1972 _mfOutputABalpha (),
1973 _mfOutputCDalpha (),
1974 _mfOutputSumalpha (),
1984 _mfCombinerColor0 (),
1985 _mfCombinerColor1 (),
1986 _sfPerStageConstants ()
1990 RegisterCombinersChunkBase::RegisterCombinersChunkBase(const RegisterCombinersChunkBase
&source
) :
1992 _sfColor0 (source
._sfColor0
),
1993 _sfColor1 (source
._sfColor1
),
1994 _sfColorSumClamp (source
._sfColorSumClamp
),
1995 _mfVariableArgb (source
._mfVariableArgb
),
1996 _mfVariableBrgb (source
._mfVariableBrgb
),
1997 _mfVariableCrgb (source
._mfVariableCrgb
),
1998 _mfVariableDrgb (source
._mfVariableDrgb
),
1999 _mfVariableAalpha (source
._mfVariableAalpha
),
2000 _mfVariableBalpha (source
._mfVariableBalpha
),
2001 _mfVariableCalpha (source
._mfVariableCalpha
),
2002 _mfVariableDalpha (source
._mfVariableDalpha
),
2003 _mfOutputABrgb (source
._mfOutputABrgb
),
2004 _mfOutputCDrgb (source
._mfOutputCDrgb
),
2005 _mfOutputSumrgb (source
._mfOutputSumrgb
),
2006 _mfScalergb (source
._mfScalergb
),
2007 _mfBiasrgb (source
._mfBiasrgb
),
2008 _mfOutputABalpha (source
._mfOutputABalpha
),
2009 _mfOutputCDalpha (source
._mfOutputCDalpha
),
2010 _mfOutputSumalpha (source
._mfOutputSumalpha
),
2011 _mfDotABrgb (source
._mfDotABrgb
),
2012 _mfDotCDrgb (source
._mfDotCDrgb
),
2013 _mfMuxSumrgb (source
._mfMuxSumrgb
),
2014 _mfScalealpha (source
._mfScalealpha
),
2015 _mfBiasalpha (source
._mfBiasalpha
),
2016 _mfMuxSumalpha (source
._mfMuxSumalpha
),
2017 _mfVariableE (source
._mfVariableE
),
2018 _mfVariableF (source
._mfVariableF
),
2019 _mfVariableG (source
._mfVariableG
),
2020 _mfCombinerColor0 (source
._mfCombinerColor0
),
2021 _mfCombinerColor1 (source
._mfCombinerColor1
),
2022 _sfPerStageConstants (source
._sfPerStageConstants
)
2027 /*-------------------------- destructors ----------------------------------*/
2029 RegisterCombinersChunkBase::~RegisterCombinersChunkBase(void)
2034 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleColor0 (void) const
2036 SFColor4f::GetHandlePtr
returnValue(
2037 new SFColor4f::GetHandle(
2039 this->getType().getFieldDesc(Color0FieldId
),
2040 const_cast<RegisterCombinersChunkBase
*>(this)));
2045 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleColor0 (void)
2047 SFColor4f::EditHandlePtr
returnValue(
2048 new SFColor4f::EditHandle(
2050 this->getType().getFieldDesc(Color0FieldId
),
2054 editSField(Color0FieldMask
);
2059 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleColor1 (void) const
2061 SFColor4f::GetHandlePtr
returnValue(
2062 new SFColor4f::GetHandle(
2064 this->getType().getFieldDesc(Color1FieldId
),
2065 const_cast<RegisterCombinersChunkBase
*>(this)));
2070 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleColor1 (void)
2072 SFColor4f::EditHandlePtr
returnValue(
2073 new SFColor4f::EditHandle(
2075 this->getType().getFieldDesc(Color1FieldId
),
2079 editSField(Color1FieldMask
);
2084 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleColorSumClamp (void) const
2086 SFBool::GetHandlePtr
returnValue(
2087 new SFBool::GetHandle(
2089 this->getType().getFieldDesc(ColorSumClampFieldId
),
2090 const_cast<RegisterCombinersChunkBase
*>(this)));
2095 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleColorSumClamp (void)
2097 SFBool::EditHandlePtr
returnValue(
2098 new SFBool::EditHandle(
2100 this->getType().getFieldDesc(ColorSumClampFieldId
),
2104 editSField(ColorSumClampFieldMask
);
2109 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleVariableArgb (void) const
2111 MFGLenum::GetHandlePtr
returnValue(
2112 new MFGLenum::GetHandle(
2114 this->getType().getFieldDesc(VariableArgbFieldId
),
2115 const_cast<RegisterCombinersChunkBase
*>(this)));
2120 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleVariableArgb (void)
2122 MFGLenum::EditHandlePtr
returnValue(
2123 new MFGLenum::EditHandle(
2125 this->getType().getFieldDesc(VariableArgbFieldId
),
2129 editMField(VariableArgbFieldMask
, _mfVariableArgb
);
2134 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleVariableBrgb (void) const
2136 MFGLenum::GetHandlePtr
returnValue(
2137 new MFGLenum::GetHandle(
2139 this->getType().getFieldDesc(VariableBrgbFieldId
),
2140 const_cast<RegisterCombinersChunkBase
*>(this)));
2145 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleVariableBrgb (void)
2147 MFGLenum::EditHandlePtr
returnValue(
2148 new MFGLenum::EditHandle(
2150 this->getType().getFieldDesc(VariableBrgbFieldId
),
2154 editMField(VariableBrgbFieldMask
, _mfVariableBrgb
);
2159 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleVariableCrgb (void) const
2161 MFGLenum::GetHandlePtr
returnValue(
2162 new MFGLenum::GetHandle(
2164 this->getType().getFieldDesc(VariableCrgbFieldId
),
2165 const_cast<RegisterCombinersChunkBase
*>(this)));
2170 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleVariableCrgb (void)
2172 MFGLenum::EditHandlePtr
returnValue(
2173 new MFGLenum::EditHandle(
2175 this->getType().getFieldDesc(VariableCrgbFieldId
),
2179 editMField(VariableCrgbFieldMask
, _mfVariableCrgb
);
2184 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleVariableDrgb (void) const
2186 MFGLenum::GetHandlePtr
returnValue(
2187 new MFGLenum::GetHandle(
2189 this->getType().getFieldDesc(VariableDrgbFieldId
),
2190 const_cast<RegisterCombinersChunkBase
*>(this)));
2195 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleVariableDrgb (void)
2197 MFGLenum::EditHandlePtr
returnValue(
2198 new MFGLenum::EditHandle(
2200 this->getType().getFieldDesc(VariableDrgbFieldId
),
2204 editMField(VariableDrgbFieldMask
, _mfVariableDrgb
);
2209 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleVariableAalpha (void) const
2211 MFGLenum::GetHandlePtr
returnValue(
2212 new MFGLenum::GetHandle(
2214 this->getType().getFieldDesc(VariableAalphaFieldId
),
2215 const_cast<RegisterCombinersChunkBase
*>(this)));
2220 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleVariableAalpha (void)
2222 MFGLenum::EditHandlePtr
returnValue(
2223 new MFGLenum::EditHandle(
2225 this->getType().getFieldDesc(VariableAalphaFieldId
),
2229 editMField(VariableAalphaFieldMask
, _mfVariableAalpha
);
2234 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleVariableBalpha (void) const
2236 MFGLenum::GetHandlePtr
returnValue(
2237 new MFGLenum::GetHandle(
2239 this->getType().getFieldDesc(VariableBalphaFieldId
),
2240 const_cast<RegisterCombinersChunkBase
*>(this)));
2245 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleVariableBalpha (void)
2247 MFGLenum::EditHandlePtr
returnValue(
2248 new MFGLenum::EditHandle(
2250 this->getType().getFieldDesc(VariableBalphaFieldId
),
2254 editMField(VariableBalphaFieldMask
, _mfVariableBalpha
);
2259 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleVariableCalpha (void) const
2261 MFGLenum::GetHandlePtr
returnValue(
2262 new MFGLenum::GetHandle(
2264 this->getType().getFieldDesc(VariableCalphaFieldId
),
2265 const_cast<RegisterCombinersChunkBase
*>(this)));
2270 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleVariableCalpha (void)
2272 MFGLenum::EditHandlePtr
returnValue(
2273 new MFGLenum::EditHandle(
2275 this->getType().getFieldDesc(VariableCalphaFieldId
),
2279 editMField(VariableCalphaFieldMask
, _mfVariableCalpha
);
2284 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleVariableDalpha (void) const
2286 MFGLenum::GetHandlePtr
returnValue(
2287 new MFGLenum::GetHandle(
2289 this->getType().getFieldDesc(VariableDalphaFieldId
),
2290 const_cast<RegisterCombinersChunkBase
*>(this)));
2295 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleVariableDalpha (void)
2297 MFGLenum::EditHandlePtr
returnValue(
2298 new MFGLenum::EditHandle(
2300 this->getType().getFieldDesc(VariableDalphaFieldId
),
2304 editMField(VariableDalphaFieldMask
, _mfVariableDalpha
);
2309 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleOutputABrgb (void) const
2311 MFGLenum::GetHandlePtr
returnValue(
2312 new MFGLenum::GetHandle(
2314 this->getType().getFieldDesc(OutputABrgbFieldId
),
2315 const_cast<RegisterCombinersChunkBase
*>(this)));
2320 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleOutputABrgb (void)
2322 MFGLenum::EditHandlePtr
returnValue(
2323 new MFGLenum::EditHandle(
2325 this->getType().getFieldDesc(OutputABrgbFieldId
),
2329 editMField(OutputABrgbFieldMask
, _mfOutputABrgb
);
2334 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleOutputCDrgb (void) const
2336 MFGLenum::GetHandlePtr
returnValue(
2337 new MFGLenum::GetHandle(
2339 this->getType().getFieldDesc(OutputCDrgbFieldId
),
2340 const_cast<RegisterCombinersChunkBase
*>(this)));
2345 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleOutputCDrgb (void)
2347 MFGLenum::EditHandlePtr
returnValue(
2348 new MFGLenum::EditHandle(
2350 this->getType().getFieldDesc(OutputCDrgbFieldId
),
2354 editMField(OutputCDrgbFieldMask
, _mfOutputCDrgb
);
2359 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleOutputSumrgb (void) const
2361 MFGLenum::GetHandlePtr
returnValue(
2362 new MFGLenum::GetHandle(
2364 this->getType().getFieldDesc(OutputSumrgbFieldId
),
2365 const_cast<RegisterCombinersChunkBase
*>(this)));
2370 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleOutputSumrgb (void)
2372 MFGLenum::EditHandlePtr
returnValue(
2373 new MFGLenum::EditHandle(
2375 this->getType().getFieldDesc(OutputSumrgbFieldId
),
2379 editMField(OutputSumrgbFieldMask
, _mfOutputSumrgb
);
2384 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleScalergb (void) const
2386 MFGLenum::GetHandlePtr
returnValue(
2387 new MFGLenum::GetHandle(
2389 this->getType().getFieldDesc(ScalergbFieldId
),
2390 const_cast<RegisterCombinersChunkBase
*>(this)));
2395 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleScalergb (void)
2397 MFGLenum::EditHandlePtr
returnValue(
2398 new MFGLenum::EditHandle(
2400 this->getType().getFieldDesc(ScalergbFieldId
),
2404 editMField(ScalergbFieldMask
, _mfScalergb
);
2409 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleBiasrgb (void) const
2411 MFGLenum::GetHandlePtr
returnValue(
2412 new MFGLenum::GetHandle(
2414 this->getType().getFieldDesc(BiasrgbFieldId
),
2415 const_cast<RegisterCombinersChunkBase
*>(this)));
2420 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleBiasrgb (void)
2422 MFGLenum::EditHandlePtr
returnValue(
2423 new MFGLenum::EditHandle(
2425 this->getType().getFieldDesc(BiasrgbFieldId
),
2429 editMField(BiasrgbFieldMask
, _mfBiasrgb
);
2434 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleOutputABalpha (void) const
2436 MFGLenum::GetHandlePtr
returnValue(
2437 new MFGLenum::GetHandle(
2439 this->getType().getFieldDesc(OutputABalphaFieldId
),
2440 const_cast<RegisterCombinersChunkBase
*>(this)));
2445 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleOutputABalpha (void)
2447 MFGLenum::EditHandlePtr
returnValue(
2448 new MFGLenum::EditHandle(
2450 this->getType().getFieldDesc(OutputABalphaFieldId
),
2454 editMField(OutputABalphaFieldMask
, _mfOutputABalpha
);
2459 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleOutputCDalpha (void) const
2461 MFGLenum::GetHandlePtr
returnValue(
2462 new MFGLenum::GetHandle(
2464 this->getType().getFieldDesc(OutputCDalphaFieldId
),
2465 const_cast<RegisterCombinersChunkBase
*>(this)));
2470 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleOutputCDalpha (void)
2472 MFGLenum::EditHandlePtr
returnValue(
2473 new MFGLenum::EditHandle(
2475 this->getType().getFieldDesc(OutputCDalphaFieldId
),
2479 editMField(OutputCDalphaFieldMask
, _mfOutputCDalpha
);
2484 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleOutputSumalpha (void) const
2486 MFGLenum::GetHandlePtr
returnValue(
2487 new MFGLenum::GetHandle(
2489 this->getType().getFieldDesc(OutputSumalphaFieldId
),
2490 const_cast<RegisterCombinersChunkBase
*>(this)));
2495 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleOutputSumalpha (void)
2497 MFGLenum::EditHandlePtr
returnValue(
2498 new MFGLenum::EditHandle(
2500 this->getType().getFieldDesc(OutputSumalphaFieldId
),
2504 editMField(OutputSumalphaFieldMask
, _mfOutputSumalpha
);
2509 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleDotABrgb (void) const
2511 MFUInt8::GetHandlePtr
returnValue(
2512 new MFUInt8::GetHandle(
2514 this->getType().getFieldDesc(DotABrgbFieldId
),
2515 const_cast<RegisterCombinersChunkBase
*>(this)));
2520 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleDotABrgb (void)
2522 MFUInt8::EditHandlePtr
returnValue(
2523 new MFUInt8::EditHandle(
2525 this->getType().getFieldDesc(DotABrgbFieldId
),
2529 editMField(DotABrgbFieldMask
, _mfDotABrgb
);
2534 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleDotCDrgb (void) const
2536 MFUInt8::GetHandlePtr
returnValue(
2537 new MFUInt8::GetHandle(
2539 this->getType().getFieldDesc(DotCDrgbFieldId
),
2540 const_cast<RegisterCombinersChunkBase
*>(this)));
2545 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleDotCDrgb (void)
2547 MFUInt8::EditHandlePtr
returnValue(
2548 new MFUInt8::EditHandle(
2550 this->getType().getFieldDesc(DotCDrgbFieldId
),
2554 editMField(DotCDrgbFieldMask
, _mfDotCDrgb
);
2559 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleMuxSumrgb (void) const
2561 MFUInt8::GetHandlePtr
returnValue(
2562 new MFUInt8::GetHandle(
2564 this->getType().getFieldDesc(MuxSumrgbFieldId
),
2565 const_cast<RegisterCombinersChunkBase
*>(this)));
2570 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleMuxSumrgb (void)
2572 MFUInt8::EditHandlePtr
returnValue(
2573 new MFUInt8::EditHandle(
2575 this->getType().getFieldDesc(MuxSumrgbFieldId
),
2579 editMField(MuxSumrgbFieldMask
, _mfMuxSumrgb
);
2584 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleScalealpha (void) const
2586 MFGLenum::GetHandlePtr
returnValue(
2587 new MFGLenum::GetHandle(
2589 this->getType().getFieldDesc(ScalealphaFieldId
),
2590 const_cast<RegisterCombinersChunkBase
*>(this)));
2595 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleScalealpha (void)
2597 MFGLenum::EditHandlePtr
returnValue(
2598 new MFGLenum::EditHandle(
2600 this->getType().getFieldDesc(ScalealphaFieldId
),
2604 editMField(ScalealphaFieldMask
, _mfScalealpha
);
2609 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleBiasalpha (void) const
2611 MFGLenum::GetHandlePtr
returnValue(
2612 new MFGLenum::GetHandle(
2614 this->getType().getFieldDesc(BiasalphaFieldId
),
2615 const_cast<RegisterCombinersChunkBase
*>(this)));
2620 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleBiasalpha (void)
2622 MFGLenum::EditHandlePtr
returnValue(
2623 new MFGLenum::EditHandle(
2625 this->getType().getFieldDesc(BiasalphaFieldId
),
2629 editMField(BiasalphaFieldMask
, _mfBiasalpha
);
2634 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleMuxSumalpha (void) const
2636 MFUInt8::GetHandlePtr
returnValue(
2637 new MFUInt8::GetHandle(
2639 this->getType().getFieldDesc(MuxSumalphaFieldId
),
2640 const_cast<RegisterCombinersChunkBase
*>(this)));
2645 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleMuxSumalpha (void)
2647 MFUInt8::EditHandlePtr
returnValue(
2648 new MFUInt8::EditHandle(
2650 this->getType().getFieldDesc(MuxSumalphaFieldId
),
2654 editMField(MuxSumalphaFieldMask
, _mfMuxSumalpha
);
2659 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleVariableE (void) const
2661 MFGLenum::GetHandlePtr
returnValue(
2662 new MFGLenum::GetHandle(
2664 this->getType().getFieldDesc(VariableEFieldId
),
2665 const_cast<RegisterCombinersChunkBase
*>(this)));
2670 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleVariableE (void)
2672 MFGLenum::EditHandlePtr
returnValue(
2673 new MFGLenum::EditHandle(
2675 this->getType().getFieldDesc(VariableEFieldId
),
2679 editMField(VariableEFieldMask
, _mfVariableE
);
2684 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleVariableF (void) const
2686 MFGLenum::GetHandlePtr
returnValue(
2687 new MFGLenum::GetHandle(
2689 this->getType().getFieldDesc(VariableFFieldId
),
2690 const_cast<RegisterCombinersChunkBase
*>(this)));
2695 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleVariableF (void)
2697 MFGLenum::EditHandlePtr
returnValue(
2698 new MFGLenum::EditHandle(
2700 this->getType().getFieldDesc(VariableFFieldId
),
2704 editMField(VariableFFieldMask
, _mfVariableF
);
2709 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleVariableG (void) const
2711 MFGLenum::GetHandlePtr
returnValue(
2712 new MFGLenum::GetHandle(
2714 this->getType().getFieldDesc(VariableGFieldId
),
2715 const_cast<RegisterCombinersChunkBase
*>(this)));
2720 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleVariableG (void)
2722 MFGLenum::EditHandlePtr
returnValue(
2723 new MFGLenum::EditHandle(
2725 this->getType().getFieldDesc(VariableGFieldId
),
2729 editMField(VariableGFieldMask
, _mfVariableG
);
2734 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleCombinerColor0 (void) const
2736 MFColor4f::GetHandlePtr
returnValue(
2737 new MFColor4f::GetHandle(
2739 this->getType().getFieldDesc(CombinerColor0FieldId
),
2740 const_cast<RegisterCombinersChunkBase
*>(this)));
2745 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleCombinerColor0 (void)
2747 MFColor4f::EditHandlePtr
returnValue(
2748 new MFColor4f::EditHandle(
2750 this->getType().getFieldDesc(CombinerColor0FieldId
),
2754 editMField(CombinerColor0FieldMask
, _mfCombinerColor0
);
2759 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandleCombinerColor1 (void) const
2761 MFColor4f::GetHandlePtr
returnValue(
2762 new MFColor4f::GetHandle(
2764 this->getType().getFieldDesc(CombinerColor1FieldId
),
2765 const_cast<RegisterCombinersChunkBase
*>(this)));
2770 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandleCombinerColor1 (void)
2772 MFColor4f::EditHandlePtr
returnValue(
2773 new MFColor4f::EditHandle(
2775 this->getType().getFieldDesc(CombinerColor1FieldId
),
2779 editMField(CombinerColor1FieldMask
, _mfCombinerColor1
);
2784 GetFieldHandlePtr
RegisterCombinersChunkBase::getHandlePerStageConstants (void) const
2786 SFUInt8::GetHandlePtr
returnValue(
2787 new SFUInt8::GetHandle(
2788 &_sfPerStageConstants
,
2789 this->getType().getFieldDesc(PerStageConstantsFieldId
),
2790 const_cast<RegisterCombinersChunkBase
*>(this)));
2795 EditFieldHandlePtr
RegisterCombinersChunkBase::editHandlePerStageConstants(void)
2797 SFUInt8::EditHandlePtr
returnValue(
2798 new SFUInt8::EditHandle(
2799 &_sfPerStageConstants
,
2800 this->getType().getFieldDesc(PerStageConstantsFieldId
),
2804 editSField(PerStageConstantsFieldMask
);
2810 #ifdef OSG_MT_CPTR_ASPECT
2811 void RegisterCombinersChunkBase::execSyncV( FieldContainer
&oFrom
,
2812 ConstFieldMaskArg whichField
,
2813 AspectOffsetStore
&oOffsets
,
2814 ConstFieldMaskArg syncMode
,
2815 const UInt32 uiSyncInfo
)
2817 RegisterCombinersChunk
*pThis
= static_cast<RegisterCombinersChunk
*>(this);
2819 pThis
->execSync(static_cast<RegisterCombinersChunk
*>(&oFrom
),
2828 #ifdef OSG_MT_CPTR_ASPECT
2829 FieldContainer
*RegisterCombinersChunkBase::createAspectCopy(
2830 const FieldContainer
*pRefAspect
) const
2832 RegisterCombinersChunk
*returnValue
;
2834 newAspectCopy(returnValue
,
2835 dynamic_cast<const RegisterCombinersChunk
*>(pRefAspect
),
2836 dynamic_cast<const RegisterCombinersChunk
*>(this));
2842 void RegisterCombinersChunkBase::resolveLinks(void)
2844 Inherited::resolveLinks();
2846 #ifdef OSG_MT_CPTR_ASPECT
2847 AspectOffsetStore oOffsets
;
2849 _pAspectStore
->fillOffsetArray(oOffsets
, this);
2852 #ifdef OSG_MT_CPTR_ASPECT
2853 _mfVariableArgb
.terminateShare(Thread::getCurrentAspect(),
2856 #ifdef OSG_MT_CPTR_ASPECT
2857 _mfVariableBrgb
.terminateShare(Thread::getCurrentAspect(),
2860 #ifdef OSG_MT_CPTR_ASPECT
2861 _mfVariableCrgb
.terminateShare(Thread::getCurrentAspect(),
2864 #ifdef OSG_MT_CPTR_ASPECT
2865 _mfVariableDrgb
.terminateShare(Thread::getCurrentAspect(),
2868 #ifdef OSG_MT_CPTR_ASPECT
2869 _mfVariableAalpha
.terminateShare(Thread::getCurrentAspect(),
2872 #ifdef OSG_MT_CPTR_ASPECT
2873 _mfVariableBalpha
.terminateShare(Thread::getCurrentAspect(),
2876 #ifdef OSG_MT_CPTR_ASPECT
2877 _mfVariableCalpha
.terminateShare(Thread::getCurrentAspect(),
2880 #ifdef OSG_MT_CPTR_ASPECT
2881 _mfVariableDalpha
.terminateShare(Thread::getCurrentAspect(),
2884 #ifdef OSG_MT_CPTR_ASPECT
2885 _mfOutputABrgb
.terminateShare(Thread::getCurrentAspect(),
2888 #ifdef OSG_MT_CPTR_ASPECT
2889 _mfOutputCDrgb
.terminateShare(Thread::getCurrentAspect(),
2892 #ifdef OSG_MT_CPTR_ASPECT
2893 _mfOutputSumrgb
.terminateShare(Thread::getCurrentAspect(),
2896 #ifdef OSG_MT_CPTR_ASPECT
2897 _mfScalergb
.terminateShare(Thread::getCurrentAspect(),
2900 #ifdef OSG_MT_CPTR_ASPECT
2901 _mfBiasrgb
.terminateShare(Thread::getCurrentAspect(),
2904 #ifdef OSG_MT_CPTR_ASPECT
2905 _mfOutputABalpha
.terminateShare(Thread::getCurrentAspect(),
2908 #ifdef OSG_MT_CPTR_ASPECT
2909 _mfOutputCDalpha
.terminateShare(Thread::getCurrentAspect(),
2912 #ifdef OSG_MT_CPTR_ASPECT
2913 _mfOutputSumalpha
.terminateShare(Thread::getCurrentAspect(),
2916 #ifdef OSG_MT_CPTR_ASPECT
2917 _mfDotABrgb
.terminateShare(Thread::getCurrentAspect(),
2920 #ifdef OSG_MT_CPTR_ASPECT
2921 _mfDotCDrgb
.terminateShare(Thread::getCurrentAspect(),
2924 #ifdef OSG_MT_CPTR_ASPECT
2925 _mfMuxSumrgb
.terminateShare(Thread::getCurrentAspect(),
2928 #ifdef OSG_MT_CPTR_ASPECT
2929 _mfScalealpha
.terminateShare(Thread::getCurrentAspect(),
2932 #ifdef OSG_MT_CPTR_ASPECT
2933 _mfBiasalpha
.terminateShare(Thread::getCurrentAspect(),
2936 #ifdef OSG_MT_CPTR_ASPECT
2937 _mfMuxSumalpha
.terminateShare(Thread::getCurrentAspect(),
2940 #ifdef OSG_MT_CPTR_ASPECT
2941 _mfVariableE
.terminateShare(Thread::getCurrentAspect(),
2944 #ifdef OSG_MT_CPTR_ASPECT
2945 _mfVariableF
.terminateShare(Thread::getCurrentAspect(),
2948 #ifdef OSG_MT_CPTR_ASPECT
2949 _mfVariableG
.terminateShare(Thread::getCurrentAspect(),
2952 #ifdef OSG_MT_CPTR_ASPECT
2953 _mfCombinerColor0
.terminateShare(Thread::getCurrentAspect(),
2956 #ifdef OSG_MT_CPTR_ASPECT
2957 _mfCombinerColor1
.terminateShare(Thread::getCurrentAspect(),