From 4fd33b18760b97aad2c542efd3ff7d16f2e9f373 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Mon, 9 Apr 2012 18:37:33 +0200 Subject: 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) --- src/menu/container.cpp | 6 ++++++ src/menu/drawable_control.cpp | 2 -- 2 files changed, 6 insertions(+), 2 deletions(-) (limited to 'src') 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 + #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::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); -- cgit v1.2.3