diff options
Diffstat (limited to 'src/ui/modelview.cc')
-rwxr-xr-x | src/ui/modelview.cc | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/ui/modelview.cc b/src/ui/modelview.cc index 71fff6c..679c7b6 100755 --- a/src/ui/modelview.cc +++ b/src/ui/modelview.cc @@ -63,6 +63,7 @@ void ModelView::reset() modelview_globetexturename.clear(); modelview_globecoronaname.clear(); + modelview_globeringsname.clear(); modelview_globebright = false; } @@ -72,11 +73,12 @@ void ModelView::clear() modelview_mode = Model; } -void ModelView::set_globetexturename(const std::string & texturename, const bool bright, const std::string & coronaname) +void ModelView::set_globetexturename(const std::string & texturename, const std::string & coronaname, const std::string ringsname, const bool bright) { reset(); modelview_globetexturename.assign(texturename); modelview_globecoronaname.assign(coronaname); + modelview_globeringsname.assign(ringsname); modelview_globebright = bright; } @@ -231,7 +233,7 @@ void ModelView::draw_globe() gl::disable(GL_LIGHTING); if (modelview_globecoronaname.size()) { - size_t corona_id = render::Textures::load("textures/corona/" + modelview_globecoronaname); + size_t corona_id = render::Textures::load("textures/" + modelview_globecoronaname); render::draw_globe_corona(math::Vector3f(0.0f, 0.0f, 0.0f), modelview_color_primary, reference_radius, corona_id); } } @@ -246,6 +248,14 @@ void ModelView::draw_globe() render::draw_sphere(modelview_color_primary, reference_radius); + if (modelview_globeringsname.size()) { + size_t rings_id = render::Textures::load("textures/" + modelview_globeringsname); + if (!modelview_globetexturename.size()) { + gl::enable(GL_TEXTURE_2D); + } + render::draw_globe_rings(modelview_color_primary, rings_id); + } + gl::pop(); render::State::set_normalize(false); |