Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2009-04-16 19:36:15 +0000
committerStijn Buys <ingar@osirion.org>2009-04-16 19:36:15 +0000
commit6ab4021827e91303ac6fe2276f5567810b7e0496 (patch)
tree82c50c5a4bdc63da51c5bee9c122d165fd872aa6 /src/ui/modelview.cc
parenta95028547981614e06ea7a6d22b853b85418cea3 (diff)
updated a few help messages, added 3d modelview to the buy menu
Diffstat (limited to 'src/ui/modelview.cc')
-rwxr-xr-xsrc/ui/modelview.cc45
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());
}
}