目次 - SDL 2.0の履歴
SDL 2.0の履歴
2.30.0の変更点
全般
- 2ビットパレットカラー形式のサーフェイスの追加
- 可能ならばコントローラーSteam APIハンドルを得るSDL_GameControllerGetSteamHandle()の追加
- コントローラーSteam APIハンドルが変わったとき送られるSDL_CONTROLLERSTEAMHANDLEUPDATEDイベントの追加. これはコントローラーの名称, VID, PIDが変わった場合も送られる
- ログ出力のデフォルトを設定するSDL_LOGGING環境変数の追加
macOS
- IOKitコントローラードライバを使うか否かを選択するSDL_HINT_JOYSTICK_IOKITヒントの追加
- GCControllerコントローラードライバを使うか否かを選択するSDL_HINT_JOYSTICK_MFIヒントの追加
- 複数のGPUが利用できる場合, レンダリングに高性能・低性能のどちらのGPUを使うか選択するSDL_HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICEヒントの追加
Xbox
- SDL_GDKGetDefaultUser()関数の追加
2.28.2の変更点
全般
- コントローラーでWindows.Gaming.Inputを使用するか否かを選択するSDL_HINT_JOYSTICK_WGIヒントの追加
2.28.0の変更点
全般
2.26.0の変更点
全般
- OpenGLヘッダをクロノス・グループの最新APIに更新
- ウィンドウサイズをピクセル数で得るSDL_GetWindowSizeInPixels()の追加. これは高DPIウィンドウの場合, ウィンドウ座標系サイズと異なる場合がある
- ソフトウェアレンダリング時の垂直同期シミュレートの追加
- SDL_MouseWheelEventにマウスの位置を追加
- 全てのヒントをデフォルト値にリセットするSDL_ResetHints()の追加
- ジョイスティックGUIDでコード化されたデバイス情報を得るSDL_GetJoystickGUIDInfo()の追加
- XBox 360コントローラー用HIDAPIドライバを使用するか否かを決めるSDL_HINT_JOYSTICK_HIDAPI_XBOX_360ヒントの追加
- どのプレイヤーがXBox 360コントローラーと結び付けられているかを示すLEDを点灯するか否かを決めるSDL_HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LEDヒントの追加
- XBox 360ワイヤレスコントローラー用HIDAPIドライバを使用するか否かを決めるSDL_HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESSヒントの追加
- XBox Oneコントローラー用HIDAPIドライバを使用するか否かを決めるSDL_HINT_JOYSTICK_HIDAPI_XBOX_ONEの追加
- XBox OneガイドボタンLCDの明るさを決めるSDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LEDヒントの追加
- HIDAPIドライバにPS3コントローラーを追加. macOSではデフォルトで有効. SDL_HINT_JOYSTICK_HIDAPI_PS3ヒントで制御できる
- HIDAPIドライバにニンテンドーWiiコントローラーを追加. デフォルトでは有効にならない. SDL_HINT_JOYSTICK_HIDAPI_WIIヒントで制御できる
- ニンテンドーWiiコントローラーのプレイヤーLEDを点灯させるか否かを決めるSDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LEDヒントの追加
- HIDAPIドライバを使用する場合, ニンテンドースイッチJoy-Conを縦持ちモードにするか否かを選択するSDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONSヒントの追加
- Joy-Conコントローラーの左右のジャイロセンサーへの個別のアクセスの追加
- ハードウェアが情報を提供する場合, SDL_SensorEventとSDL_ControllerSensorEventにマイクロ秒のタイムスタンプを追加
- センサーが最後に更新された時間をミリ秒で得るSDL_SensorGetDataWithTimestamp()とSDL_GameControllerGetSensorDataWithTimestamp()の追加
- SDL HDI APIに特定のデバイスを無視させるSDL_HINT_HIDAPI_IGNORE_DEVICESヒントの追加
- SDL_GetRevision()に(可能ならば)gitコミットハッシュを含むさらなるSDLビルド情報を追加.
Windows
- 相対マウスモードのとき, システムの加速カーブを使用するか否かを決めるSDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALEヒントの追加
macOS
Linux
Android
- IMEソフトウェアキーボード入力が可能になった
- SDL JavaとCコードが互換かを確認するバージョンチェックの追加
2.24.0の変更点
全般
- バージョン番号をGLibやFlatpakのような体系に更新する
- マイナーバージョン(2番目の数字)が偶数のバージョンはリリース可能な安定バージョンであることを表す. 例えば2.24.0で, これは旧体系ならば2.0.24である
- パッチレベル(マイクロバージョン, 3番目の数字)はバグ修正のみの更新を表す. 例えば2.24.1は2.24.0のバグを修正しただけで, 新しい機能は追加されていない
- マイナーバージョンが奇数のバージョンは事前リリースを表す(例えば2.23.0). 安定版の配布にはこの事前リリース版を使用すべきではない
- 事前リリースのパッチレベルは, 例えば2.23.1, 2.23.2のように, SDL 2.24.0安定版がリリースされるまで続いて行く
- 画面上の点と長方形に結び付けられたディスプレイを得るSDL_GetPointDisplayIndex()とSDL_GetRectDisplayIndex()の追加
- stdlibルーチンへのSDL_bsearch()とSDL_utf8strnlen()の追加
- SDL_CPUPauseInstruction()マクロのSDL_atomic.hへの追加
- サイズオーバーフロー防止の改善のためにSDL_size_mul_overflow()とSDL_size_add_overflow()を追加
- ヒントをデフォルト値にリセットするSDL_ResetHint()の追加
- SDLの内部キーボード状態をリセットし, 全ての押されたキーに対してキーを離したイベントを発生させるSDL_ResetKeyboard()の追加
- 相対モードのときマウスカーソルのワープに対してマウス移動イベントを発生させるか否かを決めるSDL_HINT_MOUSE_RELATIVE_WARP_MOTIONヒントの追加. デフォルトは発生させない
- トラックパッドをタッチデバイスまたは複数マウスとして扱うか否かを決めるSDL_HINT_TRACKPAD_IS_TOUCH_ONLYヒントの追加. デフォルトではマウスとして扱われる
- SDL_HINT_JOYSTICK_HIDAPI_JOY_CONSヒントはデフォルトでONとなった
- HIDAPIドライバを使用したニンテンドーJoy-Conのミニゲームパッドモードへの対応
- HIDAPIドライバを使用する場合, 自動的に統一化されたゲームパッドとして統合するか否かを決めるSDL_HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONSヒントの追加
- ニンテンドースイッチコントローラーのホームLEDの明るさを浮動小数点の値で設定できるようにするSDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LEDヒントの追加
- ニンテンドーJoy-ConのホームLEDの明るさを設定できるようにするSDL_HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LEDヒントの追加. デフォルトではホームLEDは変更できない
- ニンテンドーJoy-ConのプレイヤーLEDを点灯させるか否かを決めるSDL_HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LEDヒントの追加
- HIDAPIドライバを使用したニンテンドーオンラインクラシックコントローラーへの対応
- HIDAPIドライバを使用してニンテンドーオンラインクラシックコントローラーを使用するか否かを決めるSDL_HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSICヒントの追加
- バッテリー状態と振動に対応したNVIDIA SHIELDコントローラ用HIDAPIドライバに対応
- NVIDIA SHIELDコントローラーの対応のHIDAPIドライバへの追加と, それを使用するか否かを決めるSDL_HINT_JOYSTICK_HIDAPI_SHIELDヒントの追加
- ジョイスティックまたはゲームコントローラーの環境に依存した名称を得る関数の追加:
- 現在はHIDAPIを使用してDualSense(tm)無線コントローラーに対応したSDL_GameControllerGetFirmwareVersion()とSDL_JoystickGetFirmwareVersion()の追加
- 仮想コントローラーの機能拡張に対応したSDL_JoystickAttachVirtualEx()の追加
- ジョイスティックのバッテリー状態の変化したとき発生するSDL_JOYBATTERYUPDATEDイベントの追加
- SDL GUIDと文字列を相互変換するSDL_GUIDToString()とSDL_GUIDFromString()の追加
- LoongArch SIMD対応を検知するSDL_HasLSX()とSDL_HasLASX()の追加
- SDL_GetOriginalMemoryFunctions()の追加
- オーディオデバイスのデフォルト名称と形式を得るSDL_GetDefaultAudioInfo()の追加. 現在はPipeWire, PulseAudio, WASAPI, DirectSoundが実装済みである
- バッテリー状態と振動に対応するためのNVIDIA SHIELDコントローラ(2017モデル)用HIDAPIドライバの追加
- 3または5チャネル(2.1, 4.1)オーディオデバイスへの対応を追加. これによりモノラルから7.1まで全チャネルに対応した
- SDL_AudioCVTを使用したオーディオチャネルコンバータの書き直し. FAudio音声のデフォルトで使用されるチャネルマトリクス係数に基づく
- SDLメッセージの4Kの制限はなくなり, 無制限の長さが可能になった
- OpenWatcomまたはOS/2のビルドに影響を与えるdynapiの呼出規約の長年の問題の修正
Windows
- Microsoft Game Development Kit (GDK)を使用したWindowsとXbox用のビルドの初期サポートを追加. 詳細はdocs/README-gdk.mdを参照すること
- D3D12レンダラの実装と, それに関連付けられたD3D12デバイスを得るSDL_RenderGetD3D12Device()の追加
- アプリケーションにDPI-aware(高DPI対応)を設定するか否かを指定するSDL_HINT_WINDOWS_DPI_AWARENESSヒントの追加. このヒントはビデオサブシステムを初期化する前に設定する必要がある
- SDL座標がDPIスケーリングされたものかピクセル数かを指定するSDL_HINT_WINDOWS_DPI_SCALINGヒントの追加
- DirectInputを使用するか否かを決めるSDL_HINT_DIRECTINPUT_ENABLEDヒントの追加
- SDL_GetAudioDeviceSpecにDirectSoundバックエンドへの対応を追加
Linux
- XVidModeへの対応は取り除かれた. XRandR拡張を使用する場合のみモード変更に対応する
- Waylandが使用できるネイティブの解像度に加え, エミュレーションモードを追加するか否かを指定するSDL_HINT_VIDEO_WAYLAND_MODE_EMULATIONヒントの追加
- デフォルトを使用したくない場合にKMSDRMデバイスを指定するSDL_HINT_KMSDRM_DEVICE_INDEXヒントの追加
- ハットがアナログかをチェックする前にデジタルとして扱うか否かを指定するSDL_HINT_LINUX_DIGITAL_HATSヒントの追加
- アナログハットのデッドゾーンを使用するか否かを指定するSDL_HINT_LINUX_HAT_DEADZONESヒントの追加
macOS
- 最低バージョンをmacOS 10.9に引き上げ
- EDR使用のためCocoa GLコンテキストを許可するSDL_GL_FLOATBUFFERSの追加
- OpenGLコンテキストのディスパッチがメインスレッドの処理が完了するまでディスパッチスレッドをブロックするか否かを決めるSDL_HINT_MAC_OPENGL_ASYNC_DISPATCHヒントの追加.
現在のmacOSの安全のためデフォルトではブロックする
2.0.22の変更点
全般
- ウィンドウと関連付けられたレンダラを得るSDL_RenderGetWindow()の追加
- 浮動小数点矩形関数の追加:
- IMEウィンドウが現在表示されているか否かを戻すSDL_IsTextInputShown()の追加
- IMEを無効化せずにコンポジションウィンドウを閉じるSDL_ClearComposition()の追加
- 長文変換を扱うSDL_TEXTEDITING_EXTイベントの追加と, それを有効にするSDL_HINT_IME_SUPPORT_EXTENDED_TEXTヒントの追加
- 相対マウスモードが有効のとき, マウスの制限がウィンドウ全体かウィンドウ中央かを選択するSDL_HINT_MOUSE_RELATIVE_MODE_CENTERヒントの追加
- マウスのボタンを押したとき, マウスが自動的にキャプチャーされるようになった. この動作を選択するSDL_HINT_MOUSE_AUTO_CAPTUREヒントが追加された
- SDLに外部ウィンドウがOpenGLを使用していることを知らせるSDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGLヒントの追加
- SDLに外部ウィンドウがVulkanを使用していることを知らせるSDL_HINT_VIDEO_FOREIGN_WINDOW_VULKANヒントの追加
- 最後のアプリケーションウィンドウが閉じたときSDL_QUITイベントが届けられるか否かを指定するSDL_HINT_QUIT_ON_LAST_WINDOW_CLOSEヒントの追加
- ROG Chakramマウスがジョイスティックとして現れるか否かを選択するSDL_HINT_JOYSTICK_ROG_CHAKRAMヒントの追加
Windows
- D3D9レンダラのSDL_BLENDOPERATION_MINIMUMとSDL_BLENDOPERATION_MAXIMUMへの対応を追加
Linux
- Wayland対応のコンパイルにはlibwayland-clientバージョン1.18.0以降が必要となった
- SDLウィンドウの_NET_WM_WINDOW_TYPEを指定するSDL_HINT_X11_WINDOW_TYPEヒントの追加
- xdg-decorationに対応したコンポジタのlibdecorの使用を許可するSDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECORヒントの追加
2.0.20の変更点
全般
- SDL_RenderGeometryRaw()はintではなくSDL_Colorへのポインタを取る. この引数にはカラーデータをSDL_PIXELFORMAT_RGBA32形式でキャストして渡せる
- OpenGLまたはOpenGLESを使った水平と垂直の直線描画の精度の向上
- 速度, 精度, 互換性のどれを重視するかを選択するため, 直線描画で使用する方法を選択するSDL_HINT_RENDER_LINE_METHODヒントの追加
Windows
Linux
- 2.0.18で壊れていたホットプラグコントローラー検知の修正
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へのマルチスレッドアクセスのためのロック関数の追加:
- 以下の関数がスレッドセーフになった:
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
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 Wikiへのリンク
SDL/WhatsNew.txt