initial commit, eq circuit emulator
[eqemu] / src / material.h
1 /*
2 eqemu - electronic queue system emulator
3 Copyright (C) 2014  John Tsiombikas <nuclear@member.fsf.org>,
4                     Eleni-Maria Stea <eleni@mutantstargoat.com>
5
6 This program is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 */
19 #ifndef MATERIAL_H_
20 #define MATERIAL_H_
21
22 #include "vmath.h"
23
24 enum {
25         TEX_DIFFUSE,
26         TEX_ENVMAP,
27
28         NUM_TEXTURES
29 };
30
31 class Material {
32 public:
33         Vector3 emissive;
34         Vector3 ambient;
35         Vector3 diffuse;
36         Vector3 specular;
37         float shininess;
38         float alpha;
39
40         unsigned int tex[NUM_TEXTURES];
41         Vector2 tex_scale[NUM_TEXTURES], tex_offset[NUM_TEXTURES];
42
43         unsigned int sdr;
44
45         Material();
46
47         void setup() const;
48 };
49
50 unsigned int load_texture(const char *fname);
51 unsigned int load_shader_program(const char *vname, const char *pname);
52
53 #endif  // MATERIAL_H_