Ebitengine 2.6 リリースノート
v2.6.0
モニター
(#1835)
モニター関係の API が追加されました。ウィンドウを表示するモニターを指定したりすることができるようになります。
type MonitorType
func (*MonitorType) Name() string
func Monitor() *MonitorType
func SetMonitor(*MonitorType)
func AppendMonitors([]*MonitorType) []*MonitorType
マウスカーソルのパススルー
(#2511)
マウスカーソルをパススルーにするための API が追加されました。パススルーが有効になっているとき、 Ebitengine のウィンドウの背後にあるウィンドウが、クリックに対して反応するようになります。
新しいマウスカーソル形状
(#2476)
新しいマウスカーソルの形状が追加されました。サンプルとして examples/cursor
があります。
CursorShapeNESWResize
CursorShapeNWSEResize
CursorShapeMove
CursorShapeNotAllowed
Kage のピクセルモード
(#1431)
Kage にピクセルモードが追加されました。次のコメントがコンパイラディレクティブとして機能します。
//kage:unit texels
(テクセルモード、デフォルト)//kage:unit pixels
(ピクセルモード)
ピクセルモードの場合、 Kage シェーダで取り扱う単位が全てピクセルになります。ピクセルモードでは、Fragment
の第 2 引数がテクセルではなくピクセルになります。また、次の関数がテクセルではなくピクセルを取り扱うようになります:
func imageSrcNAt(pos vec2) vec4
func imageSrcNUnsafeAt(pos vec2) vec4
func imageDstRegionOnTexture() (vec2, vec2)
func imageSrcRegionOnTexture() (vec2, vec2)
後方互換性のためにデフォルトではテクセルモードになっています。新しい Kage プログラムではピクセルモードを使用することを強く推奨します。
Kage と大きさの異なる描画元画像
(#1870)
Kage シェーダを使った描画に、大きさの異なる描画元画像を渡せるようになりました。シェーダがピクセルモードで、かつ DrawTrianglesShader
のときにのみ有効です。
Kage の新しい API
(#1870)
Kage が大きさの異なる描画元画像を取り扱えるようになったことに伴い、 Kage シェーダに新しい API が追加されました。関数の戻り値はテクセルまたはピクセルで、指定されたモードによります。
func imageDstOrigin() vec2
: 描画先テクスチャの左上座標を返す。func imageDstSize() vec2
: 描画先テクスチャの大きさを返す。func imageSrcNOrigin() vec2
: N 番目の描画元テクスチャの左上座標を返す。func imageSrcNSize() vec2
: N 番目の描画元テクスチャの大きさを返す。
DirectX 11 ドライバ
(#2613)
DirectX 11 ドライバが実装されました。今までの DirectX 12 ドライバに代わってデフォルトで使用されます。 DirectX 11 ドライバは比較的安定しており、これにより DirectX 12 ドライバ由来のクラッシュがなくなりました (#2198)。また OBS などでキャプチャできなかった問題などが解決しました (#2148)。
EBITENGINE_DIRECTX
環境変数に version=12
を指定することで、 DirectX 12 ドライバを使用することもできます。
IME によるテキスト入力 (試験版)
(#1029)
IME によるテキスト入力を行うための実験的パッケージ exp/textinput
が追加されました。現在のところ macOS とブラウザでのみ動きます。サンプルとして examples/textinput
があります。まだ試験版なので、 API が今後変わるおそれがあります。
非互換な変更
- ビルドタグ
wayland
は廃止されました (#2759)。 - デスクトップで OpenGL を使う場合、バージョン 3.2 以上が必須になりました。
- デスクトップまたはモバイルで OpenGL ES を使う場合、バージョン 3 以上が必須になりました。
- ブラウザで WebGL 2 が必須になりました。
バグ修正
このリリースはバージョン 2.5 にあった全てのバグ修正を含みます。
非推奨 API
次の API が非推奨になりました:
2.5 以前 | 2.6 以後 |
---|---|
ebiten.MaxIndicesCount | 該当なし |
(*audio.Player).Current | (*audio.Player).Position |
(*audio.Player).Seek | (*audio.Player).SetPosition |
text.BoundString | golang.org/x/image/font.BoundString か、または golang.org/x/image/font.Metrics (Ascent と Descent ) と golang.org/x/image/font.MeasureString |
imageDstRegionOnTexture (Kage) | imageDstOrigin または imageDstSize |
imageDstTextureSize (Kage) | (該当なし。ピクセルモードでは不要のはず) |
imageSrcRegionOnTexture (Kage) | imageSrc0Origin または imageSrc0Size |
imageSrcTextureSize (Kage) | (該当なし。ピクセルモードでは不要のはず) |
その他
(*ColorScale).ScaleWithColorScale(ColorScale)
が追加されました (#2687)。- iOS でキーボードがサポートされました (#1090)。
- Kage シェーダの型検査が厳密になりました (#2256、#2712)。
- ビルドタグ
ebitenginegldebug
が追加されました。このビルドタグが指定されたとき、呼び出された OpenGL 関数をすべてログとしてダンプします (#2650)。
v2.6.1
バグ修正
- macOS で複数モニターを使用したときにクラッシュすることがあった問題の修正 (#2794)。
ebiten.SetWindowIcon(nil)
がアイコンをリセットしなかった問題の修正 (#2796)。
v2.6.2
バグ修正
ebiten.RunGame
を呼ぶ前に作られたebiten.Image
の内部状態が GC で解放されなかった問題の修正 (#2805)。
v2.6.3
バグ修正
- Kage シェーダーで、ブラウザで整数リテラルを配列に用いるとエラーになる問題の修正 (#2840)。
EBITENGINE_SCREENSHOT_KEY
環境変数およびEBITEN_INTERNAL_IMAGES_KEY
環境変数で取得できるスクリーンショットのファイル名フォーマットが間違っていた問題の修正 (#2844)。- Kage シェーダーで、インデクサに使用した変数が未使用変数とみなされてしまう問題の修正 (#2848)。
v2.6.4
バグ修正
- 最新の gomobile で ebitenmobile が動かなかった問題の修正 (#2887)。
v2.6.5
バグ修正
- 32bit Windows 上で Go 1.22 と DirectX 12 使用時に正しく描画できなかった問題の修正 (#2867)。
SetVsyncEnabled(false)
とSetScreenClearedEveryFrame(false)
使用時に CPU がビジー状態になる問題の修正 (#2890)。
v2.6.6
バグ修正
- Intel macOS 上で Go 1.22 でビルドするとアプリケーションが起動しなかった問題の修正 (#2908)。
v2.6.7
バグ修正
- Android でゲームパッドのトリガーボタンが正しく動かない事があった問題の修正 (#2598)。