Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Goers <mega@osirion.org>2012-11-26 06:29:34 +0000
committerEvan Goers <mega@osirion.org>2012-11-26 06:29:34 +0000
commita3a57df0be5c9d1d4ebbd153cabadbca48d16e79 (patch)
treec745f693d46e4f966e9ebc478bf09da795144c2e /src/render/state.cc
parentbc8fb513b967d9c4eaa5f478e112c7f479093bbf (diff)
Abstracted many more GL functions.
Added in useful texture unit info to State::init(). Cleaned up many non-abstracted GL functions used in draw.cc and state.cc.
Diffstat (limited to 'src/render/state.cc')
-rw-r--r--src/render/state.cc27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/render/state.cc b/src/render/state.cc
index ce3a0ab..83f2704 100644
--- a/src/render/state.cc
+++ b/src/render/state.cc
@@ -23,6 +23,7 @@ bool State::state_has_generate_mipmaps = false;
bool State::state_has_vbo = false;
GLuint State::state_vbo = 0;
int State::state_maxlights;
+int State::state_maxtextureunits;
math::Color State::state_color_primary;
@@ -90,7 +91,7 @@ void State::init(int width, int height)
state_has_vbo = false;
}
- con_print << " vertex bufer objects ";
+ con_print << " vertex buffer objects ";
if (state_has_vbo)
con_print << "enabled" << std::endl;
else
@@ -99,6 +100,10 @@ void State::init(int width, int height)
// probe maximal number of lights
glGetIntegerv(GL_MAX_LIGHTS, &state_maxlights);
con_debug << " maximum number of OpenGL lights is " << state_maxlights << std::endl;
+
+ // probe maximal number of texture units
+ glGetIntegerv(GL_MAX_TEXTURE_UNITS, &state_maxtextureunits);
+ con_debug << " maximum number of OpenGL texture units is " << state_maxtextureunits << std::endl;
// Generate VBO
if (state_has_vbo)
@@ -142,11 +147,11 @@ void State::clear()
//gl::shademodel(GL_FLAT);
// lighting model
- glLightModeli(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE);
- glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);
+ gl::lightmodel(GL_LIGHT_MODEL_LOCAL_VIEWER, GL_TRUE);
+ gl::lightmodel(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);
// color tracking
- glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
+ gl::colormaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
// alpha blending function
gl::blendfunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
@@ -217,7 +222,7 @@ void State::use_material(const model::Material * material) {
reset();
// default specular shininess setting
- glMateriali(GL_FRONT, GL_SHININESS, 8);
+ gl::material(GL_FRONT, GL_SHININESS, 8);
if (!material) {
color.assign(1.0f, 0.0f, 1.0f);
@@ -291,8 +296,8 @@ void State::use_material(const model::Material * material) {
gl::enable(GL_TEXTURE_2D);
if (material->flags() & model::Material::Environment) {
- gl::texgeni(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
- gl::texgeni(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+ gl::texgen(GL_S, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
+ gl::texgen(GL_T, GL_TEXTURE_GEN_MODE, GL_SPHERE_MAP);
gl::enable(GL_TEXTURE_GEN_S);
gl::enable(GL_TEXTURE_GEN_T);
@@ -304,9 +309,9 @@ void State::use_material(const model::Material * material) {
if (core::localplayer()->zone()->sky().size()) {
gl::enable(GL_TEXTURE_CUBE_MAP);
- glTexGeni(GL_S, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP);
- glTexGeni(GL_T, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP);
- glTexGeni(GL_R, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP);
+ gl::texgen(GL_S, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP);
+ gl::texgen(GL_T, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP);
+ gl::texgen(GL_R, GL_TEXTURE_GEN_MODE, GL_REFLECTION_MAP);
gl::enable(GL_TEXTURE_GEN_S);
gl::enable(GL_TEXTURE_GEN_T);
@@ -314,7 +319,7 @@ void State::use_material(const model::Material * material) {
} else {
color.assign(0.0f, 0.0f, 0.0f);
}
- glMateriali(GL_FRONT, GL_SHININESS, 4);
+ gl::material(GL_FRONT, GL_SHININESS, 4);
}
}