目次 - API(機能別) - ディスプレイとウィンドウ
ディスプレイとウィンドウ
インクルードファイル: SDL_video.h
概要
これらの関数はディスプレイとウィンドウを扱うためのものである.
列挙体
- SDL_BlendMode
- SDL_GLattr
- SDL_GLcontextFlag
- SDL_GLprofile
- SDL_WindowEventID
- SDL_WindowFlags
構造体
- SDL_DisplayMode
- SDL_WindowEvent
関数
- SDL_CreateWindow
- SDL_CreateWindowAndRenderer
- SDL_CreateWindowFrom
- SDL_DestroyWindow
- SDL_DisableScreenSaver
- SDL_EnableScreenSaver
- SDL_GL_BindTexture
- SDL_GL_CreateContext
- SDL_GL_DeleteContext
- SDL_GL_ExtensionSupported
- SDL_GL_GetAttribute
- SDL_GL_GetCurrentContext
- SDL_GL_GetCurrentWindow
- SDL_GL_GetDrawableSize
- SDL_GL_GetProcAddress
- SDL_GL_GetSwapInterval
- SDL_GL_LoadLibrary
- SDL_GL_MakeCurrent
- SDL_GL_ResetAttributes
- SDL_GL_SetAttribute
- SDL_GL_SetSwapInterval
- SDL_GL_SwapWindow
- SDL_GL_UnbindTexture
- SDL_GL_UnloadLibrary
- SDL_GetClosestDisplayMode
- SDL_GetCurrentDisplayMode
- SDL_GetCurrentVideoDriver
- SDL_GetDesktopDisplayMode
- SDL_GetDisplayBounds
- SDL_GetDisplayMode
- SDL_GetDisplayName
- SDL_GetNumDisplayModes
- SDL_GetNumVideoDisplays
- SDL_GetNumVideoDrivers
- SDL_GetVideoDriver
- SDL_GetWindowBrightness
- SDL_GetWindowData
- SDL_GetWindowDisplayIndex
- SDL_GetWindowDisplayMode
- SDL_GetWindowFlags
- SDL_GetWindowFromID
- SDL_GetWindowGammaRamp
- SDL_GetWindowGrab
- SDL_GetWindowID
- SDL_GetWindowMaximumSize
- SDL_GetWindowMinimumSize
- SDL_GetWindowPixelFormat
- SDL_GetWindowPosition
- SDL_GetWindowSize
- SDL_GetWindowSurface
- SDL_GetWindowTitle
- SDL_GetWindowWMInfo
- SDL_HideWindow
- SDL_IsScreenSaverEnabled
- SDL_MaximizeWindow
- SDL_MinimizeWindow
- SDL_RaiseWindow
- SDL_RestoreWindow
- SDL_SetWindowBordered
- SDL_SetWindowBrightness
- SDL_SetWindowData
- SDL_SetWindowDisplayMode
- SDL_SetWindowFullscreen
- SDL_SetWindowGammaRamp
- SDL_SetWindowGrab
- SDL_SetWindowIcon
- SDL_SetWindowMaximumSize
- SDL_SetWindowMinimumSize
- SDL_SetWindowPosition
- SDL_SetWindowSize
- SDL_SetWindowTitle
- SDL_ShowMessageBox
- SDL_ShowSimpleMessageBox
- SDL_ShowWindow
- SDL_UpdateWindowSurface
- SDL_UpdateWindowSurfaceRects
- SDL_VideoInit
- SDL_VideoQuit
SDL Wikiへのリンク
CategoryVideo - SDL Wiki
SDL_RenderCopy()と描画操作で使われるブレンドモードの列挙体
値
SDL_BLENDMODE_NONE | ブレンドしない | dstRGBA = srcRGBA |
SDL_BLENDMODE_BLEND | アルファブレンディング | dstRGB = (srcRGB * srcA) + (dstRGB * (1 - srcA)) dstA = srcA + (dstA * (1 - srcA)) |
SDL_BLENDMODE_ADD | 加算ブレンディング | dstRGB = (srcRGB * srcA) + dstRGB dstA = dstA |
SDL_BLENDMODE_MOD | color modulate | dstRGB = srcRGB * dstRGB dstA = dstA |
関連項目(構造体)
SDL_RendererInfo
関連項目(関数)
SDL_GetRenderDrawBlendMode
SDL_GetSurfaceBlendMode
SDL_GetTextureBlendMode
SDL_RenderCopy
SDL_SetRenderDrawBlendMode
SDL_SetSurfaceBlendMode
SDL_SetTextureBlendMode
SDL Wikiへのリンク
SDL_BlendMode - SDL Wiki
OpenGLの属性の設定のための列挙体
値
SDL_GL_RED_SIZE | カラーバッファの赤色チャネルの最小ビット数. デフォルトは3 |
SDL_GL_GREEN_SIZE | カラーバッファの緑色チャネルの最小ビット数. デフォルトは3 |
SDL_GL_BLUE_SIZE | カラーバッファの青色チャネルの最小ビット数. デフォルトは2 |
SDL_GL_ALPHA_SIZE | カラーバッファのアルファチャネルの最小ビット数. デフォルトは0 |
SDL_GL_BUFFER_SIZE | フレームバッファの最小ビット数. デフォルトは0 |
SDL_GL_DOUBLEBUFFER | シングルか, ダブルバッファか. デフォルトはダブルバッファ |
SDL_GL_DEPTH_SIZE | 深度バッファのビット数. デフォルトは16 |
SDL_GL_STENCIL_SIZE | ステンシルバッファのビット数. デフォルトは0 |
SDL_GL_ACCUM_RED_SIZE | 蓄積バッファの赤色チャネルの最小ビット数. デフォルトは0 |
SDL_GL_ACCUM_GREEN_SIZE | 蓄積バッファの緑色チャネルの最小ビット数. デフォルトは0 |
SDL_GL_ACCUM_BLUE_SIZE | 蓄積バッファの青色チャネルの最小ビット数. デフォルトは0 |
SDL_GL_ACCUM_ALPHA_SIZE | 蓄積バッファのアルファチャネルの最小ビット数. デフォルトは0 |
SDL_GL_STEREO | ステレオ3Dで出力するか. デフォルトはオフ |
SDL_GL_MULTISAMPLEBUFFERS | マルチサンプル アンチエイリアスで使うバッファの数. デフォルトは0. 詳細を参照すること |
SDL_GL_MULTISAMPLESAMPLES | マルチサンプル アンチエイリアスで使うピクセルの周辺のサンプル数. デフォルトは0. 詳細を参照すること |
SDL_GL_ACCELERATED_VISUAL | 1を設定するとハードウェアアクセラレーション, 0を設定すると強制的にソフトウェアレンダリングを使う. デフォルトは両方を許可する |
SDL_GL_RETAINED_BACKING | 未使用 (廃止) |
SDL_GL_CONTEXT_MAJOR_VERSION | OpenGLコンテキストのメジャーバージョン. 詳細を参照すること |
SDL_GL_CONTEXT_MINOR_VERSION | OpenGLコンテキストのマイナーバージョン. 詳細を参照すること |
SDL_GL_CONTEXT_FLAGS | 0個以上のSDL_GLcontextFlag列挙体の要素. デフォルトは0 |
SDL_GL_CONTEXT_PROFILE_MASK | OpenGLコンテキストの種類(Core, Compatibility, ES). SDL_GLprofile列挙体を参照すること. デフォルトは環境に依存する |
SDL_GL_SHARE_WITH_CURRENT_CONTEXT | OpenGLコンテキストのシェア. デフォルトは0 |
SDL_GL_FRAMEBUFFER_SRGB_CAPABLE | sRGBの使用を要求する. デフォルトは0. (SDL 2.0.1以上) |
SDL_GL_CONTEXT_EGL | 未使用 (廃止) |
サンプルコード
SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8);
SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8);
SDL_GL_SetAttribute(SDL_DOUBLEBUFFER, 1);
SDL_GL_CreateContext(window);
詳細
通常, OpenGLのほとんどの属性は設定できるが, 上記の属性はSDLがOpenGLコンテキストを使うため, ウィンドウを生成する前にわかっている必要がある.
これらの属性はSDL_GL_SetAttribute()とSDL_GL_GetAttribute()で設定, 獲得できる.
これらの属性は最小値の要求の場合がある.
つまりGLは要求したちょうどの値を保障しない.
例えば, 16bitの深度バッファを要求して24bitの深度バッファが設定されることや, ステンシルバッファを使わないように要求したが存在する, ということはありうる.
GLが要求された最小の属性を提供できない場合はコンテキストの生成は必ず失敗する.
しかし, 設定された属性がちょうどであるかを知るためにはチェックしなければならない.
マルチサンプル アンチエイリアシングはフルスクリーンのアンチエイリアシングである.
マルチサンプル アンチエイリアシングはデフォルトではオフだが, SDL_GL_MULTISAMPLEBUFFERSを1, SDL_GL_MULTISAMPLESAMPLESを0以上にするとオンになる. よく使われる値は2と4である.
SDL_GL_CONTEXT_PROFILE_MASKは生成されたコンテキストで決まる.
SDL_GL_CONTEXT_MAJOR_VERSIONとSDL_GL_CONTEXT_MINOR_VERSIONも同じである.
これら3つの属性は最初のウィンドウが生成される前に設定する必要がある.
そして, 通常はSDL_GL_CONTEXT_PROFILE_MASKの値は, 以前の設定で生成したウィンドウを全ての閉じるまでは変更できない.
関連項目(関数)
SDL_GL_GetAttribute
SDL_GL_SetAttribute
SDL_GL_CreateContext
SDL Wikiへのリンク
SDL_GLattr - SDL Wiki
OpenGLコンテキストの設定フラグのための列挙体
値
SDL_GL_CONTEXT_DEBUG_FLAG | 詳細を参照すること |
SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG | 詳細を参照すること |
SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG | 詳細を参照すること |
SDL_GL_CONTEXT_RESET_ISOLATION_FLAG | 詳細を参照すること |
詳細
この列挙体はSDL_GL_SetAttributeでSDL_GL_CONTEXT_FLAGSと組み合わせて使う.
フラグを論理和で複数設定できる.
SDL_GL_CONTEXT_DEBUG_FLAG
このフラグは, X11のGLX_ARB_create_context拡張のGLX_CONTEXT_DEBUG_BIT_ARB, WindowsのWGL_ARB_create_context拡張のWGL_CONTEXT_DEBUG_BIT_ARBにマップされている.
他の環境では同様の機能がないため無視される.
SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG
このフラグは, X11のGLX_ARB_create_context拡張のGLX_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB, WindowsのWGL_ARB_create_context拡張のWGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARBにマップされている.
他の環境では同様の機能がないため無視される.
SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG
このフラグは, X11ではGLX_ARB_create_context_robustness拡張のGLX_CONTEXT_ROBUST_ACCESS_BIT_ARB, WindowsではWGL_ARB_create_context_robustness拡張のWGL_CONTEXT_ROBUST_ACCESS_BIT_ARBにマップされている.
他の環境では同様の機能がないため無視される.
SDL_GL_CONTEXT_RESET_ISOLATION_FLAG
このフラグは, X11ではGLX_ARB_robustness_isolation拡張のGLX_CONTEXT_RESET_ISOLATION_BIT_ARB, WindowsではWGL_ARB_create_context_robustness拡張のWGL_CONTEXT_RESET_ISOLATION_BIT_ARBにマップされている.
他の環境では同様の機能がないため無視される.
関連項目(列挙体)
SDL_GLattr
関連項目(関数)
SDL_GL_GetAttribute
SDL_GL_SetAttribute
SDL Wikiへのリンク
SDL_GLcontextFlag - SDL Wiki
OpenGLプロファイルのための列挙体
値
SDL_GL_CONTEXT_PROFILE_CORE | OpenGL コアプロファイル - 廃止された機能は無効になる |
SDL_GL_CONTEXT_PROFILE_COMPATIBILITY | Open GL 互換プロファイル - 廃止された機能は許可される |
SDL_GL_CONTEXT_PROFILE_ES | Open GL プロファイル - OpenGLのサブセット機能のみ使える |
詳細
この列挙体はSDL_GL_SetAttributeでSDL_GL_CONTEXT_PROFILE_MASKと組み合わせて使う.
SDL_GL_CONTEXT_PROFILE_MASKは論理和で複数設定できるが, プロファイルは排他的であり, SDL_GL_SetAttributeは1つしか受け付けない.
SDL_GL_CONTEXT_PROFILE_MASK属性を0にするとプロファイルはSDLが選択する.
OpenGLのプロファイルはバージョンと詳細に関連付けられているため, SDL_GL_CONTEXT_MAJOR_VERSIONとSDL_GL_CONTEXT_MINOR_VERSION属性は必ず一緒に使う必要がある.
OpenGL ES バージョン1.0と1.1のcommonとcommon liteプロファイルを区別する方法はない.
関連項目(列挙体)
SDL_GLattr
関連項目(関数)
SDL_GL_GetAttribute
SDL_GL_SetAttribute
SDL Wikiへのリンク
SDL_GLcontextFlag - SDL Wiki
ウィンドウイベントのための列挙体
値
SDL_WINDOWEVENT_NONE | (この値が使われることはない) |
SDL_WINDOWEVENT_SHOWN | ウィンドウが見えるようになった |
SDL_WINDOWEVENT_HIDDEN | ウィンドウが見えないようになった |
SDL_WINDOWEVENT_EXPOSED | ウィンドウが現れた. 再描画する必要がある |
SDL_WINDOWEVENT_MOVED | ウィンドウがdata1からdata2へ移動した |
SDL_WINDOWEVENT_RESIZED | ウィンドウの大きさがdata1×data2になった. このイベントは常にSDL_WINDOWEVENT_SIZE_CHANGEDの前に発生する |
SDL_WINDOWEVENT_SIZE_CHANGED | ウィンドウの大きさが変わった. APIの呼び出しの結果とユーザが大きさを変えた場合の両方がある. このイベントは, 大きさが外部の要因, 例えばユーザやウィンドウマネージャで変えられた場合, SDL_WINDOWEVENT_RESIZEDイベントの後に発生する. |
SDL_WINDOWEVENT_MINIMIZED | ウィンドウが最小化された |
SDL_WINDOWEVENT_MAXIMIZED | ウィンドウが最大化された |
SDL_WINDOWEVENT_RESTORED | ウィンドウが通常の大きさと位置になった |
SDL_WINDOWEVENT_ENTER | ウィンドウがマウスのフォーカスを得た |
SDL_WINDOWEVENT_LEAVE | ウィンドウがマウスのフォーカスを失った |
SDL_WINDOWEVENT_FOCUS_GAINED | ウィンドウがキーボードのフォーカスを得た |
SDL_WINDOWEVENT_FOCUS_LOST | ウィンドウがキーボードのフォーカスを失った |
SDL_WINDOWEVENT_CLOSE | ウィンドウマネージャが閉じることを要求した |
関連項目(構造体)
SDL_WindowEvent
関連項目(関数)
SDL_GetWindowID
SDL_GetWindowFromID
SDL Wikiへのリンク
SDL_WindowEventID - SDL Wiki
ウィンドウの状態のための列挙体
値
SDL_WINDOW_FULLSCREEN | フルスクリーン |
SDL_WINDOW_FULLSCREEN_DESKTOP | 現在のデスクトップの解像度でフルスクリーン |
SDL_WINDOW_OPENGL | OpenGLコンテキストで使用 |
SDL_WINDOW_SHOWN | 見えている |
SDL_WINDOW_HIDDEN | 見えていない |
SDL_WINDOW_BORDERLESS | 枠がない |
SDL_WINDOW_RESIZABLE | 大きさを変えられる |
SDL_WINDOW_MINIMIZED | 最小化されている |
SDL_WINDOW_MAXIMIZED | 最大化されている |
SDL_WINDOW_INPUT_GRABBED | 入力のフォーカスがグラブされている |
SDL_WINDOW_INPUT_FOCUS | 入力のフォーカスがある |
SDL_WINDOW_MOUSE_FOCUS | マウスのフォーカスがある |
SDL_WINDOW_FOREIGN | SDL以外によって生成された |
SDL_WINDOW_ALLOW_HIGHDPI | 高DPIモードで生成された (SDL2.0.1以上) |
詳細
SDL_WINDOW_OPENGLフラグはOpenGLを使う準備をする. しかし, ウィンドウを生成した後はOpenGLの関数を呼ぶ前にSDL_GL_CreateContext()でOpenGLコンテキストを生成する必要がある.
関連項目(関数)
SDL_CreateWindow
SDL_GetWindowFlags
SDL_HideWindow
SDL_MaximizeWindow
SDL_MinimizeWindow
SDL_SetWindowFullscreen
SDL_SetWindowGrab
SDL_ShowWindow
SDL Wikiへのリンク
SDL_WindowFlags - SDL Wiki
ディスプレイモードを含む構造体
フィールド
Uint32 | format | SDL_PixelFormatEnumの値の1つ. 詳細を参照すること |
int | w | 幅 |
int | h | 高さ |
int | refresh_rate | 更新周期(Hz), 特定できない場合は0 |
void* | driverdata | ドライバ固有のデータ. 0で初期化する |
関連項目(関数)
SDL_GetClosestDisplayMode
SDL_GetCurrentDisplayMode
SDL_GetDesktopDisplayMode
SDL_GetDisplayMode
SDL_GetNumDisplayModes
SDL_GetWindowDisplayMode
SDL_SetWindowDisplayMode
SDL Wikiへのリンク
SDL_DisplayMode - SDL Wiki
ウィンドウの状態が変化した場合のイベントのデータを含む構造体
フィールド
Uint32 | type | SDL_WINDOWEVENT |
Uint32 | timestamp | イベントのタイムスタンプ |
Uint32 | windowID | 関連のあるウィンドウ |
Uint8 | event | SDL_WindowEventID |
Sint32 | data1 | イベントによって異なるデータ |
Sint32 | data2 | イベントによって異なるデータ |
詳細
SDL_WindowEventはSDL_Event共用体のメンバの1つで, イベントのtypeがSDL_WINDOWEVENTの場合に使う.
イベントのwindowフィールドを経由してアクセスする必要がある.
関連項目(列挙体)
SDL_EventType
SDL_WindowEventID
SDL Wikiへのリンク
SDL_WindowEvent - SDL Wiki
位置, 大きさ, フラグを指定してウィンドウを生成する
構文
SDL_Window* SDL_CreateWindow(const char* title, int x, int y, int w, int h, Uint32 flags)
引数
title | UTF-8でコード化されたウィンドウのタイトル |
x | ウィンドウのX座標, SDL_WINDOWPOS_CENTERED または SDL_WINDOWPOS_UNDEFINED |
y | ウィンドウのY座標, SDL_WINDOWPOS_CENTERED または SDL_WINDOWPOS_UNDEFINED |
w | ウィンドウの幅 |
h | ウィンドウの高さ |
flags | 0 または 1つ以上のSDL_WindowFlagsの論理和 |
戻り値
生成されたウィンドウを戻す.
失敗のときNULLを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_DestroyWindow
SDL Wikiへのリンク
SDL_CreateWindow - SDL Wiki
ウィンドウとデフォルトのレンダラを生成する
構文
int SDL_CreateWindowAndRenderer(int width, int height, Uint32 window_flags, SDL_Window** window, SDL_Renderer** renderer)
引数
width | ウィンドウの幅 |
height | ウィンドウの高さ |
window_flags | ウィンドウを生成するときに使われるフラグ (SDL_CreateWindowを参照すること) |
window | 生成されたウィンドウを代入するポインタ, 失敗のときはNULL |
renderer | 生成されたレンダラを代入するポインタ, 失敗のときはNULL |
戻り値
正常のとき0, 失敗のとき-1を戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_CreateWindow
SDL_CreateRenderer
SDL Wikiへのリンク
SDL_CreateWindowAndRenderer - SDL Wiki
既にあるネイティブのウィンドウからSDLのウィンドウを生成する
構文
SDL_Window* SDL_CreateWindowFrom(const void* data)
引数
data | ドライバに依存したウィンドウ生成のためのデータ. 通常はvoid*キャストしたネイティブのウィンドウ |
戻り値
生成されたウィンドウを戻す.
失敗のときNULLを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_DestroyWindow
SDL Wikiへのリンク
SDL_CreateWindowFrom - SDL Wiki
ウィンドウを破棄する
構文
void SDL_DestroyWindow(SDL_Window* window)
引数
関連項目(関数)
SDL_CreateWindow
SDL_CreateWindowFrom
SDL Wikiへのリンク
SDL_DestroyWindow - SDL Wiki
スクリーンセーバーで画面が切り替わることを防ぐ
構文
void SDL_DisableScreenSaver(void)
詳細
スクリーンセーバーを無効にしても, SDLが終了すれば自動的に再び有効になる.
関連項目(関数)
SDL_EnableScreenSaver
SDL_IsScreenSaverEnabled
SDL Wikiへのリンク
SDL_DisableScreenSaver - SDL Wiki
スクリーンセーバーで画面が切り替わることを認める
構文
void SDL_EnableScreenSaver(void)
関連項目(関数)
SDL_DisableScreenSaver
SDL_IsScreenSaverEnabled
SDL Wikiへのリンク
SDL_EnableScreenSaver - SDL Wiki
OpenGLプリミティブのレンダリングで使うためにOpenGL/ES/ES2テクスチャをカレントコンテキストにバインドする
構文
int SDL_GL_BindTexture(SDL_Texture *texture, float *texw, float *texh)
引数
texture | OpenGL/ES/ES2カレントコンテキストにバインドするテクスチャ |
texw | テクスチャの幅を代入するfloat型の変数へのポインタ, 必要ない場合はNULL |
texh | テクスチャの高さを代入するfloat型の変数へのポインタ, 必要ない場合はNULL |
戻り値
正常のとき0, 操作が対応していないときは-1
詳細
値が得られたなら, texwとtexhには得られたテクスチャに適した幅と高さが代入されている.
ほとんどの場合, 両方の値は1.0である.
しかし, the GL_ARB_texture_rectangle拡張に対応した環境では, これらの値はテクスチャの生成のために使われた実際のピクセル数の幅と高さである.
このことはOpenGLにテクスチャの座標を与える場合に考慮する必要がある.
関連項目(関数)
SDL_GL_UnbindTexture
SDL_GL_MakeCurrent
SDL Wikiへのリンク
SDL_GL_BindTexture - SDL Wiki
OpenGLウィンドウで使うためにOpenGLコンテキストを生成し, カレントコンテキストにする
構文
SDL_GLContext SDL_GL_CreateContext(SDL_Window* window)
引数
戻り値
windowに関連付けられたOpenGLコンテキスト, エラーのときNULLを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
新たにOpenGLを使うWindowsユーザーは, 歴史的な理由で, OpenGLバージョン1.1で追加されたGL関数はデフォルトでは使えないことに注意しなければならない.
これらの関数は, OpenGL拡張を扱うライブラリ, またはSDL_GL_GetProcAddress()とその関連の関数で実行中に読み込むことができる.
関連項目(関数)
SDL_GL_DeleteContext
SDL_GL_MakeCurrent
SDL Wikiへのリンク
SDL_GL_CreateContext - SDL Wiki
OpenGLコンテキストを削除する
構文
void SDL_GL_DeleteContext(SDL_GLContext context)
引数
関連項目(関数)
SDL_GL_CreateContext
SDL Wikiへのリンク
SDL_GL_DeleteContext - SDL Wiki
カレントコンテキストでOpenGL拡張が対応しているなら真を戻す
構文
SDL_bool SDL_GL_ExtensionSupported(const char* extension)
引数
戻り値
拡張に対応していればSDL_TRUE, していなければSDL_FALSEを戻す
詳細
この関数はカレントコンテキストで動作する.
つまり, コンテキストが生成されていて, 関数が呼ばれる前にカレントである必要がある.
生成したコンテキスト全てが同じように拡張が使える, または既に存在するコンテキストから再生成したとき同じ拡張が使えるとみなしてはならない.
また, 大きな負荷が掛かる可能性がある.
この関数O(1)ではない.
必要なときに毎回この関数を呼ぶのではなく, GLコンテキストを生成した後に取り扱う拡張をチェックしてその情報を保存するべきである.
SDL Wikiへのリンク
SDL_GL_ExtensionSupported - SDL Wiki
カレントコンテキストの属性の現在の値を得る
構文
int SDL_GL_GetAttribute(SDL_GLattr attr, int* value)
引数
attr | 問い合わせる属性 (SDL_GLattr列挙体) |
value | 現在のattrの値を代入する変数へのポインタ |
戻り値
正常のとき0, 失敗のとき負の数を戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_GL_ResetAttributes
SDL_GL_SetAttribute
SDL Wikiへのリンク
SDL_GL_GetAttribute - SDL Wiki
動作中のカレントコンテキストを得る
構文
SDL_GLContext SDL_GL_GetCurrentContext(void)
戻り値
動作中のカレントコンテキストを戻す. 失敗のときNULLを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_GL_MakeCurrent
SDL Wikiへのリンク
SDL_GL_GetCurrentContext - SDL Wiki
動作中のOpenGLウィンドウを得る
構文
SDL_Window* SDL_GL_GetCurrentWindow(void)
戻り値
成功のとき動作中のOpenGLを, 失敗のときNULLを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
SDL Wikiへのリンク
SDL_GL_GetCurrentWindow - SDL Wiki
(glViewportで使うために)ウィンドウ内の描画領域のサイズを得る
構文
void SDL_GL_GetDrawableSize(SDL_Window* window, int* w, int* h)
引数
window | 描画領域のサイズを求めるウィンドウ |
w | 幅を代入する変数へのポインタ, NULLでもよい |
h | 高さを代入する変数へのポインタ, NULLでもよい |
詳細
高DPI描画領域のレンダリングの場合, 例えば高DPI(AppleではRetinaと呼ばれる)に対応した環境でSDL_WINDOW_ALLOW_HIGHDPIで生成したウィンドウでは, この関数の値とSDL_GetWindowSize()の値はおそらく異なる.
そしてSDL_HINT_VIDEO_HIGHDPI_DISABLEDでは無効にできない.
関連項目(関数)
SDL_GetWindowSize
SDL_CreateWindow
SDL Wikiへのリンク
SDL_GL_GetDrawableSize - SDL Wiki
名前でOpenGLの関数を得る
構文
void* SDL_GL_GetProcAddress(const char* proc)
引数
戻り値
その名前のOpenGL関数へのポインタを戻す.
戻されたポインタはその関数に適したシグニチャでキャストする必要がある.
詳細
GLライブラリを実行中にSDL_GL_LoadLibrary()で読み込んだならば, 全てのGL関数はこの方法で読み出さなければならない.
通常はOpenGL拡張の関数へのポインタを読み出すために使う.
OpenGLの関数を検索するのはいくつかの難点があり, アプリケーションは特に注意を要する.
それでも注意深くコーディングすれば, 環境に依存するコードなしでこれらの難点を扱うことができる.
- Windowsでは関数へのポインタはカレントコンテキストに固有である.
つまりSDL_GL_GetProcAddress()を呼ぶ前にGLコンテキストを生成しカレントにする必要がある.
コンテキストを再生成, または2つ目のコンテキストを生成したとき, 既に存在する関数へのポインタは全て使えないとみなす必要がある.
これは(現在は)Windows固有の制限だが, 実際は多くのドライバにはこの制限はない.
しかし, WGL APIのドキュメントには今でもそのように動作すると記述されていて, これを考慮しなければクラッシュすると考えるべきだ.
関数へのポインタをコピーし保存した場合, そのライフサイクルはコンテキストに従う.
- X11では, この関数が戻す関数へのポインタはあらゆるコンテキストで有効である.
そしてコンテキストを生成する前でも検索できる.
これは少なくともいくつかのOpenGLの実装で, 存在しない関数を検索したとき, 安全では*ない*NULLでない結果を得ることを意味する.
動作中のGLコンテキストで関数が実際に使えるか否かを, SDL_GL_ExtensionSupported()でその拡張の存在をチェックすることや, 使用中のバージョンのOpenGLでその関数が提供されているかを確認することで, 呼ぶ前に常に確認する必要がある.
- 全ての環境で, 一部のOpenGLのドライバは対応していない関数の場合はNULLを戻す.
しかしその動作を期待してはならない.
拡張の存在をチェックしたが, それでもNULLを得たならば, その拡張は使えないとみなすべきだ.
これはドライバのバグかもしれない. しかし, いずれにせよこの方法ならばコードは堅牢になる.
- Linux/UnixであるというだけでX11を使っているとみなしてはならない.
それと置き換わる次世代のディスプレイサーバが待ち構えている.
そしてそれは関数へのポインタも同様かもしれない.
- OpenGL関数へのポインタはサンプルコードのようにAPIENTRYで宣言する必要がある.
これは環境に従った呼出規約であることが保障されていて, (win32で)スタック破壊の問題を避けることができる.
関連項目(関数)
SDL_GL_LoadLibrary
SDL_GL_UnloadLibrary
SDL_GL_ExtensionSupported
SDL Wikiへのリンク
SDL_GL_GetProcAddress - SDL Wiki
カレントコンテキストの交換インターバルを得る
構文
int SDL_GL_GetSwapInterval(void)
詳細
垂直帰線同期が存在しないとき0, バッファ交換が垂直帰線で同期するとき1, 垂直帰線同期に対応していないとき-1を戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_GL_SetSwapInterval
SDL Wikiへのリンク
SDL_GL_GetSwapInterval - SDL Wiki
OpenGLライブラリを動的に読み込む
構文
int SDL_GL_LoadLibrary(const char* path)
引数
path | 環境に依存するOpenGLライブラリの名前の, NULLのときデフォルトのOpenGLライブラリを開く |
戻り値
成功のとき0, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
ビデオドライバを初期化した後だがOpenGLウィンドウを生成する前に行う必要がある.
もしOpenGLライブラリが読み込めなければ最初のOpenGLウィンドウを生成する時点でデフォルトのライブラリが読み込まれる.
もしこれを行ったなら, プログラム内で使う関数は全てSDL_GL_GetProcAddressで動的リンクライブラリから獲得する必要がある.
関連項目(関数)
SDL_GL_GetProcAddress
SDL_GL_UnloadLibrary
SDL Wikiへのリンク
SDL_GL_LoadLibrary - SDL Wiki
OpenGLコンテキストをOpenGLウィンドウにレンダリングするように設定する
構文
int SDL_GL_MakeCurrent(SDL_Window* window, SDL_GLContext context)
引数
window | コンテキストに関連付けるウィンドウ |
context | ウィンドウに関連付けるOpenGLコンテキスト |
戻り値
成功のとき0, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
関連項目(関数)
SDL_GL_CreateContext
SDL Wikiへのリンク
SDL_GL_MakeCurrent - SDL Wiki
OpenGLコンテキストの属性を全て元の値にリセットする
構文
void SDL_GL_ResetAttributes(void)
関連項目(関数)
SDL_GL_GetAttribute
SDL_GL_SetAttribute
SDL Wikiへのリンク
SDL_GL_ResetAttributes - SDL Wiki
ウィンドウを生成する前にOpenGLウィンドウの属性を設定する
構文
int SDL_GL_SetAttribute(SDL_GLattr attr, int value)
引数
attr | 設定するOpenGL属性 (詳細を参照すること) |
value | 設定する属性の値 |
戻り値
成功のとき0, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
この関数はOpenGL属性attrの値をvalueに設定する.
属性はOpenGLウィンドウを生成する前に設定する必要がある.
要求した値とは異なることがありうるので, OpenGLコンテキストを生成した後にSDL_GL_GetAttribute()で値をチェックする必要がある.
attrはSDL_GLattr列挙体の値の1つである.
関連項目(関数)
SDL_GL_ResetAttributes
SDL_GL_GetAttribute
SDL Wikiへのリンク
SDL_GL_SetAttribute - SDL Wiki
カレントコンテキストの交換インターバルを設定する
構文
int SDL_GL_SetSwapInterval(int interval)
引数
interval | すぐに更新するとき0, 垂直帰線で同期するとき1, late swap tearingのとき-1 (詳細を参照すること) |
戻り値
成功のとき0, 設定した交換インターバルが対応していない場合は-1を戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
一部の処理系ではintervalに-1を指定することでlate swap tearingが有効になる.
Late swap tearingは垂直帰線同期と同じように働くが, 与えられたフレームの垂直帰線同期に失敗したとき, バッファをただちに交換する. それによりユーザのフレーム落ちに対する不快感を抑えることができる.
アプリケーションがlate swap tearingを要求したが処理系が対応していないとき, この関数は失敗し-1を戻す.
その場合は, 再びこの関数をintervalを1にして呼ぶ必要がある.
Late swap tearingは, 一部のglXドライバのGLX_EXT_swap_control_tearと, 一部のWindowsドライバのWGL_EXT_swap_control_tearで実装されている.
関連項目(関数)
SDL_GL_GetSwapInterval
SDL Wikiへのリンク
SDL_GL_SetSwapInterval - SDL Wiki
OpenGLレンダリングでウィンドウを更新する
構文
void SDL_GL_SwapWindow(SDL_Window* window)
引数
詳細
この関数はダブルバッファのOpenGLコンテキストで使う(デフォルト).
SDL Wikiへのリンク
SDL_GL_SwapWindow - SDL Wiki
OpenGLプリミティブのレンダリングで使っているOpenGL/ES/ES2テクスチャをカレントコンテキストからアンバインドする
構文
int SDL_GL_UnbindTexture(SDL_Texture *texture)
引数
texture | カレントOpenGL/ES/ES2コンテキストからアンバインドするテクスチャ |
戻り値
正常のとき0, 操作が対応していないときは-1
詳細
これらの関数の使用法はSDL_GL_BindTexture()を参照すること
関連項目(関数)
SDL_GL_BindTexture
SDL_GL_MakeCurrent
SDL Wikiへのリンク
SDL_GL_UnbindTexture - SDL Wiki
SDL_GL_LoadLibrary()で読み込んだOpenGLライブラリを解放する
構文
void SDL_GL_UnloadLibrary(void)
関連項目(関数)
SDL_GL_LoadLibrary
SDL Wikiへのリンク
SDL_GL_UnloadLibrary - SDL Wiki
要求に最も近いディスプレイモードを検索する
構文
SDL_DisplayMode* SDL_GetClosestDisplayMode(int displayIndex, const SDL_DisplayMode* mode, SDL_DisplayMode* closest)
引数
戻り値
成功のときclosestへのポインタ, 利用可能なディスプレイモードがないときNULLを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
利用可能なディスプレイモードが検索され, 要求と最も近いモードがclosestに代入される.
modeのformatとrefresh_rateが0の場合, 初期値のデスクトップのモードとなる.
モードは, サイズを最優先で検索し, ピクセル形式(色)は次の優先度となる.
そして最後に更新周期をチェックする.
利用可能なモードが要求に対して小さすぎる場合, NULLを戻す.
関連項目(関数)
SDL_GetDisplayMode
SDL_GetNumDisplayModes
SDL Wikiへのリンク
SDL_GetClosestDisplayMode - SDL Wiki
現在のディスプレイモードの情報を得る
構文
int SDL_GetCurrentDisplayMode(int displayIndex, SDL_DisplayMode* mode)
引数
戻り値
成功のとき0, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
この関数とSDL_GetDesktopDisplayMode()は, SDLがフルスクリーンで, かつ解像度を変えたとき異なる.
その場合, この関数は現在のディスプレイモードを戻すが, SDL_GetDesktopDisplayMode()はそのままの値を戻す.
関連項目(関数)
SDL_GetDesktopDisplayMode
SDL_GetDisplayMode
SDL_SetWindowDisplayMode
SDL_GetNumVideoDisplays
SDL Wikiへのリンク
SDL_GetCurrentDisplayMode - SDL Wiki
初期化された現在のビデオドライバの名前を得る
構文
const char* SDL_GetCurrentVideoDriver(void)
戻り値
現在のビデオドライバの名前を, 初期化されていないときNULLを戻す.
詳細
関連項目(関数)
SDL_GetNumVideoDrivers
SDL_GetVideoDriver
SDL Wikiへのリンク
SDL_GetCurrentVideoDriver - SDL Wiki
デスクトップのディスプレイモードの情報を得る
構文
int SDL_GetDesktopDisplayMode(int displayIndex, SDL_DisplayMode* mode)
引数
戻り値
成功のとき0, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
この関数とSDL_GetCurrentDisplayMode()は, SDLがフルスクリーンで, かつ解像度を変えたとき異なる.
その場合, この関数は現在のディスプレイモードではなく変える前のディスプレイモードを戻す.
関連項目(関数)
SDL_GetCurrentDisplayMode
SDL_GetDisplayMode
SDL_SetWindowDisplayMode
SDL Wikiへのリンク
SDL_GetDesktopDisplayMode - SDL Wiki
ディスプレイの表示領域を位置が0,0の主ディスプレイとしたときの表示領域を得る
構文
int SDL_GetDisplayBounds(int displayIndex, SDL_Rect* rect)
引数
displayIndex | 問い合わせるディスプレイの番号 |
rect | ディスプレイ領域を代入するSDL_Rect構造体 |
戻り値
成功のとき0, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_GetNumVideoDisplays
SDL Wikiへのリンク
SDL_GetDisplayBounds - SDL Wiki
指定したディスプレイモードの情報を得る
構文
int SDL_GetDisplayMode(int displayIndex, int modeIndex, SDL_DisplayMode* mode)
引数
displayIndex | 問い合わせるディスプレイの番号 |
modeIndex | 問い合わせるディスプレイモードの番号 |
mode | modeIndexのディスプレイモードを代入するSDL_DisplayMode構造体 |
戻り値
成功のとき0, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
ディスプレイモードは次の順位で並んでいる
- 色数 多い→少ない
- 幅 大きい→小さい
- 高さ 大きい→小さい
- 更新周期 高い→低い
関連項目(関数)
SDL_GetNumDisplayModes
SDL Wikiへのリンク
SDL_GetDisplayMode - SDL Wiki
ディスプレイの名前をUTF-8コードで得る
構文
const char* SDL_GetDisplayName(int displayIndex)
引数
displayIndex | 問い合わせるディスプレイの番号 |
戻り値
ディスプレイの名前を, 不正なディスプレイ番号または失敗のときNULLを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_GetNumVideoDisplays
SDL Wikiへのリンク
SDL_GetDisplayName - SDL Wiki
利用可能なディスプレイモードの数を得る
構文
int SDL_GetNumDisplayModes(int displayIndex)
引数
displayIndex | 問い合わせるディスプレイの番号 |
戻り値
成功のとき1以上の数を, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
displayIndexは0からSDL_GetNumVideoDisplays()-1の範囲である必要がある.
この関数でマルチディスプレイに対応できる.
関連項目(関数)
SDL_GetDisplayMode
SDL_GetNumVideoDisplays
SDL Wikiへのリンク
SDL_GetNumDisplayModes - SDL Wiki
利用可能なディスプレイの数を得る
構文
int SDL_GetNumVideoDisplays(void)
戻り値
成功のとき1以上の数を, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_GetDisplayBounds
SDL Wikiへのリンク
SDL_GetNumVideoDisplays - SDL Wiki
SDLで利用可能なビデオドライバの数を得る
構文
int SDL_GetNumVideoDrivers(void)
引数
戻り値
成功のとき1以上の数を, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_GetVideoDriver
SDL Wikiへのリンク
SDL_GetNumVideoDrivers - SDL Wiki
組み込まれたビデオドライバの名前を得る
構文
const char* SDL_GetVideoDriver(int index)
引数
戻り値
与えられた番号のビデオドライバの名前を戻す
詳細
ビデオドライバは初期化中にチェックされた順番に提供される
関連項目(関数)
SDL_GetNumVideoDrivers
SDL Wikiへのリンク
SDL_GetVideoDriver - SDL Wiki
ウィンドウの輝度(ガンマ補正)を得る
構文
float SDL_GetWindowBrightness(SDL_Window* window)
引数
戻り値
ウィンドウの輝度を戻す. 0.0が完全に真っ暗で, 1.0が通常の輝度である.
関連項目(関数)
SDL_SetWindowBrightness
SDL Wikiへのリンク
SDL_GetWindowBrightness - SDL Wiki
ウィンドウに関連付けたデータポインタを回収する
構文
void* SDL_GetWindowData(SDL_Window* window, const char* name)
引数
window | 問い合わせるウィンドウ |
name | 名前へのポインタ |
戻り値
nameに関連付けた値を戻す
関連項目(関数)
SDL_SetWindowData
SDL Wikiへのリンク
SDL_GetWindowData - SDL Wiki
ウィンドウの存在するディスプレイの番号を得る
構文
int SDL_GetWindowDisplayIndex(SDL_Window* window)
引数
戻り値
成功のときウィンドウの中心のあるディスプレイの番号を, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_GetDisplayBounds
SDL_GetNumVideoDisplays
SDL Wikiへのリンク
SDL_GetWindowDisplayIndex - SDL Wiki
フルスクリーン時に使用するディスプレイモードを得る
構文
int SDL_GetWindowDisplayMode(SDL_Window* window, SDL_DisplayMode* mode)
引数
戻り値
成功のとき0を, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_SetWindowDisplayMode
SDL_SetWindowFullscreen
SDL Wikiへのリンク
SDL_GetWindowDisplayMode - SDL Wiki
ウィンドウのフラグを得る
構文
Uint32 SDL_GetWindowFlags(SDL_Window* window)
引数
戻り値
windowに関連付けられたSDL_WindowFlags列挙体のマスク
詳細
関連項目(関数)
SDL_CreateWindow
SDL_HideWindow
SDL_MaximizeWindow
SDL_MinimizeWindow
SDL_SetWindowFullscreen
SDL_SetWindowGrab
SDL_ShowWindow
SDL Wikiへのリンク
SDL_GetWindowFlags - SDL Wiki
IDからウィンドウを得る
構文
SDL_Window* SDL_GetWindowFromID(Uint32 id)
引数
戻り値
IDに関連付けられたウィンドウを, 存在しなければNULLを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
関連項目(関数)
SDL_GetWindowID
SDL Wikiへのリンク
SDL_GetWindowFromID - SDL Wiki
ウィンドウのガンマランプを得る
構文
int SDL_GetWindowGammaRamp(SDL_Window* window, Uint16* red, Uint16* green, Uint16* blue)
引数
window | 問い合わせるウィンドウ |
red | 赤チャネル変換テーブルを代入する16bit256要素の配列, またはNULL |
green | 緑チャネル変換テーブルを代入する16bit256要素の配列, またはNULL |
blue | 青チャネル変換テーブルを代入する16bit256要素の配列, またはNULL |
戻り値
成功のとき0を, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_SetWindowGammaRamp
SDL Wikiへのリンク
SDL_GetWindowGammaRamp - SDL Wiki
ウィンドウのグラブモードを得る
構文
SDL_bool SDL_GetWindowGrab(SDL_Window* window)
引数
戻り値
入力グラブのときSDL_TRUE, そうでないときSDL_FALSE
関連項目(関数)
SDL_SetWindowGrab
SDL Wikiへのリンク
SDL_GetWindowGrab - SDL Wiki
ログのためのウィンドウのIDの数値を得る
構文
Uint32 SDL_GetWindowID(SDL_Window* window)
引数
戻り値
ウィンドウのIDを戻す
関連項目(関数)
SDL_GetWindowFromID
SDL Wikiへのリンク
SDL_GetWindowID - SDL Wiki
ウィンドウのクライアント領域の最大サイズを得る
構文
void SDL_GetWindowMaximumSize(SDL_Window* window, int* w, int* h)
引数
window | 問い合わせるウィンドウ |
x | ウィンドウの最大幅を代入するポインタ |
y | ウィンドウの最大高さを代入するポインタ |
関連項目(関数)
SDL_GetWindowMinimumSize
SDL_SetWindowMaximumSize
SDL Wikiへのリンク
SDL_GetWindowMaximumSize - SDL Wiki
ウィンドウのクライアント領域の最小サイズを得る
構文
void SDL_GetWindowMinimumSize(SDL_Window* window, int* w, int* h)
引数
window | 問い合わせるウィンドウ |
x | ウィンドウの最小幅を代入するポインタ |
y | ウィンドウの最小高さを代入するポインタ |
関連項目(関数)
SDL_GetWindowMaximumSize
SDL_SetWindowMinimumSize
SDL Wikiへのリンク
SDL_GetWindowMinimumSize - SDL Wiki
ウィンドウのピクセルフォーマットを得る
構文
Uint32 SDL_GetWindowPixelFormat(SDL_Window* window)
引数
戻り値
Returns the pixel format of the window on success or SDL_PIXELFORMAT_UNKNOWN on failure; call SDL_GetError() for more information.
成功のときwindowのピクセルフォーマット, 失敗のときSDL_PIXELFORMAT_UNKNOWNを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
SDL Wikiへのリンク
SDL_GetWindowPixelFormat - SDL Wiki
ウィンドウを位置を得る
構文
void SDL_GetWindowPosition(SDL_Window* window, int* x, int* y)
引数
window | 問い合わせるウィンドウ |
x | ウィンドウのx座標を代入するポインタ |
y | ウィンドウのy座標を代入するポインタ |
関連項目(関数)
SDL_SetWindowPosition
SDL Wikiへのリンク
SDL_GetWindowPosition - SDL Wiki
Use this function to get the size of a window's client area.
ウィンドウのクライアント領域のサイズを得る
構文
void SDL_GetWindowSize(SDL_Window* window, int* w, int* h)
引数
window | 問い合わせるウィンドウ |
x | ウィンドウの幅を代入するポインタ |
y | ウィンドウの高さを代入するポインタ |
関連項目(関数)
SDL_SetWindowSize
SDL Wikiへのリンク
SDL_GetWindowSize - SDL Wiki
ウィンドウに関連付けられたSDLサーフェイスを得る
構文
SDL_Surface* SDL_GetWindowSurface(SDL_Window* window)
引数
戻り値
成功のときウィンドウに関連付けられたサーフェイスを, 失敗のときNULLを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
必要ならば, 新しいサーフェイスはウィンドウに適したフォーマットで生成される.
サーフェイスはウィンドウが破棄されたとき解放される.
このことはウィンドウと3DまたはレンダリングAPIの結びつきと同じではない.
この関数はSDL_HINT_FRAMEBUFFER_ACCELERATIONの影響を受ける.
関連項目(関数)
SDL_UpdateWindowSurface
SDL_UpdateWindowSurfaceRects
SDL Wikiへのリンク
SDL_GetWindowSurface - SDL Wiki
ウィンドウのタイトルを得る
構文
const char* SDL_GetWindowTitle(SDL_Window* window)
引数
戻り値
ウィンドウのタイトルのUTF-8文字列, タイトルがない場合は"".
関連項目(関数)
SDL_SetWindowTitle
SDL Wikiへのリンク
SDL_GetWindowTitle - SDL Wiki
ウィンドウに関するドライバ固有の情報を得る
構文
SDL_bool SDL_GetWindowWMInfo(SDL_Window* window, SDL_SysWMinfo* info)
引数
戻り値
この関数が実装されていて, かつinfo構造体のバージョンが正しければSDL_TRUE, 情報が得られなければSDL_FALSEを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
SDL_SysWMinfoを定義するためSDL_syswm.hをインクルードする必要がある.
info構造体はSDLバージョンが初期化されている必要があり, それがあればウィンドウの情報がサンプルコードのように得られる.
SDL Wikiへのリンク
SDL_GetWindowWMInfo - SDL Wiki
ウィンドウを隠す
構文
void SDL_HideWindow(SDL_Window* window)
引数
関連項目(関数)
SDL_ShowWindow
SDL Wikiへのリンク
SDL_HideWindow - SDL Wiki
現在スクリーンセーバーが有効かを戻す
構文
SDL_bool SDL_IsScreenSaverEnabled(void)
戻り値
スクリーンセーバーが有効のときSDL_TRUE, 無効のときSDL_FALSEを戻す.
詳細
デフォルトではスクリーンセーバーは有効である.
関連項目(関数)
SDL_DisableScreenSaver
SDL_EnableScreenSaver
SDL Wikiへのリンク
SDL_IsScreenSaverEnabled - SDL Wiki
ウィンドウを最大化する
構文
void SDL_MaximizeWindow(SDL_Window* window)
引数
関連項目(関数)
SDL_MinimizeWindow
SDL_RestoreWindow
SDL Wikiへのリンク
SDL_MaximizeWindow - SDL Wiki
ウィンドウをアイコン化する
構文
void SDL_MinimizeWindow(SDL_Window* window)
引数
関連項目(関数)
SDL_MaximizeWindow
SDL_RestoreWindow
SDL Wikiへのリンク
SDL_MinimizeWindow - SDL Wiki
ウィンドウを最前面にして入力フォーカスを与える
構文
void SDL_RaiseWindow(SDL_Window* window)
引数
SDL Wikiへのリンク
SDL_RaiseWindow - SDL Wiki
最大化または最小化されたウィンドウを元の大きさと位置に戻す
構文
void SDL_RestoreWindow(SDL_Window* window)
引数
関連項目(関数)
SDL_MaximizeWindow
SDL_MinimizeWindow
SDL Wikiへのリンク
SDL_RestoreWindow - SDL Wiki
ウィンドウの枠の状態を設定する
構文
void SDL_SetWindowBordered(SDL_Window* window, SDL_bool bordered)
引数
window | 枠の状態を設定するウィンドウ |
bordered | SDL_FALSEのとき枠を取り除く, SDL_TRUEのとき枠をつける |
詳細
この関数はSDL_WINDOW_BORDERLESSフラグを変化させ, 実際のウィンドウの枠を変化させる.
ウィンドウの枠が既にその状態の場合は何も起こらない.
フルスクリーンの場合は枠の状態は変わらない.
関連項目(関数)
SDL_GetWindowFlags
SDL Wikiへのリンク
SDL_SetWindowBordered - SDL Wiki
ウィンドウの輝度(ガンマ補正)を設定する
構文
int SDL_SetWindowBrightness(SDL_Window* window, float brightness)
引数
window | 設定するウィンドウ |
brightness | 輝度(ガンマ補正) 0.0が完全に真っ暗で, 1.0が通常の輝度 |
戻り値
成功のとき0を, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_GetWindowBrightness
SDL_SetWindowGammaRamp
SDL Wikiへのリンク
SDL_SetWindowBrightness - SDL Wiki
ウィンドウに任意の名前とポインタを関連付ける
構文
void* SDL_SetWindowData(SDL_Window* window, const char* name, void* userdata)
引数
window | ポインタに関連付けられたウィンドウ |
name | 名前へのポインタ |
userdata | 関連付けるポインタ |
戻り値
nameの関連付ける前の値を戻す
詳細
nameは大文字小文字を区別する
関連項目(関数)
SDL_GetWindowData
SDL Wikiへのリンク
SDL_SetWindowData - SDL Wiki
フルスクリーン時に使用するディスプレイモードを設定する
構文
int SDL_SetWindowDisplayMode(SDL_Window* window, const SDL_DisplayMode* mode)
引数
window | 設定するウィンドウ |
mode | 設定するディスプレイモードを代入したSDL_DisplayMode構造体, NULLのときはデスクトップの色数と更新周期を使用する |
戻り値
成功のとき0を, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
関連項目(関数)
SDL_GetWindowDisplayMode
SDL_SetWindowFullscreen
SDL Wikiへのリンク
SDL_SetWindowDisplayMode - SDL Wiki
ウィンドウのフルスクリーン状態を設定する
構文
int SDL_SetWindowFullscreen(SDL_Window* window, Uint32 flags)
引数
window | 設定するウィンドウ |
flags | SDL_WINDOW_FULLSCREEN, SDL_WINDOW_FULLSCREEN_DESKTOP または 0 (詳細を参照すること) |
戻り値
成功のとき0を, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
flagsをSDL_WINDOW_FULLSCREENにするとビデオモードを変え「本当の」フルスクリーンになる.
SDL_WINDOW_FULLSCREEN_DESKTOPにするとデスクトップと同じサイズにした「ニセの」フルスクリーンになる.
0のときウィンドウモードになる.
関連項目(関数)
SDL_GetWindowDisplayMode
SDL_SetWindowDisplayMode
SDL Wikiへのリンク
SDL_SetWindowFullscreen - SDL Wiki
ウィンドウのガンマランプを設定する
構文
int SDL_SetWindowGammaRamp(SDL_Window* window, const Uint16* red, const Uint16* green, const Uint16* blue)
引数
window | 設定するウィンドウ |
red | 赤チャネル変換テーブルの16bit256要素の配列, またはNULL |
green | 緑チャネル変換テーブルの16bit256要素の配列, またはNULL |
blue | 青チャネル変換テーブルの16bit256要素の配列, またはNULL |
戻り値
成功のとき0を, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
ビデオバードウェアのための赤, 緑, 青チャネルのガンマ変換テーブルを設定する.
それぞれのテーブルは256要素16bitで, チャネルの入力と出力をマッピングしている.
入力は配列のインデックス, 出力はそのインデックスの16bitガンマ値で, 出力カラーの精度で伸縮される.
関連項目(関数)
SDL_GetWindowGammaRamp
SDL Wikiへのリンク
SDL_SetWindowGammaRamp - SDL Wiki
構文
ウィンドウの入力グラブを設定する
void SDL_SetWindowGrab(SDL_Window* window, SDL_bool grabbed)
引数
window | 設定するウィンドウ |
grabbed | SDL_TRUEのとき入力グラブする, SDL_FALSEのとき入力グラブしない |
詳細
入力がグラブされるとマウスの動きはウィンドウ内に限定される.
関連項目(関数)
SDL_GetWindowGrab
SDL Wikiへのリンク
SDL_SetWindowGrab - SDL Wiki
ウィンドウのアイコンを設定する
構文
void SDL_SetWindowIcon(SDL_Window* window, SDL_Surface* icon)
引数
SDL Wikiへのリンク
SDL_SetWindowIcon - SDL Wiki
ウィンドウのクライアント領域の最大サイズを設定する
構文
void SDL_SetWindowMaximumSize(SDL_Window* window, int max_w, int max_h)
引数
window | 設定するウィンドウ |
max_w | ウィンドウの最大幅のピクセル数 |
max_h | ウィンドウの最大高さのピクセル数 |
関連項目(関数)
SDL_GetWindowMaximumSize
SDL_SetWindowMinimumSize
SDL Wikiへのリンク
SDL_SetWindowMaximumSize - SDL Wiki
ウィンドウのクライアント領域の最小サイズを設定する
構文
void SDL_SetWindowMinimumSize(SDL_Window* window, int min_w, int min_h)
引数
window | 設定するウィンドウ |
min_w | ウィンドウの最小幅のピクセル数 |
min_h | ウィンドウの最小高さのピクセル数 |
関連項目(関数)
SDL_GetWindowMinimumSize
SDL_SetWindowMaximumSize
SDL Wikiへのリンク
SDL_SetWindowMinimumSize - SDL Wiki
ウィンドウの位置を設定する
構文
void SDL_SetWindowPosition(SDL_Window* window, int x, int y)
引数
window | 設定するウィンドウ |
x | ウィンドウのx座標, またはSDL_WINDOWPOS_CENTERED, またはSDL_WINDOWPOS_UNDEFINED |
y | ウィンドウのy座標, またはSDL_WINDOWPOS_CENTERED, またはSDL_WINDOWPOS_UNDEFINED |
詳細
ウィンドウの座標の基点はディスプレイの左上である.
関連項目(関数)
SDL_GetWindowPosition
SDL Wikiへのリンク
SDL_SetWindowPosition - SDL Wiki
ウィンドウのクライアント領域のサイズを設定する
構文
void SDL_SetWindowSize(SDL_Window* window, int w, int h)
引数
window | 設定するウィンドウ |
w | ウィンドウの幅のピクセル数 |
h | ウィンドウの高さのピクセル数 |
関連項目(関数)
SDL_GetWindowSize
SDL Wikiへのリンク
SDL_SetWindowSize - SDL Wiki
ウィンドウのタイトルを設定する
構文
void SDL_SetWindowTitle(SDL_Window* window, const char* title)
引数
window | 設定するウィンドウ |
title | ウィンドウのタイトルのUTF-8文字列 |
関連項目(関数)
SDL_GetWindowTitle
SDL Wikiへのリンク
SDL_SetWindowTitle - SDL Wiki
モーダルなメッセージボックスを生成する
構文
int SDL_ShowMessageBox(const SDL_MessageBoxData* messageboxdata, int* buttonid)
引数
messageboxdata | タイトル, テキスト, その他のオプションを含むSDL_MessageBoxData構造体 |
buttonid | ユーザが押したボタンのIDを代入するポインタ |
戻り値
成功のとき0, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
この関数は, 親ウィンドウが生成されたスレッド, 親ウィンドウがなければメインスレッドで呼ぶ必要がある.
ユーザがボタンを押す, またはメッセージボックスを閉じるまでスレッドの実行は停止される.
関連項目(関数)
SDL_ShowSimpleMessageBox
SDL Wikiへのリンク
SDL_ShowMessageBox - SDL Wiki
単純なメッセージボックスを表示する
構文
int SDL_ShowSimpleMessageBox(Uint32 flags, const char* title, const char* message, SDL_Window* window)
引数
flags | SDL_MessageBoxFlag列挙体 (詳細を参照すること) |
title | タイトルのUTF-8文字列 |
message | メッセージのUTF-8文字列 |
window | 親ウィンドウ, NULLのとき親ウィンドウを持たない |
戻り値
成功のとき0, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
flagは以下の値である.
SDL_MESSAGEBOX_ERROR | エラーダイアログ |
SDL_MESSAGEBOX_WARNING | 警告ダイアログ |
SDL_MESSAGEBOX_INFORMATION | 情報ダイアログ |
この関数はSDL_Init()の前でも呼べる.
このことはレンダラーやOpenGLコンテキストの生成の失敗を報告するときに役立つ.
X11では, GTK+やQtのようなツールキットではなくX11そのものでダイアログボックスを表示する.
利用できるビデオがなくSDL_Init()が失敗した場合, この関数も同じ理由で失敗することに注意する必要がある.
これが問題になるならば, この関数の戻り値をチェックし, 失敗を戻したならstderrに書き込むこと.
SDL Wikiへのリンク
SDL_ShowSimpleMessageBox - SDL Wiki
ウィンドウを表示する
構文
void SDL_ShowWindow(SDL_Window* window)
引数
詳細
SDL1.2では, win32ならば BOOL WINAPI ShowWindow(_In_ HWND hWnd, _In_ int nCmdShow)
を使わなければならなかった.
SDL_ShowWindow()はその代わりである.
関連項目(関数)
SDL_HideWindow
SDL Wikiへのリンク
SDL_ShowWindow - SDL Wiki
ウィンドウサーフェイスを画面にコピーする
構文
int SDL_UpdateWindowSurface(SDL_Window* window)
引数
戻り値
成功のとき0, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
この関数は画面にサーフェイスの変更を反映するために使われる.
この関数はSDL1.2 APIのSDL_Flip()と等価である.
関連項目(関数)
SDL_GetWindowSurface
SDL_UpdateWindowSurfaceRects
SDL Wikiへのリンク
SDL_UpdateWindowSurface - SDL Wiki
ウィンドウサーフェイスの領域を画面にコピーする
構文
int SDL_UpdateWindowSurfaceRects(SDL_Window* window, const SDL_Rect* rects, int numrects)
引数
window | 更新するウィンドウ |
rects | サーフェイスをコピーする領域を表すSDL_Rect構造体の配列 |
numrects | 領域の数 |
戻り値
成功のとき0, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
この関数は画面にサーフェイスの変更を反映するために使われる.
この関数はSDL1.2 APIのSDL_UpdateRects()と等価である.
関連項目(関数)
SDL_GetWindowSurface
SDL_UpdateWindowSurface
SDL Wikiへのリンク
SDL_UpdateWindowSurfaceRects - SDL Wiki
ビデオドライバを特定してビデオサブシステムを初期化する
構文
int SDL_VideoInit(const char* driver_name)
引数
driver_name | 初期化するビデオドライバの名前, NULLのときデフォルトのドライバ |
戻り値
成功のとき0, 失敗のとき負の数のエラーコードを戻す.
そのときSDL_GetError()を呼んで詳細を知ることができる.
詳細
この関数はウィンドウマネージャとの接続を構築してビデオサブシステム等を初期化し, 利用できるディスプレイモードとピクセルフォーマットを決定する.
しかし, ウィンドウとグラフィックモードは初期化しない.
もしこの関数を使い, SDL_INIT_VIDEOフラグをSDL_Init()でもSDL_InitSubSystem()でも使わないのであれば, SDL_Quit()を呼ぶ前にSDL_VideoQuit()を呼ぶ必要がある.
この関数は何度呼んでも安全である.
SDL_VideoInit()は既にビデオサブシステムが初期化されているときSDL_VideoQuit()を自分自身で呼ぶためである.
SDL_GetNumVideoDrivers()とSDL_GetVideoDriver()は特定のdriver_nameを探すために使える.
関連項目(関数)
SDL_GetNumVideoDrivers
SDL_GetVideoDriver
SDL_InitSubSystem
SDL_VideoQuit
SDL Wikiへのリンク
SDL_VideoInit - SDL Wiki
構文
void SDL_VideoQuit(void)
詳細
この関数は全てのウィンドウを閉じ, 元のビデオモードに戻す.
関連項目(関数)
SDL_VideoInit
SDL Wikiへのリンク
SDL_VideoQuit - SDL Wiki