nuclear@8: #include "material.h" nuclear@8: #include "opengl.h" nuclear@8: nuclear@8: Material::Material() nuclear@8: : diffuse(1, 1, 1) nuclear@8: { nuclear@8: alpha = 1.0; nuclear@8: shininess = 60.0; nuclear@8: tex = 0; nuclear@8: } nuclear@8: nuclear@8: void Material::setup() const nuclear@8: { nuclear@8: float diff[] = {diffuse.x, diffuse.y, diffuse.z, alpha}; nuclear@8: float spec[] = {specular.x, specular.y, specular.z, 1.0}; nuclear@8: nuclear@8: glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE, diff); nuclear@8: glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, spec); nuclear@8: glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess > 128.0f ? 128.0f : shininess); nuclear@8: nuclear@8: if(tex) { nuclear@8: glEnable(GL_TEXTURE_2D); nuclear@8: glBindTexture(GL_TEXTURE_2D, tex); nuclear@8: } else { nuclear@8: glDisable(GL_TEXTURE_2D); nuclear@8: } nuclear@8: }