0.10.0 (日本語)
LÖVE 0.10.0 のコードネームは Super Toast (スーパー・トースト) です。現在公開中です。
Contents
0.9.2 からの変更点
機能追加
- iOS 移植版の追加。
- Android 移植版の追加。
- モバイル機器で加速度センサーにおける値の読み取り対応を追加。加速度センサーは 3 軸のジョイスティックとして扱われます。
- love.conf へ t.accelerometerjoystick フラグを追加。モバイル機器において false の場合は加速度センサーによるジョイスティックは無効になります。
- love.conf (t.window.srgb からの変更) へ t.gammacorrect フラグを追加。対応している場合は、有効にするとガンマ補正表示をシステム全体で有効にします。
- love.graphics.newVideo による Ogg Theora videos 形式の動画再生への対応を追加。
- love.video モジュールの追加。画面上で動画を再生するために使用しません (詳細は Video オブジェクトを参照してください)。
- love.touch モジュールの追加。重要なことですが LÖVE 0.9.2 の Android および iOS 移植版とは touch の実装は異なることに注意してください。
- love.touch.getTouches の追加。
- love.touch.getPosition の追加。
- love.touch.getPressure の追加。
- love.touchpressed, love.touchreleased, および love.touchmoved の追加。
- love.system.vibrate の追加。
- love.filesystem.setRequirePath および love.filesystem.getRequirePath の追加。
- love.event.quit へ任意のプログラム終了状態を表す番号 (エラーレベル) を指定するための引数を追加。
- love.filedropped および love.directorydropped イベントのコールバック関数を追加。
- モバイル機器のオペレーティングシステムで実行しているときにアプリがメモリ不足になった場合に呼び出される love.lowmemory イベントのコールバック関数を追加。
- 利用者がテキストを編集 (例えば、かな漢字変換)しているときに呼び出される love.textedited イベントのコールバック関数を追加。
- love.wheelmoved イベントのコールバック関数を追加 (love.mousepressed で使用されていた "wu" および "wd" 定数からの変更)。
- love.mouse.hasCursor の追加。
- button イベントにおいてタッチ打鍵が期限かどうかを示すために love.mousepressed および love.mousereleased へブーリアン引数を追加。
- love.keyboard.isScancodeDown の追加。
- love.keyboard.setTextInput へ選択制の引数 x / y / width / height を追加。システムでスクリーン・キーボードを表示する場合にテキスト領域を避けることができるように指定します。
- Source:getType (Source:isStatic からの変更) の追加。
- Source:getDuration および Decoder:getDuration の追加。
- love.image.newImageData の異形である width/height の生ピクセルデータを有するために選択制の文字列引数を追加。
- love.graphics.ellipse の追加。
- love.graphics.rectangle に対する丸角の対応を追加。
- love.graphics.points (replaces love.graphics.point からの変更) の追加。
- love.graphics.intersectScissor の追加。
- 事前乗算透過により描画されるオブジェクトの色の取り扱い方を示すために love.graphics.setBlendMode へ選択制の引数を追加。
- 新しい組み込みシェーダー変数: "mat3 NormalMatrix" の追加。
- love.graphics.getSupported の追加 (love.graphics.isSupported からの変更)。
- love.graphics.getSystemLimits の追加 (love.graphics.getSystemLimit からの変更)。
- love.graphics.stencil, love.graphics.setStencilTest, および love.graphics.getStencilTest の追加 (love.graphics.setStencil からの変更)。
- love.graphics.isActive の追加。
- love.graphics.clear へ color 引数を追加。以後、背景色の値は使用されません。
- love.graphics.discard の追加。
- love.graphics.isGammaCorrect の追加。
- WrapMode へ "clampzero" を追加
- love.graphics.newImage(filename, {mipmaps={mip1, mip2, ...}}) により、画像作成時にカスタム・ミップマップを指定する機能を追加。
- Image:refresh および Canvas:newImageData へ選択制の引数 x / y / width / height を追加。
- Image:getFlags の追加。
- 1 および 2 チャンネル形式の Canvas 形式を追加: r8, rg8, r16f, rg16f, r32f, および rg32f です。
- 複数 Canvas 表示を使用する場合に Canvas ごとに異なる形式を扱えるようにするための対応を追加。
- GraphicsFeature へ "multicanvasformats" 定数を追加。
- OpenGL ES 2 および 3 への対応を追加。
- システム対応時に ETC, EAC, PVRTC, および ASTC 形式による圧縮済みテクスチャの読み込みを行うための対応を追加。
- Mesh へ love.graphics.newMesh の新規異形によるカスタム頂点属性を追加。
- Mesh:setVertexAttribute および Mesh:getVertexAttribute の追加。
- Mesh:getVertexFormat の追加。
- Mesh:setVertices へ選択制の引数l 'startvertex' を追加。
- love.graphics.newMesh および Mesh:setVertices で Data オブジェクトを受理する機能を追加。
- Mesh:flush の追加。
- Mesh:setAttributeEnabled および Mesh:isAttributeEnabled の追加。
- Mesh:attachAttribute の追加。
- SpriteBatch:attachAttribute の追加。
- Shader:sendColor の追加。
- シェーダー関数の新規追加: gammaCorrectColor, gammaToLinear, および linearToGamma です。また、関数は '正確' かつ '高速' な異形を有しています。
- Text オブジェクトおよび love.graphics.newText の追加。
- 文字ごとに異なる色指定を love.graphics.print, love.graphics.printf, および Text オブジェクトへ追加。
- BMFont 形式のビットマップ・フォント・ファイルへの対応を love.graphics.newFont および love.font に追加。
- TrueType/OpenType および BMFont 形式のフォントに対する字詰めの対応を追加。
- TrueType 読み込み時における選択制のフォント・ヒンティング引数を love.graphics.newFont へ追加。
- すべての描画されるグリフへ追加の字間隔適用するために、 love.graphics.newImageFont へ選択制の字間隔引数を追加。
- Font:setFallbacks の追加。
- love.window.maximize の追加。
- love.window.close の追加。
- love.window.requestAttention の追加。
- love.window.setDisplaySleepEnabled および love.window.isDisplaySleepEnabled の追加。
- BezierCurve:renderSegment および BezierCurve:removeControlPoint の追加。
- BezierCurve:getSegment の追加。
- love.math.compress および love.math.decompress の追加。
- Channel:performAtomic の追加。
API の変更
- love.mousepressed, love.mousereleased, および love.mouse.isDown で使用する定数をボタンの名称からボタンの番号へ変更。
- love.keypressed から love.keypressed(key, scancode, isrepeat) へ変更。
- love.keyreleased から love.keyreleased(key, scancode) へ変更。
- Font:getWrap の第二返値を二行からなるテキストを有するテーブルへ変更。
- love.graphics.newImage において選択制の第二引数をフラグのテーブルへ変更 (フラグは "mipmaps" および "linear" です)。
- love.graphics.newMesh の標準的な異形に対して引数を変更。それらは現在のところ love.graphics.newMesh(vertices [, drawmode, usage]) および love.graphics.newMesh(vertexcount [, drawmode, usage]) です。
- ImageData:encode で FileData オブジェクトを返すために変更。 ImageData:encode の第一引数は符号化を行う形式の指定であり、選択制の第二引数は書き込み先のファイル名です。
名称変更された API
- 全画面表示方式の名称を "normal" から "exclusive" へ名称変更。
- DistanceModel 定数において "inverse clamped", "linear clamped", および "exponent clamped" から "inverseclamped", "linearclamped", および "exponentclamped" へ名称変更。
- 混合方式において "additive", "subtractive", および "multiplicative" から "add", "subtract", and "multiply" へ名称変更。
- キー定数およびスキャンコード においてスペースキーの表記を " " から "space" へ名称変更。
- File:eof から File:isEOF へ名称変更。
- Canvas:getImageData から Canvas:newImageData へ名称変更。
- love.image において CompressedData 型から CompressedImageData へ名称変更。
機能廃止
- love.filesystem.getDirectoryItems の異形に対してコールバックを廃止。
- love.mousepressed に対して "wu" および "wd" 定数を廃止 (love.wheelmoved へ変更)。
- 名前付きボタン定数の廃止 (ボタンの番号へ変更)。
- Source:isStatic (Source:getType へ変更) の廃止。
- PNG, JPEG, TGA, および BMP を除くすべてのファイル形式 (非圧縮テクスチャ) への対応を廃止。
- ImageData:encode から JPEG 符号化の対応を廃止。
- love.graphics.point の廃止 (love.graphics.points へ変更)。
- love.graphics.setPointStyle および love.graphics.getPointStyle の廃止。
- love.graphics.isSupportedの廃止 (love.graphics.getSupported へ変更)。
- love.graphics.getSystemLimitの廃止 (love.graphics.getSystemLimits へ変更)。
- love.graphics.setStencil の廃止 (love.graphics.stencil および love.graphics.setStencilTest)。
- GraphicsFeature から "canvas", "shader", "npot", "subtractive", および "mipmap" 定数を廃止 (現在のところ機能は常時対応しています)。
- GraphicsFeature から "multicanvas" 定数を廃止 (代わりに love.graphics.getSystemLimits を使用してください)。
- GraphicsFeature から "srgb" 定数を廃止 (代わりに love.graphics.isGammaCorrect または love.graphics.getCanvasFormats().srgb を使用してください)。
- love.window.setMode における "srgb" フラグ、および love.conf に対して t.window テーブルの廃止 (t.gammacorrect へ変更)。
- BlendMode において "premultiplied" 方式を廃止 (現在、 love.graphics.setBlendMode("alpha", "premultiplied") は同じ動作を行います)。
- Canvas:getPixel (代わりに Canvas:newImageData を使用してください)
- Canvas:clear の廃止 (代わりに love.graphics.clear を使用してください)。
- Mesh:getVertices の廃止。
- Mesh:setVertexColors および Mesh:hasVertexColors の廃止 (代わりに Mesh:setAttributeEnabled("VertexColor", enable) を使用してください)。
- LOVE 0.9.1 および 0.9.2 で廃止を予告していた関数を廃止:
- love.graphics.getMaxImageSize および love.graphics.getMaxPointSize の廃止 (love.graphics.getSystemLimits へ変更)。
- Mesh:setImage, Mesh:getImage, SpriteBatch:setImage, SpriteBatch:getImage, ParticleSystem:setImage, および ParticleSystem:getImage の廃止 (set/getTexture へ変更)。
- SpriteBatch:bind および SpriteBatch:unbind の廃止。
- Canvas:getFSAA と love.conf における "fsaa" フラグおよび love.window.setMode の廃止 (Canvas:getMSAA および "msaa" フラグへ変更)。
- GraphicsFeature における "dxt" および "bc5" 定数の廃止 (love.graphics.getCompressedImageFormats へ変更)。
- GraphicsFeature における "hdrcanvas" 定数を廃止 (love.graphics.getCanvasFormats へ変更)。
- love.window.getWidth, love.window.getHeight および love.window.getDimensions の廃止 (代わりに love.graphics.getWidth, love.graphics.getHeight, love.graphics.getDimensions または love.window.getMode を使用してください)。
不具合修正
- utf8.char の修正。
- 結合型実行形式による実行可能形式の検出方法を修正。
- コルーチンで使用後に Lua コールバック関数を格納しているオブジェクトに対してガベージコレクション処理が行われたときに異常終了する不具合を修正。
- コルーチンで使用された場合におけるWorld:getCallbacks および World:getContactFilter の不具合を修正。
- World:destroy が一度も呼ばれていない場合に起こる love.physics のメモリ・リークを修正。 World でガベージ・コレクションが行われたとき body, Dixtures, および Joint と関連するものは全て破棄されるようになりました。
- love.keyboard.getKeyFromScancode において不正なスキャンコードを指定された場合に異常終了する不具合を修正。
- 8-bit WAV ファイルにおける復号化方法の修正。
- libvorbis の特定のバージョンを使用している場合に、 ogg ソースのストリーミングを巻き戻すと異常終了する不具合を修正。
- love.audio.stop() でストリーミングを行っている Sources が巻き戻されない不具合を修正。
- Canvas 作成時に非対応の MSAA 値が使用された場合に Canvas に対するステンシル・バッファを修正。
- エラー発生して関数へ渡された場合に、以前の Canvas を復旧するために Canvas:renderTo を修正。
- love.graphics.draw(canvas) において Canvas 有効時に Lua のエラーが発生した場合の不具合を修正。
- getVertexMap において頂点マップが設定されていない場合に、空テーブルではなく、 nil を返すために修正。
- love.graphics.getColorMask の不具合を修正。
- ParticleSystem:setQuads または ParticleSystem:setTexture 使用時においてパーティクルに対する既定の支距離を修正。
- love.graphics.shear おいて全ての love.graphics 変換が初期状態に戻されてしまう不具合を修正。
- BlendMode の "add" および "subtract" において Canvas / 画面の透過を変更しないように修正。
性能の改善
- World:rayCast および World:queryBoundingBox における性能の改善。
- LineStyle で "smooth" を使用している場合に love.graphics.line および線描関数の性能を改善。
- 複数のマトリックス使用時に Shader:send における性能の改善。
- LuaJIT の JIT コンパイラが利用可能な場合に効率的な FFI コードを使用することで ImageData およびメソッド SoundData の性能を改善。
- LuaJIT の JIT コンパイラが利用可能な場合に love.math.noise, love.math.gammaToLinear, love.math.linearToGamma, love.math.random, および RandomGenerator:random の性能を改善。
その他の変更
- 互換性の警告通知でメッセージ・ボックスの使用および love.conf で指定されたバージョンを示すように更新。
- main.lua の読み込み前に互換性の警告通知を表示するように更新。
- tostring(table) と類似するポインタ値を出力するために love オブジェクトのメタ・メソッドを __tostring するように更新。
- World:setCallbacks, World:setContactFilter, World:queryBoundingBox, および World:rayCast の更新として引数型検査の改良。
- 自動的に love.filesystem をスレッドで読み込むために更新。
- love.filesystem に対して標準でシンボリックリンクを有効にするための更新。
- love.math.setRandomSeed および RandomGenerator:setSeed で最良の結果を生成するために最初に random() を何回か呼び出すために更新。
- love.math.random および RandomGenerator:random で一般的かつ少し最良の結果を生成するための更新。
- Source メソッドにおいてモノラルではない Source の場合に報告なしで失敗するのではなくエラーに対して空間のオーディオを扱うために更新。
- love.math.noise における三次元および四次元の異型で特許問題を回避するために Simplex ノイズではなく Perlin ノイズを使用するために更新。
- love.graphics.newImageFont で間隔を分離子ピクセルとして扱わないようにするために更新。
- メモリの使用量を少なくするために標準フォントを更新。
- love.graphics.printf および Font:getWrap においてテキストの加工動作を改善するために更新。
- love.graphics.print および love.graphics.printf で引数 x と y を自動的に丸め込まないために更新。
- love.graphics.newImage でエラーメッセージの一部をより記述的にするために更新。
- ガンマ補正表示有効時に love.math.gammaToLinear の色値を love.graphics の配色関数へ自動的に適用するために更新。
- ガンマ補正表示有効時にCanvasFormat の "normal" において内部処理で "rgba8" ではなく "srgb" を使用するために更新。
- ParticleSystem, SpriteBatch, および Mesh を含む全ての描画オブジェクトに対して、あるいは各頂点または各スプライトで配色を使用していても、 love.graphics.setColor で影響を与えるために更新。
- 標準の全画面表示の種類を "exclusive" ではなく "desktop" にするために更新。
- LOVE のシステム実行最小要件を OpenGL 2.1 または OpenGL ES 2 対応にするための更新。
- screen_coords.y において 0 は画面の最下部ではなく最上部であるため ピクセル・シェーダ関数を更新。
- Image でミップマップを使用するために必要となる mipmaps フラグ を true へ設定するための更新。
- Image で二の累乗ではない尺度のミップマップを使用可能にするための更新。