OSG  3.4.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Capability.h
Go to the documentation of this file.
1 /* -*-c++-*- OpenSceneGraph - Copyright (C) 1998-2014 Robert Osfield
2  *
3  * This library is open source and may be redistributed and/or modified under
4  * the terms of the OpenSceneGraph Public License (OSGPL) version 0.0 or
5  * (at your option) any later version. The full license is in LICENSE file
6  * included with this distribution, and on the openscenegraph.org website.
7  *
8  * This library is distributed in the hope that it will be useful,
9  * but WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * OpenSceneGraph Public License for more details.
12 */
13 
14 #ifndef OSG_ENABLEI
15 #define OSG_ENABLEI 1
16 
17 #include <osg/GL>
18 #include <osg/StateAttribute>
19 
20 namespace osg {
21 
23 {
24  public :
25 
26  Capability();
27 
28  Capability(GLenum capability):
29  _capability(capability) {}
30 
32  Capability(const Capability& cap,const CopyOp& copyop=CopyOp::SHALLOW_COPY):
33  StateAttribute(cap, copyop),
34  _capability(cap._capability) {}
35 
37 
39  virtual int compare(const StateAttribute& sa) const
40  {
41  // Check for equal types, then create the rhs variable
42  // used by the COMPARE_StateAttribute_Parameter macros below.
44 
46 
47  return 0;
48  }
49 
51  virtual Type getType() const { return static_cast<Type>(CAPABILITY+_capability); }
52 
53  void setCapability(GLenum capability) { _capability = capability; }
54 
55  GLenum getCapability() const { return _capability; }
56 
57  protected:
58 
59  virtual ~Capability();
60 
61  GLenum _capability;
62 
63 };
64 
68 {
69  public :
70 
71  Capabilityi();
72 
73  Capabilityi(GLenum capability, unsigned int buf):
74  Capability(capability),
75  _index(buf) {}
76 
79  Capability(cap,copyop),
80  _index(cap._index) {}
81 
83 
85  virtual int compare(const StateAttribute& sa) const
86  {
87  // Check for equal types, then create the rhs variable
88  // used by the COMPARE_StateAttribute_Parameter macros below.
90 
93 
94  return 0;
95  }
96 
98  virtual unsigned int getMember() const { return _index; }
99 
101  void setIndex(unsigned int buf) { _index = buf; }
102 
104  unsigned int getIndex() const { return _index; }
105 
106 protected:
107 
108  virtual ~Capabilityi();
109 
110  unsigned int _index;
111 
112 };
113 
115 {
116  public :
117 
118  Enablei() {}
119 
120  Enablei(unsigned int buf, GLenum capability):
121  Capabilityi(buf, capability) {}
122 
124  Enablei(const Enablei& ei,const CopyOp& copyop=CopyOp::SHALLOW_COPY):
125  Capabilityi(ei,copyop) {}
126 
128 
129  virtual void apply(State&) const;
130 
131 protected:
132 
133  virtual ~Enablei() {}
134 };
135 
136 
138 {
139  public :
140 
141  Disablei() {}
142 
143  Disablei(unsigned int buf, GLenum capability):
144  Capabilityi(buf, capability) {}
145 
147  Disablei(const Disablei& ei,const CopyOp& copyop=CopyOp::SHALLOW_COPY):
148  Capabilityi(ei,copyop) {}
149 
151 
152  virtual void apply(State&) const;
153 
154  protected:
155 
156  virtual ~Disablei() {}
157 };
158 
159 }
160 
161 #endif
#define OSG_EXPORT
Definition: Export.h:43
Capabilityi(GLenum capability, unsigned int buf)
Definition: Capability.h:73
#define COMPARE_StateAttribute_Types(TYPE, rhs_attribute)
Capability(GLenum capability)
Definition: Capability.h:28
Capabilityi(const Capabilityi &cap, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
Definition: Capability.h:78
Enablei(unsigned int buf, GLenum capability)
Definition: Capability.h:120
virtual ~Enablei()
Definition: Capability.h:133
GLenum _capability
Definition: Capability.h:61
Enablei(const Enablei &ei, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
Definition: Capability.h:124
GLenum getCapability() const
Definition: Capability.h:55
unsigned int _index
Definition: Capability.h:110
virtual int compare(const StateAttribute &sa) const
Definition: Capability.h:39
virtual int compare(const StateAttribute &sa) const
Definition: Capability.h:85
void setIndex(unsigned int buf)
Definition: Capability.h:101
#define META_Object(library, name)
Definition: Object.h:42
Disablei(unsigned int buf, GLenum capability)
Definition: Capability.h:143
Disablei(const Disablei &ei, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
Definition: Capability.h:147
virtual Type getType() const
Definition: Capability.h:51
void setCapability(GLenum capability)
Definition: Capability.h:53
virtual ~Disablei()
Definition: Capability.h:156
Definition: AlphaFunc.h:19
#define COMPARE_StateAttribute_Parameter(parameter)
virtual unsigned int getMember() const
Definition: Capability.h:98
unsigned int getIndex() const
Definition: Capability.h:104
Capability(const Capability &cap, const CopyOp &copyop=CopyOp::SHALLOW_COPY)
Definition: Capability.h:32