diff options
author | Stijn Buys <ingar@osirion.org> | 2009-04-16 19:36:15 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2009-04-16 19:36:15 +0000 |
commit | 6ab4021827e91303ac6fe2276f5567810b7e0496 (patch) | |
tree | 82c50c5a4bdc63da51c5bee9c122d165fd872aa6 /src/ui/modelview.cc | |
parent | a95028547981614e06ea7a6d22b853b85418cea3 (diff) |
updated a few help messages, added 3d modelview to the buy menu
Diffstat (limited to 'src/ui/modelview.cc')
-rwxr-xr-x | src/ui/modelview.cc | 45 |
1 files changed, 42 insertions, 3 deletions
diff --git a/src/ui/modelview.cc b/src/ui/modelview.cc index a07922a..11dd318 100755 --- a/src/ui/modelview.cc +++ b/src/ui/modelview.cc @@ -11,6 +11,7 @@ #include "render/camera.h" #include "render/draw.h" #include "render/render.h" + namespace ui { @@ -55,18 +56,56 @@ void ModelView::draw() if (!modelview_modelname.size()) return; + model::Model *model = model::Model::find(modelview_modelname); + if (!model) + return; + math ::Vector2f center(global_location()); center.x += width() * 0.5f; center.y += height() * 0.5f; - - //model::Model *model = model::Model::find(modelview_modelname); + + gl::clear(GL_DEPTH_BUFFER_BIT); // gl 3d mode + render::Camera::frustum_default(model->radius(), center.x, center.y); + + gl::disable(GL_BLEND); + gl::depthmask(GL_TRUE); // enable writing to the depth buffer + gl::enable(GL_DEPTH_TEST); + + gl::enable(GL_CULL_FACE); // enable culling + gl::enable(GL_COLOR_MATERIAL); // enable color tracking + gl::enable(GL_LIGHTING); + + // enable vertex arrays + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glEnableClientState(GL_NORMAL_ARRAY); + + render::draw_model_fragments(model, core::localplayer()->color(), core::localplayer()->color_second(), true, true, 0); + + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_NORMAL_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + + gl::disable(GL_LIGHTING); + gl::disable(GL_COLOR_MATERIAL); // disable color tracking + gl::disable(GL_CULL_FACE); // disable culling + gl::depthmask(GL_TRUE); // enable depth buffer writing + gl::disable(GL_DEPTH_TEST); // disable depth buffer testing + + gl::enable(GL_BLEND); // gl 2d mode - //render::Camera::ortho(); + render::Camera::ortho(); +} + +void ModelView::draw_border() +{ + paint::color(palette()->foreground()); + paint::border(global_location(), size()); } } |