目次 - SDL 2.0の履歴
SDL 2.0の履歴
2.0.18の変更点
全般
Windows
- Windowsリモートデスクトップでの相対マウス移動の改良
- ネイティブのIME UIコンポーネントを表示するSDL_HINT_IME_SHOW_UIヒントの追加 (デフォルトはOFF)
Windows/UWP
- UWPアプリケーションでのコントローラー対応の改良のため, XInputの代わりにWGIを使用する
Linux
- スクリーンセーバーが無効のときシステムが表示するアクティビティ名を設定するSDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAMEヒントの追加
- /dev/input/js* と /dev/input/event* のどちらをジョイスティックとして使用するかを決めるSDL_HINT_LINUX_JOYSTICK_CLASSIC ヒントの追加
- ユーザが指定したデバイスを通常のジョイスティックの検知に追加するSDL_HINT_JOYSTICK_DEVICEヒントの追加
- Linuxのスレッド優先度を詳細に設定するSDL_LinuxSetThreadPriorityAndPolicy()の追加
Android
- Android 8.1以降でAAudioを使用するオーディオ再生と録音に対応
- Steamコントローラーへの対応はデフォルトで無効となった. これはSDL_Init()を呼ぶ前にSDL_HINT_JOYSTICK_HIDAPI_STEAMヒントを"1"にすると有効にできる.
Apple Arcade
iOS
- 実際のBluetoothマウスのイベントを獲得するには, アプリケーションのInfo.plistのUIApplicationSupportsIndirectInputEventsキーは真でなければならないことをドキュメントに追加
- Steamコントローラーへの対応はデフォルトで無効となった. これはSDL_Init()を呼ぶ前にSDL_HINT_JOYSTICK_HIDAPI_STEAMヒントを"1"にすると有効にできる.
2.0.16の変更点
全般
Windows
Linux
- Waylandへの対応を大幅に向上
- Pipewireを使った音声出力とキャプチャを追加
- PulseAudioによる録音がモニタデバイスを含むか否かを選択するSDL_HINT_AUDIO_INCLUDE_MONITORSヒントの追加
- 音声コントロールパネルにアプリケーションの役割を記述するSDL_HINT_AUDIO_DEVICE_STREAM_ROLEヒントの追加
Android
iOS
- iOS 14.1以降でマウスの相対モードに対応
- XboxシリーズXコントローラへの対応を追加
tvOS
2.0.14の変更点
全般
- HIDAPIコントローラドライバにPS5 DualSenseとXbox Series X コントローラの対応を追加
- パドルと新しいボタンのためのゲームコントローラ定数の追加
- 新たな情報の獲得のためのゲームコントローラ関数の追加:
- PS5コントローラ用HIDAPIを使用するか否かを選択するSDL_HINT_JOYSTICK_HIDAPI_PS5ヒントの追加
- 新たな情報を獲得するためのジョイスティック関数の追加:
- アプリケーションが仮想ジョイスティックを生成するためのAPIの追加:
- センサー一覧への排他的アクセスを保障するSDL_LockSensors()とSDL_UnlockSensors()の追加
- ハンドル型コントローラのエフェクト再生を行うSDL_HAPTIC_STEERING_AXISの追加
- マウスの相対移動量をディスプレイのDPIとレンダラーの論理サイズのどちらを基準にするかを決めるSDL_HINT_MOUSE_RELATIVE_SCALINGヒントの追加
- 現代的なウィンドウマネージャとの互換性を高めるため, SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSSのデフォルト値を偽とした
- アプリケーションの現在のロケールを設定するSDL_GetPreferredLocales()の追加
- アプリケーションのロケールのデフォルトを上書きするSDL_HINT_PREFERRED_LOCALESヒントの追加
- システムのデフォルトブラウザでURLを開くSDL_OpenURL()の追加
- サーフェイスがランレングス圧縮を使用しているかを得るSDL_HasSurfaceRLE()の追加
- SDL_SIMDAlloc()で得たメモリを再取得するSDL_SIMDRealloc()の追加
- スレッドセーフな方法で最後のエラーを得られるSDL_GetErrorMsg()の追加
- SDL_crc32(), SDL_wcscasecmp(), SDL_wcsncasecmp(), SDL_trunc(), SDL_truncf()の追加
- RGBのより明確な名称の追加. 例: SDL_PIXELFORMAT_XRGB8888, SDL_PIXELFORMAT_XBGR8888など
2.0.12の変更点
全般
Windows
- gccでビルドしたアプリケーションでrelease SDL DLLを使うとクラッシュする問題を修正
- 2.0.10のイベントハンドリングのパフォーマンス低下を修正
- SDL_SetThreadPriority()がUWPアプリケーションに対応
Linux
- 新しいX11ウィンドウのビジュアルIDを指定するSDL_HINT_VIDEO_X11_WINDOW_VISUALIDヒントの追加
- デフォルトでX11がGLXとEGLのどちらを使用するかを指定するSDL_HINT_VIDEO_X11_FORCE_EGLヒントの追加
iOS / tvOS / macOS
iOS/ tvOS
- Bluetooth Steamコントローラのゲームコントローラとしての対応を追加
tvOS
Android
- デバイスのAPIレベルを戻すSDL_GetAndroidSDKVersion()の追加
- OpenSL-ESを使用した録音の対応を追加
- Bluetooth Steamコントローラのゲームコントローラとしての対応を追加
- アプリがバックグラウンドになる, または終了するとき稀にクラッシュする問題の修正
2.0.10の変更点
全般
- SDL_RW*マクロは2.0.10以降は関数となる
- 現在のCPUのSIMD命令用にメモリを確保するSDL_SIMDGetAlignment(), SDL_SIMDAlloc(), SDL_SIMDFree()関数の追加
- SDLレンダリングAPIの引数を浮動小数点で指定するSDL_RenderDrawPointF(), SDL_RenderDrawPointsF(), SDL_RenderDrawLineF(), SDL_RenderDrawLinesF(), SDL_RenderDrawRectF(), SDL_RenderDrawRectsF(), SDL_RenderFillRectF(), SDL_RenderFillRectsF(), SDL_RenderCopyF(), SDL_RenderCopyExF()関数の追加
- タッチデバイスがタッチスクリーン, 相対座標または絶対座標のトラックパッドとなるかを得るSDL_GetTouchDeviceType()関数の追加
- パフォーマンス向上のため, SDLレンダリングAPIはバッチレンダリングをデフォルトとした
- ネイティブレンダリングとSDLレンダリングを混合して使っている場合に, バッチレンダリングコマンドを強制的に実行させるSDL_RenderFlush()関数の追加
- レンダリングAPIをバッチ処理するか否かを制御するSDL_HINT_RENDER_BATCHINGヒントの追加. レンダラーを生成するとき, 使用するドライバを指定しなければ, デフォルトは"1"である.
- デバッグ用にSDLイベントのログ出力を有効にするSDL_HINT_EVENT_LOGGINGヒントの追加
- ジョイスティックとゲームコントローラーをバインドするために読み込むファイルを指定するSDL_HINT_GAMECONTROLLERCONFIG_FILEヒントの追加
- SDLがタッチイベントとマウスイベントを統合して扱うか否かを選択するSDL_HINT_MOUSE_TOUCH_EVENTSヒントの追加
- 潜在的なセキュリティ上の脅威に対応するため, 不正なWAVEファイルとBMPファイルの処理を改善
Linux
- Waylandを採用し, Mirビデオドライバを削除
iOS / tvOS
- iOS 13とtvOS 13でXBoxとPS4の無線コントローラに対応
- Bluetoothキーボードを使ったテキスト入力に対応
Android
- OpenSL ESを使用した低遅延オーディオの追加
- SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCHヒントの廃止 (SDL_HINT_MOUSE_TOUCH_EVENTSヒントとSDL_HINT_TOUCH_MOUSE_EVENTSヒントに置き換えられた)
SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH = 1は, 2つのヒントを0とする設定と置き換えなければならない.
SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH = 0は, 2つのヒントを1とする設定と置き換えなければならない.
- アプリがポーズされたときイベントループをブロックするか否かを選択するSDL_HINT_ANDROID_BLOCK_ON_PAUSEヒントの追加
2.0.9の変更点
全般
Mac OS X
- Mac OS X Mojaveで黒い画面から始まる問題の修正
Linux
iOS
Android
- Googleの新しいApp Storeの要求に適合させるため, Android SDKでAPI 26が必要となった
- 有線USBのXbox, PS4, Nintendo Switch Pro ゲームコントローラへの対応の追加
- Android 7.0以降(Chromebook, Samsung Experience 9.0のDeXモードを除く)でマウスの相対モードへの対応を追加
- Android 7.0以降でカスタムマウスカーソルへの対応を追加
- 戻るボタンを押したときアプリ外に戻る(デフォルト)かSDL_SCANCODE_AC_BACKイベントを送るかを決めるSDL_HINT_ANDROID_TRAP_BACK_BUTTONヒントの追加
- Androidシステムの戻るボタンの振る舞いを引き起こすSDL_AndroidBackButton()の追加
- Chromebook Androidランタイムで実行されているか否かを戻すSDL_IsChromebook()の追加
- Samsung DeXドッキングステーションで実行しているか否かを戻すSDL_IsDeXMode()の追加
2.0.8の変更点
全般
Windows
- Windows UWPでWASAPIへの対応を実装. 非推奨のXAudio2実装を削除
- Windows 7以降でWASAPIによるリサンプリングを追加
Windows UWP
Mac OS X
- MacにおけるVulkan SDKの対応を追加:
- 可能なときANGLEを使ったOpenGL ESへの対応を追加
Mac OS X / iOS / tvOS
iOS
- iPhone Xでホームインジケーターバーを隠すか否かを制御するSDL_HINT_IOS_HIDE_HOME_INDICATORヒントの追加. デフォルトはフルスクリーンアプリケーションでは暗くして, ウィンドウアプリケーションでは表示する
iOS / Android
- ソフトウェアキーボードのリターンキーはキーボードを隠すか, キーイベントを送るか(デフォルト)を制御するSDL_HINT_RETURN_KEY_HIDES_IMEヒントの追加
Android
- SDLはAndroid StudioとGradleでのビルドにデフォルトで対応する
- SDLはビルドにはAPI 19 SDKが必要になる. しかし依然 API 14 (Android 4.0.1)をターゲットとする
- アプリケーションがAndroid TVで実行されているかを得るSDL_IsAndroidTV()の追加
Android / tvOS
- TVリモコンはジョイスティックとしてリストに上げられるか(デフォルト), キーボードイベントを送るか制御するSDL_HINT_TV_REMOTE_AS_JOYSTICKヒントの追加
Linux
- XサーバはSDLアプリケーションのコンポーザーをスキップするか否かを制御するSDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITORヒントの追加. デフォルトは"1"
- Raspberry PiとKMSDRMビデオドライバで, ダブルバッファリングまたはトリプルバッファリング(デフォルト)のどちらを使うかを制御するSDL_HINT_VIDEO_DOUBLE_BUFFERヒントの追加
2.0.7の変更点
全般
- オーディオストリーム変換関数の追加:
- SDLメモリ確保機能の問い合わせと設定を行う関数の追加:
- ジョイスティックとゲームコントローラーAPIへのマルチスレッドアクセスのためのロック関数の追加:
- 以下の関数がスレッドセーフになった:
- SDL_SetEventFilter()
- SDL_GetEventFilter()
- SDL_AddEventWatch()
- SDL_DelEventWatch()
2.0.6の変更点
全般
- SDL_vulkan.hによる多環境対応Vulkanグラフィックの追加:
これにより全ての環境依存コードをSDL環境のVulkanへ移行する必要が生じる.
test/testvulkan.cにサンプルがある.
- 2Dレンダリングのカスタムブレンドモードを生成するSDL_ComposeCustomBlendMode()の追加
- NEON命令に対応しているか否かを戻すSDL_HasNEON()の追加
- Nintendo Switch Proコントローラーを含む多くのゲームコントローラーへの対応を追加
- ゲームコントローラーで逆転やバラバラの方向のマッピングの追加
- 開く前にジョイスティックの情報を戻す関数の追加:
- 開かれたジョイスティックの情報を戻す関数の追加:
- 開かれたゲームコントローラーの情報を戻る関数の追加:
- 組み込まれたゲームコントローラーマッピングの一覧を得られるSDL_GameControllerNumMappings()とSDL_GameControllerMappingForIndex()の追加
- ファイルからメモリにロードするSDL_LoadFile()とSDL_LoadFile_RW()の追加
- サーフェイスのコピーを生成するSDL_DuplicateSurface()の追加
- JACKオーディオドライバの試作を追加
- 2のベキ乗でない再サンプリングの実装. libsamplerateの使用を選択できる
- 再サンプリングの質を決めるSDL_HINT_AUDIO_RESAMPLING_MODEヒントの追加
- SDL_RenderSetLogicalSize()の拡大方法を決めるSDL_HINT_RENDER_LOGICAL_SIZE_MODEヒントの追加
- "0" または "letterbox" - 上下/左右を黒帯にして画面に合わせる (デフォルト)
- "1" または "overscan" - 拡大して画面に合わせる. 画面からはみ出すことを認める
- マウスの速さの倍率を設定するSDL_HINT_MOUSE_NORMAL_SPEED_SCALEヒントとSDL_HINT_MOUSE_RELATIVE_SPEED_SCALEヒントの追加
- マウスイベントとタッチイベントを統合するか否かをを決めるSDL_HINT_TOUCH_MOUSE_EVENTSヒントの追加
Windows
- Windowsのオーディオドライバのデフォルトを新たにWASAPIとした. ホットプラグインとデフォルトオーディオデバイスの変更に対応
- 古いXAudio2オーディオドライバは非推奨となった. 次のリリースで廃止される予定である
- SDL windowsでユーザのアイコンを指定するSDL_HINT_WINDOWS_INTRESOURCE_ICONヒントとSDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALLヒントの追加
- .NET言語と様々なWindowsデバッガに対応するためSDL_HINT_WINDOWS_DISABLE_THREAD_NAMINGヒントをデフォルトとした
- ゲームコントローラーマッピングのGUID形式の更新. 古いマッピングは読み込み時に自動的に変換される
- WindowsのSDL_WINDOW_ALWAYS_ON_TOPフラグを実装
Linux
- 組み込み用のKMS/DRMビデオドライバの試作を追加
iOS
- SDL_HINT_AUDIO_CATEGORYヒントによるオーディオカテゴリの操作を追加. サイレントスイッチが音声に影響を与えるか否かを決めるため
2.0.5の変更点
全般
Windows
- スレッドに名前を付けたときデバッガ例外が発生することを防ぐSDL_HINT_WINDOWS_DISABLE_THREAD_NAMINGヒントの追加. この例外はデバッガ下で.NETアプリケーションを実行するとき問題を引き起こす
- WindowsもSDL_HINT_THREAD_STACK_SIZEヒントに対応
- XBoxのコントローラのトリガが開始時に自動的に引かれる問題の修正
- 実行ファイルの最初のアイコンをウィンドウのアイコンのデフォルトとする
- SDLがCライブラリ対応でビルドされたとき, SDLログメッセージが重複して表示される問題の修正
- SDLウィンドウがフォーカスを失ったときデッドキーをリセットする. よって, SDLアプリケーションで押されたデッドキーは他のアプリケーションの文字入力に影響しない
Mac OS X
- ダミービデオドライバの選択の問題の修正
- Caps Lockキーイベントは, 押したときに押した/離したイベントがペアで発生するのではなく, 押したときに押したイベント, 離したときに離したイベントが発生するようになった
- Mac OS X 10.12でのマウスホイールイベントの問題の修正
- 音声ドライバは, 新しいバージョンのMac OS Xでより高い互換性のあるAVFoundationを使うように更新した
Linux
- Fcitx IMEに対応
- SDLウィンドウがフォーカスを求めているかをウィンドウマネージャが尋ねたとき発生するSDL_WINDOWEVENT_TAKE_FOCUSイベントの追加
- 更新周期は切捨てではなく四捨五入となった. 例えば59.94Hzは, 59Hzではなく, 四捨五入され60Hzとなる
- Raspberry Piのスクリーンタッチに初期対応
OpenBSD
iOS
tvOS
Android
- Androidスクリーンの解像度が変わったときウィンドウのサイズが変わらない問題の修正
- 加速度で伝えられたジョイスティックのZ軸を正しくなるように修正
Emscripten (webブラウザ上で動作)
2.0.4の変更点
全般
Windows
Mac OS X
Linux
iOS
Android
Raspberry Pi
原文へのリンク
SDL/WhatsNew.txt