Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
path: root/src/ui
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
parenta95028547981614e06ea7a6d22b853b85418cea3 (diff)
updated a few help messages, added 3d modelview to the buy menu
Diffstat (limited to 'src/ui')
-rwxr-xr-xsrc/ui/modelview.cc45
-rwxr-xr-xsrc/ui/modelview.h7
2 files changed, 47 insertions, 5 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());
}
}
diff --git a/src/ui/modelview.h b/src/ui/modelview.h
index 2abeb01..1fbb4d9 100755
--- a/src/ui/modelview.h
+++ b/src/ui/modelview.h
@@ -35,9 +35,12 @@ public:
virtual void print(const size_t indent) const;
protected:
- /// draw the model
+ /// draw the widget
virtual void draw();
-
+
+ /// draw border
+ void draw_border();
+
private:
std::string modelview_modelname;
math::Color modelview_color;