クラス SGSurface

描画イメージを保持するクラス [詳細]

#include <sgsurface.h>

SGSurfaceに対する継承グラフ
Inheritance graph
[凡例]

すべてのメンバ一覧

Public メソッド

 SGSurface ()
 コンストラクタ
 SGSurface (_SGSurface *surface)
 コンストラクタ
virtual ~SGSurface ()
 デストラクタ
virtual void Release ()
 確保したリソースを解放する
virtual void DrawObject (SGRect region)
 オブジェクトの描画を行う
void ReleaseSource ()
 確保したリソースを解放する
void SetSurface (_SGSurface *surface)
 サーフェイスを設定する
_SGSurface * GetSurface ()
 サーフェイスを取得する
void SetPalette (SGPalette *palette)
 パレットを登録する
void GetPalette (SGPalette **palette)
 パレットを取得する
void GetSize (int &width, int &height)
 サーフェイスのサイズを取得する
int GetPixelFormat ()
 ピクセルフォーマットを取得する
int IsLUT8 ()
 ピクセルフォーマットがインデックスカラーかどうか確認する
int IsTransparent (int x, int y)
 ポイント(x,y)の位置が透明かどうか調べる
void SetColor (unsigned int col=((((unsigned int) 0x87)<< 24)|(((unsigned int) 0x00)<< 16)|(((unsigned int) 0x87)<< 8)|(unsigned int) 0x00))
 フォントを設定する
void SetColor (int rr, int gg, int bb)
 描画色を設定する。
void SetColorIndex (unsigned int index=(0xffffffff))
 描画色を設定する
unsigned int GetTransparentIndex ()
 透明色のインデックス番号を取得する
unsigned int GetTransparent ()
 透明色を取得する
void SetSrcColorKey (unsigned int col=((((unsigned int) 0x87)<< 24)|(((unsigned int) 0x00)<< 16)|(((unsigned int) 0x87)<< 8)|(unsigned int) 0x00))
 コピー元の透明色を設定する
void SetCopyMode (int mode=0)
 コピーモードを設定する
void SetRenderOptions (int option)
void SetBlittingFlags (int flags)
void SetMatrix (SGMatrix &matrix)
void SetMatrix (int type)
void Copy (SGSurface *source, SGRect *srcrect=NULL, int x=0, int y=0)
 サーフェースをコピーする
void CopyEx (SGSurface *source, SGRect *srcrect=NULL, int x=0, int y=0, int effect=0)
 サーフェスをコピーする
void Copy (SGSurface *source, SGRect *srcrect, SGRect *dstrect)
 サーフェースをコピーする
void Erase (int x=0, int y=0, int w=0, int h=0)
 サーフェースの指定した領域をクリアする
void Erase (SGRect rect=SGRect())
 サーフェースの指定した領域をクリアする
void FillRectangle (int x=0, int y=0, int w=0, int h=0)
 長方形を塗りつぶす
void DrawRectangle (int x=0, int y=0, int w=0, int h=0)
 長方形を描画する
void DrawLine (int x1, int y1, int x2, int y2)
 文字列を描画する。
void DrawPolygon (SGPoints &point)
void DrawPolygon (_SGLine *lines, int nn)
void DrawLines (SGLines &path)
void DrawSpans (int y, int *dot, int count)
int Lock (int write, unsigned char **data, int &width)
 サーフェースのメモリに直接アクセスする為にロックをかける
int Unlock ()
 サーフェースのメモリに直接アクセスする為のロックを解除する
void SetUpdateRect (int x=0, int y=0, int w=0, int h=0)
 更新領域を登録する
void SetUpdateRect (SGRect region)
 更新領域を登録する
SGRect GetAndResetUpdateRect ()
 更新領域を取得しリセットする
void CoreFlip (SGRect rect=SGRect())
 サーフェイスの内容を画面に反映する
int SetClip (SGRect region=SGRect())
 クリッピング領域を設定する
int GetClip (SGRect &region)
 クリッピング領域を取得する

説明

描画イメージを保持するクラス


コンストラクタとデストラクタ

SGSurface (  ) 

コンストラクタ

SGSurface ( _SGSurface *  surface  ) 

コンストラクタ

~SGSurface (  )  [virtual]

デストラクタ


関数

void Release (  )  [virtual]

確保したリソースを解放する

確保したリソースを解放します。

SGCaret, と SGSharedSurfaceで再定義されています。

void DrawObject ( SGRect  region  )  [virtual]

オブジェクトの描画を行う

サーフェースをオブジェクトして使用する際の描画を行う関数です。
この関数は拡張専用でブランク(何もしない)仮想関数(Virtual)です。
表示の更新は、この関数をオーバーライドして使用します。

引数:
region 更新の必要な領域

SGDialogで再定義されています。

void ReleaseSource (  ) 

確保したリソースを解放する

確保したリソースを解放します。

void SetSurface ( _SGSurface *  surface  ) 

サーフェイスを設定する

サーフェイスを設定します。

引数:
surface サーフェイスのポインタ
_SGSurface * GetSurface (  ) 

サーフェイスを取得する

サーフェイスを取得します。

戻り値:
サーフェイスへのポインタ
void SetPalette ( SGPalette palette  ) 

パレットを登録する

パレットを登録します。

引数:
palette パレット
void GetPalette ( SGPalette **  pal  ) 

パレットを取得する

パレットを取得します。

引数:
pal パレット(取得用)
void GetSize ( int &  width,
int &  height 
)

サーフェイスのサイズを取得する

サーフェイスのサイズを取得します。

引数:
width 幅(取得用)
height 高さ(取得用)

SGDialogで再定義されています。

int GetPixelFormat (  ) 

ピクセルフォーマットを取得する

ピクセルフォーマットを取得します。

戻り値:
SGPF_LUT8 8bitインデックスカラー
SGPF_RGB16 16bitカラー
SGPF_ARGB1555 16bitカラー
SGPF_RGB24 24bitカラー
SGPF_RGB32 32bitカラー
int IsLUT8 (  ) 

ピクセルフォーマットがインデックスカラーかどうか確認する

ピクセルフォーマットがインデックスカラーかどうか確認します。

戻り値:
TRUE インデックスカラーです。
FALSE インデックスカレーでは無いです。
int IsTransparent ( int  x,
int  y 
)

ポイント(x,y)の位置が透明かどうか調べる

ポイント(x,y)の位置が透明かどうか調べます。

引数:
x 確認する位置の座標X
y 確認する位置の座標Y
戻り値:
TRUE ポイント(x,y)の位置は透明です。
FALSE ポイント(x,y)の位置は透明では無いです。

SGDialogで再定義されています。

void SetColor ( unsigned int  col = ((((unsigned int) 0x87 )<<24)|(((unsigned int) 0x00 )<<16)|(((unsigned int) 0x87 )<<8)|(unsigned int) 0x00 )  ) 

フォントを設定する

このサーフェースに対して font を登録(関連付け)します。

引数:
font フォント このサーフェースに関連付けられているフォントを取得する現在登録(関連付け)されているフォントの参照ポインタを取得します。 使用後は取得したフォントクラスのRelease()関数でリソースを解放する必要があります。 描画色を設定するこの関数は、線や文字を描画するときの描画色を設定します。
colを省略すると透明色になります。
色指定する場合は RGB(Red,Green,Blue) マクロを使用すると便利です。
col 
void SetColor ( int  rr,
int  gg,
int  bb 
)

描画色を設定する。

この関数は、線や文字を描画するときの描画色を設定します。

引数:
rr 赤色の強さ(0〜255)
gg 緑色の強さ(0〜255)
bb 青色の強さ(0〜255)
void SetColorIndex ( unsigned int  index = (0xffffffff)  ) 

描画色を設定する

この関数は、線や文字を描画するときの描画色を設定します。
パレットを使っている場合のみ有効

引数:
index パレットの色指定番号
unsigned int GetTransparentIndex (  ) 

透明色のインデックス番号を取得する

透明色のインデックス番号を取得します。
取得できなかった場合は0が戻ります。

戻り値:
透明色のインデックス番号
unsigned int GetTransparent (  ) 

透明色を取得する

透明色を取得します。

戻り値:
透明色
void SetSrcColorKey ( unsigned int  col = ((((unsigned int) 0x87 )<<24)|(((unsigned int) 0x00 )<<16)|(((unsigned int) 0x87 )<<8)|(unsigned int) 0x00 )  ) 

コピー元の透明色を設定する

コピー元の透明色を設定します。

引数:
col 透明色
void SetCopyMode ( int  mode = 0  ) 

コピーモードを設定する

コピーモードを設定します。

引数:
mode モード

0 コピー元サーフェースに登録されている透明色を使用します。
1 単純コピー
void Copy ( SGSurface source,
SGRect srcrect = NULL,
int  x = 0,
int  y = 0 
)

サーフェースをコピーする

サーフェースをコピーします。

引数:
source コピー元のサーフェース
srcrect コピー元のコピー範囲
x コピー先の座標X
y コピー先の座標Y
void CopyEx ( SGSurface source,
SGRect srcrect = NULL,
int  x = 0,
int  y = 0,
int  effect = 0 
)

サーフェスをコピーする

サーフェスをコピーします。 2つのサーフェスのピクセルフォーマットが異なる場合はコピーを中止します。

引数:
source コピー元のサーフェス
srcrect コピー元のコピー範囲
x コピー先の座標X
y コピー先の座標Y
effect エフェクト

SGMT_NONE 効果なし
SGMT_R0   0度回転(効果なし、SGMT_NONEと同じ)
SGMT_R90  90度回転
SGMT_R180 180度回転
SGMT_R270 270度回転
SGMT_MIRROR ミラー(左右反転)
SGMT_HFLIP  水平反転(左右反転、SGMT_MIRRORと同じ)
SGMT_FLIP   上下反転
SGMT_VFLIP  垂直反転(上下反転、SGMT_FLIPと同じ)
void Copy ( SGSurface source,
SGRect srcrect,
SGRect dstrect 
)

サーフェースをコピーする

サーフェースをコピーします。

引数:
source コピー元のサーフェース
srcrect コピー元のコピー範囲
dstrect コピー先の範囲
void Erase ( int  x = 0,
int  y = 0,
int  w = 0,
int  h = 0 
)

サーフェースの指定した領域をクリアする

全てのパラメータは省略可能です。省略するとサーフェース全体になります。
指定された領域がEmpty(幅や高さがゼロ)の場合サーフェース全体がクリアされます。
クリアとは透明色で塗りつぶすことです。

引数:
x 座標X
y 座標Y
w 
h 高さ
void Erase ( SGRect  rect = SGRect()  ) 

サーフェースの指定した領域をクリアする

指定された領域がEmpty(幅や高さがゼロ)の場合サーフェース全体がクリアされます。 クリアとは透明色で塗りつぶすことです。

引数:
rect 領域
void FillRectangle ( int  x = 0,
int  y = 0,
int  w = 0,
int  h = 0 
)

長方形を塗りつぶす

指定の長方形部分を塗りつぶします。

引数:
x 座標X
y 座標Y
w 
h 高さ
void DrawRectangle ( int  x = 0,
int  y = 0,
int  w = 0,
int  h = 0 
)

長方形を描画する

長方形を描画します。

引数:
x 座標X
y 座標Y
w 
h 高さ
void DrawLine ( int  x1,
int  y1,
int  x2,
int  y2 
)

文字列を描画する。

文字列を表示する基本関数です。
SGCore::DrawTextもこの関数を使用します。
与える座標(原点)は開始文字のベースライン左端です。
※SGCoreDrawTextは文字列の左上が原点です。原点が違いますので注意して下さい。

引数:
text 描画する文字列
bx 開始位置の座標X
by 開始位置の座標Y 直線を描画する直線を描画します。
x1 開始点座標X
y1 開始点座標Y
x2 終了点座標X
y2 終了点座標Y
int Lock ( int  write,
unsigned char **  data,
int &  width 
)

サーフェースのメモリに直接アクセスする為にロックをかける

サーフェースのメモリに直接アクセスする為にロック(アクセス制限)をかけます。

引数:
write 書込を行う/行わない

TRUE  書き込みを行う。
FALSE 読み込みのみ行う。
data サーフェースのメモリ(取得用)
width サーフェースメモリ幅
int Unlock (  ) 

サーフェースのメモリに直接アクセスする為のロックを解除する

サーフェースのメモリに直接アクセスする為のロックを解除します。

void SetUpdateRect ( int  x = 0,
int  y = 0,
int  w = 0,
int  h = 0 
)

更新領域を登録する

更新領域を登録します。
更新領域とは次回描画の際にどの部分が変更されているか判断する為の範囲で この領域が設定されていないと変更が画面に反映しません。

引数:
x 座標X
y 座標Y
w 
h 高さ
void SetUpdateRect ( SGRect  region  ) 

更新領域を登録する

更新領域を登録します。
更新領域とは次回描画の際にどの部分が変更されているか判断する為の範囲で この領域が設定されていないと変更が画面に反映しません。

引数:
region 更新領域
SGRect GetAndResetUpdateRect (  ) 

更新領域を取得しリセットする

更新領域を取得しリセットします。

戻り値:
更新領域
void CoreFlip ( SGRect  rect = SGRect()  ) 

サーフェイスの内容を画面に反映する

フレームバッファへ描画を行い、サーフェイスの内容を画面に反映させます。

int SetClip ( SGRect  region = SGRect()  ) 

クリッピング領域を設定する

クリッピング領域を設定します。

引数:
region クリッピング領域
int GetClip ( SGRect region  ) 

クリッピング領域を取得する

クリッピング領域を取得します。

引数:
region 

このクラスの説明は次のファイルから生成されました:

PlusG リファレンスマニュアル Ver 2.0.0