77SoEXTENDER_Documented 
class  SoGLLazyElement : 
public SoLazyElement
 
   80  SO_ELEMENT_HEADER(SoGLLazyElement);
 
   90  virtual void pop(
SoState *state, 
const SoElement *prevTopElement);
 
   97    if ((le->invalidBits)||(state->isCacheOpen()))
 
 
  106    if ((NO_COLOR_MASK & le->invalidBits)||(state->isCacheOpen()))
 
  107      le->reallySend(state, NO_COLOR_MASK);
 
 
  115    if ((DIFFUSE_ONLY_MASK & le->invalidBits)||(state->isCacheOpen()))
 
  116      le->reallySend(state, DIFFUSE_ONLY_MASK);
 
 
  138    return const_cast<SoGLLazyElement*
>(state->
getConstElement<SoGLLazyElement>());
 
 
  144  virtual void commonInit();
 
  147  virtual void init(
SoState *state);
 
  153  virtual SoElement* copyMatchInfo() 
const;
 
  156  virtual void registerRedundantSet(
SoState *, uint32_t bitmask);
 
  160  typedef SoGLLazyState GLLazyState;
 
  163  static void initClass();
 
  164  static void exitClass();
 
  170  void send(
const SoState *state, uint32_t mask)
 const {
 
  171    if ((mask & invalidBits)||(state->isCacheOpen()))
 
  177  SbBool lazyMatches(uint32_t checkGLFlag, uint32_t checkIVFlag,
 
  178                     const SoGLLazyElement *eltInState) {
 
  179    if (checkGLFlag || checkIVFlag ||
 
  180        ivState.transpType != eltInState->ivState.transpType)
 
  181      return fullLazyMatches(checkGLFlag, checkIVFlag, eltInState);
 
  191  void setOverrideBlending(
bool value){ m_overrideBlending = value; }
 
  194  bool isColorMaterialMode() 
const;
 
  197  const GLLazyState& getGLState() 
const;
 
  202  SoGLLazyElement *copyLazyMatchInfo(
SoState *state) 
const;
 
  207  void getCopyGL(SoGLLazyElement *cacheLazyElement,
 
  208                 SoGLLazyElement::GLLazyState& cacheGLState);
 
  214  void copyBackGL(SoGLLazyElement *cacheLazyElement,
 
  215                  SoGLLazyElement::GLLazyState& cacheGLState) {
 
  216    if (cacheLazyElement->GLSendBits)
 
  217      reallyCopyBackGL(cacheLazyElement->GLSendBits, cacheGLState);
 
  222  void sendVPPacked(
SoState *state, 
const unsigned char *pcolor);
 
  225  virtual ~SoGLLazyElement();
 
  227  void mergeCacheInfo(SoGLRenderCache * childCache,
 
  228                      SoGLRenderCache *parentCache,
 
  230                      uint32_t checkIVFlag,
 
  231                      uint32_t checkGLFlag);
 
  234  void copyIVValues(uint32_t bitmask, SoGLLazyElement *cacheLazyElement);
 
  237  virtual void registerGetDependence(
SoState *, uint32_t bitmask);
 
  241  void copyGLValues(uint32_t bitmask, SoGLLazyElement *cacheLazyElement);
 
  244  void reallySend(
const SoState *state, uint32_t bitmask);
 
  247  SbBool fullLazyMatches(uint32_t checkGLFlag, uint32_t checkIVFlag,
 
  248                         const SoGLLazyElement* eltInState);
 
  251  void packColors(SoColorPacker *cPacker);
 
  252  void packColors2(SoColorPacker *cPacker);
 
  256  virtual void setDiffuseElt(SoNode *node, int32_t numColors,
 
  257                             const SbColor *colors,
 
  258                             SoColorPacker *cPacker);
 
  260  virtual void setTranspElt(SoNode *node, int32_t numTrans,
 
  262                            SoColorPacker *cPacker);
 
  264  virtual void setTranspTypeElt(int32_t type);
 
  265  virtual void setPatternFlagElt(
SbBool flag);
 
  266  virtual void setPackedElt(SoNode *node,
 
  268                            const uint32_t *packedColors,
 
  269                            SoColorPacker *cPacker);
 
  271  virtual void setAmbientElt(
const SbColor *color);
 
  272  virtual void setEmissiveElt(
const SbColor *color);
 
  273  virtual void setSpecularElt(
const SbColor *color);
 
  274  virtual void setShininessElt(
float color);
 
  275  virtual void setColorMaterialElt(
SbBool value);
 
  276  virtual void setBlendingElt(
SbBool value);
 
  277  virtual void setSmoothingElt(
SbBool value);
 
  278  virtual void setLightModelElt(
SoState *, int32_t model);
 
  279  virtual void setMaterialElt(SoNode *, uint32_t bitmask,
 
  280                              SoColorPacker *cPacker,
 
  281                              const SoMFColor &, 
const SoMFFloat &,
 
  282                              const SoMFColor &, 
const SoMFColor &,
 
  283                              const SoMFColor &, 
const SoMFFloat &);
 
  284  virtual void setMaterialElt(SoNode *, uint32_t bitmask,
 
  285                              SoColorPacker *cPacker, SoMFColor *,
 
  286                              SoMFFloat *, SoMFColor *,
 
  287                              SoMFColor *, SoMFColor *, SoMFFloat *);
 
  288  virtual void setLineWidthElt(
float lineWidth);
 
  291  void reallyCopyBackGL(uint32_t bitmask, SoGLLazyElement::GLLazyState &);
 
  294  SoGLLazyElement::GLLazyState* glState;
 
  303  static u_char patterns[64+1][32 * 4];
 
  306  static SbBool patternsCreated;
 
  310  static SbBool patternListDefined[64+1];
 
  313  static int patternListBase;
 
  316  static int patternListContext;
 
  323  void sendStipple(
const SoState *state, 
int transpIndex);
 
  327  static void createPatterns();
 
  330  static bool s_useNewStippleBehavior;
 
  333  void sendLineWidth(
const SoState *state);
 
  337  static uint64_t GLSTATE_INVALID_NODEID;
 
  340  static bool s_forceLineWidth;
 
  343  bool m_overrideBlending;