#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 |