クラス _Graphics

シェイプ、文字列、イメージを描画する機能を提供するクラスです。
_Main クラス内に自動的に構築され、_Main クラスの getGraphics() 関数で _Graphics オブジェクトを取得して、各メンバ関数を呼び出す形になります。

メンバ関数

| getColorOfRGB

D3DCOLOR getColorOfRGB(int r255, int g255, int b255)

RGB値を指定してそのRGB値に対応するカラーを表す値を取得します。

パラメータ：

r255 | 赤要素の輝度を指定します（0〜255）。
g255 | 緑要素の輝度を指定します（0〜255）。
b255 | 青要素の輝度を指定します（0〜255）。

戻り値：
カラーを表す値を返します。

| setColor

void setColor(D3DCOLOR col)

描画に使用する色を設定します。

パラメータ：

col | 描画に使用する色を指定します。

| setROP

void setROP(int mode)

ラスタオペレーションを設定します。

パラメータ：

mode | ラスタオペレーションを指定します。次のいずれかを指定します。
_ROP_COPY | 通常合成。
_ROP_ADD | 加算合成。

| setScale

void setScale(FLOAT scaleX, FLOAT scaleY)
void setScale(FLOAT scale)

拡大率を設定します。

パラメータ：

scaleX | X方向の拡大率を指定します。1.0 で拡大率100%（等倍）です。
scaleY | Y方向の拡大率を指定します。1.0 で拡大率100%（等倍）です。
scale | X方向とY方向に同じ拡大率を指定します。1.0 で拡大率100%（等倍）です。

| setRot

void setRot(FLOAT rot)

回転角度を設定します。

パラメータ：

rot | 回転角度を指定します。時計回りで、単位は「ラジアン」です。

| setAlpha

void setAlpha(int a255)

描画で参照されるα値を設定します。

パラメータ：

a255 | α値を指定します（0〜255）。

補足説明：
α値とは、255 で不透明、0 で完全な透明になる値です。

| setBright

void setBright(int bright255)

明度を設定します。

パラメータ：

bright255 | 明度を指定します（0〜255）。

| lockDraw

void lockDraw()

DirectXのスプライト描画のバッチ処理を開始します。

| unlockDraw

void unlockDraw()

DirectXのスプライト描画のバッチ処理を終了します。

補足説明：
lockDraw() から unlockDraw() の中の命令によっては意図しない結果になる場合があり、有効な箇所を見極める必要があります。

| drawLine

void drawLine(int x0, int y0, int x1, int y1)

直線を描画します。

パラメータ：

x0 | 直線の描画開始点のX座標を指定します。
y0 | 直線の描画開始点のY座標を指定します。
x1 | 直線の描画終了点のX座標を指定します。
y1 | 直線の描画終了点のY座標を指定します。

| drawRect

void drawRect(int x, int y, int w, int h)

矩形を描画します。

パラメータ：

x | 矩形の左上のX座標を指定します。
y | 矩形の左上のY座標を指定します。
w | 矩形の幅を指定します。
h | 矩形の高さを指定します。

補足説明：
横方向には x 番目から x + w 番目のピクセル（w + 1 個）が描画され、縦方向には y 番目から y + h 番目のピクセル（h + 1 個）が描画されます。

| fillRect

void fillRect(int x, int y, int w, int h)

矩形領域を塗りつぶします。

パラメータ：

x | 矩形の左上のX座標を指定します。
y | 矩形の左上のY座標を指定します。
w | 矩形の幅を指定します。
h | 矩形の高さを指定します。

補足説明：
横方向には x 番目から x + w - 1 番目のピクセル（w 個）が塗りつぶされ、縦方向には y 番目から y + h - 1 番目のピクセル（h 個）が塗りつぶされます。

| stringWidth

int stringWidth(char* str)
int stringWidth(_String* str)

指定した文字列の幅を取得します。

パラメータ：

str | 文字列を指定します。

戻り値：
文字列を表示するのに必要な幅を返します。

補足説明：
DoJaでの Font クラスの stringWidth() メソッドに相当する機能です。

| fontHeight

int fontHeight()

フォントの高さを取得します。

戻り値：
フォントの高さを返します。

補足説明：
DoJaでの Font クラスの getHeight() メソッドに相当する機能です。

| drawString

void drawString(char* str, int x, int y)
void drawString(_String* str, int x, int y)

文字列を描画します。

パラメータ：

str | 描画する文字列を指定します。
x | X座標を指定します。
y | Y座標を指定します。ベースラインの座標を指定します。

| centerDrawString

void centerDrawString(char* str, int cx, int y)
void centerDrawString(_String* str, int cx, int y)
void centerDrawString(char* str, int y)
void centerDrawString(_String* str, int y)

文字列をセンタリング描画します。

パラメータ：

str | 描画する文字列を指定します。
cx | センターX座標を指定します。このパラメータを用いない呼び出しの場合、画面の中心X座標になります。
y | Y座標を指定します。ベースラインの座標を指定します。

| rightDrawString

void rightDrawString(char* str, int w, int y)
void rightDrawString(_String* str, int w, int y)
void rightDrawString(char* str, int y)
void rightDrawString(_String* str, int y)

文字列を右寄せ描画します。

パラメータ：

str | 描画する文字列を指定します。
w | 画面右端からのスペース幅を指定します。このパラメータを用いない呼び出しの場合、画面右端に寄せられます。
y | Y座標を指定します。ベースラインの座標を指定します。

| setFlipMode

void setFlipMode(int flip)

イメージの描画時に反転または回転して描画を行うかどうかを設定します。

パラメータ：

flip | イメージの描画時の反転または回転方法を指定します。次のいずれかを指定します。
_FLIP_NONE | 反転しないことを表します。
_FLIP_HORIZONTAL | 横方向に鏡像反転することを表します。
_FLIP_VERTICAL | 縦方向に鏡像反転することを表します。
_FLIP_ROTATE | 縦横方向に鏡像反転（180度回転）することを表します。

| createImage

BOOL createImage(LPDIRECT3DTEXTURE9* image1, _Memory* data)
BOOL createImage(LPDIRECT3DTEXTURE9* image1, char* file)
BOOL createImage(_Image* image2, _Memory* data)
BOOL createImage(_Image* image2, char* file)

イメージオブジェクトを構築します。

パラメータ：

image1 | 構築されるイメージオブジェクトのポインタのアドレスを指定します。
image2 | 構築されるイメージオブジェクトのポインタを指定します。
data | 構築元の _Memory オブジェクトのポインタを指定します。
file | 構築元のファイル名を指定します。

戻り値：
正常に構築された場合 TRUE、そうでない場合 FALSE

| disposeImage

void disposeImage(LPDIRECT3DTEXTURE9 image)
void disposeImage(_Image* image)

イメージオブジェクトを破棄します。

パラメータ：

image | イメージオブジェクト・ポインタ

| drawImage

void drawImage(LPDIRECT3DTEXTURE9 image, FLOAT x, FLOAT y)
void drawImage(LPDIRECT3DTEXTURE9 image, FLOAT dx, FLOAT dy, int sx, int sy, int width, int height, FLOAT cx, FLOAT cy)
void drawImage(LPDIRECT3DTEXTURE9 image, FLOAT dx, FLOAT dy, int sx, int sy, int width, int height)
void drawImage(LPDIRECT3DTEXTURE9 image, _ImageInfo* info)
void drawImage(_Image* image, FLOAT x, FLOAT y)
void drawImage(_Image* image, FLOAT dx, FLOAT dy, int sx, int sy, int width, int height, FLOAT cx, FLOAT cy)
void drawImage(_Image* image, FLOAT dx, FLOAT dy, int sx, int sy, int width, int height)
void drawImage(_Image* image, _ImageInfo* info)

イメージを描画します。

パラメータ：

image | 描画するイメージオブジェクトのポインタを指定します。
x | 描画先のX座標を指定します。
y | 描画先のY座標を指定します。
dx | 拡大・回転を行う前の描画先X座標を指定します。
dy | 拡大・回転を行う前の描画先Y座標を指定します。
sx | 描画元の矩形の左上のX座標を指定します。
sy | 描画元の矩形の左上のY座標を指定します。
width | 描画元の矩形の幅を指定します。
height | 描画元の矩形の高さを指定します。
cx | 描画元の矩形の左からの相対X座標を指定します。このパラメータを用いないタイプ（3つ目の命令）の場合、描画元の矩形の幅の半分になります。
cy | 描画元の矩形の上からの相対Y座標を指定します。このパラメータを用いないタイプ（3つ目の命令）の場合、描画元の矩形の高さの半分になります。
info | _ImageInfo オブジェクト・ポインタを指定します。

補足説明：
パラメータが3個で LPDIRECT3DTEXTURE9 を指定するタイプ（1つ目の命令）では setScale()／setRot()／setFlipMode() の設定を見ません。
また、パラメータが3個で _Image を指定するタイプ（5つ目の命令）で setScale()／setRot()／setFlipMode() の設定が意図した通りに機能するには、あらかじめ _Image クラスの setSize() 関数でイメージのサイズを宣言しておく必要があります。

| drawScaledImage

void drawScaledImage(LPDIRECT3DTEXTURE9 image, FLOAT dx, FLOAT dy, int width, int height, int sx, int sy, int swidth, int sheight)
void drawScaledImage(_Image* image, FLOAT dx, FLOAT dy, int width, int height, int sx, int sy, int swidth, int sheight)

イメージを拡大・縮小して描画します。

パラメータ：

image | 描画するイメージオブジェクトのポインタを指定します。
dx | 描画先の矩形の左上のX座標を指定します。
dy | 描画先の矩形の左上のY座標を指定します。
width | 描画先の矩形の幅を指定します。
height | 描画先の矩形の高さを指定します。
sx | 描画元の矩形の左上のX座標を指定します。
sy | 描画元の矩形の左上のY座標を指定します。
swidth | 描画元の矩形の幅を指定します。
sheight | 描画元の矩形の高さを指定します。

補足説明：
本関数は setScale()／setRot() の設定を見ません。

| drawTransImage

void drawTransImage(LPDIRECT3DTEXTURE9 image, FLOAT dx, FLOAT dy, int sx, int sy, int width, int height, FLOAT cx, FLOAT cy, FLOAT r360, FLOAT z128x, FLOAT z128y)
void drawTransImage(_Image* image, FLOAT dx, FLOAT dy, int sx, int sy, int width, int height, FLOAT cx, FLOAT cy, FLOAT r360, FLOAT z128x, FLOAT z128y)

イメージを回転・拡大・縮小して描画します。

パラメータ：

image | 描画するイメージオブジェクトのポインタを指定します。
dx | 描画先のアンカーX座標を指定します。アンカー座標とは、回転・拡大・縮小の基準となる座標です。
dy | 描画先のアンカーY座標を指定します。アンカー座標とは、回転・拡大・縮小の基準となる座標です。
sx | 描画元の矩形の左上のX座標を指定します。
sy | 描画元の矩形の左上のY座標を指定します。
width | 描画元の矩形の幅を指定します。
height | 描画元の矩形の高さを指定します。
cx | 描画元の矩形の左からの相対X座標を指定します。この座標点とアンカー座標が一致するように描画されます。
cy | 描画元の矩形の上からの相対Y座標を指定します。この座標点とアンカー座標が一致するように描画されます。
r360 | 回転角度を指定します。時計回りで、単位は「度」です。
z128x | X方向の拡大率を指定します。128.0 で拡大率100%（等倍）です。
z128y | Y方向の拡大率を指定します。128.0 で拡大率100%（等倍）です。

補足説明：
本関数は setScale()／setRot() の設定を見ません。

| getImageInfo

_ImageInfo* getImageInfo()

直前のイメージ描画命令でのパラメータを取得します。

戻り値：
_ImageInfo オブジェクト・ポインタを返します。