#include "sgl.h" FIXED dist; void slSetScreenDist( dist );
FIXED dist - Distance constant to screen.
void - returns nothing.
slSetScreenDist ( toFIXED ( 40.0 ) );
slWindow | slZdspLevel | slPerspective | ComWrPtr |
ComRdPtr | MsScreenDist | Resolution | RotScrParA |
RotScrParB |
#include "sgl.h" void *dist; Uint16 size_x; Uint16 size_y; void slGetFrameData( dist, size_x, size_y );
void *dist - Uint16 size_x - X size after being read.
Uint16 size_y - Y size after being read.
void - returns nothing.
If you want to display the read data as a sprite, Low resolution: slSpriteColMode ( SPR_PAL_RGB ); /* default */ year, SPR_ATTRIBUTE ( PN_???, No_Palet , No_Gouraud , SPdis | ECdis | CL32KRGB , sprNoflip ); Executes a sprite display function with an attribute such as
slSpriteColMode ( SPR_PAL ) for high resolution; SPR_ATTRIBUTE ( PN_???, No_Palet , No_Gouraud , SPdis | ECdis | CL256Bnk , sprNoflip ); Display it with the attributes.
MsScreenSizeX | MsScreenSizeY | Resolution |
#include "sgl.h" ANGLE pers; void slPerspective( pers );
ANGLE pers - Viewing volume angle.
void - returns nothing.
slPerspective ( DEGtoANG ( 60.0 ) );
slWindow | slZdspLevel | slSetScreenDist | ComWrPtr |
ComRdPtr | MsScreenDist | SlScreenDist | MsScreenSizeX |
MsScreenSizeY | RotScrParA | RotScrParB |
#include "sgl.h" Uint16 level; Bool slZdspLevel( level );
Uint16 level - Display level.
Bool - FALSE if the argument contains a value other than the default value, otherwise TRUE .
Set the display level to 7 (1/128 of the screen distance).
slZdspLevel ( 7 );
slPutPolygon | slPutPolygonS | slPutPolygonX | slDispPolygon |
slPutSprite | slSetSprite | slDispSprite | slDispSpriteHV |
slDispSpriteSZ | slDispSprite4P | slWindow | slPutObject |
ComWrPtr | ComRdPtr | SlZlimit |
#include "sgl.h" FIXED pos[ XYZS ]; ATTR *attr; ANGLE z_ang; Bool slDispSprite( pos, atrb, z_ang );
FIXED pos[ XYZS ] - sprite position.
ATTR *attr - Sprite attributes.
ANGLE z_ang - Sprite rotation angle.
Bool - Error code (described below).
FIXED pos[ XYZS ] = { toFIXED ( 0.0 ), toFIXED ( 0.0 ), toFIXED ( 110.0 ), toFIXED ( ORIGINAL ) }; SPR_ATTR attr = SPR_ATTRIBUTE ( 0, 0, No_Gouraud , CL16Bnk , sprNoflip | _ZmCC ); slDispSprite ( pos, attr, DEGtoANG ( 0.0 ) );
#include "sgl.h" FIXED pos[ XYZSS ]; ATTR *attr; ANGLE z_ang; Bool slDispSpriteHV( pos, attr, z_ang );
FIXED pos[ XYZSS ] - sprite position.
ATTR *attr - Sprite attributes.
ANGLE z_ang - Sprite rotation angle.
Bool - Error code (described below).
#define FX0 toFIXED ( 0.0 ) FIXED pos[ XYZSS ] = { FX0, FX0, toFIXED ( 110.0 ), toFIXED ( ORIGINAL ), toFIXED ( 2.0 ) }; SPR_ATTR attr = SPR_ATTRIBUTE ( 0, 0, No_Gouraud , CL16Bnk , sprNoflip | _ZmCC ); slDispSpriteHV ( pos, attr, DEGtoANG ( 0.0 ) );
slWindow | slZdspLevel | slPutSprite | slSetSprite |
slDispSprite | slDispSpriteSZ | slDispSprite4P | SpritePtr |
DispPolygons | DMAEndFlag | DMASetFlag | Put Count |
SPR_ATTR | SPR_ATTRIBUTE |
#include "sgl.h" FIXED pos[ XYZSS ]; ATTR *attr; ANGLE z_ang; Bool slDispSpriteSZ( pos, attr, ang_z );
FIXED pos[ XYZSS ] - sprite position.
ATTR *attr - Sprite attributes.
ANGLE z_ang - Sprite rotation angle.
Bool - Error code (described below).
#define FX0 toFIXED ( 0.0 ) FIXED pos[ XYZSS ] = { toFIXED ( 30.0 ), FX0, toFIXED ( 110.0 ), toFIXED ( 0.5 ), toFIXED ( 2.0 ) }; SPR_ATTR attr = SPR_ATTRIBUTE ( 0, 0, No_Gouraud , CL16Bnk[a], sprNoflip | _ZmCC ); slDispSpriteSZ ( pos, attr, DEGtoANG ( 0.0 ) );
#include "sgl.h" FIXED pos[ 4 ][ XY ]; FIXED pos_z; SPR_ATTR *attr; Bool slDispSprite4P( pos, pos_z, attr );
FIXED pos[ 4 ][ XY ] - Coordinates of 4 vertices.
FIXED pos_z; - sorting criteria.
SPR_ATTR *attr; - Attribute.
Bool - Error code (described below).
FIXED pos[ 4 ][ XY ] = { { toFIXED ( 0.0 ), toFIXED ( 0.0 ) }, { toFIXED ( 40.0 ), toFIXED ( 10.0 ) }, { toFIXED ( 70.0 ), toFIXED ( 60.0 ) }, { toFIXED ( 10.0 ), toFIXED ( 50.0 ) } }; SPR_ATTR attr = SPR_ATTRIBUTE ( 2, 0x100, No_Gouraud , CL16Bnk , sprNoflip | _ZmCC ); slDispSprite4P ( pos, toFIXED ( 150.0 ), attr );
#include "sgl.h" FIXED pos[ XYZS ]; ATTR *attr; ANGLE ang_z; Bool slPutSprite( pos, attr, ang_z );
FIXED pos[ XYZS ]; ATTR *attr; ANGLE ang_z;
Bool - Error code (described below).
FIXED pos[ XYZS ] = { toFIXED ( 0.0 ), toFIXED ( 0.0 ), toFIXED ( 110.0 ), toFIXED ( ORIGINAL ) }; SPR_ATTR attr = SPR_ATTRIBUTE ( 0, 0, No_Gouraud , CL16Bnk , sprNoflip | _ZmCC ); slPutSprite ( pos, attr, DEGtoANG ( 0.0 ) );
#include "sgl.h" SPRITE *spr; FIXED pos_z; Bool slSetSprite( spr, pos_z );
SPRITE *spr - VDP1 command data to display.
FIXED pos_z - criteria for sorting.
Bool - Error code (described below).
SPRITE attr = { FUNC_Sprite, /* Drawing Sprite */ 0, /* Link ( Ignore ) */ ECdis | SPenb | CL16Look | CL_Trans, /* Color mode. */ ( 0x1b000 >> 3 ), /* Color bank number. */ ( 0x12400 >> 3 ), /* Character address. */ ( ( 64 / 8 ) << 8 | 96 ), /* Character size ((x/8)<<8|y) */ 0, /* A(x) */ 0, /* A(y) */ 64, /* B(x) */ 0, /* B(y) */ 64, /* C(x) */ 96, /* C(y) */ 0, /* D(x) */ 96, /* D(y) */ 0, /* Gouraud table address */ 0 /* Dummy. */ }; slSetSprite ( attr, toFIXED ( 145.0 ) );
#include "sgl.h" Sint16 left, top, right, bottom; Uint16 zlim; Sint16 cen_x, cen_y; Bool slWindow( left, top, right, bottom, zlim, cen_x, cen_y );
Sint16 left - right edge of the window.
Sint16 top - top edge of the window.
Sint16 right - left edge of the window.
Sint16 bottom - Bottom edge of the window.
Uint16 zlim - Z limit.
Sint16 cen_x - X coordinate of the vanishing point (coordinate origin).
Sint16 cen_y - Y coordinate of the vanishing point (coordinate origin).
Bool - Error code (described below).
Window with upper left coordinates (10,15), lower right coordinates (300,195), vanishing point is in the center of this window, and Z limit value is 5000h.
slWindow ( 10, 15, 300, 195, 0x5000, 145, 75 ); See also the note below.
#include "sgl.h" Uint8 win; void slCurWindow( win );
Uint8 win - The type of window to switch to (see below).
void - returns nothing.
Move the displayed window to the back.
slCurWindow ( winFar );
#include "sgl.h" Uint8 slSprWinNum( void );
void - gives nothing.
Uint8 - Window number used for display.
Uint8 winno; winno = slSprWinNum ();
slWindow | slCurWindow | Window Number |
#include "sgl.h" Sint16 size_x, size_y; void slFrameClipSize( size_x, size_y );
Sint16 size_x - X size of the clip.
Sint16 size_y - Y size of the clip.
void - returns nothing.
slFrameClipSize ( 10, 5, 190, 200 );
slInitSystem | slWindow | Window Number | MsWindowSizeX |
MsWindowSizeY | FrameSizeX | FrameSizeY | SlClipXAdder |
SlClipYAdder |
#include "sgl.h" Bool slCheckSlave( void )
void - gives nothing.
Bool - Slave status (see below).
Wait for the slave's task (geometry calculation) to finish, then Call slSynch .
while ( slCheckSlave () != TRUE ); slSynch ();
slPutPolygon | slPutPolygonS | slDispPolygon | slPutObject |
slPutSprite | slDispSprite | slDispSpriteSZ | slDispSprite4P |
slDispSpriteHV | slPutPolygonX |