From ffe0485173b9d72b50f068a1ba8d03d3bd89c00e Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Thu, 19 Sep 2013 18:13:52 -0300 Subject: [PATCH] Removed love.window.checkMode (resolves issue #653, invalidates issue #592). Also fixed love.window.setMode to fail instead of bug out when trying to set a fullscreen mode which is too large for the monitor. --- .../love-framework.xcodeproj/project.pbxproj | 4 ++ .../macosx/love.xcodeproj/project.pbxproj | 2 + src/common/b64.cpp | 2 +- src/modules/math/wrap_Math.cpp | 2 +- src/modules/physics/box2d/Physics.cpp | 4 +- src/modules/window/Window.h | 1 - src/modules/window/sdl/Window.cpp | 37 +++------- src/modules/window/sdl/Window.h | 1 - src/modules/window/wrap_Window.cpp | 29 -------- src/modules/window/wrap_Window.h | 1 - src/scripts/boot.lua | 30 ++++---- src/scripts/boot.lua.h | 72 ++++++++----------- 12 files changed, 60 insertions(+), 125 deletions(-) diff --git a/platform/macosx/love-framework.xcodeproj/project.pbxproj b/platform/macosx/love-framework.xcodeproj/project.pbxproj index 7f10e7976..5f71882ed 100644 --- a/platform/macosx/love-framework.xcodeproj/project.pbxproj +++ b/platform/macosx/love-framework.xcodeproj/project.pbxproj @@ -2256,12 +2256,14 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_ENABLE_MODULES = YES; DEAD_CODE_STRIPPING = YES; FRAMEWORK_SEARCH_PATHS = /Library/Frameworks; GCC_OPTIMIZATION_LEVEL = 3; GCC_PREPROCESSOR_DEFINITIONS = LOVE_SUPPORT_GME; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; GCC_WARN_SIGN_COMPARE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; @@ -2289,12 +2291,14 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_ENABLE_MODULES = YES; COPY_PHASE_STRIP = NO; FRAMEWORK_SEARCH_PATHS = /Library/Frameworks; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = LOVE_SUPPORT_GME; GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = YES; GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; GCC_WARN_SIGN_COMPARE = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; diff --git a/platform/macosx/love.xcodeproj/project.pbxproj b/platform/macosx/love.xcodeproj/project.pbxproj index 3c89741f6..ca8789e8c 100644 --- a/platform/macosx/love.xcodeproj/project.pbxproj +++ b/platform/macosx/love.xcodeproj/project.pbxproj @@ -302,6 +302,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_ENABLE_MODULES = YES; FRAMEWORK_SEARCH_PATHS = /Library/Frameworks; GCC_INCREASE_PRECOMPILED_HEADER_SHARING = YES; GCC_OPTIMIZATION_LEVEL = 0; @@ -352,6 +353,7 @@ buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + CLANG_ENABLE_MODULES = YES; DEPLOYMENT_POSTPROCESSING = NO; FRAMEWORK_SEARCH_PATHS = /Library/Frameworks; GCC_INPUT_FILETYPE = automatic; diff --git a/src/common/b64.cpp b/src/common/b64.cpp index 338833acc..96f805967 100644 --- a/src/common/b64.cpp +++ b/src/common/b64.cpp @@ -39,7 +39,7 @@ char *b64_decode(const char *src, int slen, int &size) char *dst = new char[size]; char *d = dst; - char in[4], out[3], v; + char in[4] = {0}, out[3], v; int i, len, pos = 0; while (pos <= slen) diff --git a/src/modules/math/wrap_Math.cpp b/src/modules/math/wrap_Math.cpp index 3c7abb306..1054358a4 100644 --- a/src/modules/math/wrap_Math.cpp +++ b/src/modules/math/wrap_Math.cpp @@ -179,7 +179,7 @@ int w_triangulate(lua_State *L) lua_createtable(L, triangles.size(), 0); for (size_t i = 0; i < triangles.size(); ++i) { - Triangle &tri = triangles[i]; + const Triangle &tri = triangles[i]; lua_createtable(L, 6, 0); lua_pushnumber(L, tri.a.x); diff --git a/src/modules/physics/box2d/Physics.cpp b/src/modules/physics/box2d/Physics.cpp index f3e2f1909..7880d0575 100644 --- a/src/modules/physics/box2d/Physics.cpp +++ b/src/modules/physics/box2d/Physics.cpp @@ -98,9 +98,9 @@ int Physics::newPolygonShape(lua_State *L) // 3 to 8 (b2_maxPolygonVertices) vertices int vcount = argc / 2; if (vcount < 3) - luaL_error(L, "Expected a minimum of 3 vertices, got %d.", vcount); + return luaL_error(L, "Expected a minimum of 3 vertices, got %d.", vcount); else if (vcount > b2_maxPolygonVertices) - luaL_error(L, "Expected a maximum of %d vertices, got %d.", b2_maxPolygonVertices, vcount); + return luaL_error(L, "Expected a maximum of %d vertices, got %d.", b2_maxPolygonVertices, vcount); b2PolygonShape *s = new b2PolygonShape(); diff --git a/src/modules/window/Window.h b/src/modules/window/Window.h index 5f575687e..b56a05d4e 100644 --- a/src/modules/window/Window.h +++ b/src/modules/window/Window.h @@ -68,7 +68,6 @@ public: virtual int getDisplayCount() const = 0; - virtual bool checkWindowSize(int width, int height, bool fullscreen, int displayindex) const = 0; virtual std::vector getFullscreenSizes(int displayindex) const = 0; virtual int getWidth() const = 0; diff --git a/src/modules/window/sdl/Window.cpp b/src/modules/window/sdl/Window.cpp index d142503de..c72ede143 100644 --- a/src/modules/window/sdl/Window.cpp +++ b/src/modules/window/sdl/Window.cpp @@ -103,15 +103,16 @@ bool Window::setWindow(int width, int height, WindowFlags *flags) if (f.fullscreen) { - switch (f.fstype) - { - case FULLSCREEN_TYPE_NORMAL: - default: - sdlflags |= SDL_WINDOW_FULLSCREEN; - break; - case FULLSCREEN_TYPE_DESKTOP: + if (f.fstype == FULLSCREEN_TYPE_DESKTOP) sdlflags |= SDL_WINDOW_FULLSCREEN_DESKTOP; - break; + else + { + sdlflags |= SDL_WINDOW_FULLSCREEN; + + // Fullscreen window creation will bug out if no mode can be used. + SDL_DisplayMode mode = {0, width, height, 0, 0}; + if (SDL_GetClosestDisplayMode(f.display, &mode, &mode) == 0) + return false; } } @@ -373,26 +374,6 @@ int Window::getDisplayCount() const return SDL_GetNumVideoDisplays(); } -bool Window::checkWindowSize(int width, int height, bool fullscreen, int displayindex) const -{ - if (fullscreen) - { - SDL_DisplayMode mode = {}, closest = {}; - mode.w = width; - mode.h = height; - SDL_GetClosestDisplayMode(displayindex, &mode, &closest); - - return (mode.w == closest.w && mode.h == closest.h); - } - else - { - SDL_DisplayMode mode = {}; - SDL_GetDesktopDisplayMode(displayindex, &mode); - - return (width <= mode.w && height <= mode.h); - } -} - typedef Window::WindowSize WindowSize; std::vector Window::getFullscreenSizes(int displayindex) const diff --git a/src/modules/window/sdl/Window.h b/src/modules/window/sdl/Window.h index 02a5b8ad2..8a8116809 100644 --- a/src/modules/window/sdl/Window.h +++ b/src/modules/window/sdl/Window.h @@ -51,7 +51,6 @@ public: int getDisplayCount() const; - bool checkWindowSize(int width, int height, bool fullscreen, int displayindex) const; std::vector getFullscreenSizes(int displayindex) const; int getWidth() const; diff --git a/src/modules/window/wrap_Window.cpp b/src/modules/window/wrap_Window.cpp index 93133ec88..71ff5c81e 100644 --- a/src/modules/window/wrap_Window.cpp +++ b/src/modules/window/wrap_Window.cpp @@ -34,34 +34,6 @@ int w_getDisplayCount(lua_State *L) return 1; } -int w_checkMode(lua_State *L) -{ - int w = luaL_checkint(L, 1); - int h = luaL_checkint(L, 2); - - bool fs = false; - int displayindex = 0; - - if (lua_istable(L, 3)) - { - lua_getfield(L, 3, "fullscreen"); - fs = luax_toboolean(L, -1); - - lua_getfield(L, 3, "display"); - displayindex = luaL_optint(L, -1, 1) - 1; - - lua_pop(L, 2); - } - else - { - fs = luax_toboolean(L, 3); - displayindex = luaL_optint(L, 4, 1) - 1; - } - - luax_pushboolean(L, instance->checkWindowSize(w, h, fs, displayindex)); - return 1; -} - int w_setMode(lua_State *L) { int w = luaL_checkint(L, 1); @@ -308,7 +280,6 @@ int w_isVisible(lua_State *L) static const luaL_Reg functions[] = { { "getDisplayCount", w_getDisplayCount }, - { "checkMode", w_checkMode }, { "setMode", w_setMode }, { "getMode", w_getMode }, { "getFullscreenModes", w_getFullscreenModes }, diff --git a/src/modules/window/wrap_Window.h b/src/modules/window/wrap_Window.h index dfd4cc036..41971869b 100644 --- a/src/modules/window/wrap_Window.h +++ b/src/modules/window/wrap_Window.h @@ -30,7 +30,6 @@ namespace window { int w_getDisplayCount(lua_State *L); -int w_checkMode(lua_State *L); int w_setMode(lua_State *L); int w_getMode(lua_State *L); int w_getFullscreenModes(lua_State *L); diff --git a/src/scripts/boot.lua b/src/scripts/boot.lua index 429fd2491..14966a721 100644 --- a/src/scripts/boot.lua +++ b/src/scripts/boot.lua @@ -370,23 +370,19 @@ function love.init() -- Setup window here. local has_window = false if c.window and c.modules.window then - if love.window.checkMode(c.window.width, c.window.height, c.window.fullscreen, c.window.display) or (c.window.width == 0 and c.window.height == 0) then - assert(love.window.setMode(c.window.width, c.window.height, - { - fullscreen = c.window.fullscreen, - fullscreentype = c.window.fullscreentype, - vsync = c.window.vsync, - fsaa = c.window.fsaa, - resizable = c.window.resizable, - minwidth = c.window.minwidth, - minheight = c.window.minheight, - borderless = c.window.borderless, - centered = c.window.centered, - display = c.window.display, - }), "Could not set window mode") - else - error("Could not set window mode") - end + assert(love.window.setMode(c.window.width, c.window.height, + { + fullscreen = c.window.fullscreen, + fullscreentype = c.window.fullscreentype, + vsync = c.window.vsync, + fsaa = c.window.fsaa, + resizable = c.window.resizable, + minwidth = c.window.minwidth, + minheight = c.window.minheight, + borderless = c.window.borderless, + centered = c.window.centered, + display = c.window.display, + }), "Could not set window mode") love.window.setTitle(c.window.title or c.title) end diff --git a/src/scripts/boot.lua.h b/src/scripts/boot.lua.h index 27eab4d17..bd08673c8 100644 --- a/src/scripts/boot.lua.h +++ b/src/scripts/boot.lua.h @@ -634,50 +634,34 @@ const unsigned char boot_lua[] = 0x09, 0x69, 0x66, 0x20, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x2e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, - 0x09, 0x09, 0x69, 0x66, 0x20, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x4d, 0x6f, 0x64, 0x65, 0x28, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, - 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x2c, 0x20, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x66, 0x75, 0x6c, - 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x2c, 0x20, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x29, 0x20, 0x6f, 0x72, 0x20, 0x28, 0x63, 0x2e, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x3d, 0x3d, 0x20, 0x30, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x3d, - 0x3d, 0x20, 0x30, 0x29, 0x20, 0x74, 0x68, 0x65, 0x6e, 0x0a, - 0x09, 0x09, 0x09, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x28, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x77, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x28, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x2e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2c, 0x0a, - 0x09, 0x09, 0x09, 0x7b, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x63, - 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, - 0x2c, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x74, 0x79, 0x70, 0x65, - 0x20, 0x3d, 0x20, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, - 0x72, 0x65, 0x65, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x76, 0x73, 0x79, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x2e, 0x76, 0x73, 0x79, 0x6e, 0x63, 0x2c, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x66, 0x73, 0x61, 0x61, 0x20, 0x3d, 0x20, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x2e, 0x66, 0x73, 0x61, 0x61, 0x2c, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x63, 0x2e, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x2c, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x6d, 0x69, 0x6e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x63, 0x2e, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6d, 0x69, 0x6e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x6d, 0x69, 0x6e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x3d, 0x20, 0x63, 0x2e, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6d, 0x69, 0x6e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2c, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x3d, 0x20, 0x63, - 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, - 0x2c, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x63, 0x2e, 0x77, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x2c, 0x0a, - 0x09, 0x09, 0x09, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x63, 0x2e, 0x77, 0x69, - 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x2c, 0x0a, - 0x09, 0x09, 0x09, 0x7d, 0x29, 0x2c, 0x20, 0x22, 0x43, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, - 0x73, 0x65, 0x74, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x29, 0x0a, - 0x09, 0x09, 0x65, 0x6c, 0x73, 0x65, 0x0a, - 0x09, 0x09, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x28, 0x22, 0x43, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, - 0x74, 0x20, 0x73, 0x65, 0x74, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x22, - 0x29, 0x0a, - 0x09, 0x09, 0x65, 0x6e, 0x64, 0x0a, + 0x09, 0x09, 0x61, 0x73, 0x73, 0x65, 0x72, 0x74, 0x28, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x28, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x2e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x20, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2c, 0x0a, + 0x09, 0x09, 0x7b, 0x0a, + 0x09, 0x09, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x20, 0x3d, 0x20, 0x63, 0x2e, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x2c, 0x0a, + 0x09, 0x09, 0x09, 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x20, + 0x3d, 0x20, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x66, 0x75, 0x6c, 0x6c, 0x73, 0x63, 0x72, + 0x65, 0x65, 0x6e, 0x74, 0x79, 0x70, 0x65, 0x2c, 0x0a, + 0x09, 0x09, 0x09, 0x76, 0x73, 0x79, 0x6e, 0x63, 0x20, 0x3d, 0x20, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x2e, 0x76, 0x73, 0x79, 0x6e, 0x63, 0x2c, 0x0a, + 0x09, 0x09, 0x09, 0x66, 0x73, 0x61, 0x61, 0x20, 0x3d, 0x20, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x2e, 0x66, 0x73, 0x61, 0x61, 0x2c, 0x0a, + 0x09, 0x09, 0x09, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x3d, 0x20, 0x63, 0x2e, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x72, 0x65, 0x73, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x2c, 0x0a, + 0x09, 0x09, 0x09, 0x6d, 0x69, 0x6e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x20, 0x3d, 0x20, 0x63, 0x2e, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6d, 0x69, 0x6e, 0x77, 0x69, 0x64, 0x74, 0x68, 0x2c, 0x0a, + 0x09, 0x09, 0x09, 0x6d, 0x69, 0x6e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x20, 0x3d, 0x20, 0x63, 0x2e, 0x77, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x6d, 0x69, 0x6e, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x2c, 0x0a, + 0x09, 0x09, 0x09, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x20, 0x3d, 0x20, 0x63, 0x2e, + 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x6c, 0x65, 0x73, 0x73, 0x2c, 0x0a, + 0x09, 0x09, 0x09, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x20, 0x3d, 0x20, 0x63, 0x2e, 0x77, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x65, 0x64, 0x2c, 0x0a, + 0x09, 0x09, 0x09, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x20, 0x3d, 0x20, 0x63, 0x2e, 0x77, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x2e, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x2c, 0x0a, + 0x09, 0x09, 0x7d, 0x29, 0x2c, 0x20, 0x22, 0x43, 0x6f, 0x75, 0x6c, 0x64, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x73, + 0x65, 0x74, 0x20, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x20, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0x29, 0x0a, 0x09, 0x09, 0x6c, 0x6f, 0x76, 0x65, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x73, 0x65, 0x74, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x28, 0x63, 0x2e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x20, 0x6f, 0x72, 0x20, 0x63, 0x2e, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x29, 0x0a,