SDL2のチュートリアルをやってみる BGP2.0 – その9 Viewport 描画領域を設定する

BGP2.0

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)を開始座標として描画される。
イメージ

コメント

タイトルとURLをコピーしました