Browse Source

Shader: strongly typed Type enum.

pull/279/head
Vladimír Vondruš 14 years ago
parent
commit
d383dac4a1
  1. 10
      src/Shader.cpp
  2. 4
      src/Shader.h
  3. 4
      src/Shaders/PhongShader.cpp

10
src/Shader.cpp

@ -98,11 +98,11 @@ GLuint Shader::compile() {
err << "Shader:"; err << "Shader:";
switch(_type) { switch(_type) {
case Vertex: err << "vertex"; break; case Type::Vertex: err << "vertex"; break;
case Geometry: err << "geometry"; break; case Type::Geometry: err << "geometry"; break;
case Fragment: err << "fragment"; break; case Type::Fragment: err << "fragment"; break;
case TesselationControl: err << "tesselation control"; break; case Type::TesselationControl: err << "tesselation control"; break;
case TesselationEvaluation: err << "tesselation evaluation"; break; case Type::TesselationEvaluation: err << "tesselation evaluation"; break;
} }
/* Show error log and delete shader */ /* Show error log and delete shader */

4
src/Shader.h

@ -39,7 +39,7 @@ class MAGNUM_EXPORT Shader {
public: public:
/** @brief %Shader type */ /** @brief %Shader type */
enum Type { enum class Type: GLenum {
Vertex = GL_VERTEX_SHADER, /**< Vertex shader */ Vertex = GL_VERTEX_SHADER, /**< Vertex shader */
/** /**
@ -121,7 +121,7 @@ class MAGNUM_EXPORT Shader {
* @see fromData(), fromFile() * @see fromData(), fromFile()
*/ */
inline Shader(Type type): _type(type), _state(Initialized), shader(0) { inline Shader(Type type): _type(type), _state(Initialized), shader(0) {
shader = glCreateShader(_type); shader = glCreateShader(static_cast<GLenum>(_type));
} }
/** /**

4
src/Shaders/PhongShader.cpp

@ -23,8 +23,8 @@ namespace Magnum { namespace Shaders {
PhongShader::PhongShader() { PhongShader::PhongShader() {
Resource rs("shaders"); Resource rs("shaders");
attachShader(Shader::fromData(Shader::Vertex, rs.get("PhongShader.vert"))); attachShader(Shader::fromData(Shader::Type::Vertex, rs.get("PhongShader.vert")));
attachShader(Shader::fromData(Shader::Fragment, rs.get("PhongShader.frag"))); attachShader(Shader::fromData(Shader::Type::Fragment, rs.get("PhongShader.frag")));
bindAttribute(Vertex::Location, "vertex"); bindAttribute(Vertex::Location, "vertex");
bindAttribute(Normal::Location, "normal"); bindAttribute(Normal::Location, "normal");

Loading…
Cancel
Save