Merge pull request #2512 from SonofUgly/custom-layout

Add custom layout settings.
This commit is contained in:
bunnei 2017-03-21 22:57:31 -04:00 committed by GitHub
commit ccc3985cc0
9 changed files with 104 additions and 13 deletions

View file

@ -6,6 +6,7 @@
#include "common/assert.h"
#include "common/framebuffer_layout.h"
#include "core/settings.h"
#include "video_core/video_core.h"
namespace Layout {
@ -135,4 +136,22 @@ FramebufferLayout LargeFrameLayout(unsigned width, unsigned height, bool swapped
res.bottom_screen = swapped ? large_screen : small_screen;
return res;
}
FramebufferLayout CustomFrameLayout(unsigned width, unsigned height) {
ASSERT(width > 0);
ASSERT(height > 0);
FramebufferLayout res{width, height, true, true, {}, {}};
MathUtil::Rectangle<unsigned> top_screen{
Settings::values.custom_top_left, Settings::values.custom_top_top,
Settings::values.custom_top_right, Settings::values.custom_top_bottom};
MathUtil::Rectangle<unsigned> bot_screen{
Settings::values.custom_bottom_left, Settings::values.custom_bottom_top,
Settings::values.custom_bottom_right, Settings::values.custom_bottom_bottom};
res.top_screen = top_screen;
res.bottom_screen = bot_screen;
return res;
}
}

View file

@ -44,4 +44,12 @@ FramebufferLayout SingleFrameLayout(unsigned width, unsigned height, bool is_swa
* @return Newly created FramebufferLayout object with default screen regions initialized
*/
FramebufferLayout LargeFrameLayout(unsigned width, unsigned height, bool is_swapped);
/**
* Factory method for constructing a custom FramebufferLayout
* @param width Window framebuffer width in pixels
* @param height Window framebuffer height in pixels
* @return Newly created FramebufferLayout object with default screen regions initialized
*/
FramebufferLayout CustomFrameLayout(unsigned width, unsigned height);
}