bool SDL_SetRenderLogicalPresentation(SDL_Renderer *renderer, int w, int h, SDL_RendererLogicalPresentation mode);
| SDL_Renderer * | renderer | レンダリングコンテキスト |
| int | w | 論理幅 |
| int | h | 論理高さ |
| SDL_RendererLogicalPresentation | mode | 使用する表示モード |
(bool) 成功のとき真, 失敗のとき偽を戻す. SDL_GetError()を呼んで詳細を知ることができる.
この関数は論理レンダリング出力の幅と高さを設定する. レンダラは, 現在のレンダラターゲットが常に設定されたサイズであるかのようにふるまい, 必要に応じて実際の解像度に拡大縮小する.
これは, アプリケーションは固定の画面サイズを想定しているが, ユーザがウィンドウサイズを変更または高DPIディスプレイであっても, 出力サイズを拡大縮小して対応させたい場合に便利である.
論理サイズと表示モードはレンダーターゲットテクスチャとレンダラのウィンドウの両方に使用できる. 論理サイズと表示モードはそれぞれのレンダーターゲットで異なり, この関数は現在のレンダーターゲットに対して設定する. このことは, 表示モードを有効にしてウィンドウと同じサイズのテクスチャに描画し,その後で表示モードを無効にしてウィンドウ全体に表示させたい場合に有用になりうる. 両方のレンダラの表示モードを有効にすると, 上下または左右に黒帯が生じることがあるので注意すること.
論理座標はSDL_LOGICAL_PRESENTATION_DISABLEDを設定して無効にできる. この場合, レンダーターゲットの完全なピクセルの解像度が得られる. フレームのレンダリングの間に表示モードを変更しても安全である. 恐らくほとんどのレンダリングは設定したサイズで行われるが, フォントを鮮明にするため, アプリケーションはテキストの表示中は表示モードをオフにするなどしている.
イベント内で座標をSDL_ConvertEventToRenderCoordinates()でレンダリング座標に変換できる.
この関数を呼べるのはメインスレッドのみである.