Screen Resizer
Minimal Defold extension + Lua module to resize the game view and show a menu
of preset sizes.
https://github.com/d954mas/defold-screen-resizer
Setup
You can use ScreenResizer in your own project by adding this project as Defold library dependencies.
Open your game.project file and in the dependencies field under project add:
https://github.com/d954mas/defold-screen-resizer/archive/master.zip
The GUI script expects a right mouse button binding:
mouse_trigger {
input: MOUSE_BUTTON_RIGHT
action: "mouse_button_right"
}
Files
screen_resizer/screen_resizer/src/screen_resizer.cppnative extensionscreen_resizer/screen_resizer.gui_scriptsample GUI usagescreen_resizer/resizer.luaLua helper module
Usage Simple
add screen_resizer.go to your main.collection
by default it will show a menu with 6 preset sizes
Usage Custom
local RESIZER = require "screen_resizer.resizer"
RESIZER:add_size(960, 540, "16:9 960x540", 1)
RESIZER:add_size(540, 960, "9:16 540x960", 1)
-- Optional logging
RESIZER.logs = true
-- Show menu and apply selection
local _, _, _, h = screen_resizer.get_view_size()
RESIZER:show_menu(x, h - y)
API: resizer.lua
resizer:add_size(w, h, tag, scale)
Adds a size preset.tagis the menu label.scaledefaults to1.resizer:set_size_by_idx(idx)
Applies the size preset by index (fromshow_menu) and respectsscale.resizer:show_menu(x, y)
Builds and shows the menu, returns selected index (0 if none).resizer.logs
Whentrue, logs size changes. Defaults totrue.
API: screen_resizer (native)
screen_resizer.menu_begin()
Start building a menu.screen_resizer.menu_label(id, enabled, text)
Add a menu item.screen_resizer.menu_finish()
Finalize the menu.screen_resizer.menu_show(x, y)
Show the menu at screen position, returns selected id (0 if none).screen_resizer.set_view_size(x, y, w, h)
Set view size; passingnilforxorycenters the view.screen_resizer.get_view_size()
Returnsx, y, w, hin screen coordinates.

