#include #include #include "texture.h" /*---------------------------------------------------------------------- 【1ページ分スプライト設定】 in : long *mem TIMデータが存在するメモリアドレス GsSPRITE *sp GsSPRITE構造体へのポインタ RECT size スプライト1個の大きさ u_short num 個数 ----------------------------------------------------------------------*/ void InitSprite( long *mem, GsSPRITE *sp, RECT size, u_short num ){ GsIMAGE tim; u_short sp_tpage; short i; short sx,sy; PutTIM((long *)mem,&tim ); /* スプライトをフレームバッファに */ sp_tpage = GetTPage(_4BIT, 0, tim.px, tim.py); // sx = (256 / size.w)-1; // sy = ((256 / size.h)-1)>>1; // /* 管理用(笑)GsSPRITEの初期化 */ // for ( i = 0; i < num; i++, sp++ ){ // sp->attribute = 0x00000000; /* 属性 */ // sp->x = sp->y = 0; /* 表示位置 */ // sp->w = size.w; /* 横幅 */ // sp->h = size.h; /* 高さ */ // sp->tpage = sp_tpage; /* テクスチャページ番号 */ // sp->u = size.w*(i&sx); /* ページ内オフセット */ // sp->v = size.h*(i>>sy); // sp->cx = tim.cx; /* CLUT位置 */ // sp->cy = tim.cy; // sp->r = sp->g = sp->b = 0x80; /* 輝度 */ // sp->mx = sp->my = 0; /* 回転拡大時中心座標 */ // sp->scalex = sp->scaley = ONE; /* スケール値 */ // sp->rotate = 0; /* 回転角 */ // } } /*---------------------------------------------------------------------- TIMをフレームバッファへ in : u_long TIM格納ポインタ out: GsIMAGE イメージデータ構成情報 ----------------------------------------------------------------------*/ void PutTIM( u_long *ptTIM, GsIMAGE *tim ){ RECT rect; GsGetTimInfo(ptTIM+1, tim); rect.x = tim->px; rect.y = tim->py; rect.w = tim->pw; rect.h = tim->ph; LoadImage(&rect, tim->pixel); /* CLUTをフレームバッファへ */ if ((tim->pmode>>3)&0x01){ rect.x = tim->cx; rect.y = tim->cy; rect.w = tim->cw; rect.h = tim->ch; LoadImage(&rect,tim->clut); } }