描画イメージを保持するクラス [詳細]
#include <sgsurface.h>
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 ®ion) |
クリッピング領域を取得する |
描画イメージを保持するクラス
SGSurface | ( | ) |
コンストラクタ
SGSurface | ( | _SGSurface * | surface | ) |
コンストラクタ
~SGSurface | ( | ) | [virtual] |
デストラクタ
void Release | ( | ) | [virtual] |
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 | |||
) |
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 単純コピー |
サーフェースをコピーする
サーフェースをコピーします。
source | コピー元のサーフェース | |
srcrect | コピー元のコピー範囲 | |
x | コピー先の座標X | |
y | コピー先の座標Y |
サーフェスをコピーする
サーフェスをコピーします。 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と同じ) |
サーフェースをコピーする
サーフェースをコピーします。
source | コピー元のサーフェース | |
srcrect | コピー元のコピー範囲 | |
dstrect | コピー先の範囲 |
void Erase | ( | int | x = 0 , |
|
int | y = 0 , |
|||
int | w = 0 , |
|||
int | h = 0 | |||
) |
サーフェースの指定した領域をクリアする
全てのパラメータは省略可能です。省略するとサーフェース全体になります。
指定された領域がEmpty(幅や高さがゼロ)の場合サーフェース全体がクリアされます。
クリアとは透明色で塗りつぶすことです。
x | 座標X | |
y | 座標Y | |
w | 幅 | |
h | 高さ |
サーフェースの指定した領域をクリアする
指定された領域が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 | ( | ) |
更新領域を取得しリセットする
更新領域を取得しリセットします。
int GetClip | ( | SGRect & | region | ) |
クリッピング領域を取得する
クリッピング領域を取得します。
region |