SparrowRenderer/material.h
2015-12-08 11:58:01 +01:00

33 lines
633 B
C++

#ifndef MATERIAL_H
#define MATERIAL_H
enum {
// Geometry Flags
DIFFUSE_TEXTURE, // must stay first for crappy rendering
AMBIENT_TEXTURE,
SPECULAR_TEXTURE,
NORMAL_MAP,
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