stop appending repeat keys to the input buffer
[retroray] / src / material.c
1 /*
2 RetroRay - integrated standalone vintage modeller/renderer
3 Copyright (C) 2023  John Tsiombikas <nuclear@mutantstargoat.com>
4
5 This program is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
9
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 GNU General Public License for more details.
14
15 You should have received a copy of the GNU General Public License
16 along with this program.  If not, see <https://www.gnu.org/licenses/>.
17 */
18 #include <string.h>
19 #include "material.h"
20
21 void mtl_init(struct material *mtl)
22 {
23         static int mtlidx;
24         char namebuf[64];
25
26         cgm_vcons(&mtl->kd, 0.7, 0.7, 0.7);
27         cgm_vcons(&mtl->ks, 0.5, 0.5, 0.5);
28         cgm_vcons(&mtl->ke, 0, 0, 0);
29         mtl->shin = 50.0f;
30         mtl->refl = mtl->trans = 0.0f;
31         mtl->ior = 1.3333333;
32         mtl->texmap = 0;
33
34         sprintf(namebuf, "material%03d", mtlidx++);
35         mtl_set_name(mtl, namebuf);
36 }
37
38 void mtl_destroy(struct material *mtl)
39 {
40         if(!mtl) return;
41         free(mtl->name);
42 }
43
44 void mtl_set_name(struct material *mtl, const char *name)
45 {
46         char *tmp = strdup(name);
47         if(!tmp) return;
48         free(mtl->name);
49         mtl->name = tmp;
50 }