projects
/
ld37_one_room
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ubershaders and path stripping in metascene
[ld37_one_room]
/
src
/
material.cc
diff --git
a/src/material.cc
b/src/material.cc
index
189b6ad
..
f345204
100644
(file)
--- a/
src/material.cc
+++ b/
src/material.cc
@@
-4,6
+4,7
@@
#include "material.h"
#include "sdr.h"
#include "app.h"
#include "material.h"
#include "sdr.h"
#include "app.h"
+#include "ubersdr.h"
Material::Material()
: diffuse(1.0f, 1.0f, 1.0f)
Material::Material()
: diffuse(1.0f, 1.0f, 1.0f)
@@
-22,16
+23,29
@@
void Material::setup() const
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, ks);
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess);
glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, ks);
glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shininess);
- int ntex = std::min((int)textures.size(), 8); // TODO: use max texture units
- for(int i=0; i<ntex; i++) {
- bind_texture(textures[i], i);
+ for(int i=0; i<NUM_MTL_TEXTURES; i++) {
+ bind_texture(stdtex[i], i);
}
}
- /*
- if(stdtex[MTL_TEX_LIGHTMAP]) {
- bind_program(stdtex[MTL_TEX_DIFFUSE] ? sdr_ltmap : sdr_ltmap_notex);
+ if(stdtex[MTL_TEX_DIFFUSE]) {
+ uber_enable_texmap();
+ } else {
+ uber_disable_texmap();
+ }
+ if(stdtex[MTL_TEX_ENVMAP] && stdtex[MTL_TEX_ENVMAP]->get_type() == TEX_CUBE) {
+ uber_enable_cubemap();
+ } else {
+ uber_disable_cubemap();
}
}
- */
+ if(stdtex[MTL_TEX_ENVMAP] && stdtex[MTL_TEX_ENVMAP]->get_type() == TEX_2D) {
+ uber_enable_sphmap();
+ } else {
+ uber_disable_sphmap();
+ }
+ /* TODO shadows */
+
+ unsigned int sdrprog = uber_program();
+ bind_program(sdrprog);
}
void Material::add_texture(Texture *tex, int type)
}
void Material::add_texture(Texture *tex, int type)