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")
使用するフルスクリーンモードの種類。この標準値は 0.9.00.9.2 までは "normal" であり、 0.10.0 以前では "desktop" です。
boolean vsync (true)
True ならば LÖVE は vsync (垂直同期) 待ちを行いますが、それ以外は false です。
number msaa (0)
アンチエイリアスのサンプル数。
boolean stencil (true)
ステンシルバッファを割り当てるかどうか。true ならば、 8bit のステンシルバッファを保持します。
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 未満は指定できません。
LÖVE 0.9.1 から利用可能
boolean highdpi (false)
True ならば high-dpi 方式 は macOS および iOS で Retina ディスプレイで許可されています。これは非-Retina ディスプレイでは関係ありません。


LÖVE 0.9.2 から利用可能
number x (nil)
指定されたディスプレイにおけるウィンドウの x 座標位置。
number y (nil)
指定されたディスプレイにおけるウィンドウの y 座標位置。


LÖVE 11.3 から利用可能
boolean usedpiscale (true)
false ならば DPI スケーリングを無効にします。


LÖVE 0.9.1 から利用可能でしたが LÖVE 0.10.0 で廃止。
boolean srgb (false)
0.10.0 で廃止。(代わりに t.gammacorrect を conf.lua で設定してください)。True ならば 画面への描画時に sRGB ガンマ補正を適用します。


返値

boolean success
true ならば成功であり、それ以外は false です。

注釈

  • フルスクリーンが有効になったが非対応の幅または高さである場合 (love.window.getFullscreenModes を参照)、ウィンドウは最も近くて利用可能な解像度へサイズ変更されて resize イベントが発生します。
  • フルスクリーンの種類が "desktop" ならば、ウィンドウの大きさは自動的にデスクトップの解像度と同じ値へ変更されます。
  • デスクトップの寸法よりも幅と高さが大きいか等しく (両方とも 0 の場合も対象)、さらに引数 fullscreen に false が指定されているならば、視覚上はフルスクリーン表示となります。この場合は、引数 fullscreen に true が指定されていないため love.window.getFullscreen では false が返されます。これは love.window.updateMode にも適用されます。
  • conf.lua で window を無効 (つまり t.window = false) にしている場合、および本関数で手動でウィンドウを作成するならば、その前に love.graphics.* 全関数群の呼び出しを一切行ってはいけません。 OpenGL はウィンドウ無しでは正常に機能しない故に、そうしてしまうと不確定な振る舞いおよび・またはクラッシュの原因になります。
  • 現在のところ背景の透過には対応していません。

用例

vsyncを無効にしたウインドウをサイズ変更可能して最小の幅と高さを設定します。

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

関連


そのほかの言語