Screen Resizer
Minimal Defold extension + Lua module to resize the game view and show a menu
of preset sizes.
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.

