目次 - SDL 2.0の履歴

# SDL 2.0の履歴

## 2.0.5の変更点

### 全般

- 一部の環境で録音に対応した
- キューから録音された音声を回収するSDL_DequeueAudio()の追加
- テキストをドラッグ&ドロップしたとき発生するSDL_DROPTEXTイベントの追加
- 複数の項目をドラッグ&ドロップしたとき発生するSDL_DROPBEGINイベント, SDL_DROPCOMPLETEイベントの追加
- デフォルトではクリックしてウィンドウをフォーカスしたときSDLアプリケーションにはイベントが伝わらないようになった. SDL_HINT_MOUSE_FOCUS_CLICKTHROUGHヒントを"1"にするとウィンドウのクリックイベントが伝わるようになる
- αチャネルのあるサーフェイスをBMPとして保存すると, αチャネルに対応した新しいBMP形式で保存される. SDL_HINT_BMP_SAVE_LEGACY_FORMATヒントを"1"にすると古い形式になる.
- ヒントの真偽値を得るSDL_GetHintBoolean()の追加
- レンダラーの拡大を, スムーズに行うか, ビューポートサイズの整数倍にするかを設定するSDL_RenderSetIntegerScale()の追加
- ピクセル形式を指定してSDLサーフェイスを生成するSDL_CreateRGBSurfaceWithFormat()とSDL_CreateRGBSurfaceWithFormatFrom()の追加
- ウィンドウが使える領域を戻すSDL_GetDisplayUsableBounds()の追加. 例えば, Mac OS Xではメニューバーとドックは領域から引かれる
- ウィンドウのクライアント領域の周りにある枠のサイズを戻すSDL_GetWindowBordersSize()の追加
- SDL_HITTEST_NORMALでは行われないヒットテストで発生するSDL_WINDOWEVENT_HIT_TESTイベントの追加 (例: タイトルバーやウィンドウ枠)
- ウィンドウのサイズを変えられるかを設定するSDL_SetWindowResizable()の追加
- ウィンドウの不透明度を設定/獲得するSDL_SetWindowOpacity()とSDL_GetWindowOpacity()の追加
- あるウィンドウが他のウィンドウに対してモーダルであるかを設定するSDL_SetWindowModalFor()の追加
- SDL_MixAudioFormat()がAUDIO_U16LSBとAUDIO_U16MSBに対応
- OpenGLレンダラーを使った場合, テクスチャを読み戻すとき画像が反転する問題の修正
- OpenGLレンダラーを使った場合のSDL_BLENDMODE_NONEでのテクスチャの色変調の問題の修正
- いくつかの場合でカラーキーのα値が無視される不具合の修正

### 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

- OpenBSDでもSDL_GetBasePath()に対応

### iOS

- iOS 8以降の動的ロードオブジェクトに対応

### tvOS

- Apple TVに対応
- Apple TV remoteのジョイスティックの軸を自動的に回転方向に合わせるかを設定するSDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATIONヒントの追加

### Android

- Androidスクリーンの解像度が変わったときウィンドウのサイズが変わらない問題の修正
- 加速度で伝えられたジョイスティックのZ軸を正しくなるように修正

### Emscripten (webブラウザ上で動作)

- 多数の不具合修正と実装

## 2.0.4の変更点

### 全般

- Emscriptenを使ったwebアプリケーションに対応. 詳細はdocs/README-emscripten.mdを参照すること
- Native Client (NaCl)を使ったwebアプリケーションに対応. 詳細はdocs/README-nacl.mdを参照すること
- コールバックを使わずにオーディオキューにデータを送信するAPIの追加:
  - SDL_QueueAudio(), SDL_GetQueuedAudioSize(), SDL_ClearQueuedAudio()
- オーディオデバイス ホットプラグ(活線挿抜)に対応するイベントの追加:
  - SDL_AUDIODEVICEADDED, SDL_AUDIODEVICEREMOVED
- SDL_PointInRect()の追加
- AVX2対応を検知するSDL_HasAVX2()の追加
- SDLウィンドウの一部分を標準的なウィンドウの装飾(例えばドラッグエリアやサイズ変更エリア)のように扱えるようにするSDL_SetWindowHitTest()の追加
- いかなる場合でも入力グラブのあるウィンドウを得られるSDL_GetGrabbedWindow()の追加
- レンダラーのクリップが有効か否かを知らせるSDL_RenderIsClipEnabled()の追加
- ウィンドウ内にマウスがない場合でもイベントを得られるようにするSDL_CaptureMouse()の追加
- SDLウィンドウの外にマウスカーソルを移動させるSDL_WarpMouseGlobal()の追加
- SDLウィンドウの外のマウスの状態を得るSDL_GetGlobalMouseState()の追加
- マウスホイールイベントに, フリップされている(方向が逆になっている)か否かを知らせるdirectionフィールドの追加
- GL_CONTEXT_RELEASE_BEHAVIOR GLアトリビュート([WGL|GLX]_ARB_context_flush_control extensionにマップされる)の追加
- 一部の環境でOpenGL ESバージョンの選択を認めるEGL_KHR_create_contextに対応
- OpenGLとOpenGL ES 2.0レンダラーのNV12とNV21 YUVテクスチャーに対応
- 様々なSoCで使われるVivanteビデオドライバの追加
- D3Dデバイスが失われAndroidイベントループがGLESコンテキストを再生成したときに発生するSDL_RENDER_DEVICE_RESETイベントの追加
- SDL組み込みのシグナルハンドラを無効にするSDL_HINT_NO_SIGNAL_HANDLERSヒントの追加
- SDLスレッドのスタックサイズを設定するSDL_HINT_THREAD_STACK_SIZEヒントの追加
- stdlibルーチンにSDL_sqrtf(), SDL_tan(), SDL_tanf()を追加
- 標準的でないチャンクを用いたWAVとBMPファイルの対応の改良
- 名称をSDL_assert_dataからSDL_AssertDataに, SDL_assert_stateからSDL_AssertStateに変更
- マウスカーソルが見えないときウィンドウを操作できないようにするSDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDENヒントの追加
- ディスプレイのDPI情報を得るSDL_GetDisplayDPI()の追加
- ジョイスティックのバッテリーレベルを得るSDL_JoystickCurrentPowerLevel()の追加
- イベントのインスタンスIDからSDL_Joystick*を得るSDL_JoystickFromInstanceID()の追加
- イベントのインスタンスIDからSDL_GameController*を得るSDL_GameControllerFromInstanceID()の追加
- (訳者による追記) 日本語106/109キーボードの一部キーが有効になった
  - _キー(右Shiftの左) = SDL_SCANCODE_INTERNATIONAL1
  - カタカナひらがなキー = SDL_SCANCODE_INTERNATIONAL2
  - \キー(Backspaceの左) = SDL_SCANCODE_INTERNATIONAL3
  - 変換キー = SDL_SCANCODE_INTERNATIONAL4
  - 無変換キー = SDL_SCANCODE_INTERNATIONAL5

### Windows

- Windows Phone 8.1とWindows 10/UWP (Universal Windows Platform)に対応
- タイマ分解能は1ミリ秒がデフォルトとなった. これはSDL_HINT_TIMER_RESOLUTIONヒントで変更できる
- SDLmainはCランタイムに依存しなくなった. これによりDebugとReleaseのどちらでも同じ.libを使えるようになった
- ウィンドウメッセージのたびにTranslateMessage()の前に呼ばれる関数を設定するSDL_SetWindowsMessageHook()の追加
- SDL_PumpEvents()でウィンドウメッセージループを処理するか否かを設定するSDL_HINT_WINDOWS_ENABLE_MESSAGELOOPヒントの追加
- マウスイベントのwhichフィールドがSDL_TOUCH_MOUSEIDであるかで本当のマウスかタッチイベントかを判別できるようになった
- SDL_SysWMinfoはウィンドウHDCを持つようになった
- Unicodeコマンドラインオプションに対応
- ALTと何らかのキーの同時押しによるビープ音の抑制
- SDL_SetTextInputRect()はOSが表示したIMEの表示位置を変えるようになった
- ALT+F4キーによるSDL_WINDOWEVENT_CLOSEイベントの発生を抑制するSDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4ヒントの追加
- XInputデバイスで古い軸とボタンのマッピングを使うSDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPINGヒントの追加 (将来的には廃止)

### Mac OS X

- ドラッグ&ドロップの実装
- ジョイスティック ホットプラグ検知の改良
- SDL_WINDOWEVENT_EXPOSEDウィンドウイベントが適切な状況で発生するようになった
- 相対マウスモードでアプリケーションのフォーカスが失われた/得られた場合の動作の修正
- Spacesフルスクリーンモードへの/からの移行に関連するバグの修正
- ディスプレイモードのリフレッシュレートの修正
- SDL_SysWMinfoはARC-compatibleとなった
- フォーカスしようとするアプリケーションがバックグラウンドプロセスになることを抑制するSDL_HINT_MAC_BACKGROUND_APPヒントの追加

### Linux

- MirとWaylandを使うビルドにデフォルトで対応
- IBus IMEに対応
- SDL_TEXTEDITINGイベントを送信する代わりにIBusがテキスト編集に使うか否かを制御するSDL_HINT_IME_INTERNAL_EDITINGヒントの追加
- _NET_WM_PINGプロトコルを無効にするSDL_HINT_VIDEO_X11_NET_WM_PINGヒントの追加
- Pulseaudioを使った複数オーディオデバイスに対応
- 相対マウスモードでのマウスイベントの重複の修正

### iOS

- iOS 8に対応
- SDL_WINDOW_ALLOW_HIGHDPIウィンドウフラグが有効になり高DPIに対応した. SDL_GL_GetDrawableSize()またはSDL_GetRendererOutputSize()でウィンドウの解像度をピクセル数で得られる
- SDL_GetWindowSize()とディスプレイモードサイズは, ピクセル数ではなく, 「DPIに依存しないポイント数」/「画面座標」座標空間となった (OS Xの挙動と一致)
- iPhone 6 Plus ネイティブ解像度に対応
- MFiゲームコントローラに対応
- SDL_HINT_ACCELEROMETER_AS_JOYSTICKヒントに対応
- iOS 7+でのsRGB OpenGL ESに対応
- SDL_DisableScreenSaver(), SDL_EnableScreenSaver(), SDL_HINT_VIDEO_ALLOW_SCREENSAVERヒントに対応
- SDL_SysWMinfoはウィンドウのアクティブGLESビューが使うOpenGL ESフレームバッファとカラーバッファを持つようになった
- 様々な回転と方向に関する問題の修正
- メモリリークの修正

### Android

- タッチイベントがマウスイベントとして扱われないようにするSDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCHヒントの追加
- SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSIONヒントとSDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSIONヒントの追加
- SDL_DisableScreenSaver(), SDL_EnableScreenSaver(), SDL_HINT_VIDEO_ALLOW_SCREENSAVERヒントに対応
- SDL_ShowMessageBox()とSDL_ShowSimpleMessageBox()に対応

### Raspberry Pi

- Raspberry Pi 2に対応

## 原文へのリンク

Mercurial > SDL / file revision