目次 - SDL 2.0の履歴
SDL 2.0の履歴
2.0.14の変更点
全般
- HIDAPIコントローラドライバにPS5 DualSenseとXbox Series X コントローラの対応を追加
- パドルと新しいボタンのためのゲームコントローラ定数の追加
- 新たな情報の獲得のためのゲームコントローラ関数の追加:
- SDL_GameControllerGetSerial()
- SDL_GameControllerHasAxis()
- SDL_GameControllerHasButton()
- SDL_GameControllerGetNumTouchpads()
- SDL_GameControllerGetNumTouchpadFingers()
- SDL_GameControllerGetTouchpadFinger()
- SDL_GameControllerHasSensor()
- SDL_GameControllerSetSensorEnabled()
- SDL_GameControllerIsSensorEnabled()
- SDL_GameControllerGetSensorData()
- SDL_GameControllerRumbleTriggers()
- SDL_GameControllerHasLED()
- SDL_GameControllerSetLED()
- PS5コントローラ用HIDAPIを使用するか否かを選択するSDL_HINT_JOYSTICK_HIDAPI_PS5ヒントの追加
- 新たな情報を獲得するためのジョイスティック関数の追加:
- SDL_JoystickGetSerial()
- SDL_JoystickRumbleTriggers()
- SDL_JoystickHasLED()
- SDL_JoystickSetLED()
- アプリケーションが仮想ジョイスティックを生成するためのAPIの追加:
- SDL_JoystickAttachVirtual()
- SDL_JoystickDetachVirtual()
- SDL_JoystickIsVirtual()
- SDL_JoystickSetVirtualAxis()
- SDL_JoystickSetVirtualButton()
- SDL_JoystickSetVirtualHat()
- センサー一覧への排他的アクセスを保障する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の変更点
全般
- テクスチャで使用される拡大モードの獲得と設定を行うSDL_GetTextureScaleMode()とSDL_SetTextureScaleMode()の追加
- SDL_LockTexture()と似ているが, ロックされた領域がSDLサーフェイスとなるSDL_LockTextureToSurface()の追加
- 乗算ブレンドとαブレンドを同時に行うSDL_BLENDMODE_MULの追加
- ディスプレイ番号0のSDL_GetDisplayUsableBounds()の結果を上書きするSDL_HINT_DISPLAY_USABLE_BOUNDSヒントの追加
- SDL_TouchFingerEventにタッチしたウィンドウIDを追加
- ゲームコントローラの種類(Xbox 360, Xbox One, PS3, PS4, Nintendo Switch Pro)を戻すSDL_GameControllerTypeForIndex(), SDL_GameControllerGetType()の追加
- ゲームコントローラの種類の自動検知の結果を上書きするSDL_HINT_GAMECONTROLLERTYPEヒントの追加
- プレイヤー番号からデバイスを求めるSDL_JoystickFromPlayerIndex()とSDL_GameControllerFromPlayerIndex()の追加
- デバイスのプレイヤー番号を設定するSDL_JoystickSetPlayerIndex()とSDL_GameControllerSetPlayerIndex()の追加
- Nintendo Switch Proコントローラで, ボタンをラベル通りとするか, 配置レイアウトに合わせて交換するかを決めるSDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELSヒントの追加. デフォルトではラベル通りとする
- HIDAPIドライバによるNintendo GameCubeコントローラの対応を追加. 使用するか否かを決めるSDL_HINT_JOYSTICK_HIDAPI_GAMECUBEヒントの追加
- HIDAPIドライバによるXbox 360とXbox Oneコントローラの対応を改善
- 以下を含む多数のゲームコントローラの対応を追加:
- 8BitDo FC30 Pro
- 8BitDo M30 GamePad
- BDA PS4 Fightpad
- HORI Fighting Commander
- Hyperkin Duke
- Hyperkin X91
- MOGA XP5-A Plus
- NACON GC-400ES
- NVIDIA Controller v01.04
- PDP Versus Fighting Pad
- Razer Raion Fightpad for PS4
- Razer Serval
- Stadia Controller
- SteelSeries Stratus Duo
- Victrix Pro Fight Stick for PS4
- Xbox One Elite Series 2
- HIDAPIドライバを使用した場合の, ゲームコントローラの振動の呼び出しによるブロッキングを修正
- 配列の各要素を0にするSDL_zeroa()マクロの追加
- CPUがARM SIMD (ARMv6+)仕様がある場合に真を戻すSDL_HasARMSIMD()の追加
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
- 指定のウィンドウにCAMetalLayer-backed NSView/UIViewを生成してアタッチするSDL_Metal_CreateView()とSDL_Metal_DestroyView()の追加
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の変更点
全般
- 新しいセンサーAPIの追加. SDL_Init()でSDL_INIT_SENSORを使って初期化され, SDL_sensor.hで宣言されている
- センサーが更新されたとき送られるSDL_SENSORUPDATEイベントの追加
- 現在のディスプレイの向きを戻すSDL_GetDisplayOrientation()の追加
- ディスプレイの向きが変わったとき送られるSDL_DISPLAYEVENTイベントの追加
- Xbox, PS4, Nintendo Switch Proコントローラの環境を越えた一貫性のある対応のためのHIDAPIジョイスティックドライバの追加 (PS4とNintendo Switch Proコントローラへの対応に貢献したValveに感謝します)
- その他多数のゲームコントローラへの対応を追加
- ゲームコントローラのプレイヤー番号を得るSDL_JoystickGetDevicePlayerIndex(), SDL_JoystickGetPlayerIndex(), SDL_GameControllerGetPlayerIndex()の追加. XInputコントローラの場合はXInput indexを戻す.
- ハプティックAPIを使わずに単純な振動を起こせるSDL_GameControllerRumble(), SDL_JoystickRumble()の追加
- 開く前にゲームコントローラのマッピングを得られるSDL_GameControllerMappingForDeviceIndex()の追加
- マウスのダブルクリックの時間を制御するSDL_HINT_MOUSE_DOUBLE_CLICK_TIMEヒントの追加
- マウスのダブルクリックの半径をピクセル単位で制御するSDL_HINT_MOUSE_DOUBLE_CLICK_RADIUSヒントの追加
- サーフェイスが有効なカラーキーを持っているか否かを戻すSDL_HasColorKey()の追加
- CPUにAVX-512F仕様があるか否かを戻すSDL_HasAVX512F()の追加
- アプリケーションがタブレット上で実行されているか否かを戻すSDL_IsTablet()の追加
- スレッドを最高位の優先度にするSDL_THREAD_PRIORITY_TIME_CRITICALの追加
Mac OS X
- Mac OS X Mojaveで黒い画面から始まる問題の修正
Linux
- RealtimeKitを使って可能ならネイディブスレッドの優先度の設定を許可するSDL_LinuxSetThreadPriority()の追加
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の変更点
全般
- SDL_fmod()とSDL_log10()の追加
- SDL数学関数はそれぞれfloat版が利用可能になる
- YUV色空間に/から変換するとき使用される計算式を制御するSDL_SetYUVConversionMode()とSDL_GetYUVConversionMode()の追加. オプションはJPEG, BT.601, BT.709
Windows
- Windows UWPでWASAPIへの対応を実装. 非推奨のXAudio2実装を削除
- Windows 7以降でWASAPIによるリサンプリングを追加
Windows UWP
- アプリケーションが実行されているデバイスの種類を得るSDL_WinRTGetDeviceFamily()の追加
Mac OS X
- MacにおけるVulkan SDKの対応を追加:
- 可能なときANGLEを使ったOpenGL ESへの対応を追加
Mac OS X / iOS / tvOS
- Metal 2Dレンダーを追加
- Metalを使ってSDLレンダリングするとき, アプリケーションの描画を挿入するSDL_RenderGetMetalLayer()とSDL_RenderGetMetalCommandEncoder()の追加
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_NewAudioStream()
- SDL_AudioStreamPut()
- SDL_AudioStreamGet()
- SDL_AudioStreamAvailable()
- SDL_AudioStreamFlush()
- SDL_AudioStreamClear()
- SDL_FreeAudioStream()
- SDLメモリ確保機能の問い合わせと設定を行う関数の追加:
- SDL_GetMemoryFunctions()
- SDL_SetMemoryFunctions()
- SDL_GetNumAllocations()
- ジョイスティックとゲームコントローラーAPIへのマルチスレッドアクセスのためのロック関数の追加:
- SDL_LockJoysticks()
- SDL_UnlockJoysticks()
- 以下の関数がスレッドセーフになった:
- 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_JoystickGetDeviceVendor()
- SDL_JoystickGetDeviceProduct()
- SDL_JoystickGetDeviceProductVersion()
- SDL_JoystickGetDeviceType()
- SDL_JoystickGetDeviceInstanceID()
- 開かれたジョイスティックの情報を戻す関数の追加:
- SDL_JoystickGetVendor()
- SDL_JoystickGetProduct()
- SDL_JoystickGetProductVersion()
- SDL_JoystickGetType()
- SDL_JoystickGetAxisInitialState()
- 開かれたゲームコントローラーの情報を戻る関数の追加:
- SDL_GameControllerGetVendor()
- SDL_GameControllerGetProduct()
- SDL_GameControllerGetProductVersion()
- 組み込まれたゲームコントローラーマッピングの一覧を得られる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
原文へのリンク
Mercurial > SDL / file revision