11.0 (日本語)
LÖVE 11.0 のコードネームは Mysterious Mysteries (ミステリアス・ミステリー) です。現在公開中です。
Contents
0.10.2 からの変更点
機能追加
- 結合型実行形式 (fused) ではないゲームのデフォルト動作として、公式廃止予定機能への警告表示を追加。
- love.setDeprecationOutput および love.hasDeprecationOutput の追加。
- Object:release の追加。
- Data:clone の追加。
- 待ち行列型の音声 Sources を追加。
- マイクによる録音機能の追加。
- love.audio の Source へローパス、ハイパス、バンドパスフィルタ機能を追加。
- 音声エフェクト API の追加 (リバーブ、エコーなど)。
- SoundData:getSample および SoundData:setSample において channel インデックス引数へ対応した異形を追加。
- love.audio.play, love.audio.pause, および love.audio.stop において Source リストへ対応した異形を追加。
- love.system.hasBackgroundMusic の追加。
- get* 関数においてテーブルにあるフィールドを全て返す異形を追加。既存のテーブルで代用することにより新しい異形が使えます。
- World:update において内部反復処理の実行回数制御に対応した異形を追加。
- Body:isTouching の追加。
- RopeJoint:setMaxLength の追加。
- love.mousepressed および love.mousereleased へ連続クリックとして用いる presses 引数を追加。
- love.filesystem.mount において Data または zip 形式のデータ内容から成る FileData オブジェクトに対応した異形を追加。
- love.filesystem.getInfo の追加 (love.filesystem.exists / isFile / isDirectory / isSymlink / getLastModified / getSize から変更)。
- require において C ライブラリの検索に用いる関数として love.filesystem.setCRequirePath および love.filesystem.getCRequirePath を追加。
- File:read および love.filesystem.read において、列挙型で FileData か文字列のどちらかを返すか決定するために異形を追加。
- メッセージが読み取られたか判定するために Channel:hasRead を追加。 ID は Channel:push の返値を使います。
- Channel:demand および Channel:supply において timeout 引数へ対応した異形を追加。
- メインスレッドのエラーを収集するためのコードをデフォルトの love.threaderror コールバックへ追加。
- love.data モジュールの追加。 Hex/Base64 形式の エンコーディング関数、MD5 および SHA ハッシュ、文字列のパック、圧縮 API などを実装してあります。
- love.math へ Transform オブジェクトを追加
- ImageData および PixelFormat で RGBA8 (デフォルト), RGBA16, RGBA16F, および RGBA32F など各種形式への対応を追加。
- Radiance HDR, OpenEXR, および 16 bit PNG の読み込み機能を追加。
- love.graphics.getImageFormats の追加 (love.graphics.getCompressedImageFormats から変更)。
- Image, Canvas, Font, および Video で作成時にオブジェクトごとのピクセル密度尺度係数を指定する機能を追加。これは描画処理に影響を及ぼします。
- Texture:getPixelWidth, Texture:getPixelHeight, love.graphics.getPixelWidth, および love.graphics.getPixelHeight の追加。
- Texture:getDPIScale, love.graphics.getDPIScale, および Font:getDPIScale の追加。
- Texture:getMipmapCount, getFormat, getLayerCount, getDepth, および getTextureType の追加。
- アレイ、キューブ、ボリューム テクスチャ型、および、それらに対応する Texture API を追加。
- love.graphics.newArrayImage, newVolumeImage, newCubeImage, および love.graphics.newCanvas の異形において各種テクスチャ形式の生成機能を追加。
- 各種 TextureType の対応状況を表すフィールドを格納したテーブルを返す love.graphics.getTextureTypes を追加。
- Image:replacePixels の追加 (Image:refresh から変更)。
- アレイ・テクスチャのレイヤーを描画しやすくするために love.graphics.drawLayer, SpriteBatch:addLayer, および SpriteBatch:setLayer を追加。
- love.graphics.print および love.graphics.printf において Font 引数へ対応した異形を追加。
- 自動生成されたミップマップ、および指定されたミップマップレベルの手動レンダリングなどの Canvas へのミップマッピング対応を追加。
- Canvas 用に 'stencil8', 'depth24stencil8', 'depth32fstencil8', 'depth16', 'depth24', および 'depth32f' 形式の PixelFormat を追加。
- love.graphics.newCanvas において table settings 引数へ対応した異形を追加。
- love.graphics.newCanvas のテーブルへ渡されるオプションのブール型として 'readable' フィールドを追加。
- love.graphics.getCanvasFormats としてブール型として 'readable' に対応した異形を追加。
- レンダリング時、深度・ステンシル形式の Canvas を使えるようにするために [love.graphics.setCanvas (日本語)|love.graphics.setCanvas]] のテーブルへ渡されるオプションのブール型として 'depthstencil' フィールドを追加。
- 'depthstencil' を使用していない場合に、内部にある深度とステンシルバッファを有効にするために love.graphics.setCanvas のテーブルへ渡されるオプションのブール型として 'depth' と 'stencil' フィールドを追加。
- Canvas へ シャドウ・サンプラーの対応を追加。
- 深度テスト・書き込みで深度バッファを使うために love.graphics.setDepthMode を追加。現在のシェーダーに限り、レンダリングされたオブジェクトの深度値を設定できます。
- Mesh の描画時に、後方または前方で三角形をカリング処理をするために、 love.graphics.setMeshCullMode を追加。
- love.graphics.setFrontFaceWinding の追加。
- love.graphics.clear において有効な深度の制御方法、およびステンシルバッファの消去方法を指定するための異形を追加。
- love.graphics.applyTransform および love.graphics.replaceTransform の追加。
- love.graphics.transformPoint および love.graphics.inverseTransformPoint の追加。
- love.graphics.getStackDepth の追加。
- 自動バッチ処理による描画の手動で追い出せるようにするために love.graphics.flushBatch を追加。
- SpriteBatch:setDrawRange の追加。
- love.graphics.newShader において File および FileData へ対応した異形を追加。
- シェーダごとに GLSL 3.30 および GLSL ES 3.00 シェーダー言語の選択機能を追加。
- ピクセルシェーダーのエントリポイント として 'void effect()' を追加。
- love.graphics.validateShader の追加。
- Shader:hasUniform の追加 (Shader:getExternVariable から変更) 。
- デスクトッププラットフォームとモバイル GLSL 3 において、正方形ではないシェーダーの一様行列に関する対応を追加。
- テーブル形式による matrix 引数の解釈方法を指定するために Shader:send(matrixname, matrixlayout, matrix, ...) を追加。
- Shader:send において Data オブジェクトへ対応した異形を追加。
- ParticleSystem へ 'borderellipse' and 'borderrectangle' 方式の分布を追加。
- パーティクルの射出領域中心に関連する方向による領域の角度とフラグを扱うために ParticleSystem:setEmissionArea の異形を追加。
- love.graphics.captureScreenshot の追加 (love.graphics.newScreenshot から変更)。
- love.graphics.newScreenshot へ 'glsl3', 'instancing', 'fullnpot','pixelshaderhighp', および 'shaderderivatives' を追加。
- GraphicsLimit へ 'anisotropy' グラフィックス方式を追加。
- love.graphics.getStats へ 'drawcallsbatched' フィールドを追加。
- love.graphics.drawInstanced と新規実装した Mesh:attachAttribute 異形において、ハードウェアによる Mesh のインスタンス化機能を追加。
- 各種対象属性名を扱うために Mesh:attachAttribute の異形を追加。
- Mesh:detachAttribute の追加。
- Mesh:setVertexMap において Data オブジェクトへ対応した異形を追加。
- 構成ファイル の
t.window
フラグと love.window.setMode により love で ステンシルバッファの生成を防止する機能を追加。 - love.window.updateMode の追加。
- love.window.isMinimized の追加。
- love.window.restore の追加。
- ヘッダなし DEFLATE (デフレート) の対応を love.data.compress/decompress へ追加。
API の改名
1.10 で改名された API は次回のメジャーリリースまでに削除または廃止予定になります。
- love.window.getPixelScale から love.window.getDPIScale へ改名。
- love.mouse.hasCursor から love.mouse.isCursorSupported へ改名。
- ParticleSystem:setAreaSpread から ParticleSystem:setEmissionArea へ改名。
- love.errhand から love.errorhandler へ改名。 love.errhand は定義されているが love.errorhandler が未定義でも、動作を継続します。
- Source/SoundData/Decoder:getChannels から Source/SoundData/Decoder:getChannelCount へ改名。
- PrismaticJoint:hasLimitsEnabled および RevoluteJoint:hasLimitsEnabled から PrismaticJoint:areLimitsEnabled および RevoluteJoint:areLimitsEnabled へ改名。
- love.audio.getSourceCount から love.audio.getActiveSourceCount へ改名。
- get[Object]List 関数一式を get[Object] へ改名。
その他の廃止予定
- love.filesystem.exists / isFile / isDirectory / isSymlink / getLastModified / getSize の廃止予定 (今後は love.filesystem.getInfo をお使いください)。
- love.math.compress / decompress の廃止予定 (今後は love.data.compress / decompress をお使いください)。
機能廃止
- love.audio.newSource のデフォルト Source 方式を廃止。
- Source:isStopped および Source:isPaused を廃止。今後は Source:isPlaying をお使いください。
- Source:rewind を廃止。今後は Source:stop または Source:seek(0) をお使いください。
- Source:resume および love.audio.resume を廃止。今後は Source:play および love.audio.play をお使いください。
- love.filesystem.newFileData において Base64 形式のデータに対応した異形を廃止。今後は love.data.decode をお使いください。
- Text:set において引数無しに対応した異形を廃止。今後は Text:clear をお使いください。
- Image:getData および Image:refresh を廃止。今後は Image:replacePixels をお使いください。
- love.graphics.getCompressedImageFormats を廃止。今後は love.graphics.getImageFormats をお使いください。
- ピクセルシェーダーのエントリポイント である 'void effects(...)' を廃止。今後は新たに実装した 'void effect()' をお使いください。
- Shader:getExternVariable を廃止。今後は Shader:hasUniform をお使いください。
- love.graphics.newScreenshot を廃止。今後は love.graphics.captureScreenshot をお使いください。
- SpriteBatch:setBufferSize の廃止。現在の実装では SpriteBatch は空き容量不足になったときに自動的に容量を確保します。
- 廃止予定入りしていた enet 関数にある host:socket_get_address を廃止。
- LÖVE 0.10.2 で廃止予定入りした関数の削除:
- 説明書に記載されていない Shader:sendInt, Shader:sendBoolean, Shader:sentFloat, Shader:sendMatrix, および Shader:sendTexture メソッドを廃止 (今後は Shader:send をお使いください)。
- love.window.isCreated を廃止 (今後は love.window.isOpen をお使いください)。
その他の変更
- Windows XP への公式対応を終了しました。
- 色値表現の有効範囲を 0 ~ 255 (8-bit) から 0.0 ~ 1.0 (10-bit HDR) へ変更しました。この変更は下記の関数に影響を及ぼします:
- love.graphics.setColor, love.graphics.getColor, love.graphics.setBackgroundColor, および love.graphics.getBackgroundColor
- SpriteBatch:setColor および SpriteBatch:getColor
- ParticleSystem:setColors および ParticleSystem:getColors
- love.graphics.clear
- love.graphics.newMesh, Mesh:setVertex, および Mesh:getVertex
- love.graphics.print, love.graphics.printf, love.graphics.newText, Text:set, Text:setf, Text:add, および Text:addf の色つきテキストによる異形。
- Shader:sendColor
- love.graphics.points
- ImageData:setPixel, ImageData:getPixel, および ImageData:mapPixel
- love.math.gammaToLinear および love.math.linearToGamma
- 高 DPI 機能において、正しい寸法と位置でグラフィックスを表示するために必要なコードの記述量を減らしました (多くの場合、一切不要になります)。
- love.graphics.print と関連関数でキャリッジリターンを無視するために更新。
- 'premultiplied' 方式の BlendAlphaMode を使わない場合は数式だけ動作してしまうので、'multiply' 方式の BlendModeはエラーになるよう変更。
- Shader:send の行列型異形において、デフォルトの行列の解釈方法を列優先ではなく、行優先へ変更。
- Canvas:newImageData の異形において Canvas で二次元ではないテクスチャ型を使用、またはミップマップがあるとき、 slice と mipmap インデックス引数で必要となる x/y/width/height を使えるように変更。
- Canvas が有効である場合に love.graphics, love.window, および love.event の一部 API でエラーが発生するよう変更。
- love.graphics.setCanvas の stencil=true (またはカスタムステンシル形式の Canvas) によりステンシル処理機能を Canvas を有効にするための変更。
- Mesh:setDrawRange で 'min' と 'max' の代わりに 'start' と 'count' 引数を使うように変更。
- love.image.newImageData として寸法指定の引数 (width, height) と PixelFormat を引数 (format) として扱えるように変更。
- love.window.setMode の 'vsync' フィールド、および構成ファイルの t.window フラグを変更。現在は整数の 0 を指定することで vsync を停止できます。
- Channel および love.event.push は、テーブルのシリアル化で非一次元テーブルを扱えるようになり、循環参照テーブルを検出できるように変更。さらに循環参照テーブルはスタック・オーバフローではなくエラーが発生するように修正されました。
- Source において再生または再生していないときは、一時停止、または停止ではなく、再生するよう変更。以降の Source:stop では、Source を停止すると巻き戻されます。
- love.audio.pause() において、この関数を呼び出して Source を一時停止したときに停止された Source リストを返すよう変更。
- Source のシーク動作を変更。各種の Source で境界を超えてシークする場合は仕様変更前と動作は同じです。
- love.timer.step において計算済みのデルタ時間を返すよう変更。
- メインループを返す関数である love.run および love.errorhandler を変更。これらは love が終了するまで呼び出されます。
- enet において 'enet' はグローバル空間から外すよう変更。
- love.keyboard.isDown および love.keyboard.isScancodeDown 無効な列挙型値を指定された場合はエラーになるよう変更。
- コマンドライン引数の処理方法に関する改善と更新。
- ゲームのソースディレクトリとして存在しないフォルダが指定された場合は、ゲーム未指定画面ではなくエラーを表示するよう起動シーケンスを更新
- Windows 版において 'love.exe --version' の動作を親コンソールへ表示するよう更新。
- Android の表示経路変更、およびスレッド内部処理で適用していた JIT コンパイルを禁止するための更新。
- 正常列挙型値のリストを表示するために不正列挙型値のエラーメッセージを更新。
- Source:seek が再生されていないときでも Source が動作するよう更新。
- love.math.random において数値分布の改良のために更新。
- 利用可能であるとき love.graphicsで OpenGL 3.3以降のコアプロファイルに対応するための更新。
- SpriteBatch は空き容量不足になったときに自動的に容量を確保するよう更新。
- Shader において OpenGL ES が利用できる場合の派生関数 (dFdx, dFdy, fwidth) を常時公開するよう更新。* シェーダーコードの変数名として VERTEX と PIXEL を使用可能にするためにシェーダーを更新。
- love.graphics.circle, love.graphics.ellipse, love.graphics.arc, および love.graphics.rectangle で使用する線分数の判定時に座標変換尺度を考慮するために更新。
- love.graphics.line へ不正値が指定されたときのエラーメッセージを更新しました。
- フォントグリフ生成におけるアンチ・エイリアシング品質の改善。
- Canvas:newImageData において、できる限り形式の近い Canvas と一致する ImageData の形式を返すよう更新。
- 未指定時に "@2x", "@3x" などのピクセル密度尺度係数がファイル名の末尾に不可されたものを扱えるようにするために love.graphics.newImage を更新。
- love.graphics の座標変換・ステートスタック深度を最大 64 から 128 へ拡張するための更新。
- ユーザーの判断でエラーメッセージをクリップボードにコピー可能にするためにデフォルトのエラーハンドラを更新。
- パスごとの複数テンプレート '?' 文字に対応するために love.filesystem.setRequirePath を更新。
- luasocket を version 3.0rc1 へ更新。
- love.joystick.loadGamepadMappings において空文字列を指定されたときにエラーにならないよう更新。
- love.joystick.setGamepadMapping において可能であれば、新規マッピングでコントローラの名称を使用するよう更新。
性能の改善
- 可能であれば、描画時にテクスチャ、図形、線、点の描画時の自動的に組み合わせて描画呼び出しをバッチ処理することにより性能の改善。
- Shader 無効時における Shader:send の性能を改善。
- LuaJIT の JIT コンパイラ有効時における love.math.randomNormal に実行性能を改善。
- 特に .zip/.love 内にあるファイルを読み取る場合において love.filesystem.lines および File:linesの性能を改善。
不具合修正
- エラーメッセージに非 UTF-8 バイトがあるとき、デフォルトのエラーハンドラでエラーが発生していた不具合を修正。
- Object モジュールが読み込まれていないスレッドへ love の Object を送信するときにメモリリークが発生した不具合を修正。
- peer:send の失敗時に enet でメモリリークが発生していた不具合を修正。
- Linux では必ず -1 を返すように os.execute を修正。
- WeldJoint, PrismaticJoint, および RevoluteJoint のデフォルト基準角度を修正。
- 内部 Fixture (固定具) が保持する既存の Shape (形状) を再利用するために Fixture:getShape を修正。
- MouseJoint:setFrequency で振動数 0 を設定すると、エラーにならずに異常終了する不具合を修正。
- ウィンドウ未作成時に love.system.setClipboardText および love.system.getClipboardText を呼び出すと、エラーにならずに異常終了する不具合を修正。
- Joystick:getGamepadMapping で xinput コントローラが正常に動作しなかった不具合を修正。
- love.joystick.setGamepadMapping の変換コードを修正。
- テキストレンダリング時の基線計算方法を修正。
- Shader:send および Shader:sendColor で配列にある最後の引数を無視していた不具合を修正。
- 対応時に、 VaryingTexCoords および love_ScreenSize のシェーダーが OpenGL ES の 'highp' になるよう修正。
- 座標変換スタックが空ではないとき、 love.graphics.pop の後に love.window.setMode を呼び出してしまうと異常終了する不具合を修正。
- ParticleSystem:setParticleLifetime で負数値が指定されたときにエラーが発生したのを修正。
- love.window.isMaximized の不具合を修正。
- ワイドレンジの Ogg Theora ファイルを扱うために Video 再生を修正。
- Video のシーク処理速度を修正。
- BezierCurve において特定の状況下でエラーにならず処理されてしまう不具合を修正。
- 新しい LuaJIT 2.1.0 ベータ版に収録されている luasocket をコンパイルした時の不具合を修正。