Spec-Zone.ru › LÖVE

love.window.setMode

Доступно начиная с LÖVE 0.9.0
Перемещено из love.graphics.setMode.


Устанавливает режим отображения и свойства окна.

Если ширина или высота равны 0, setMode будет использовать ширину и высоту рабочего стола.

Изменение режима отображения может иметь побочные эффекты: например, холсты будут очищены, а значения, отправленные в шейдеры с помощью Shader:send, будут удалены. Убедитесь, что вы сохранили содержимое холстов предварительно или перерисуйте их после, если вам это нужно.

Функция

Синопсис

success = love.window.setMode( width, height, flags )

Аргументы

number width
Ширина экрана.
number height
Высота экрана.
table flags
Таблица флагов с параметрами:
boolean fullscreen (false)
Полный экран (true) или окно (false).
FullscreenType fullscreentype ("desktop")
Тип полноэкранного режима. По умолчанию "normal" в 0.9.0 до 0.9.2 и "desktop" в 0.10.0 и более ранних версиях.
number vsync (1)
Включает или отключает вертикальную синхронизацию ('vsync'): 1 для включения vsync, 0 для отключения и -1 для адаптивной vsync (если поддерживается). До версии 11.0 это был булевый флаг, а не число.
number msaa (0)
Количество выборок антиалиасинга.
boolean stencil (true)
Следует ли выделять буфер закраски. Если true, буфер закраски будет иметь 8 бит.
number depth (0)
Количество бит в буфере глубины.
boolean resizable (false)
True, если окно должно быть изменяемым в режиме окна, иначе false.
boolean borderless (false)
True, если окно должно быть без рамок в режиме окна, иначе false.
boolean centered (true)
True, если окно должно быть центрировано в режиме окна, иначе false.
number display (1)
Индекс дисплея, на котором должно отображаться окно, если доступно несколько мониторов.
number minwidth (1)
Минимальная ширина окна, если оно изменяемое. Не может быть меньше 1.
number minheight (1)
Минимальная высота окна, если оно изменяемое. Не может быть меньше 1.
boolean highdpi (false) Доступно начиная с 0.9.1
True, если в macOS и iOS следует использовать режим high-dpi на дисплеях Retina. Не имеет эффекта на дисплеях без Retina. Всегда включено на Android.


number x (nil) Доступно начиная с 0.9.2
Координата x позиции окна на указанном дисплее.
number y (nil) Доступно начиная с 0.9.2
Координата y позиции окна на указанном дисплее.


boolean usedpiscale (true) Доступно начиная с 11.3
Отключает автоматическое масштабирование DPI LOVE на дисплеях с высоким разрешением при значении false. Это оказывает влияние только тогда, когда флаг highdpi установлен в true, так как ОС (а не LOVE) в противном случае обрабатывает всё.


boolean srgb (false) Доступно начиная с 0.9.1 и удалено в LÖVE 0.10.0
Удалино в 0.10.0 (установите t.gammacorrect в conf.lua вместо этого). True, если должна применяться коррекция гаммы sRGB при отрисовке на экран.


Возвращаемое значение

boolean success
True, если успешно, иначе false.

Примечания

love.conf может содержать более подробную документацию по поведению каждого флага окна.

  • Если полноэкранный режим включен, а ширина или высота не поддерживаются (см. love.window.getFullscreenModes), окно может быть изменен до ближайшего поддерживаемого разрешения, и будет вызвано событие resize.
  • Если тип полноэкранного режима — "desktop", то окно будет автоматически изменен до разрешения рабочего стола.
  • Если ширина и высота больше или равны размерам рабочего стола (включая установку обоих значений в 0) и полноэкранный режим выключен, то оно будет "визуально" полноэкранным, но не истинно полноэкранным, и love.window.getFullscreen вернет false в этом случае. Это также относится к love.window.updateMode.
  • Если вы отключили окно в conf.lua (т.е. t.window = false) и используете эту функцию для ручного создания окна, то вы не должны вызывать никакие другие функции love.graphics.* до этой. Это приведёт к неопределённому поведению и/или ошибкам, так как OpenGL не может правильно функционировать без окна.
  • В Android, соотношение сторон, выведенное из ширины и высоты, используется для определения, работает ли игра в ландшафтном или портретном режиме.
  • Прозрачные фоны в настоящее время не поддерживаются.

Примеры

Сделайте окно изменяемым с отключенной вертикальной синхронизацией и заданными минимальной шириной и высотой.

function love.load()
    love.window.setMode(800, 600, {resizable=true, vsync=false, minwidth=400, minheight=300})
end

См. также

  • love.window
  • love.window.getMode
  • love.window.getFullscreenModes
  • love.resize


© 2006–2020 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.
https://love2d.org/wiki/love.window.setMode

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API