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
См. также
© 2006–2020 LÖVE Development Team
Licensed under the GNU Free Documentation License, Version 1.3.
https://love2d.org/wiki/love.window.setMode