ディスプレイとウィンドウ
目次 - SDL 3.0 API(機能別) - ディスプレイとウィンドウ
ディスプレイとウィンドウ
概要
SDLのビデオサブシステムはオペレーティングシステムの管理下にあるウィンドウを広く抽象化している.
ウィンドウの生成, 様々な管理, フルスクリーンの設定, マウスやキーボードがウィンドウに作用したなどの様々な事象の発生によるイベントの獲得などを行える.
ビデオサブシステムは環境によるOpenGLの違い(コンテキストの生成, バッファ交換など)の抽象化も扱っている.
これはアプリケーションにとっては重要かもしれないが, OpenGLをまったく使わないこともできる.
SDLはウィンドウのレンダリングのために簡単に使える2D APIや, より強力なGPU APIも用意している.
無論, 単にアプリケーションの邪魔をせず, Vulkan, Direct3D, Metalや, その他の直接操作を使用するためのウィンドウハンドルを提供することもできる.
ビデオサブシステムは多くの機能をカバーしており, 何が可能か関数の一覧を見る価値はあるが, ほとんどのアプリケーションはウィンドウの生成とイベントの受信ができればよいため, SDL_CreateWindow()とSDL_PollEvent()から始めるとよいだろう.
関数
- SDL_CreatePopupWindow - 指定した親ウィンドウの子ポップアップウィンドウを生成する
- SDL_CreateWindow - 大きさとフラグを指定してウィンドウを生成する
- SDL_CreateWindowWithProperties - プロパティを指定してウィンドウを生成する
- SDL_DestroyWindow - ウィンドウを破棄する
- SDL_DestroyWindowSurface - ウィンドウに関連付けられたサーフェイスを破棄する
- SDL_DisableScreenSaver - スクリーンセーバーを無効にする
- SDL_EGL_GetCurrentConfig - 現在のEGLコンフィグを得る
- SDL_EGL_GetCurrentDisplay - 現在のEGLディスプレイを得る
- SDL_EGL_GetProcAddress - EGLライブラリ関数を得る
- SDL_EGL_GetWindowSurface - ウィンドウのEGLサーフェイスを得る
- SDL_EGL_SetAttributeCallbacks - EGL初期化時のカスタムattribute配列を設定するのためのコールバックを設定する
- SDL_EnableScreenSaver - スクリーンセーバーを有効にする
- SDL_FlashWindow - ウィンドウをフラッシュさせる
- SDL_GetClosestFullscreenDisplayMode - 要求に最も近いディスプレイモードを得る
- SDL_GetCurrentDisplayMode - 現在のディスプレイモードを得る
- SDL_GetCurrentDisplayOrientation - ディスプレイの方向を得る
- SDL_GetCurrentVideoDriver - 初期化された現在のビデオドライバの名前を得る
- SDL_GetDesktopDisplayMode - デスクトップのディスプレイモードを得る
- SDL_GetDisplayBounds - ディスプレイに表示されるデスクトップの領域を得る
- SDL_GetDisplayContentScale - ディスプレイの表示拡大率を得る
- SDL_GetDisplayForPoint - 点が含まれるディスプレイを得る
- SDL_GetDisplayForRect - 長方形の主要部分が含まれるディスプレイを得る
- SDL_GetDisplayForWindow - ウィンドウが含まれるディスプレイを得る
- SDL_GetDisplayName - ディスプレイの名前をUTF-8文字列で得る
- SDL_GetDisplayProperties - ディスプレイのプロパティを得る
- SDL_GetDisplays - 現在接続中のディスプレイの一覧を得る
- SDL_GetDisplayUsableBounds - ディスプレイに表示されるデスクトップの利用可能領域をスクリーン座標系で得る
- SDL_GetFullscreenDisplayModes - 利用可能なフルスクリーンディスプレイモードの一覧を得る
- SDL_GetGrabbedWindow - 入力グラブされているウィンドウを得る
- SDL_GetNaturalDisplayOrientation - 回転していないディスプレイの向きを得る
- SDL_GetNumVideoDrivers - SDLにコンパイルされたビデオドライバの数を得る
- SDL_GetPrimaryDisplay - メインディスプレイを得る
- SDL_GetSystemTheme - 現在のシステムテーマを得る
- SDL_GetVideoDriver - 組み込まれたビデオドライバの一覧から名前を得る
- SDL_GetWindowAspectRatio - ウィンドウのクライアント領域の縦横比を得る
- SDL_GetWindowBordersSize - ウィンドウのクライアント領域の周りにある枠(装飾)のサイズを得る
- SDL_GetWindowDisplayScale - ウィンドウのピクセルサイズに対するディスプレイの表示拡大率を得る
- SDL_GetWindowFlags - ウィンドウのフラグを得る
- SDL_GetWindowFromID - ウィンドウIDからウィンドウを得る
- SDL_GetWindowFullscreenMode - フルスクリーンウィンドウの表示モードを得る
- SDL_GetWindowICCProfile - 画面に表示されているウィンドウのICCプロファイルを無編集で得る
- SDL_GetWindowID - ウィンドウからウィンドウIDを得る
- SDL_GetWindowKeyboardGrab - ウィンドウのキーボードグラブ状態を得る
- SDL_GetWindowMaximumSize - ウィンドウのクライアント領域の最大サイズを得る
- SDL_GetWindowMinimumSize - ウィンドウのクライアント領域の最小サイズを得る
- SDL_GetWindowMouseGrab - ウィンドウのマウスグラブ状態を得る
- SDL_GetWindowMouseRect - ウィンドウのマウスの移動範囲を得る
- SDL_GetWindowOpacity - ウィンドウの不透明度を得る
- SDL_GetWindowParent - 親ウィンドウを得る
- SDL_GetWindowPixelDensity - ウィンドウのピクセル密度を得る
- SDL_GetWindowPixelFormat - ウィンドウのピクセル形式を得る
- SDL_GetWindowPosition - ウィンドウを位置を得る
- SDL_GetWindowProgressState - タスクバーアイコンのプログレスバーの状態を得る
- SDL_GetWindowProgressValue - タスクバーアイコンのプログレスバーの値を得る
- SDL_GetWindowProperties - ウィンドウのプロパティを得る
- SDL_GetWindows - 有効なウィンドウの一覧を得る
- SDL_GetWindowSafeArea - ウィンドウのセーフエリアを得る
- SDL_GetWindowSize - ウィンドウのクライアント領域のサイズを得る
- SDL_GetWindowSizeInPixels - ウィンドウのクライアント領域のサイズをピクセル数で得る
- SDL_GetWindowSurface - ウィンドウに関連付けられたサーフェイスを得る
- SDL_GetWindowSurfaceVSync - ウィンドウのサーフェイスの垂直更新周期を得る
- SDL_GetWindowTitle - ウィンドウのタイトルを得る
- SDL_GL_CreateContext - OpenGLウィンドウで使うためにOpenGLコンテキストを生成し, カレントコンテキストにする
- SDL_GL_DestroyContext - OpenGLコンテキストを削除する
- SDL_GL_ExtensionSupported - カレントコンテキストでOpenGL拡張に対応しているか否かをチェックする
- SDL_GL_GetAttribute - カレントコンテキストの属性の現在の値を得る
- SDL_GL_GetCurrentContext - 動作中のカレントコンテキストを得る
- SDL_GL_GetCurrentWindow - 動作中のOpenGLウィンドウを得る
- SDL_GL_GetProcAddress - 名前でOpenGLの関数を得る
- SDL_GL_GetSwapInterval - カレントコンテキストの交換インターバルを得る
- SDL_GL_LoadLibrary - OpenGLライブラリを動的に読み込む
- SDL_GL_MakeCurrent - OpenGLコンテキストをOpenGLウィンドウにレンダリングするように設定する
- SDL_GL_ResetAttributes - OpenGLコンテキストの属性を全て元の値にリセットする
- SDL_GL_SetAttribute - ウィンドウを生成する前にOpenGLウィンドウの属性を設定する
- SDL_GL_SetSwapInterval - カレントコンテキストの交換インターバルを設定する
- SDL_GL_SwapWindow - OpenGLレンダリングでウィンドウを更新する
- SDL_GL_UnloadLibrary - SDL_GL_LoadLibrary()で読み込んだOpenGLライブラリを解放する
- SDL_HideWindow - ウィンドウを隠す
- SDL_MaximizeWindow - ウィンドウの最大化を要求する
- SDL_MinimizeWindow - ウィンドウを最小化してアイコン化する
- SDL_RaiseWindow - ウィンドウを他のウィンドウよりも前面にして入力フォーカスを与えるように要求する
- SDL_RestoreWindow - 最小化または最大化されたウィンドウの位置とサイズを戻すように要求する
- SDL_ScreenSaverEnabled - スクリーンセーバーを有効にする
- SDL_SetWindowAlwaysOnTop - ウィンドウを常に他のウィンドウより上にする
- SDL_SetWindowAspectRatio - ウィンドウのクライアント領域の縦横比の設定を要求する
- SDL_SetWindowBordered - ウィンドウの枠の状態を設定する
- SDL_SetWindowFocusable - ウィンドウが入力フォーカスを得られるかを設定する
- SDL_SetWindowFullscreen - ウィンドウのフルスクリーン状態の設定を要求する
- SDL_SetWindowFullscreenMode - ウィンドウが可視状態かつフルスクリーンのときに使用するディスプレイモードを設定する
- SDL_SetWindowHitTest - ウィンドウの領域が特別な機能を持っているかを決めるコールバック関数を設定する
- SDL_SetWindowIcon - ウィンドウのアイコンを設定する
- SDL_SetWindowKeyboardGrab - ウィンドウのキーボードグラブモードを設定する
- SDL_SetWindowMaximumSize - ウィンドウのクライアント領域の最大サイズを設定する
- SDL_SetWindowMinimumSize - ウィンドウのクライアント領域の最小サイズを設定する
- SDL_SetWindowModal - ウィンドウのモーダルを設定する
- SDL_SetWindowMouseGrab - ウィンドウのマウスグラブモードを設定する
- SDL_SetWindowMouseRect - ウィンドウのマウスの移動範囲を設定する
- SDL_SetWindowOpacity - ウィンドウの不透明度を設定する
- SDL_SetWindowParent - ウィンドウを子ウィンドウにする
- SDL_SetWindowPosition - ウィンドウの位置の設定を要求する
- SDL_SetWindowProgressState - タスクバーアイコンのプログレスバーの状態を設定する
- SDL_SetWindowProgressValue - タスクバーアイコンのプログレスバーの値を設定する
- SDL_SetWindowResizable - ウィンドウのサイズ変更許可状態を設定する
- SDL_SetWindowShape - 透過ウィンドウの形状を設定する
- SDL_SetWindowSize - ウィンドウのクライアント領域のサイズの設定を要求する
- SDL_SetWindowSurfaceVSync - ウィンドウのサーフェイスの垂直同期を設定する
- SDL_SetWindowTitle - ウィンドウのタイトルを設定する
- SDL_ShowWindow - ウィンドウを表示する
- SDL_ShowWindowSystemMenu - システムのウィンドウメニューを表示する
- SDL_SyncWindow - 保留中のウィンドウ状態の変更が完了するまでブロックする
- SDL_UpdateWindowSurface - ウィンドウサーフェイスを画面にコピーする
- SDL_UpdateWindowSurfaceRects - ウィンドウサーフェイスの領域を画面にコピーする
- SDL_WindowHasSurface - ウィンドウに関連付けられたサーフェイスがあるかを得る
型
- SDL_DisplayID - 現在システムに接続されているディスプレイのユニークIDの型
- SDL_DisplayModeData - ディスプレイモードの内部データ型
- SDL_EGLAttrib - EGLコンテキストを生成するとき使われるEGL attributeの型
- SDL_EGLAttribArrayCallback - EGL環境初期化時の追加のattributeを得るコールバックの型
- SDL_EGLConfig - EGLコンフィグの不透明型
- SDL_EGLDisplay - EGLディスプレイの不透明型
- SDL_EGLint - EGLサーフェイスを生成するとき使われるEGLint型
- SDL_EGLIntArrayCallback - EGLサーフェイス/コンテキスト初期化時の追加のattributeを得るコールバックの型
- SDL_EGLSurface - EGLサーフェイスの不透明型
- SDL_GLContext - OpenGLコンテキストの不透明ハンドル型
- SDL_GLContextFlag - SDL_GL_CONTEXT_FLAGSで設定可能なフラグの型
- SDL_GLContextReleaseFlag - SDL_GL_CONTEXT_RELEASE_BEHAVIORで設定可能なフラグの型
- SDL_GLContextResetNotification - SDL_GL_CONTEXT_RESET_NOTIFICATIONで設定可能なフラグの型
- SDL_GLProfile - SDL_GL_CONTEXT_PROFILE_MASKで設定可能なフラグの型
- SDL_HitTest - 領域判定コールバックの型
- SDL_Window - ウィンドウを識別する不透明型
- SDL_WindowFlags - ウィンドウ状態フラグの型
- SDL_WindowID - ウィンドウユニークIDの型
構造体
- SDL_DisplayMode - ディスプレイモードの構造体
列挙体
- SDL_DisplayOrientation - ディスプレイの向きを表す列挙体
- SDL_FlashOperation - ウィンドウのフラッシュ方法の列挙体
- SDL_GLAttr - OpenGLの属性の列挙体
- SDL_HitTestResult - SDL_SetWindowHitTest()コールバック関数が戻す値の列挙体
- SDL_ProgressState - プログレスバーの状態の列挙体
- SDL_SystemTheme - システムのテーマの列挙体
マクロ
- SDL_PROP_GLOBAL_VIDEO_WAYLAND_WL_DISPLAY_POINTER - Waylandビデオバックグラウンドで使用されるグローバルwl_displayオブジェクトへのポインタのマクロ
- SDL_WINDOWPOS_CENTERED - ウィンドウの位置を中央にすることを示す値のマクロ
- SDL_WINDOWPOS_CENTERED_DISPLAY - ウィンドウの位置を指定のディスプレイの中央にすることを示す値のマクロ
- SDL_WINDOWPOS_CENTERED_MASK - SDL_WINDOWPOS_CENTEREDで使用するマジックナンバーのマクロ
- SDL_WINDOWPOS_ISCENTERED - ウィンドウの位置に「中央」のマスクがあるかをテストするマクロ
- SDL_WINDOWPOS_ISUNDEFINED - ウィンドウの位置に「不特定」のマスクがあるかをテストするマクロ
- SDL_WINDOWPOS_UNDEFINED - ウィンドウの位置を指定しないことを示す値のマクロ
- SDL_WINDOWPOS_UNDEFINED_DISPLAY - ウィンドウの位置を指定のディスプレイの不定の位置とすることを示す値のマクロ
- SDL_WINDOWPOS_UNDEFINED_MASK - SDL_WINDOWPOS_UNDEFINEDで使用するマジックナンバーのマクロ
SDL Wikiへのリンク
SDL3/CategoryVideo - SDL Wiki