diff options
-rw-r--r-- | games/devtest/menu/background.png | bin | 152 -> 160 bytes | |||
-rw-r--r-- | src/gui/guiEngine.cpp | 15 |
2 files changed, 14 insertions, 1 deletions
diff --git a/games/devtest/menu/background.png b/games/devtest/menu/background.png Binary files differindex 415bb3d14..89c45fcd5 100644 --- a/games/devtest/menu/background.png +++ b/games/devtest/menu/background.png diff --git a/src/gui/guiEngine.cpp b/src/gui/guiEngine.cpp index b3808535c..c39c3ee0d 100644 --- a/src/gui/guiEngine.cpp +++ b/src/gui/guiEngine.cpp @@ -437,9 +437,22 @@ void GUIEngine::drawBackground(video::IVideoDriver *driver) return; } + // Chop background image to the smaller screen dimension + v2u32 bg_size = screensize; + v2f32 scale( + (f32) bg_size.X / sourcesize.X, + (f32) bg_size.Y / sourcesize.Y); + if (scale.X < scale.Y) + bg_size.X = (int) (scale.Y * sourcesize.X); + else + bg_size.Y = (int) (scale.X * sourcesize.Y); + v2s32 offset = v2s32( + (s32) screensize.X - (s32) bg_size.X, + (s32) screensize.Y - (s32) bg_size.Y + ) / 2; /* Draw background texture */ draw2DImageFilterScaled(driver, texture, - core::rect<s32>(0, 0, screensize.X, screensize.Y), + core::rect<s32>(offset.X, offset.Y, bg_size.X + offset.X, bg_size.Y + offset.Y), core::rect<s32>(0, 0, sourcesize.X, sourcesize.Y), NULL, NULL, true); } |