目次 - SDL 2.0の履歴

# SDL 2.0の履歴

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