29 lines
491 B
C++
29 lines
491 B
C++
#ifndef MATERIAL_H
|
|
#define MATERIAL_H
|
|
|
|
#include "shader.h"
|
|
#include "glm/fwd.hpp"
|
|
|
|
enum {
|
|
// Geometry Flags
|
|
NORMAL_MAP = 1 << 0,
|
|
DIFFUSE_TEXTURE = 1 << 1,
|
|
SPECULAR_TEXTURE = 1 << 2,
|
|
ALPHA_MASK = 1 << 3,
|
|
};
|
|
|
|
class Material
|
|
{
|
|
public:
|
|
Material(Shader* myShader = NULL) : shader(myShader) {}
|
|
Shader* getShader() {return shader;}
|
|
|
|
virtual void bindAttributes() = 0;
|
|
virtual unsigned int getFlags() = 0;
|
|
|
|
protected:
|
|
Shader* shader;
|
|
};
|
|
|
|
#endif // MATERIAL_H
|