#ifndef MATERIAL_H #define MATERIAL_H enum { // Geometry Flags NORMAL_MAP, AMBIENT_TEXTURE, DIFFUSE_TEXTURE, SPECULAR_TEXTURE, ALPHA_MASK, NB_FLAGS }; enum { // Geometry Flags NORMAL_MAP_FLAG = 1 << NORMAL_MAP, AMBIENT_TEXTURE_FLAG = 1 << AMBIENT_TEXTURE, DIFFUSE_TEXTURE_FLAG = 1 << DIFFUSE_TEXTURE, SPECULAR_TEXTURE_FLAG = 1 << SPECULAR_TEXTURE, ALPHA_MASK_FLAG = 1 << ALPHA_MASK, }; class Shader; class Material { public: virtual void bindAttributes(Shader*) = 0; virtual unsigned int getFlags() = 0; }; #endif // MATERIAL_H