X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fmaterial.h;h=e1bfec4caa0707419941b88476394955ab651244;hp=a38dddd6a8d5efe097882e44623a3f1f7474a118;hb=HEAD;hpb=e37851b98dde5082ee92570354746f2f92e21940 diff --git a/source/material.h b/source/material.h deleted file mode 100644 index a38dddd6..00000000 --- a/source/material.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef MSP_GL_MATERIAL_H_ -#define MSP_GL_MATERIAL_H_ - -#include -#include "bindable.h" -#include "color.h" -#include "programdata.h" - -namespace Msp { -namespace GL { - -/** -Stores OpenGL material properties. Since OpenGL does not support material -objects, application of material is done with several calls to glMaterial. -*/ -class Material: public BindableWithDefault -{ -public: - class Loader: public DataFile::CollectionObjectLoader - { - private: - bool srgb; - - public: - Loader(Material &); - Loader(Material &, Collection &); - private: - void init(); - - Color make_color(float, float, float, float); - void ambient(float, float, float, float); - void diffuse(float, float, float, float); - void specular(float, float, float, float); - void emission(float, float, float, float); - void shininess(float); - }; - -private: - enum ParameterMask - { - AMBIENT = 1, - DIFFUSE = 2, - SPECULAR = 4, - EMISSION = 8, - SHININESS = 16 - }; - - Color ambient; - Color diffuse; - Color specular; - Color emission; - float shininess; - ProgramData shdata; - -public: - Material(); - -private: - void update_parameter(int) const; - -public: - void set_ambient(const Color &a); - void set_diffuse(const Color &d); - void set_specular(const Color &s); - void set_emission(const Color &e); - void set_shininess(float s); - const Color &get_ambient() const { return ambient; } - const Color &get_diffuse() const { return diffuse; } - const Color &get_specular() const { return specular; } - const Color &get_emission() const { return emission; } - float get_shininess() const { return shininess; } - const ProgramData &get_shader_data() const { return shdata; } - void bind() const; -}; - -} // namespace GL -} // namespace Msp - -#endif