Lesson09 The Viewport
画面上の一部に領域を設定して、その中に描画する
参考: Lazy Foo’ Productions Tutorials 09
要点、注意点
- 画面を3分割して、それぞれに描画する
- 座標は、設定されたビューの左上が原点(0, 0)である
詳細
ビューポート内でどのように描画されるか試してみる
右上に設定されたビューポートを対象に、描画開始座標を(50, 50)、画像のサイズを画面の二分の一のサイズに設定する。
// ビューポート内座標変更 //Top right viewport SDL_Rect topRightViewport; topRightViewport.x = SCREEN_WIDTH / 2; topRightViewport.y = 0; topRightViewport.w = SCREEN_WIDTH / 2; topRightViewport.h = SCREEN_HEIGHT / 2; SDL_RenderSetViewport( gRenderer, &topRightViewport ); // ↓↓↓(追加)↓↓↓ ビューポート内での描画位置&サイズを変更してみる ↓↓↓↓↓ SDL_Rect dstRect; dstRect.x = 50; // ビューポート左上(0, 0)を基準としたx座標 dstRect.y = 50; // ビューポート左上(0, 0)を基準としたy座標 dstRect.w = SCREEN_WIDTH * 0.5; // 画面の二分の一のサイズにする dstRect.h = SCREEN_HEIGHT * 0.5; // 画面の二分の一のサイズにする // ↑↑↑(追加)↑↑↑ ビューポート内での描画位置&サイズを変更してみる ↑↑↑↑↑↑ //Render texture to screen SDL_RenderCopy( gRenderer, gTexture, NULL, &dstRect);
結果は、右上のビューポートの左上(320, 0)を基準として画面上の座標(370, 50)を開始座標として描画される。
コメント