nuclear@12: /* nuclear@12: eqemu - electronic queue system emulator nuclear@12: Copyright (C) 2014 John Tsiombikas , nuclear@12: Eleni-Maria Stea nuclear@12: nuclear@12: This program is free software: you can redistribute it and/or modify nuclear@12: it under the terms of the GNU General Public License as published by nuclear@12: the Free Software Foundation, either version 3 of the License, or nuclear@12: (at your option) any later version. nuclear@12: nuclear@12: This program is distributed in the hope that it will be useful, nuclear@12: but WITHOUT ANY WARRANTY; without even the implied warranty of nuclear@12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the nuclear@12: GNU General Public License for more details. nuclear@12: nuclear@12: You should have received a copy of the GNU General Public License nuclear@12: along with this program. If not, see . nuclear@12: */ nuclear@3: #ifndef MATERIAL_H_ nuclear@3: #define MATERIAL_H_ nuclear@3: nuclear@3: #include "vmath.h" nuclear@3: nuclear@5: enum { nuclear@5: TEX_DIFFUSE, nuclear@5: TEX_ENVMAP, nuclear@5: nuclear@5: NUM_TEXTURES nuclear@5: }; nuclear@5: nuclear@3: class Material { nuclear@3: public: nuclear@6: Vector3 emissive; nuclear@3: Vector3 ambient; nuclear@3: Vector3 diffuse; nuclear@3: Vector3 specular; nuclear@3: float shininess; nuclear@3: float alpha; nuclear@3: nuclear@5: unsigned int tex[NUM_TEXTURES]; nuclear@5: Vector2 tex_scale[NUM_TEXTURES], tex_offset[NUM_TEXTURES]; nuclear@5: nuclear@5: unsigned int sdr; nuclear@5: nuclear@3: Material(); nuclear@3: nuclear@3: void setup() const; nuclear@3: }; nuclear@3: nuclear@5: unsigned int load_texture(const char *fname); nuclear@5: unsigned int load_shader_program(const char *vname, const char *pname); nuclear@5: nuclear@3: #endif // MATERIAL_H_