SDXFrameWork  0.13
SDXFrameWork
 All Classes Namespaces Functions Variables Enumerations Enumerator Pages
Static Public Member Functions | List of all members
SDX::Screen Class Reference

アクティブなRendererを操作するクラス. More...

#include <Screen.h>

Static Public Member Functions

static SDL_Renderer * GetHandle ()
 スクリーンハンドルを取得. More...
 
static RendererGetRenderer ()
 アクティブなRendererを取得. More...
 
static void SetRenderer (Renderer &描画先Renderer=Renderer::mainRenderer)
 アクティブなRendererを設定. More...
 
static bool SetTarget (Image *描画対象=nullptr)
 描画先を変更. More...
 
static ImageGetTarget ()
 描画先Imageを取得. More...
 
static bool Flip ()
 描画内容を反映. More...
 
static bool Clear ()
 画面を消去する. More...
 
static bool SetClip (const Rect &非描画領域={0, 0, 0, 0})
 描画領域を設定する、設定範囲外には描画されない. More...
 
static void SetBackColor (const Color &背景色)
 Screen::Clear後の色を設定. More...
 
static void SetBright (const Color &輝度=Color::White)
 描画輝度を設定. More...
 
static void SetBlendMode (BlendMode ブレンドモード=BlendMode::NoBlend, int 設定値=255)
 ブレンド描画のモードを設定. More...
 
static void SetDrawMode (const Color &輝度+α値=Color::White, BlendMode ブレンドモード=BlendMode::Alpha)
 描画輝度と描画モードをまとめて設定
 

Detailed Description

アクティブなRendererを操作するクラス.

ScreenにあってRendereに無い関数は[Screen専用]と表記.

//Copyright © 2014 SDXFramework
//[License]GNU Affero General Public License, version 3
//[Contact]http://sourceforge.jp/projects/dxframework/
//初期化を行い何かキーを押すと終了する
#include <SDXFramework.h>
bool SampleScreen()
{
using namespace SDX;
System::Initialise("sample", 640, 480);
Image image("data/pipo-enemy035.png");
Image back;
back.Make(640, 480);
while (System::Update())
{
//背景描画
back.Draw({ 0, 0 });
//輝度を変更して描画
image.Draw({ 0, 0 });
image.Draw({ 100, 0 });
image.Draw({ 200, 0 });
//描画モード変更
Screen::SetDrawMode({ 255, 255, 255, 128 }, BlendMode::Alpha);
image.Draw({ 300, 0 });
Screen::SetDrawMode({ 255, 255, 255, 128 }, BlendMode::Add);
image.Draw({ 400, 0 });
Screen::SetDrawMode({ 255, 255, 255, 128 }, BlendMode::Mula);
image.Draw({ 500, 0 });
Screen::SetDrawMode();//引数無しで解除
//描画範囲制御
Screen::SetClip({ 0, 100 , 60, 120 });
image.Draw({ 0, 100 });
Screen::SetClip();//引数無しで解除
//描画先変更
Drawing::Rect({ Rand::Get(590), Rand::Get(430), 50, 50 },Color::Gray);
if (Input::key.Return.on){ break;}//Enterで終了
}
return true;
}

Member Function Documentation

static SDL_Renderer* SDX::Screen::GetHandle ( )
inlinestatic

スクリーンハンドルを取得.

[Screen専用]

static Renderer* SDX::Screen::GetRenderer ( )
inlinestatic

アクティブなRendererを取得.

[Screen専用]

static void SDX::Screen::SetRenderer ( Renderer 描画先Renderer = Renderer::mainRenderer)
inlinestatic

アクティブなRendererを設定.

[Screen専用]

static bool SDX::Screen::SetTarget ( Image 描画対象 = nullptr)
inlinestatic

描画先を変更.

引数がnullptrの場合、デフォルトに戻す Image::Makeで作成したTextureのみ有効.

static Image* SDX::Screen::GetTarget ( )
inlinestatic

描画先Imageを取得.

返り値がnullptrの場合、デフォルトの描画先

static bool SDX::Screen::Flip ( )
inlinestatic

描画内容を反映.

[Screen専用]

static bool SDX::Screen::Clear ( )
inlinestatic

画面を消去する.

static bool SDX::Screen::SetClip ( const Rect 非描画領域 = {0,0,0,0})
inlinestatic

描画領域を設定する、設定範囲外には描画されない.

Rectの幅を0にするとクリップ領域が解除される.

static void SDX::Screen::SetBackColor ( const Color 背景色)
inlinestatic

Screen::Clear後の色を設定.

static void SDX::Screen::SetBright ( const Color 輝度 = Color::White)
inlinestatic

描画輝度を設定.

static void SDX::Screen::SetBlendMode ( BlendMode  ブレンドモード = BlendMode::NoBlend,
int  設定値 = 255 
)
inlinestatic

ブレンド描画のモードを設定.