diff --git a/examples/osgblendequation/osgblendequation.cpp b/examples/osgblendequation/osgblendequation.cpp index 1481d555f..e25257733 100644 --- a/examples/osgblendequation/osgblendequation.cpp +++ b/examples/osgblendequation/osgblendequation.cpp @@ -36,28 +36,28 @@ protected: static const int _eq_nb=8; int _eq_index; - static const unsigned int _equations[_eq_nb]; + static const osg::BlendEquation::Equation _equations[_eq_nb]; static const char* _equations_name[_eq_nb]; }; -const unsigned int TechniqueEventHandler::_equations[_eq_nb]={ - osg::BlendEquation::FUNC_ADD_EXT, - osg::BlendEquation::FUNC_SUBTRACT_EXT, - osg::BlendEquation::FUNC_REVERSE_SUBTRACT_EXT, - osg::BlendEquation::MIN_EXT, - osg::BlendEquation::MAX_EXT, - osg::BlendEquation::ALPHA_MIN_SGIX, - osg::BlendEquation::ALPHA_MAX_SGIX, +const osg::BlendEquation::Equation TechniqueEventHandler::_equations[_eq_nb]={ + osg::BlendEquation::FUNC_ADD, + osg::BlendEquation::FUNC_SUBTRACT, + osg::BlendEquation::FUNC_REVERSE_SUBTRACT, + osg::BlendEquation::RGBA_MIN, + osg::BlendEquation::RGBA_MAX, + osg::BlendEquation::ALPHA_MIN, + osg::BlendEquation::ALPHA_MAX, osg::BlendEquation::LOGIC_OP }; const char* TechniqueEventHandler::_equations_name[_eq_nb]={ - "osg::BlendEquation::FUNC_ADD_EXT", - "osg::BlendEquation::FUNC_SUBTRACT_EXT", - "osg::BlendEquation::FUNC_REVERSE_SUBTRACT_EXT", - "osg::BlendEquation::MIN_EXT", - "osg::BlendEquation::MAX_EXT", - "osg::BlendEquation::ALPHA_MIN_SGIX", - "osg::BlendEquation::ALPHA_MAX_SGIX", + "osg::BlendEquation::FUNC_ADD", + "osg::BlendEquation::FUNC_SUBTRACT", + "osg::BlendEquation::FUNC_REVERSE_SUBTRACT", + "osg::BlendEquation::RGBA_MIN", + "osg::BlendEquation::RGBA_MAX", + "osg::BlendEquation::ALPHA_MIN", + "osg::BlendEquation::ALPHA_MAX", "osg::BlendEquation::LOGIC_OP" }; @@ -132,7 +132,7 @@ int main( int argc, char **argv ) osg::StateSet* stateset = new osg::StateSet; - osg::BlendEquation* blendEquation = new osg::BlendEquation(osg::BlendEquation::FUNC_ADD_EXT); + osg::BlendEquation* blendEquation = new osg::BlendEquation(osg::BlendEquation::FUNC_ADD); stateset->setAttributeAndModes(blendEquation,osg::StateAttribute::OVERRIDE|osg::StateAttribute::ON); diff --git a/examples/osglogicop/osglogicop.cpp b/examples/osglogicop/osglogicop.cpp index 17ad63724..ff819c21d 100644 --- a/examples/osglogicop/osglogicop.cpp +++ b/examples/osglogicop/osglogicop.cpp @@ -36,11 +36,11 @@ protected: static const int _ops_nb=16; int _ops_index; - static const unsigned int _operations[_ops_nb]; + static const osg::LogicOp::Opcode _operations[_ops_nb]; static const char* _ops_name[_ops_nb]; }; -const unsigned int TechniqueEventHandler::_operations[_ops_nb]={ +const osg::LogicOp::Opcode TechniqueEventHandler::_operations[_ops_nb]={ osg::LogicOp::CLEAR, osg::LogicOp::SET, osg::LogicOp::COPY, diff --git a/include/osg/BlendEquation b/include/osg/BlendEquation index 617603377..67fb47d27 100644 --- a/include/osg/BlendEquation +++ b/include/osg/BlendEquation @@ -18,14 +18,14 @@ #ifndef GL_VERSION_1_2 /* Logic Ops */ -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_FUNC_ADD 0x8006 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#define GL_ALPHA_MIN_SGIX 0x8320 -#define GL_ALPHA_MAX_SGIX 0x8321 -#define GL_LOGIC_OP 0x0BF1 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_FUNC_ADD 0x8006 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#define GL_ALPHA_MIN_SGIX 0x8320 +#define GL_ALPHA_MAX_SGIX 0x8321 +#define GL_LOGIC_OP 0x0BF1 #endif @@ -37,9 +37,20 @@ class SG_EXPORT BlendEquation : public StateAttribute { public : + enum Equation { + RGBA_MIN = GL_MIN, + RGBA_MAX = GL_MAX, + ALPHA_MIN = GL_ALPHA_MIN_SGIX, + ALPHA_MAX = GL_ALPHA_MAX_SGIX, + LOGIC_OP = GL_LOGIC_OP, + FUNC_ADD = GL_FUNC_ADD, + FUNC_SUBTRACT = GL_FUNC_SUBTRACT, + FUNC_REVERSE_SUBTRACT = GL_FUNC_REVERSE_SUBTRACT + }; + BlendEquation(); - BlendEquation(GLenum equation); + BlendEquation(Equation equation); /** Copy constructor using CopyOp to manage deep vs shallow copy. */ BlendEquation(const BlendEquation& trans,const CopyOp& copyop=CopyOp::SHALLOW_COPY): @@ -67,23 +78,13 @@ class SG_EXPORT BlendEquation : public StateAttribute return true; } - enum BlendEquationEquation { - MIN_EXT = GL_MIN_EXT, - MAX_EXT = GL_MAX_EXT, - ALPHA_MIN_SGIX = GL_ALPHA_MIN_SGIX, - ALPHA_MAX_SGIX = GL_ALPHA_MAX_SGIX, - LOGIC_OP = GL_LOGIC_OP, - FUNC_ADD_EXT = GL_FUNC_ADD_EXT, - FUNC_SUBTRACT_EXT = GL_FUNC_SUBTRACT_EXT, - FUNC_REVERSE_SUBTRACT_EXT = GL_FUNC_REVERSE_SUBTRACT_EXT - }; - inline void setEquation( GLenum equation ) + inline void setEquation(Equation equation) { _equation = equation; } - inline GLenum getEquation() const { return _equation; } + inline Equation getEquation() const { return _equation; } virtual void apply(State& state) const; /** Encapsulates queries of extension availability, obtains extension @@ -134,7 +135,7 @@ class SG_EXPORT BlendEquation : public StateAttribute virtual ~BlendEquation(); - GLenum _equation; + Equation _equation; }; } diff --git a/include/osg/LogicOp b/include/osg/LogicOp index 37759b167..6aa28c95f 100644 --- a/include/osg/LogicOp +++ b/include/osg/LogicOp @@ -16,32 +16,6 @@ #include -#ifndef GL_VERSION_1_2 -/* Logic Ops */ -#define GL_LOGIC_OP 0x0BF1 -#define GL_INDEX_LOGIC_OP 0x0BF1 -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_CLEAR 0x1500 -#define GL_SET 0x150F -#define GL_COPY 0x1503 -#define GL_COPY_INVERTED 0x150C -#define GL_NOOP 0x1505 -#define GL_INVERT 0x150A -#define GL_AND 0x1501 -#define GL_NAND 0x150E -#define GL_OR 0x1507 -#define GL_NOR 0x1508 -#define GL_XOR 0x1506 -#define GL_EQUIV 0x1509 -#define GL_AND_REVERSE 0x1502 -#define GL_AND_INVERTED 0x1504 -#define GL_OR_REVERSE 0x150B -#define GL_OR_INVERTED 0x150D -#endif - - - namespace osg { /** Encapsulates OpenGL LogicOp state. */ @@ -49,9 +23,28 @@ class SG_EXPORT LogicOp : public StateAttribute { public : + enum Opcode { + CLEAR = GL_CLEAR, + SET = GL_SET, + COPY = GL_COPY, + COPY_INVERTED = GL_COPY_INVERTED, + NOOP = GL_NOOP, + INVERT = GL_INVERT, + AND = GL_AND, + NAND = GL_NAND, + OR = GL_OR, + NOR = GL_NOR, + XOR = GL_XOR, + EQUIV = GL_EQUIV, + AND_REVERSE = GL_AND_REVERSE, + AND_INVERTED = GL_AND_INVERTED, + OR_REVERSE = GL_OR_REVERSE, + OR_INVERTED = GL_OR_INVERTED + }; + LogicOp(); - LogicOp(GLenum opcode); + LogicOp(Opcode opcode); /** Copy constructor using CopyOp to manage deep vs shallow copy. */ LogicOp(const LogicOp& trans,const CopyOp& copyop=CopyOp::SHALLOW_COPY): @@ -79,31 +72,13 @@ class SG_EXPORT LogicOp : public StateAttribute return true; } - enum LogicOpOpcode { - CLEAR = GL_CLEAR, - SET = GL_SET, - COPY = GL_COPY, - COPY_INVERTED = GL_COPY_INVERTED, - NOOP = GL_NOOP, - INVERT = GL_INVERT, - AND = GL_AND, - NAND = GL_NAND, - OR = GL_OR, - NOR = GL_NOR, - XOR = GL_XOR, - EQUIV = GL_EQUIV, - AND_REVERSE = GL_AND_REVERSE, - AND_INVERTED = GL_AND_INVERTED, - OR_REVERSE = GL_OR_REVERSE, - OR_INVERTED = GL_OR_INVERTED - }; - inline void setOpcode( GLenum opcode ) + inline void setOpcode(Opcode opcode) { _opcode = opcode; } - inline GLenum getOpcode() const { return _opcode; } + inline Opcode getOpcode() const { return _opcode; } virtual void apply(State& state) const; @@ -111,7 +86,7 @@ class SG_EXPORT LogicOp : public StateAttribute virtual ~LogicOp(); - GLenum _opcode; + Opcode _opcode; }; } diff --git a/src/osg/BlendEquation.cpp b/src/osg/BlendEquation.cpp index 36c486e98..f40fed9c1 100644 --- a/src/osg/BlendEquation.cpp +++ b/src/osg/BlendEquation.cpp @@ -20,11 +20,11 @@ using namespace osg; BlendEquation::BlendEquation(): - _equation(FUNC_ADD_EXT) + _equation(FUNC_ADD) { } -BlendEquation::BlendEquation(GLenum equation): +BlendEquation::BlendEquation(Equation equation): _equation(equation) { } @@ -48,7 +48,7 @@ void BlendEquation::apply(State& state) const return; } - extensions->glBlendEquation(_equation); + extensions->glBlendEquation(static_cast(_equation)); } diff --git a/src/osg/LogicOp.cpp b/src/osg/LogicOp.cpp index 34262b635..54b12a3f7 100644 --- a/src/osg/LogicOp.cpp +++ b/src/osg/LogicOp.cpp @@ -19,7 +19,7 @@ LogicOp::LogicOp(): { } -LogicOp::LogicOp(GLenum opcode): +LogicOp::LogicOp(Opcode opcode): _opcode(opcode) { } @@ -30,6 +30,6 @@ LogicOp::~LogicOp() void LogicOp::apply(State&) const { - glLogicOp(_opcode); + glLogicOp(static_cast(_opcode)); }