SACT2 for System4.x

DrawGraph

SACT2には、スプライト上のCGを加工するために、 以下のようなCG〜関数が用意されています。

凡例

nDest,nSrcなどの番号にはスプライト番号を指定します。

nSrcに MAINSURFACE ()と指定した場合、表示画面(メインサーフェイス)を示します。 たとえば、表示画面を1番のスプライトにコピーする場合は、

    SP_CREATE_PIXEL_ONLY(1, 640, 480);
    CG_COPY(1, 0, 0, MAINSURFACE(), 0, 0, 640, 480);
のようにします。

色(nR,nG,nB),率(nAlpha,nRate)などの値は(0〜255)で指定します。

インデックス

コピー 比較コピー α値参照ブレンド αマップ参照ブレンド
フィルタブレンド 塗りつぶし α=α×α 矩形効果
テクスチャラップ 拡大縮小 文字描画 文字描画(一時フォント)
フォント フォント(構造体) 回転拡大縮小 Y軸回転
X軸回転 反転    

コピー

void CG_COPY(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);

ピクセルマップをコピーします


void CG_COPY_BRIGHT(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight, int nRate);

ピクセルマップを明るさを指定してコピーします

nRate=0で黒塗りつぶしと同様,nRate=255で通常コピーと同様


void CG_COPY_AMAP(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);

αマップをコピーします


void CG_COPY_SPRITE(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight, int nR, int nG, int nB);

指定色を抜いたコピーを行います

比較コピー

void CG_COPY_USE_AMAP_UNDER(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight, int nAlpha);

αマップの値がnAlpha未満の部分のピクセルをコピーします


void CG_COPY_USE_AMAP_BORDER(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight, int nAlpha);

αマップの値がnAlpha以上の部分のピクセルをコピーします


void CG_COPY_AMAP_MAX(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);

nSrcのαマップの値がnDestのαマップの値より大きい部分のみコピーします


void CG_COPY_AMAP_MIN(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);

nSrcのαマップの値がnDestのαマップの値未満の部分のみコピーします

α値参照ブレンド

void CG_BLEND(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight, int nAlpha);

nAlphaのブレンド率でブレンドします


void CG_BLEND_SRC_BRIGHT(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight, int nAlpha, int nRate);

nAlphaのブレンド率かつnRateの明るさでブレンドします


void CG_BLEND_ADD_SATUR(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);

加算飽和ブレンドを行います

αマップ参照ブレンド

void CG_BLEND_AMAP(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);

マスク抜きコピーを行います


void CG_BLEND_AMAP_SRCONLY(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);

マスク抜きで飽和加算を行います


void CG_BLEND_AMAP_COLOR(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight, int nR, int nG, int nB);

マスク抜きで単色を飽和加算します

nSrcのピクセルマップは無視されます


void CG_BLEND_AMAP_COLOR_ALPHA(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight, int nR, int nG, int nB, int nAlpha);


void CG_BLEND_AMAP_ALPHA(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight, int nAlpha);


void CG_BLEND_AMAP_BRIGHT(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight, int nRate);


void CG_BLEND_AMAP_ALPHA_SRC_BRIGHT(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight, int nAlpha, int nRate);


void CG_BLEND_USE_AMAP_COLOR(int nDest, int nDx, int nDy, int nAlpha, int nAx, int nAy, int nWidth, int nHeight, int nR, int nG, int nB, int nRate);


void CG_BLEND_AMAP_BIN(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight, int nBorder);

フィルタブレンド

void CG_BLEND_SCREEN(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);


void CG_BLEND_MULTIPLY(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);


void CG_BLEND_SCREEN_ALPHA(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight, int nAlpha);

塗りつぶし

void CG_FILL(int nDest, int nX, int nY, int nWidth, int nHeight, int nR, int nG, int nB);


void CG_FILL_ALPHA_COLOR(int nDest, int nX, int nY, int nWidth, int nHeight, int nR, int nG, int nB, int nRate);


void CG_FILL_AMAP(int nDest, int nX, int nY, int nWidth, int nHeight, int nAlpha);


void CG_FILL_AMAP_OVER_BORDER(int nDest, int nX, int nY, int nWidth, int nHeight, int nAlpha, int nBorder);


void CG_FILL_AMAP_UNDER_BORDER(int nDest, int nX, int nY, int nWidth, int nHeight, int nAlpha, int nBorder);


void CG_FILL_SCREEN(int nDest, int nX, int nY, int nWidth, int nHeight, int nR, int nG, int nB);


void CG_FILL_MULTIPLY(int nDest, int nX, int nY, int nWidth, int nHeight, int nR, int nG, int nB);


void CG_SATUR_DP_DPXSA(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);

α=αXα

void CG_SCREEN_DA_DAXSA(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);


void CG_ADD_DA_DAXSA(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);


void CG_SPRITE_COPY_AMAP(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight, int nColorKey);

矩形効果

void CG_BRIGHT_DEST_ONLY(int nDest, int nX, int nY, int nWidth, int nHeight, int nRate);

テクスチャラップ

void CG_COPY_TEXTURE_WRAP(int nDest, int nDx, int nDy, int nDWidth, int nDHeight, int nSrc, int nSx, int nSy, int nSWidth, int nSHeight, int nU, int nV);


void CG_COPY_TEXTURE_WRAPALPHA(int nDest, int nDx, int nDy, int nDWidth, int nDHeight, int nSrc, int nSx, int nSy, int nSWidth, int nSHeight, int nU, int nV, int nAlpha);

拡大縮小

void CG_COPY_STRETCH(int nDest, int nDx, int nDy, int nDWidth, int nDHeight, int nSrc, int nSx, int nSy, int nSWidth, int nSHeight);


void CG_COPY_STRETCH_BLEND(int nDest, int nDx, int nDy, int nDWidth, int nDHeight, int nSrc, int nSx, int nSy, int nSWidth, int nSHeight, int nAlpha);


void CG_COPY_STRETCH_BLEND_AMAP(int nDest, int nDx, int nDy, int nDWidth, int nDHeight, int nSrc, int nSx, int nSy, int nSWidth, int nSHeight);


void CG_COPY_STRETCH_AMAP(int nDest, int nDx, int nDy, int nDWidth, int nDHeight, int nSrc, int nSx, int nSy, int nSWidth, int nSHeight);


void CG_COPY_STRETCH_INTERP(int nDest, int nDx, int nDy, int nDWidth, int nDHeight, int nSrc, int nSx, int nSy, int nSWidth, int nSHeight);


void CG_COPY_STRETCH_AMAP_INTERP(int nDest, int nDx, int nDy, int nDWidth, int nDHeight, int nSrc, int nSx, int nSy, int nSWidth, int nSHeight);


void CG_COPY_REDUCE(int nDest, int nDx, int nDy, int nDWidth, int nDHeight, int nSrc, int nSx, int nSy, int nSWidth, int nSHeight);


void CG_COPY_REDUCE_AMAP(int nDest, int nDx, int nDy, int nDWidth, int nDHeight, int nSrc, int nSx, int nSy, int nSWidth, int nSHeight);


void CG_PA_COPY_REDUCE(int nDest, int nDx, int nDy, int nDWidth, int nDHeight, int nSrc, int nSx, int nSy, int nSWidth, int nSHeight);

文字描画


void CG_DRAW_TEXT_TO_PMAP(int nDest, int nX, int nY, string szText);


void CG_DRAW_TEXT_TO_AMAP(int nDest, int nX, int nY, string szText);

文字描画(一時的なフォント指定あり)

void CG_DRAW_TEXT_TO_PMAP_FONT(int nDest, int nX, int nY, string szText, ref font_metrics_t fm);


void CG_DRAW_TEXT_TO_AMAP_FONT(int nDest, int nX, int nY, string szText, ref font_metrics_t fm);

フォント


void CG_SET_FONT_SIZE(int nSize);


void CG_SET_FONT_NAME(string pIText);


void CG_SET_FONT_WEIGHT(int nWeight);


void CG_SET_FONT_UNDERLINE(int nFlag);


void CG_SET_FONT_STRIKE_OUT(int nFlag);


void CG_SET_FONT_SPACE(int nSpace);


void CG_SET_FONT_COLOR(int nR, int nG, int nB);


int CG_GET_FONT_SIZE(void);


string CG_GET_FONT_NAME(void);


int CG_GET_FONT_WEIGHT(void);


int CG_GET_FONT_UNDERLINE(void)


int CG_GET_FONT_STRIKE_OUT(void);


int CG_GET_FONT_SPACE(void);


void CG_GET_FONT_COLOR(ref int nR, ref int nG, ref int nB);

フォント(構造体版)


void CG_SET_FONT_METRICS(ref font_metrics_t fm);


void CG_GET_FONT_METRICS(ref font_metrics_t fm);

回転拡大縮小

void CG_COPY_ROT_ZOOM(int nDest, int nSrc, int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag);


void CG_COPY_ROT_ZOOM_USE_AMAP(int nDest, int nSrc, int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag);

Y軸回転

void CG_COPY_ROTATE_Y(int nWrite, int nDest, int nSrc, int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag);


void CG_COPY_ROTATE_Y_USE_AMAP(int nWrite, int nDest, int nSrc, int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag);


void CG_COPY_ROTATE_Y_FIX_L(int nWrite, int nDest, int nSrc, int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag);


void CG_COPY_ROTATE_Y_FIX_R(int nWrite, int nDest, int nSrc, int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag);


void CG_COPY_ROTATE_Y_FIX_L_USE_AMAP(int nWrite, int nDest, int nSrc, int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag);


void CG_COPY_ROTATE_Y_FIX_R_USE_AMAP(int nWrite, int nDest, int nSrc, int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag);

X軸回転

void CG_COPY_ROTATE_X(int nWrite, int nDest, int nSrc, int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag);


void CG_COPY_ROTATE_X_USE_AMAP(int nWrite, int nDest, int nSrc, int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag);


void CG_COPY_ROTATE_X_FIX_U(int nWrite, int nDest, int nSrc, int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag);


void CG_COPY_ROTATE_X_FIX_D(int nWrite, int nDest, int nSrc, int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag);


void CG_COPY_ROTATE_X_FIX_U_USE_AMAP(int nWrite, int nDest, int nSrc, int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag);


void CG_COPY_ROTATE_X_FIX_D_USE_AMAP(int nWrite, int nDest, int nSrc, int nSx, int nSy, int nWidth, int nHeight, float fRotate, float fMag);

反転


void CG_COPY_REVERSE_LR(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);


void CG_COPY_REVERSE_UD(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);


void CG_COPY_REVERSE_AMAP_LR(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);


void CG_COPY_REVERSE_AMAP_UD(int nDest, int nDx, int nDy, int nSrc, int nSx, int nSy, int nWidth, int nHeight);