Make debug text adjust it's border to the screensize and fix a border update bug
authorShadowNinja <shadowninja@minetest.net>
Sun, 27 Apr 2014 22:43:16 +0000 (18:43 -0400)
committerShadowNinja <shadowninja@minetest.net>
Sun, 27 Apr 2014 22:45:04 +0000 (18:45 -0400)
src/game.cpp

index bcf59fb26a82e984db9762a2a9af8c43439732e7..567c2c776853e1110bf4ccc104f47e0f02c8d360 100644 (file)
@@ -1099,8 +1099,6 @@ void the_game(bool &kill, bool random_input, InputHandler *input,
        // Calculate text height using the font
        u32 text_height = font->getDimension(L"Random test string").Height;
 
-       v2u32 screensize = driver->getScreenSize();
-       
        /*
                Draw "Loading" screen
        */
@@ -1536,12 +1534,12 @@ void the_game(bool &kill, bool random_input, InputHandler *input,
        // First line of debug text
        gui::IGUIStaticText *guitext = guienv->addStaticText(
                        L"Minetest",
-                       core::rect<s32>(5, 5, 795, 5+text_height),
+                       core::rect<s32>(0, 0, 0, 0),
                        false, false);
        // Second line of debug text
        gui::IGUIStaticText *guitext2 = guienv->addStaticText(
                        L"",
-                       core::rect<s32>(5, 5+(text_height+5)*1, 795, (5+text_height)*2),
+                       core::rect<s32>(0, 0, 0, 0),
                        false, false);
        // At the middle of the screen
        // Object infos are shown in this
@@ -1677,6 +1675,8 @@ void the_game(bool &kill, bool random_input, InputHandler *input,
                if(device->run() == false || kill == true)
                        break;
 
+               v2u32 screensize = driver->getScreenSize();
+
                // Time of frame without fps limit
                float busytime;
                u32 busytime_u32;
@@ -3220,7 +3220,18 @@ void the_game(bool &kill, bool random_input, InputHandler *input,
                {
                        guitext->setVisible(false);
                }
-               
+
+               if (guitext->isVisible())
+               {
+                       core::rect<s32> rect(
+                               5,
+                               5,
+                               screensize.X,
+                               5 + text_height
+                       );
+                       guitext->setRelativePosition(rect);
+               }
+
                if(show_debug)
                {
                        std::ostringstream os(std::ios_base::binary);
@@ -3233,6 +3244,14 @@ void the_game(bool &kill, bool random_input, InputHandler *input,
                                <<")";
                        guitext2->setText(narrow_to_wide(os.str()).c_str());
                        guitext2->setVisible(true);
+
+                       core::rect<s32> rect(
+                               5,
+                               5 + text_height,
+                               screensize.X,
+                               5 + (text_height * 2)
+                       );
+                       guitext2->setRelativePosition(rect);
                }
                else
                {