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

描画先を表すクラス. More...

#include <Renderer.h>

Public Member Functions

 Renderer (int 幅, int 高さ)
 コンストラクタ. More...
 
SDL_Renderer * GetHandle ()
 描画ハンドルを取得. More...
 
bool Create (int 幅, int 高さ)
 Windowと独立した、Rendererを生成. More...
 
bool Destroy ()
 Rendererを削除. More...
 
bool SetTransColor (const Color &透過色)
 透過色を設定. More...
 
bool ResetTransColor ()
 透過色を解除. More...
 
bool Draw (const Rect &領域, Renderer &コピー先=Renderer::mainRenderer)
 対象RenderHandleにコピー. More...
 
bool DrawExtend (const Rect &元範囲, const Rect &コピー先範囲, Renderer &コピー先=Renderer::mainRenderer)
 対象RenderHandleにコピー. More...
 
bool Clear ()
 画面を消去する. More...
 
bool SetTarget (Image *描画対象=nullptr)
 描画先を変更. More...
 
ImageGetTarget ()
 現在の描画先を取得する. More...
 
bool SetClip (const Rect &描画領域={0, 0, 0, 0})
 描画領域を設定する、範囲外には描画されない. More...
 
void SetBackColor (const Color &背景色)
 Screen::Clear後の色を設定. More...
 
void SetBright (const Color &輝度)
 描画輝度を設定. More...
 
void SetBlendMode (BlendMode ブレンドモード, int α値)
 描画モードを設定. More...
 
void SetDrawMode (const Color &輝度+α値=Color::White, BlendMode ブレンドモード=BlendMode::NoBlend)
 描画輝度と描画モードをまとめて設定
 

Public Attributes

BlendMode blendMode = BlendMode::NoBlend
 描画モード
 
Color clearColor = Color(0, 0, 0)
 消去時の色
 
Color rgba = Color(255, 255, 255, 255)
 描画輝度とα値
 

Static Public Attributes

static RenderermainRenderer = SubWindow::mainWindow.renderer
 メインウィンドウのレンダラー
 

Friends

class SubWindow
 
class Drawing
 

Detailed Description

描画先を表すクラス.

Screenに無くてRendereにある関数は[Renderer専用]と表記.

//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;
}

.

Constructor & Destructor Documentation

SDX::Renderer::Renderer ( int  ,
int  高さ 
)
inline

コンストラクタ.

Member Function Documentation

SDL_Renderer* SDX::Renderer::GetHandle ( )
inline

描画ハンドルを取得.

bool SDX::Renderer::Create ( int  ,
int  高さ 
)
inline

Windowと独立した、Rendererを生成.

[Renderer専用]

bool SDX::Renderer::Destroy ( )
inline

Rendererを削除.

Windowに対応して生成したRendererは削除不可. [Renderer専用]

bool SDX::Renderer::SetTransColor ( const Color 透過色)
inline

透過色を設定.

[Renderer専用]

bool SDX::Renderer::ResetTransColor ( )
inline

透過色を解除.

[Renderer専用]

bool SDX::Renderer::Draw ( const Rect 領域,
Renderer コピー先 = Renderer::mainRenderer 
)
inline

対象RenderHandleにコピー.

処理が重い、Cameraの影響を受けない [Renderer専用]

bool SDX::Renderer::DrawExtend ( const Rect 元範囲,
const Rect コピー先範囲,
Renderer コピー先 = Renderer::mainRenderer 
)
inline

対象RenderHandleにコピー.

処理が重い、Cameraの影響を受けない [Renderer専用]

bool SDX::Renderer::Clear ( )
inline

画面を消去する.

bool SDX::Renderer::SetTarget ( Image 描画対象 = nullptr)

描画先を変更.

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

Image* SDX::Renderer::GetTarget ( )
inline

現在の描画先を取得する.

デフォルトの場合nullptrを返す

bool SDX::Renderer::SetClip ( const Rect 描画領域 = {0,0,0,0})
inline

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

幅を0にするとクリップ領域を解除する.

void SDX::Renderer::SetBackColor ( const Color 背景色)
inline

Screen::Clear後の色を設定.

void SDX::Renderer::SetBright ( const Color 輝度)
inline

描画輝度を設定.

α値は変更しない

void SDX::Renderer::SetBlendMode ( BlendMode  ブレンドモード,
int  α値 
)
inline

描画モードを設定.