diff options
author | Evan Goers <mega@osirion.org> | 2012-03-21 11:57:11 +0000 |
---|---|---|
committer | Evan Goers <mega@osirion.org> | 2012-03-21 11:57:11 +0000 |
commit | 980b47266c5fba9a7e7fabfa7a6d77167a47cb60 (patch) | |
tree | 40a165fbf3e5c7daacea51de887f01301b823145 /src/ui | |
parent | c4cd091c43ade80033f41c1ceda5c9f51979dcbc (diff) |
Functionize light creation.
Diffstat (limited to 'src/ui')
-rwxr-xr-x | src/ui/modelview.cc | 48 |
1 files changed, 9 insertions, 39 deletions
diff --git a/src/ui/modelview.cc b/src/ui/modelview.cc index 033e4e3..e3a3c79 100755 --- a/src/ui/modelview.cc +++ b/src/ui/modelview.cc @@ -19,7 +19,7 @@ namespace ui { -GLenum modelview_gllight = GL_LIGHT0 + 7; +GLenum modelview_gllight = GL_LIGHT0; ModelView::ModelView(Widget *parent) : Widget(parent) { @@ -204,25 +204,10 @@ void ModelView::draw_globe() glEnableClientState(GL_NORMAL_ARRAY); // we set up the light in camera space - for (size_t i = 0; i < 8; i++) { - // check if a light is available - if (!glIsEnabled(GL_LIGHT0 + i)) { - modelview_gllight = GL_LIGHT0 + i; - break; - } - } - - GLfloat modelview_light[] = { -10.0f * reference_radius, 0, 0, 1.0f }; - GLfloat ambient_light[] = { 0.1f, 0.1f, 0.1f, 1.0f }; - GLfloat diffuse_light[] = { 0.75f, 0.75f, 0.75f, 1.0f }; - GLfloat specular_light[] = { 0.75f, 0.75f, 0.75f, 1.0f }; - - glLightfv(modelview_gllight, GL_POSITION, modelview_light); - glLightfv(modelview_gllight, GL_AMBIENT, ambient_light); - glLightfv(modelview_gllight, GL_DIFFUSE, diffuse_light); - glLightfv(modelview_gllight, GL_SPECULAR, specular_light); - - glLightf(modelview_gllight, GL_LINEAR_ATTENUATION, 0.05f); + float modelview_light_location[] = {-10.0f * reference_radius, 0, 0}; + math::Color modelview_light_color; + modelview_light_color.assign(1.0); + modelview_gllight = render::create_light(modelview_light_location, 0.05f, modelview_light_color); gl::enable(modelview_gllight); @@ -319,25 +304,10 @@ void ModelView::draw_model() glEnableClientState(GL_NORMAL_ARRAY); // we set up the light in camera space - for (size_t i = 0; i < 8; i++) { - // check if a light is available - if (!glIsEnabled(GL_LIGHT0 + i)) { - modelview_gllight = GL_LIGHT0 + i; - break; - } - } - - GLfloat modelview_light[] = { -10.0f * model->radius(), 0, 0, 1.0f }; - GLfloat ambient_light[] = { 0.1f, 0.1f, 0.1f, 1.0f }; - GLfloat diffuse_light[] = { 0.75f, 0.75f, 0.75f, 1.0f }; - GLfloat specular_light[] = { 0.75f, 0.75f, 0.75f, 1.0f }; - - glLightfv(modelview_gllight, GL_POSITION, modelview_light); - glLightfv(modelview_gllight, GL_AMBIENT, ambient_light); - glLightfv(modelview_gllight, GL_DIFFUSE, diffuse_light); - glLightfv(modelview_gllight, GL_SPECULAR, specular_light); - - glLightf(modelview_gllight, GL_LINEAR_ATTENUATION, 0.05f); + float modelview_light_location[] = {-10.0f * reference_radius, 0, 0}; + math::Color modelview_light_color; + modelview_light_color.assign(1.0); + modelview_gllight = render::create_light(modelview_light_location, 0.05f, modelview_light_color); gl::enable(modelview_gllight); |