From a3a57df0be5c9d1d4ebbd153cabadbca48d16e79 Mon Sep 17 00:00:00 2001 From: Evan Goers Date: Mon, 26 Nov 2012 06:29:34 +0000 Subject: 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. --- src/render/state.cc | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) (limited to 'src/render/state.cc') 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); } } -- cgit v1.2.3