Posts Tagged ‘SDL’

SDL2 2.0.5 リリース

10月 30th, 2016

SDL_logo
 

 SDLライブラリ v2.0.5 がリリースされてました。今年の1月にv2.0.4が出たばかりですが、けっこうな量のアップデートですね。 詳しい内容は以下の通りです。
 

コードやフィードバックに貢献したすべての人々のおかげで、SDL2.0.5が利用可能になりました!

http://www.libsdl.org/download-2.0.php

多くのバグ修正とビルド改良に加えて、このリリースの主な変更点がここにあります:

一般:
* いくつかのプラットフォーム用のオーディオキャプチャのサポートを実装。
* オーディオキャプチャの為にバッファキューイングが ON になっている場合、オーディオを取得する為の SDL_DequeueAudio を追加。
* テキストをドラッグ&ドロップする為のイベントを追加。
* 複数のアイテムをドラッグ&ドロップする為のイベントを追加。
* デフォルトではウィンドウをライズしてクリックしてもSDLアプリケーションに配信されることはありません。あなたはそのウィンドウにクリックスルーできるようにするヒント SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH を “1″ に設定することができます。
* アルファ情報をサポートした新しいBMP形式を使用して、BMPなどのアルファチャンネルで表面を保存します。古い形式を使用するヒントSDL_HINT_BMP_SAVE_LEGACY_FORMAT を “1″ に設定することができます。
* ヒントのboolean値を取得する SDL_GetHintBoolean() を追加。
* レンダリング出力をスケーリングするとき、スムーズスケールまたはビューポートサイズの整数倍を使用するかどうかを設定する SDL_RenderSetIntegerScale() を追加。
* 特定のピクセル形式でSDLの表面を作成する SDL_CreateRGBSurfaceWithFormat() と SDL_CreateRGBSurfaceWithFormatFrom() を追加。
* ウィンドウの使用可能な領域を返す SDL_GetDisplayUsableBounds() を追加。例えば MacOSXでは、メニューバーとドックの占有面積を減算した値を返します。
* クライアント領域の周りにウィンドウの境界線のサイズなどを返す 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がネームスレッドにデバッガ除外を引き起こすことを防止するためのヒント SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING を追加。この例外はデバッガの下で実行されている場合、.NETアプリケーションで問題が発生する可能性があります。
* ヒント SDL_HINT_THREAD_STACK_SIZE は現在Windows上でサポートされました。
* 起動時に自動的に引いた状態だったXBoxコントローラーのトリガーを修正。
* 実行ファイルからの最初のアイコンは、実行時にデフォルトのウィンドウアイコンとして使用されます。
* SDLがCライブラリのサポートによってビルドされたとき、SDLログメッセージが重複して印刷された問題を修正。
* SDLウィンドウがフォーカスを失ったとき、SDLアプリケーションで押されたデッドキーが他のアプリケーションのテキスト入力に影響を与えないようデッドキーをリセット。

Mac OS X:
* ダミービデオドライバの選択を修正。
* caps lockキーは現在、プレス/リリースイベントのペアが押される代わりに、押した時にプレスイベントが、放した時にリリースイベントが発生します。
* MacOSX 10.12上でのマウスホイールイベントを修正。
* MacOSX の新しいバージョンとの互換性を高めるためオーディオドライバーは AVFoundation を使用するように更新されました。

OpenBSD:
* OpenBSD上に SDL_GetBasePath() を現在、実装した。

iOS:
* iOS8以降に動的にロードされたオブジェクトのサポートを追加。

tvOS:
* Apple TVのサポートを追加しました。
* Apple TVのリモコンのジョイスティック軸が自動的にリモートの回転と一致するかどうかを制御するためのヒント「SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION」を追加。

Android:
* Androidの画面解像度を変更した時、SDLでウィンドウサイズが変更されない問題を修正。
* 加速度計のジョイスティックZ軸レポートを修正。

Emscripten(Webブラウザ上で実行されています):
* 多くのバグ修正と改善。
 

Link【Simple DirectMedia Layer – Homepage

SDL 2.0.2 リリース

3月 14th, 2014

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上でコンパイルエラー

12月 25th, 2013

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 リリース

10月 25th, 2013

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への移行ガイド

8月 23rd, 2013

 
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 リリース

1月 30th, 2012


 
 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系のソフトがフルスクリーン化できない

8月 2nd, 2011

 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