Ebitengine 2.4 リリースノート
v2.4.0
Windows での「真の Pure Go」
Ebitengine は元々 GLFW の DLL を含んでおり、動的に展開していました。これは移植性という面では問題がありました。 v2.4 では、 GLFW の部分は Windows の Pure Go に書き直されました。このため、 Ebitengine は Windows では真の Pure Go となりました。 v2.4 から、 Ebitengine のアプリケーションは Arm Windows のネイティブバイナリとしてビルドすることが出来ますが、これはあまりテストされていません。また、この修正は Xbox のような他の Windows に似たシステムのための準備でもあります。
アンマネージドな画像
新しい API NewImageWithOptions
と NewImageFromImageWithOptions
が追加されました。次のオプションが指定できます:
この変更に伴い、ビルドタグ ebitenexternaldll
は削除されました。
Unmanaged
は画像がアンマネージドかどうかを表します。デフォルト (ゼロ値) は false で、画像がマネージドであることを意味します。アンマネージドな画像は内部自動テクスチャアトラスには決して載りません。普通の画像は内部テクスチャアトラスの一部分で、 Ebitengine 内で配置は自動的に行われます。Unmanaged
はパフォーマンスやメモリなどの理由で、画像に対してより細かいコントロールが欲しい時に便利です。PreserveBounds
は新しい画像が与えられた画像と同じ Bounds を持つかどうかを表します。デフォルト (ゼロ値) は false で、新しい画像の左上が (0, 0) に調整されることを意味します。
リサンプリングなしのオーディオデコード
(#2055)
リサンプリングを行わないでデコードする新しいオーディオ API が追加されました。 Decode
の暗黙的なリサンプリングは便利であるものの、予想外に遅いことがありました。 DecodeWithoutResampling
は実行コストに関してより明示的です。
また、ソースのリサンプルを明示的に行う API も追加されました:
デバッグ情報
(#2177)
新しい関数 ebiten.ReadDebugInfo
と新しい構造体 ebiten.DebugInfo
が追加されました。これらの API から取得できるのは、今の所現在のグラフィックライブラリの種類だけです。
その他の新しい API
ebiten.IsStandardGamepadAxisAvailable
(#2040)ebiten.IsStandardGamepadButtonAvailable
(#2040)(*ebiten.Image).ReadPixels
(#1995)ebitenutil.DrawCircle
(#2163)ebitenutil.NewImageFromFileSystem
(Go 1.16 以降で利用可能) (#1948)inpututil.AppendJustReleasedTouchIDs
(#2057)inpututil.TouchPositionInPreviousTick
(#2057)
API 名の変更
これらの API が既存の API のエイリアスとして追加されました。既存の API はまだ利用可能ですが、非推奨になりました。
ebiten.SetMaxTPS
→ebiten.SetTPS
ebiten.MaxTPS
→ebiten.TPS
ebiten.CurrentFPS
→ebiten.ActualFPS
ebiten.CurrentTPS
→ebiten.ActualTPS
(*ebiten.Image).ReplacePixels
→(*ebiten.Image).WritePixels
- 環境変数
EBITENGINE_OPENGL
また、環境変数やビルドタグの名前が変更になりました。古いものはまだ利用可能ですが、非推奨です:
- 環境変数
EBITEN_SCREENSHOT_KEY
→EBITENGINE_SCREENSHOT_KEY
- 環境変数
EBITEN_INTERNALIMAGES_KEY
→EBITENGINE_INTERNAL_IMAGES_KEY
- 環境変数
EBITEN_GRAPHICS_LIBRARY
→EBITENGINE_GRAPHICS_LIBRARY
- 環境変数
EBITEN_DIRECTX
→EBITENGINE_DIRECTX
- ビルドタグ
ebitendebug
→ebitenginedebug
- ビルドタグ
ebitensinglethread
→ebitenginesinglethread
Kage (Ebitengine のシェーディング言語) の改善
NewShader
は組み込み関数の引数や演算子に関して、型をより厳密にチェックするようになりました (#2184、 #2187)。
また、これらの組み込み関数が追加されました:
DirectX パフォーマンスの改善
DirectX ドライバが、バージョン 2.3 に比べて 2-3 倍早く動くようになりました。
バグ修正
このリリースはバージョン 2.3 にあったバグ修正全てを含みます。
(*ebiten.Image).Set
が時々正しく動いていなかった問題の修正 (#2154、 #2176、 #2180)。- Firefox で、 HTTPS ではないコンテキストでゲームパッドを使用しようとしたときにクラッシュした問題の修正 (#2100)。
- その他、細かい修正
破壊的変更
- go2cpp のサポートは廃止されました (#2126)。
- ビルドタグ
ebitenwebgl1
は廃止されました。代わりに環境変数EBITENGINE_OPENGL
をwebgl1
という値で使用してください。
v2.4.1
バグ修正
- Windows でメモリリークによってアプリケーションがクラッシュすることがあった問題の修正 (#2292、 #2249)。
- フルスクリーンから戻る時にウィンドウのサイズが正しく戻らなかった問題の修正 (#2295)。
ebitenutil.NewImageFromReader
がモバイル上で利用できなかった問題の修正 (#2301)。
v2.4.2
バグ修正
- Kage の組み込み関数
pow
の引数チェックが間違っていた問題の修正 (#2304)。 go mod vendor
による Ebitengine のベンダリングが動かなかった問題の修正 (#2306)。- Snap サンドボックス下で、アプリケーションがゲームパッド使用時にクラッシュする可能性があった問題の修正 (#2307)。
v2.4.3
バグ修正
- macOS で、ワイヤレス Xbox コントローラーが正しく動かなかった問題の修正 (#266)。
- Windows で、ヘッドホンを抜いたときにアプリケーションがクラッシュした問題の修正 (#2314)。
- Windows で、ヘッドホンを再度差してもオーディオ出力が切り替わらなかった問題の修正 (#2317)。
v2.4.4
バグ修正
v2.4.5
バグ修正
- Android で、
DrawImage
が呼ばれた後に、一部分の領域に対してWritePixels
が呼ばれるとアプリケーションがクラッシュした問題の修正 (#2346)。
v2.4.6
バグ修正
- Android で、アプリケーションを切り替えた時に、特定の条件下で、描画された画像が予期せず消えてしまった問題の修正 (#2354)。
- スクリーン上での
(*ebiten.Image).Set
で、他に描画コマンドがない場合に正しく動かなかった問題の修正 (#2362)。
v2.4.7
バグ修正
- Windows で、 Ebitengine アプリケーションが「アクセス拒否」エラーで起動に失敗することがあった問題の修正 (#2366)。
v2.4.8
バグ修正
- 違う Goroutine 上でアンマネージドな画像を作るとノイズが生じていた問題の修正 (#2390)。
v2.4.9
バグ修正
- iOS で
ebiten.SetVsyncEnabled
を呼ぶとハングする問題を修正 (#2407)。 - 間接的な依存ライブラリ
golang.org/x/text/language
にセキュリティ問題 (GO-2022-1059) があったためアップデート (#2411)。
v2.4.10
バグ修正
WritePixels
が dispose 済みの画像に対して呼ばれることで Ebitengine アプリケーションがクラッシュした問題の修正 (#2423)。
v2.4.11
バグ修正
(*Image).Set
を呼んだ後に部分画像に対してAt
で色を取得した場合、予期せぬ色になっていた問題を修正 (#2428)。
v2.4.12
バグ修正
- macOS 13 でフルスクリーン化がうまく動かなかった問題の修正 (#2437)。
v2.4.13
バグ修正
- Windows で、いくつかの古いグラフィックスカードで Ebitengine アプリケーションがクラッシュした問題の修正 (#2447)。
- Windows で、非効率的なソフトウェアレンダラが予期せず使われることがあった問題の修正 (#2459)。
v2.4.14
バグ修正
- Windows で #2447 の修正の影響でクラッシュしていた問題の修正 (#2466、 #2486)。
- Windows でファイルをウィンドウにドロップしたときにクラッシュする問題の修正 (#2480)。
- マウスのホイールを素早くスクロールしたときに、
ebiten.Wheel
が値を取りこぼすことがあった問題の修正 (#2487)。
v2.4.15
バグ修正
- macOS 13 でフルスクリーンで FPS が不安定だった問題の修正 (#2495)。
v2.4.16
バグ修正
- スクリーンに対する
Fill
とSet
をこの順で行った時、正しくスクリーンを更新しないことがあった問題の修正 (#2542)。
v2.4.17
バグ修正
ebiten.RunGame
以前に呼ばれた画像の関数が、コンカレントセーフでなかった問題の修正 (#2580)。
v2.4.18
バグ修正
- テクスチャパッキングのバグで Ebitengine アプリケーションがクラッシュしうる問題の修正 (#2584)。