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_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_CONTEXT_DEBUG_FLAG | 詳細を参照すること |
SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG | 詳細を参照すること |
SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG | 詳細を参照すること |
SDL_GL_CONTEXT_RESET_ISOLATION_FLAG | 詳細を参照すること |
SDL_GL_CONTEXT_PROFILE_CORE | OpenGL コアプロファイル - 廃止された機能は無効になる |
SDL_GL_CONTEXT_PROFILE_COMPATIBILITY | Open GL 互換プロファイル - 廃止された機能は許可される |
SDL_GL_CONTEXT_PROFILE_ES | Open GL プロファイル - OpenGLのサブセット機能のみ使える |
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_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以上) |
Uint32 | format | SDL_PixelFormatEnumの値の1つ. 詳細を参照すること |
int | w | 幅 |
int | h | 高さ |
int | refresh_rate | リフレッシュレート(Hz), 特定できない場合は0 |
void* | driverdata | ドライバ固有のデータ. 0で初期化する |
Uint32 | type | SDL_WINDOWEVENT |
Uint32 | timestamp | イベントのタイムスタンプ |
Uint32 | windowID | 関連のあるウィンドウ |
Uint8 | event | SDL_WindowEventID |
Sint32 | data1 | イベントによって異なるデータ |
Sint32 | data2 | イベントによって異なるデータ |
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()を呼んで詳細を知ることができる.
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_Window* SDL_CreateWindowFrom(const void* data)
data | ドライバに依存したウィンドウ生成のためのデータ. 通常はvoid*キャストしたネイティブのウィンドウ |
生成されたウィンドウを戻す. 異常のときNULLを戻す. そのときSDL_GetError()を呼んで詳細を知ることができる.
void SDL_DestroyWindow(SDL_Window* window)
window | 破棄するウィンドウ |
void SDL_DisableScreenSaver(void)
void SDL_EnableScreenSaver(void)
int SDL_GL_BindTexture(SDL_Texture *texture, float *texw, float *texh)
texture | OpenGL/ES/ES2カレントコンテキストにバインドするテクスチャ |
texw | テクスチャの幅を代入するfloat型の変数へのポインタ, 必要ない場合はNULL |
texh | テクスチャの高さを代入するfloat型の変数へのポインタ, 必要ない場合はNULL |
SDL_GLContext SDL_GL_CreateContext(SDL_Window* window)
window | コンテキストに関連付けるウィンドウ |
void SDL_GL_DeleteContext(SDL_GLContext context)
context | 削除するOpenGLコンテキスト |
SDL_bool SDL_GL_ExtensionSupported(const char* extension)
extension | チェックする拡張の名前 |
この関数はカレントコンテキストで動作する. つまり, コンテキストが生成されていて, 関数が呼ばれる前にカレントである必要がある. 生成したコンテキスト全てが同じように拡張が使える, または既に存在するコンテキストから再生成したとき同じ拡張が使えるとみなしてはならない.
また, 大きな負荷が掛かる可能性がある. この関数O(1)ではない. 必要なときに毎回この関数を呼ぶのではなく, GLコンテキストを生成した後に取り扱う拡張をチェックしてその情報を保存するべきである.
int SDL_GL_GetAttribute(SDL_GLattr attr, int* value)
attr | 問い合わせる属性 (SDL_GLattr列挙体) |
value | 現在のattrの値を代入する変数へのポインタ |