Screen Resizer

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.cpp native extension
  • screen_resizer/screen_resizer.gui_script sample GUI usage
  • screen_resizer/resizer.lua Lua 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. tag is the menu label. scale defaults to 1.
  • resizer:set_size_by_idx(idx)
    Applies the size preset by index (from show_menu) and respects scale.
  • resizer:show_menu(x, y)
    Builds and shows the menu, returns selected index (0 if none).
  • resizer.logs
    When true, logs size changes. Defaults to true.

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; passing nil for x or y centers the view.
  • screen_resizer.get_view_size()
    Returns x, y, w, h in screen coordinates.
10 Likes