diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2012-04-09 18:37:33 +0200 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2013-01-13 22:40:52 +0100 |
commit | 4fd33b18760b97aad2c542efd3ff7d16f2e9f373 (patch) | |
tree | 1cde426c288e6a6a944cc61cbbd248f6328d8d40 /src/menu | |
parent | 09eacc82176c37fdc12c903061ffa3ff960ac4cf (diff) | |
download | usdx-4fd33b18760b97aad2c542efd3ff7d16f2e9f373.tar.gz usdx-4fd33b18760b97aad2c542efd3ff7d16f2e9f373.tar.xz usdx-4fd33b18760b97aad2c542efd3ff7d16f2e9f373.zip |
menu/contianer: element position should be relative to the container position
container should provide each of the containing elements' draw
functions with its own position as base (store before drawing the
first element and restore it after each drawing)
Diffstat (limited to 'src/menu')
-rw-r--r-- | src/menu/container.cpp | 6 | ||||
-rw-r--r-- | src/menu/drawable_control.cpp | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/menu/container.cpp b/src/menu/container.cpp index 3cf8d770..bf742dff 100644 --- a/src/menu/container.cpp +++ b/src/menu/container.cpp @@ -24,6 +24,8 @@ * $Id$ */ +#include <GL/gl.h> + #include "container.hpp" #include "frame.hpp" @@ -60,9 +62,13 @@ namespace usdx frame->repaint(); } + GLfloat matrix[16]; + glGetFloatv(GL_MODELVIEW_MATRIX, matrix); + for (std::list<DrawableControl*>::iterator it = controls.begin(); it != controls.end(); it++) { (*it)->repaint(); + glLoadMatrixf(matrix); } } diff --git a/src/menu/drawable_control.cpp b/src/menu/drawable_control.cpp index 10da2bfc..4d1f8355 100644 --- a/src/menu/drawable_control.cpp +++ b/src/menu/drawable_control.cpp @@ -68,8 +68,6 @@ namespace usdx void DrawableControl::repaint(void) { - glLoadIdentity(); - { // position boost::mutex::scoped_lock lock(position_mutex); |