SDL 2.0.2 リリース

sdl_img

 SDL 2.0.2 が出てました、更新内容(Mac関係のみ)は以下の通りです。
*追加:3/16に SDL 2.0.3 がリリースされました。

 
一般:
・OpenGL属性をデフォルト値にリセットする SDL_GL_ResetAttributes() を追加。
・ファイルからゲームコントローラのマッピングデータベースをロードするためのAPIを追加: SDL_GameControllerAddMappingsFromFile()、SDL_GameControllerAddMappingsFromRW()
・PS4とOUYAコントローラのゲームコントローラマッピングを追加。
・SDL_GetDefaultAssertionHandler() と SDL_GetAssertionHandler() を追加。
・SDL_DetachThread() を追加。
・CPUにAVX機能があるかどうか決定する SDL_HasAVX() を追加。
・stdlibルーチンに SDL_vsscanf(), SDL_acos(), SDL_asin() を追加。
・EGLは現在 OpenGLとOpenGL ESの1.x/2.x のコンテキストを作成/管理でき、SDL_GL_SHARE_WITH_CURRENT_CONTEXT を使用してそれらを共有することができます。
・マウスボタンイベントに イベントが シングルクリック、ダブルクリック、その他 であるかどうかにかかわらず記録する フィールド “clicks” を追加。
・スクリーンセーバーは現在デフォルトで無効です、そしてその動作を変更することができるヒントSDL_HINT_VIDEO_ALLOW_SCREENSAVER があります。
・マウスの相対モードがマウスワーピングを使用してエミュレートするかどうかを指定するヒント SDL_HINT_MOUSE_RELATIVE_MODE_WARP を追加。
・testgl2 は、もうlibGLとリンクする必要はありません。
・OpenGL ES 2.0 の動作を実証する testgles2テストプログラムを追加。
・ゲームコントローラを視覚的にマップするcontrollermapテストプログラムを追加。

Mac OS X:
・Ctrlキー+クリックを MacOSX上で右クリックとして扱うかどうかを制御するためのヒント SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK を追加。これはデフォルトでオフになっています。

*追加 2.0.3
・Mac OS X 10.6上のデフォルトでOpenGLコンテキストの作成を修正
 
Link:【Simple DirectMedia Layer – Homepage

SDL1.2.15、OSX10.9上でコンパイルエラー

sdl_patch

 OSX10.9上で SDL1.2.15 がコンパイルできない問題が発生しています。(SDL2.0.1は問題なし)
コンパイルしようとすると「SDL_QuartzVideo.h」「SDL_x11sym.h」でエラーが発生するようです、ネットで検索してみると既にパッチが出ていました。

■ SDL_QuartzVideo.h のパッチファイル
http://www.emaculation.com/doku.php/compiling_sheepshaver_basilisk#tidbits
http://ftp.cc.uoc.gr/mirrors/macports/release/ports/devel/libsdl/files/no-CGDirectPaletteRef.patch

■ SDL_x11sym.h のパッチファイル
https://bugs.archlinux.org/task/36179
https://bugs.archlinux.org/task/36179?getfile=10749
 
パッチファイルをダウンロードし、SDL-1.2.15 フォルダの中に入れます
ターミナルを起動してSDL-1.2.15ディレクトリに移動、patchコマンドを実行します
 
 cd /Users/Jazzin/Compile/SDL-1.2.15
 patch -u -p0 < sdl_x11sym.patch
 patch -u -p0 < no-CGDirectPaletteRef.patch

 
取り敢えずこれでコンパイルできました、公式のソースも修正して欲しいですね。

SDL 2.0.1 リリース

sdl_img
 
 SDL 2.0.1 がリリースされました。frameworkのアイコンがフォルダから白いブロック(プラグイン)アイコンに変わってますね。更新内容(Mac関係のみ)は以下の通りです。

 
一般:
・SDL_filesystem.hに共通のファイルシステムパスを取得するAPIを追加:
 SDL_GetBasePath()、 SDL_GetPrefPath()
・IYUVテクスチャのアップデートとYV12を最適化するためのAPIを追加:
 SDL_UpdateYUVTexture()
・システム上のRAM容量を取得するAPIを追加:
 SDL_GetSystemRAM()
・SDL_GetTicks() でタイムスタンプ比較を実行するためにマクロを追加:
 SDL_TICKS_PASSED()
・OpenGL ES 2.0 のレンダリング性能を劇的に改善
・OpenGLの SDL_GL_FRAMEBUFFER_SRGB_CAPABLE 属性を追加

Mac OS X:
・Retinaディスプレイ用のサポートが追加されました:
 SDL_WINDOW_ALLOW_HIGHDPIフラグを使用してウィンドウを作成し、実際の描画可能なサイズを見つけるためにSDL_GL_GetDrawableSize()を使用します。あなたはスケーリングマウスと描画座標を適切にする責任があります
・フルスクリーンモードでマウスワーピングを修正
・マウスの右クリックはCtrlキーを押しながら左クリックでエミュレートされます

iOS:
・iOS7上でのステータスバーの表示を修正
・期待値と一致するように、加速度センサーのY軸を反転

 
Link:【Simple DirectMedia Layer – Homepage

SDL1.2から2.0への移行ガイド

 
SDL_logo
 
 SDL 2.0.0 がリリースされました、SDL1.3から2.0へ改名されてようやく出たかといった感じですね、なお MAME(SDLMAME)はまだ対応してない様なのでもう少し待ったほうが良さそうです→【Emuversal Bulletin Board】 以下は「SDL 1.2 to 2.0 Migration Guide」の日本語訳です。
 
 
はじめに
長年の開発の末、SDL2.0.0 がついにリリースされました!

 私たちはそれをとても誇りに思っています、そして私たちはSDL1.2を使用しているゲームを直ぐに繰り上げたいと思います。これは大変な作業のように感じる事ができるように、このドキュメントは新しいライブラリに移行する為の簡単なチュートリアルです。
 私たちは、それはあなたが考えるほど難しいことではないと何度も気付くだろうと思います、あなたは関数の呼出しをdirect equivalentsに置き換えたり1.2の不足に対処するためにあなたのコード中のいくつかのハックを元に戻すことになるでしょう。
 私たちは、あなたが新しい機能とSDL 1.2以降のより良い経験と共に、SDL 2.0にとても満足すると思います。このドキュメントではSDL2の全ての素晴らしく新しい(そして多数ある)ものをカバーしようとしません。しかし、今まさにあなたが実行を得るためにする必要があること。一旦あなたがコードを移植したなら、新しい物を必ずチェックしてください、あなたは多分その幾つかをあなたのアプリケーションにも追加したいと思うでしょう。

新機能の概要
これらがSDL2.0の最も重要な新機能です

・フル3Dハードウェアアクセラレーション
・OpenGL3.0+の様々なプロファイルのサポート(コア、互換性、デバッグ、Robust、など)
・OpenGL ESのサポート
・複数のウインドウのサポート
・複数のディスプレイのサポート
・複数のオーディオデバイスのサポート
・AndroidとiOSのサポート
・バックグラウンドでDirect3D、OpenGL、OpenGL ES、またはソフトウェアレンダリングを使用することができるシンプル2DレンダリングAPI
・Windows、MacOSX、Linux上で Force Feedback(ハンドルコントローラー)が利用可能
・Windows用のXInputとXAudio2のサポート
・アトミックオペレーション(不可分操作)
・パワーマネージメント(残りのバッテリ残量を表示、など)
・Shapedウインドウ
・32ビットのオーディオ(int型とfloat型)
・ゲームコントローラAPIを簡略化(Joystick APIもまだある!)
・タッチサポート(マルチタッチ、ジェスチャーなど)
・より良いフルスクリーンのサポート
・より良いキーボードのサポート(スキャンコードvsキーコード、など)
・メッセージボックス
・クリップボードのサポート
・基本的なDrag’n’Dropのサポート
・正確なUnicode入力とIMEのサポート
・本当に強力な assertマクロ
・LGPLの代わりにzlibライセンス
・SDL1.2からの古い厄介なものが無くなっています
・その他の多くのもの!

概要ページには、SDLが全体的にどんな機能を提供するかについて、より広範囲なリストがあります。(旧1.2の機能を含む)

 
Link:【Simple DirectMedia Layer – Homepage】【MigrationGuide – SDL Wiki’

SDL 1.2.15 リリース


 
 SDL 1.2.15 がいつの間にやらリリースされていました、前回のバージョンから2年3ヶ月ぶりの更新ですね。MacOSX関係では10.7上でのビルドや動作が修正されていました、これによりSDLを使用したエミュレータでフルスクリーンモードがおかしくなる不具合が直ったようです。他にも SDL_image 1.2.12 / SDL_ttf 2.0.11 / SDL_net 1.2.8 / SDL_mixer 1.2.12 などのライブラリも更新されています。 詳しい更新内容は以下の通りです。

 
SDL 1.2.15 Release Notes
SDL 1.2.15 は、小さなバグ修正リリースです。

一般的な注意事項

CPU info ルーチンでアセンブリーレジスターが上書き破壊されるのを修正。
大きなイメージに対してStretch Blitを使用する時のメモリーストンプを修正。
オーバーラップ・ブリッツによるピクセル化けを修正。
SDL_JOYSTICK_DEVICE は、ジョイスティックデバイスをコロンで区切ったリストにできます。
MMX blitters が最近のコンパイラー上でコンパイルできないので無効にしました。

Unixの注意事項

新しいLinuxカーネル上でジョイスティックコードがクラッシュする問題を修正。
6チャンネル出力でのALSAターゲットのチャンネルスウィズリングを修正。
OpenGLのGLX_EXT_swap_control 機能が利用可能なら使用する。
デスクトップの再構成が発生するため、XRandR サポートはデフォルトで無効になります。それは環境変数 SDL_VIDEO_X11_XRANDR=1 、あるいはこのパッチを適用して有効にすることができます:(http://hg.libsdl.org/SDL/raw-rev/8ec3036098df)

Windowsの注意事項

SDL_GL_ACCELERATED_VISUAL 処理を修正。
Alt-Tab によるアプリケーションステートを修正。
Direct X コードの臨時用のクラッシュ処理 WM_ACTIVATEAPP を修正。
ロシア文字のUTF-8デコーディングを修正。

Mac OS Xの注意事項

Mac OS X10.7 (Lion)上でのビルドと動作を修正。

 
Link 【Simple DirectMedia Layer

LionでSDL系のソフトがフルスクリーン化できない

 OS X 10.7上での不具合ですが、SDLライブラリを使用したソフトでフルスクリーン化できない問題があるそうです。
 試しに MAME 0.143 を起動してフルスクリーン化してみると画面が消えて(画面左下に固定される)復帰できなくなりました。openMSXの場合はレンダラーをSDLにしてフルスクリーン化するとフリーズします(OpenGLなら問題なし)。Richard Bannister系のエミュレータや、Snes9x 1.53 は問題ないようです。

 SDL Forums によると CGDisplayBaseAddress() という関数がOSX10.7から使えなくなったとの事です。

Link 【Simple DirectMedia Layer Forums