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:";
switch(_type) {
case Vertex: err << "vertex"; break;
case Geometry: err << "geometry"; break;
case Fragment: err << "fragment"; break;
case TesselationControl: err << "tesselation control"; break;
case TesselationEvaluation: err << "tesselation evaluation"; break;
case Type::Vertex: err << "vertex"; break;
case Type::Geometry: err << "geometry"; break;
case Type::Fragment: err << "fragment"; break;
case Type::TesselationControl: err << "tesselation control"; break;
case Type::TesselationEvaluation: err << "tesselation evaluation"; break;
}
/* Show error log and delete shader */

4
src/Shader.h

@ -39,7 +39,7 @@ class MAGNUM_EXPORT Shader {
public:
/** @brief %Shader type */
enum Type {
enum class Type: GLenum {
Vertex = GL_VERTEX_SHADER, /**< Vertex shader */
/**
@ -121,7 +121,7 @@ class MAGNUM_EXPORT Shader {
* @see fromData(), fromFile()
*/
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() {
Resource rs("shaders");
attachShader(Shader::fromData(Shader::Vertex, rs.get("PhongShader.vert")));
attachShader(Shader::fromData(Shader::Fragment, rs.get("PhongShader.frag")));
attachShader(Shader::fromData(Shader::Type::Vertex, rs.get("PhongShader.vert")));
attachShader(Shader::fromData(Shader::Type::Fragment, rs.get("PhongShader.frag")));
bindAttribute(Vertex::Location, "vertex");
bindAttribute(Normal::Location, "normal");

Loading…
Cancel
Save