14#ifndef OSG_STATEATTRIBUTE
15#define OSG_STATEATTRIBUTE 1
30#define GL_COLOR_SUM 0x8458
48#define META_StateAttribute(library,name,type) \
49 virtual osg::Object* cloneType() const { return new name(); } \
50 virtual osg::Object* clone(const osg::CopyOp& copyop) const { return new name (*this,copyop); } \
51 virtual bool isSameKindAs(const osg::Object* obj) const { return dynamic_cast<const name *>(obj)!=NULL; } \
52 virtual const char* libraryName() const { return #library; } \
53 virtual const char* className() const { return #name; } \
54 virtual Type getType() const { return type; }
57#define COMPARE_StateAttribute_Types(TYPE,rhs_attribute) \
58 if (this==&rhs_attribute) return 0;\
59 const std::type_info* type_lhs = &typeid(*this);\
60 const std::type_info* type_rhs = &typeid(rhs_attribute);\
61 if (type_lhs->before(*type_rhs)) return -1;\
62 if (*type_lhs != *type_rhs) return 1;\
63 const TYPE& rhs = static_cast<const TYPE&>(rhs_attribute);
69#define COMPARE_StateAttribute_Parameter(parameter) \
70 if (parameter<rhs.parameter) return -1; \
71 if (rhs.parameter<parameter) return 1;
224 _shaderComponent(sa._shaderComponent),
225 _updateCallback(copyop(sa._updateCallback.
get())),
226 _eventCallback(copyop(sa._eventCallback.
get()))
245 virtual const char*
className()
const {
return "StateAttribute"; }
301 inline unsigned int getNumParents()
const {
return static_cast<unsigned int>(_parents.size()); }
Definition StateAttribute:77
GLenum GLMode
Definition StateAttribute:81
Values
Definition StateAttribute:99
ShaderComponent * getShaderComponent()
Definition StateAttribute:304
virtual int compare(const StateAttribute &sa) const =0
ref_ptr< StateAttributeCallback > _eventCallback
Definition StateAttribute:399
void removeParent(osg::StateSet *object)
const StateSet * getParent(unsigned int i) const
Definition StateAttribute:295
virtual void compileGLObjects(State &) const
Definition StateAttribute:361
TypeMemberPair getTypeMemberPair() const
Definition StateAttribute:270
unsigned int GLModeValue
Definition StateAttribute:85
void setEventCallback(StateAttributeCallback *ec)
virtual Type getType() const =0
StateSet * getParent(unsigned int i)
Definition StateAttribute:289
unsigned int getNumParents() const
Definition StateAttribute:301
virtual void resizeGLObjectBuffers(unsigned int)
Definition StateAttribute:364
virtual bool isTextureAttribute() const
Definition StateAttribute:273
const StateAttributeCallback * getUpdateCallback() const
Definition StateAttribute:340
virtual Object * clone(const CopyOp &) const =0
virtual void apply(State &) const
Definition StateAttribute:358
ref_ptr< ShaderComponent > _shaderComponent
Definition StateAttribute:396
const ShaderComponent * getShaderComponent() const
Definition StateAttribute:305
Type
Definition StateAttribute:124
@ TEXGEN
Definition StateAttribute:146
@ ATOMICCOUNTERBUFFERBINDING
Definition StateAttribute:195
@ BLENDEQUATION
Definition StateAttribute:150
@ LIGHT
Definition StateAttribute:137
@ FRONTFACE
Definition StateAttribute:135
@ DEPTH
Definition StateAttribute:154
@ MATERIAL
Definition StateAttribute:129
@ FRAGMENTPROGRAM
Definition StateAttribute:162
@ POLYGONMODE
Definition StateAttribute:127
@ SHADERSTORAGEBUFFERBINDING
Definition StateAttribute:203
@ LINEWIDTH
Definition StateAttribute:140
@ VERTEX_ATTRIB_DIVISOR
Definition StateAttribute:201
@ BLENDCOLOR
Definition StateAttribute:157
@ TEXTURE
Definition StateAttribute:125
@ FRAME_BUFFER_OBJECT
Definition StateAttribute:199
@ OSGNV_PARAMETER_BLOCK
osgNV namespace
Definition StateAttribute:176
@ PATCH_PARAMETER
Definition StateAttribute:197
@ POLYGONOFFSET
Definition StateAttribute:128
@ MULTISAMPLE
Definition StateAttribute:158
@ SCISSOR
Definition StateAttribute:156
@ DEPTHRANGEINDEXED
Definition StateAttribute:208
@ ANTIALIAS
Definition StateAttribute:131
@ POLYGONSTIPPLE
Definition StateAttribute:142
@ FOG
Definition StateAttribute:134
@ CULLFACE
Definition StateAttribute:133
@ BLENDFUNC
Definition StateAttribute:149
@ UNIFORMBUFFERBINDING
Definition StateAttribute:192
@ VALIDATOR
osgFX namespace
Definition StateAttribute:172
@ TEXENV
Definition StateAttribute:144
@ VERTEXPROGRAM
Definition StateAttribute:161
@ OSGNVEXT_TEXTURE_SHADER
Definition StateAttribute:179
@ CLIPCONTROL
Definition StateAttribute:169
@ STENCIL
Definition StateAttribute:152
@ HINT
Definition StateAttribute:166
@ OSGNVCG_PROGRAM
osgNVCg namespace
Definition StateAttribute:184
@ SAMPLEMASKI
Definition StateAttribute:167
@ TRANSFORMFEEDBACKBUFFERBINDING
Definition StateAttribute:193
@ POINT
Definition StateAttribute:139
@ CLAMPCOLOR
Definition StateAttribute:165
@ COLORMATRIX
Definition StateAttribute:160
@ COLORTABLE
Definition StateAttribute:132
@ TEXENVFILTER
Definition StateAttribute:145
@ TEXMAT
Definition StateAttribute:147
@ SCISSORINDEXED
Definition StateAttribute:209
@ OSGNVSLANG_PROGRAM
Definition StateAttribute:187
@ LOGICOP
Definition StateAttribute:151
@ OSGNVEXT_REGISTER_COMBINERS
Definition StateAttribute:181
@ VIEWPORT
Definition StateAttribute:155
@ OSGNVEXT_VERTEX_PROGRAM
Definition StateAttribute:180
@ PRIMITIVERESTARTINDEX
Definition StateAttribute:168
@ CLIPPLANE
Definition StateAttribute:159
@ COLORMASK
Definition StateAttribute:153
@ POINTSPRITE
Definition StateAttribute:163
@ VIEWMATRIXEXTRACTOR
Definition StateAttribute:173
@ LIGHTMODEL
Definition StateAttribute:148
@ VIEWPORTINDEXED
Definition StateAttribute:207
@ INDIRECTDRAWBUFFERBINDING
Definition StateAttribute:205
@ ALPHAFUNC
Definition StateAttribute:130
@ LINESTIPPLE
Definition StateAttribute:141
@ BINDIMAGETEXTURE
Definition StateAttribute:211
@ SAMPLER
Definition StateAttribute:212
@ OSGNVPARSE_PROGRAM_PARSER
Definition StateAttribute:190
@ PROGRAM
Definition StateAttribute:164
@ SHADEMODEL
Definition StateAttribute:143
ParentList _parents
Definition StateAttribute:379
virtual const char * className() const
Definition StateAttribute:245
const ParentList & getParents() const
Definition StateAttribute:287
ref_ptr< StateAttributeCallback > _updateCallback
Definition StateAttribute:398
virtual StateAttribute * asStateAttribute()
Definition StateAttribute:250
virtual const char * libraryName() const
Definition StateAttribute:242
osg::StateAttributeCallback Callback
Definition StateAttribute:331
std::pair< Type, unsigned int > TypeMemberPair
Definition StateAttribute:218
StateAttribute(const StateAttribute &sa, const CopyOp ©op=CopyOp::SHALLOW_COPY)
Definition StateAttribute:222
StateAttributeCallback * getEventCallback()
Definition StateAttribute:347
const StateAttributeCallback * getEventCallback() const
Definition StateAttribute:350
virtual bool checkValidityOfAssociatedModes(osg::State &) const
Definition StateAttribute:324
virtual bool isSameKindAs(const Object *obj) const
Definition StateAttribute:239
void setShaderComponent(ShaderComponent *sc)
Definition StateAttribute:303
std::vector< StateSet * > ParentList
Definition StateAttribute:284
virtual bool getModeUsage(ModeUsage &) const
Definition StateAttribute:315
void setUpdateCallback(StateAttributeCallback *uc)
virtual Texture * asTexture()
Definition StateAttribute:257
virtual Object * cloneType() const =0
StateAttributeCallback * getUpdateCallback()
Definition StateAttribute:337
unsigned int OverrideValue
Definition StateAttribute:89
void addParent(osg::StateSet *object)
virtual ~StateAttribute()
Definition StateAttribute:374
virtual void releaseGLObjects(State *=0) const
Definition StateAttribute:369
virtual const StateAttribute * asStateAttribute() const
Definition StateAttribute:254
virtual unsigned int getMember() const
Definition StateAttribute:267
virtual const Texture * asTexture() const
Definition StateAttribute:260
author: Julien Valentin 2017 (mp3butcher@hotmail.com)
Definition AlphaFunc:19
T * get(unsigned int contextID)
Definition ContextData:152
#define NULL
Definition osg/Export:55
#define OSG_EXPORT
Definition osg/Export:39
Definition StateAttribute:308
virtual ~ModeUsage()
Definition StateAttribute:309
virtual void usesTextureMode(GLMode mode)=0
virtual void usesMode(GLMode mode)=0
Definition StateAttribute:384
ref_ptr< StateAttribute > attribute
Definition StateAttribute:391
ParentList parents
Definition StateAttribute:392
ReassignToParents(osg::StateAttribute *att)