#include "sgl.h"
FIXED pos_x, pos_y;
void slScrPosNbg0( pos_x, pos_y );
void slScrPosNbg1( pos_x, pos_y );
void slScrPosNbg2( pos_x, pos_y );
void slScrPosNbg3( pos_x, pos_y );
FIXED pos_x - ノーマルスクロール配置座標のX成分(スクロール座標系)
FIXED pos_y - ノーマルスクロール配置座標のY成分(スクロール座標系)
void - 何も返しません。
それぞれのノーマルスクロール面の配置座標を設定します。
slScrPosNbg0( toFIXED( 30.0 ), toFIXED( -19.4 ) );
#include "sgl.h"
FIXED pos_x, pos_y;
void slScrMoveNbg0( pos_x, pos_y );
void slScrMoveNbg1( pos_x, pos_y );
void slScrMoveNbg2( pos_x, pos_y );
void slScrMoveNbg3( pos_x, pos_y );
FIXED pos_x - スクロールの表示位置の前の位置からのXの移動量。
FIXED pos_y - スクロールの表示位置の前の位置からのYの移動量。
void - 何も返しません。
スクロールの表示位置を前の位置からの移動量で指定します。
(この関数は slScrPosNbg0、slScrPosNbg1、
slScrPosNbg2、slScrPosNbg3、で指定された表示位置に
加算していきます)
現在の表示位置はシステム変数 Nbg0_PosX, Nbg0_PosY, Nbg1_PosX,
Nbg1_PosY, Nbg2_PosX, Nbg2_PosY, Nbg3_PosX, Nbg3_PosY
を参照してください。
slScrMoveNbg1( toFIXED( 1.0 ), toFIXED( -2.0 ) );
#include "sgl.h"
FIXED pos_x, pos_y;
void slLookR( pos_x, pos_y );
FIXED pos_x - 回転スクロール配置座標のX成分(スクロール座標系)
FIXED pos_y - 回転スクロール配置座標のY成分(スクロール座標系)
void - 何も返しません。
回転スクロール面の配置座標を設定します。
slLookR( toFIXED( 50.0 ), toFIXED( 100.0 ) );
slDispCenterR |
slZoomR |
slScrScaleR |
slZrotR |
ScrRotPtr |
#include "sgl.h"
FIXED pos_x, pos_y;
void slDispCenterR( pos_x , pos_y );
FIXED pos_x - 回転スクロール回転中心座標のX成分(スクロール座標系)
FIXED pos_y - 回転スクロール回転中心座標のY成分(スクロール座標系)
void - 何も返しません。
回転スクロール面の回転中心座標を設定します。
slDispCenterR( toFIXED( 100.0 ), toFIXED( 100.0 ) );
slLookR |
slZoomR |
slScrScaleR |
slZrotR |
ScrRotPtr |
#include "sgl.h"
FIXED scl_x, scl_y;
void slZoomNbg0( scl_x, scl_y );
void slZoomNbg1( scl_x, scl_y );
FIXED scl_x - ノーマルスクロールのX軸方向に対する拡縮率の逆数(2倍なら1/2)
FIXED scl_y - ノーマルスクロールのY軸方向に対する拡縮率の逆数(2倍なら1/2)
void - 何も返しません。
ノーマルスクロール面のうち、拡縮可能な "NBG0,1" の拡縮率を指定します。
NBG0のX成分を2倍、Y成分を1/2にする。
slZoomNbg0( toFIXED( 1/2 ), toFIXED( 2 ) );
縮小を掛ける際には、それに合わせてサイクルパターンの設定をする必要が
あります。この際、slScrAutoDispでは縮小設定をサポートして
いませんので、slScrCycleSet及び、slScrDispを用いて
直接サイクルパターンの設定を行なう必要があります。サイクルパターンの
設定については、
VDP2ユーザーズマニュアル
3.3 表示期間中のVRAMアクセス方法
を御覧ください。
slScrMoveNbg0 |
slScrMoveNbg1 |
slScrMoveNbg2 |
slScrMoveNbg3 |
slScrPosNbg0 |
slScrPosNbg1 |
slScrPosNbg2 |
slScrScaleNbg1 |
slZoomMode |
slZoomModeNbg0 |
slZoomModeNbg1 |
#include "sgl.h"
Uint16 type;
Uint16 mode;
void slZoomMode( scrn, mode );
void slZoomModeNbg0( type );
void slZoomModeNbg1( type );
Uint16 mode - ズームを指定する面(後述)。
Uint16 type - ズームの限界(後述)。
void - 何も返しません。
NBG0/NBG1をどこまで縮小するかを指定します。
modeには、
scnNBG0、scnNBG1
のいずれかを、
typeには、
ZOOM_1、ZOOM_HALF、ZOOM_QUARTER
のいずれかを指定します。
void slZoomMode( scnNBG1, ZOOM_HALF);
縮小設定する場合、色数の制限があります。
ZOOM_HALFを指定した場合、16色モード又は256色モードのみ。
ZOOM_QUARTERを指定した場合、16色モードにのみ対応しています。
それ以外のモードでの縮小設定は出来ませんので注意してください。
slScrMoveNbg0 |
slScrMoveNbg1 |
slScrMoveNbg2 |
slScrMoveNbg3 |
slScrPosNbg0 |
slScrPosNbg1 |
slScrPosNbg2 |
slScrScaleNbg1 |
slZoomNbg0 |
slZoomNbg1 |
VDP2_ZMCTL |
#include "sgl.h"
FIXED scl_x, scl_y;
void slZoomR( scl_x, scl_y );
FIXED scl_x - 回転スクロールのX軸方向に対する拡縮率の逆数(2倍なら1/2)
FIXED scl_y - 回転スクロールのY軸方向に対する拡縮率の逆数(2倍なら1/2)
void - 何も返しません。
回転スクロール面の拡縮率を設定し、カレント回転パラメータに現在の状態を保存
します。
slZoomR( toFIXED( 0.5 ), toFIXED( 2.0 ) );
この関数はカレントの回転パラメータのkx、kyを操作します。
slLookR |
slDispCenterR |
slScrScaleR |
slZrotR |
ScrRotPtr |
#include "sgl.h"
FIXED scl_x, scl_y;
void slScrScaleNbg0( scl_x, scl_y );
void slScrScaleNbg1( scl_x, scl_y );
FIXED scl_x - ノーマルスクロールのX軸方向に対する拡縮率(2倍なら2)
FIXED scl_y - ノーマルスクロールのY軸方向に対する拡縮率(2倍なら2)
void - 何も返しません。
ノーマルスクロール面のうち、拡縮可能な "NBG0,1" の拡縮率を指定します。
slScrScaleNbg1( toFIXED( 2 ), toFIXED( 1/3 ) );
縮小を掛ける際には、それに合わせてサイクルパターンの設定をする必要が
あります。この際、slScrAutoDispでは縮小設定をサポートして
いませんので、slScrCycleSet及び、slScrDispを用いて
直接サイクルパターンの設定を行なう必要があります。サイクルパターンの
設定については、
VDP2ユーザーズマニュアル
3.3 表示期間中のVRAMアクセス方法
を御覧ください。
slScrMoveNbg0 |
slScrMoveNbg1 |
slScrMoveNbg2 |
slScrMoveNbg3 |
slScrPosNbg0 |
slScrPosNbg1 |
slScrPosNbg2 |
slZoomModeNbg0 |
slZoomModeNbg1 |
slZoomNbg0 |
slZoomNbg1 |
#include "sgl.h"
FIXED scl_x, scl_y;
void slScrScaleR( scl_x, scl_y );
FIXED scl_x - 回転スクロールのX軸方向に対する拡縮率(2倍なら2)
FIXED scl_y - 回転スクロールのY軸方向に対する拡縮率(2倍なら2)
void - 何も返しません。
回転スクロール面の拡縮率を設定し、カレント回転パラメータに現在の状態を保存
します。
slScrScaleR( toFIXED( 2.0 ), toFIXED( 1.0 ) );
slLookR |
slZoomR |
slDispCenterR |
slZrotR |
ScrRotPtr |
#include "sgl.h"
void slScrMatConv(void)
void - 何も与えません。
void - 何も返しません。
カレントマトリクスをスクロール形式のマトリクスに変換します。
本関数を使用するとカレントマトリクスが書き換えられます。
slUnitMatrix( CURRENT);
slRotX( DEGtoANG( 10.0 ) );
slRotZ( DEGtoANG( 10.0 ) );
slTranslate( ... );
slScrMatConv();
slScrMatSet();
このあと、slScrMatSet関数を実行することにより回転スクロールの
パラメータに反映されます。
#include "sgl.h"
Uint16 mode;
void slScrTransparent( mode );
Uint16 mode - 透明色設定する面('|'で複数指定可能)
void - 何も返しません。
各スクロール面の透明色の扱いを指定します。
modeには、
NBG0ON、NBG1ON、NBG2ON、NBG3ON、RBG0ON
が入ります。
複数のスクロール面の描画設定を同時に行なう場合は、各面のモードを "|"で
つないで指定してください。
ONに指定されたスクロール面のスペースがパレット0のカラーで表示されます。
NBG2を透明色設定にする。
slScrTransparent( NBG2ON);
VDP2_BGON |
#include "sgl.h"
ANGLE angz;
void slZrotR( angz );
ANGLE angz - Z軸に対する回転スクロールの回転角値
void - 何も返しません。
回転スクロールのZ軸回転を行ないます。回転の正方向は軸に対して右向き
(時計回り)になります。関数slDispCenterRで指定した座標が、
回転中心になります。
回転スクロールをZ軸を中心にして、時計と反対に、30度回転する。
slZrotR( DEGtoANG( 30.0 ) );
slLookR |
slZoomR |
slDispCenterR |
slScrScaleR |
ScrRotPtr |
#include "sgl.h"
void slScrMatSet();
void - 何も与えません。
void - 何も返しません。
カレントマトリクスを利用して RBG0 の回転パラメータをセットします。
カレントマトリクスを使ってRBG0の回転パラメータを設定。
slPushMatrix();
{
slRotY( ... );
slTranslate( ... );
slScrMatSet();
}
slPopMatrix();