コンテンツにスキップ

「SDL」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
Cewbot (会話 | 投稿記録)
15行目: 15行目:
[[ファイル:SDL Layers.svg|thumb|250px|SDLの構造]]
[[ファイル:SDL Layers.svg|thumb|250px|SDLの構造]]


'''SDL''' ('''Simple DirectMedia Layer''') は、[[C言語]]で書かれた[[クロスプラットフォーム]]のマルチメディアライブラリである。[[グラフィック]]の描画や[[サウンド]]の再生などの[[アプリケーションプログラミングインタフェース|API]]を提供する。オーディオ、キーボード、マウス、ジョイスティック、そして[[OpenGL]]および[[Direct3D]]を経由したグラフィックスハードウェアへのローレベルなアクセスを提供するよう設計されている。[[Microsoft Windows|Windows]]、[[macOS]]、[[Linux]]、[[iOS (Apple)|iOS]]、[[Android (オペレーティングシステム)|Android]]を公式にサポートしている。SDLそのものは[[オペレーティングシステム|OS]]間の違いを吸収するための最低限の抽象化しか提供しないが、SDLで使える[[フォント]]や[[コンピュータネットワーク|ネットワーク]]、[[スプライト (映像技術)|スプライト]]などの多数の補助[[ライブラリ]](後述)が公開されている。
'''SDL''' ('''Simple DirectMedia Layer''') は、[[C言語]]で書かれた[[クロスプラットフォーム]]のマルチメディアライブラリである。[[グラフィック]]の描画や[[サウンド]]の再生などの[[アプリケーションプログラミングインタフェース|API]]を提供する。オーディオ、キーボード、マウス、ジョイスティック、そして[[OpenGL]]および[[Direct3D]]を経由したグラフィックスハードウェアへのローレベルなアクセスを提供するよう設計されている。[[Microsoft Windows|Windows]]、[[macOS]]、[[Linux]]、[[iOS]]、[[Android (オペレーティングシステム)|Android]]を公式にサポートしている。SDLそのものは[[オペレーティングシステム|OS]]間の違いを吸収するための最低限の抽象化しか提供しないが、SDLで使える[[フォント]]や[[コンピュータネットワーク|ネットワーク]]、[[スプライト (映像技術)|スプライト]]などの多数の補助[[ライブラリ]](後述)が公開されている。


2021年2月7日に開発ベースを[[GitHub]]に移動するとアナウンスがあった<ref>[https://discourse.libsdl.org/t/sdl-moving-to-github/28700 SDL moving to GitHub - SDL Development - Simple Directmedia Layer]</ref>。
2021年2月7日に開発ベースを[[GitHub]]に移動するとアナウンスがあった<ref>[https://discourse.libsdl.org/t/sdl-moving-to-github/28700 SDL moving to GitHub - SDL Development - Simple Directmedia Layer]</ref>。

2021年11月10日 (水) 02:01時点における版

Simple DirectMedia Layer
開発元 Sam Lantinga
最新版
2.0.14 / 2020年12月22日 (3年前) (2020-12-22)[1]
リポジトリ ウィキデータを編集
プログラミング
言語
C言語
対応OS クロスプラットフォーム
種別 API
ライセンス zlib License/
1.2.15以前はGNU Lesser General Public License
公式サイト https://www.libsdl.org/
テンプレートを表示
Simple DirectMedia Layer
SDLの構造

SDL (Simple DirectMedia Layer) は、C言語で書かれたクロスプラットフォームのマルチメディアライブラリである。グラフィックの描画やサウンドの再生などのAPIを提供する。オーディオ、キーボード、マウス、ジョイスティック、そしてOpenGLおよびDirect3Dを経由したグラフィックスハードウェアへのローレベルなアクセスを提供するよう設計されている。WindowsmacOSLinuxiOSAndroidを公式にサポートしている。SDLそのものはOS間の違いを吸収するための最低限の抽象化しか提供しないが、SDLで使えるフォントネットワークスプライトなどの多数の補助ライブラリ(後述)が公開されている。

2021年2月7日に開発ベースをGitHubに移動するとアナウンスがあった[2]

言語バインディング

SDL自身はC言語で書かれており、C/C++向けのインタフェースのみが公式に提供されているが、AdaC#JavaLuaPascalPerlPythonRubyRustなどの各種プログラミング言語向けのバインディング(ラッパー)もコミュニティによって開発されている[3]

SDLが使用するAPI

SDLは画面の描画にOSによって異なるAPIを使う。SDL 1.2の場合、WindowsではDirectDrawあるいはGDIが、LinuxではXlibが使用される。ただし、環境変数SDL_VIDEODRIVER」を変更すれば、プログラムを書き換えることなく別のAPIを使って表示することも可能になっている[4]。利用可能なドライバーはプラットフォームおよびSDLのコンパイル時オプションに依存する。

同様に、音声出力に使うAPIも環境変数SDL_AUDIODRIVERで変更が可能。

SDL 2.0では、ウィンドウ作成時にフラグを指定することで、OpenGLやVulkanを直接利用した3D描画をサポートできる[5]

2DグラフィックスのレンダラーSDL_Rendererは、SDL_SetHint()SDL_HINT_RENDER_DRIVERを使用して、優先的に選択させたいバックエンドのヒントを指定することが可能である[6]

ギャラリー

補助ライブラリ

  • SDL_image-さまざまな画像形式をサポートする。
  • SDL_mixer-さまざまな音声形式をサポートする。
  • SDL_net-ネットワークをサポートする。
  • SDL_ttf-TrueTypeフォントをサポートする。
  • SDL_rtf-Rich Text Format形式の文書をサポートする。
  • SDL_gfx-図形を描くための補助ライブラリ。

出典

  1. ^ Sdl 2.0.14 released! - SDL Announcements - Simple Directmedia Layer
  2. ^ SDL moving to GitHub - SDL Development - Simple Directmedia Layer
  3. ^ Simple DirectMedia Layer - Language Bindings
  4. ^ FAQUsingSDL - SDL Wiki
  5. ^ SDL_WindowFlags - SDL Wiki
  6. ^ SDL_HINT_RENDER_DRIVER - SDL Wiki

関連項目

外部リンク