📄 vgsdk.h
字号:
#ifndef _VGSDK_H
#define _VGSDK_H
/***********************************************
Data types
************************************************/
#define vgNULL 0L
#define vgTRUE 1
#define vgFALSE 0
typedef short int vgBOOL;
typedef signed char S8;
typedef signed short int S16;
typedef signed long S32;
typedef unsigned char U8;
typedef unsigned short int U16;
typedef unsigned long U32;
typedef unsigned int dword;
typedef unsigned short word;
typedef unsigned char byte;
/***********************************************
File system
************************************************/
typedef U32 vgFILE;
typedef enum _DGFSEEK
{
vgSEEK_SET = 0,
vgSEEK_CUR = 1,
vgSEEK_END = 2,
DGFSEEK_FORCE_DWORD = 0x7fffffff
} DGFSEEK;
//zy vgFILE vgfopen( const char* filename, const char* mode );
//zy void vgfclose( vgFILE file );
//zy S32 vgfread( void* const dest, U32 size, U32 n, vgFILE file );
//zy vgBOOL vgfseek( vgFILE file, S32 offset, DGFSEEK where );
//zy S32 vgftell( vgFILE file );
//zy S32 vgfgetc( vgFILE file );
//zy S8 *vgfgets(void* const buf, S16 n, vgFILE fp);
//zy vgBOOL vgfeof( vgFILE file );
/***********************************************
memory allocation
************************************************/
void* vgMalloc( S32 bytesize );
void vgFree( void* const pdata );
void vgmemcpy( void* dest, void* src, long bytesize );
void vgmemcpy16( void* dest, void* src, long bytesize );
/***********************************************
debug report
************************************************/
//zy void uartprintf( const char* const message, ... );
/***********************************************
Screen
************************************************/
typedef enum _DGSCREENMODE
{
DGSCREENMODE_256x200 = 0,
DGSCREENMODE_320x200 = 1,
DGSCREENMODE_320x240 = 2,
DGSCREENMODE_320x240A = 3,
DGSCREENMODE_360x200 = 4,
DGSCREENMODE_360x240 = 5,
DGSCREENMODE_512x240 = 6,
DGSCREENMODE_512x384 = 7,
DGSCREENMODE_640x400 = 8,
DGSCREENMODE_640x480 = 9,
DGSCREENMODE_FORCE_DWORD = 0x7fffffff
} DGSCREENMODE;
vgBOOL vgSetScreenMode( DGSCREENMODE smode );
void vgSetClipWindow( S32 x, S32 y, S32 dx, S32 dy );
/***********************************************
Texture
************************************************/
typedef struct tagvgSURFACE vgSURFACE;
typedef struct tagvgPALETTE vgPALETTE;
typedef struct tagvgTILE vgTILE;
typedef enum _DGPIXELFORMAT
{
DGPIXELFORMAT_PI4 = 0,
DGPIXELFORMAT_PI8 = 1,
DGPIXELFORMAT_RGB565 = 2,
DGPIXELFORMAT_TILEINDEX = 3,
DGPIXELFORMAT_FORCE_DWORD = 0x7fffffff
} DGPIXELFORMAT;
typedef struct
{
U32 dwWidth,dwHeight;
DGPIXELFORMAT dpColorformat;
} vgSURFACEDESC;
typedef struct
{
U32 dwTilecount;
DGPIXELFORMAT dpColorformat; // ASSERT( != DGPIXELFORMAT_TILEINDEX )
} vgTILEDESC;
vgBOOL vgCreateSurface ( vgSURFACE **ppvgs, const vgSURFACEDESC *const pvgsd );
vgBOOL vgCreatePalette ( vgPALETTE **ppvgp );
vgBOOL vgCreateTile ( vgTILE **ppvgt, const vgTILEDESC *const pvgtd );
U32 vgReleaseSurface( vgSURFACE *const pvgs );
U32 vgReleasePalette( vgPALETTE *const pvgp );
U32 vgReleaseTile ( vgTILE *const pvgt );
void vgUploadImage( vgSURFACE *const pvgs, U32 x, U32 y, U32 dx, U32 dy,
const void *const pimage, U32 imgw, U32 imgh, U32 tx, U32 ty );
void vgUploadPalette( vgPALETTE *const pvgp, const U8 *const ppal,
U32 start_index, U32 count );
void vgUploadTile( vgTILE *const pvgt, const void *const ptile,
U32 start_index, U32 count );
void vgSetPalette( vgSURFACE *const pvgs, vgPALETTE *const pvgp );
void vgSetTile( vgSURFACE *const pvgs, vgTILE *const pvgt );
void vgSetColorKey( vgSURFACE *const pvgs, U8 r, U8 g, U8 b );
void vgSetTexture( const vgSURFACE *const pvgs );
void vgResetTextureMemory( void );
vgBOOL vgLoadImageFile( vgSURFACE **ppvgs, const char* const filename );
/***********************************************
Draw Mode
************************************************/
#define DGDRAWMODE_ALPHA 0x01
#define DGDRAWMODE_SHADE 0x02
#define DGDRAWMODE_TEXTURE 0x04
#define DGDRAWMODE_TRANSPARENCY 0x08
#define DGDRAWMODE_NOREPEAT 0x10
void vgSetDrawMode( U32 dmode );
U32 vgGetDrawMode( void );
#define MAKE_RGB888(r,g,b) ((U32)r<<16)|((U32)g<<8)|((U32)b)
#define MAKE_RGB565(r,g,b) (U16)((((U16)r&0xf8)<<8)|(((U16)g&0xfc)<<3)|(((U16)b&0xf8)>>3))
void vgSetShadeColor( U8 r, U8 g, U8 b );
typedef enum _DGBLEND
{
DGBLEND_ZERO = 0,
DGBLEND_ONE = 1,
DGBLEND_SRCCOLOR = 2,
DGBLEND_INVSRCCOLOR = 3,
DGBLEND_SRCALPHA = 4,
DGBLEND_INVSRCALPHA = 5,
DGBLEND_DESTALPHA = 6,
DGBLEND_INVDESTALPHA = 7,
DGBLEND_DESTCOLOR = 8,
DGBLEND_INVDESTCOLOR = 9,
DGBLEND_SRCALPHASAT = 10,
DGBLEND_BOTHSRCALPHA = 11,
DGBLEND_BOTHINVSRCALPHA = 12,
DGBLEND_FORCE_DWORD = 0x7fffffff
} DGBLEND;
void vgSetAlpha( U8 sr, U8 sg, U8 sb, DGBLEND sblend,
U8 dr, U8 vg, U8 db, DGBLEND dblend );
/***********************************************
Drawing
************************************************/
vgBOOL vgBeginPaint( void );
void vgEndPaint( void );
void vgFlip( void );
void vgASyncFlip( void );
U32 vgNumberOfFlip( void );
void vgClearScreen( U8 r, U8 g, U8 b );
#define DGDRAWOPTION_FLIPH 1
#define DGDRAWOPTION_FLIPV 2
void vgDrawTexture( S32 x, S32 y, S32 dx, S32 dy, S32 tx, S32 ty, U32 option );
void vgDrawStretchTexture( S32 x, S32 y, S32 dx, S32 dy,
S32 tx, S32 ty, S32 tdx, S32 tdy, U32 option ,U32 Transp);
/***********************************************
I/O
************************************************/
typedef enum _DGPLAYER
{
DGPLAYER_1P = 0,
DGPLAYER_2P = 1,
DGPLAYER_3P = 2,
DGPLAYER_4P = 3,
DGPLAYER_FORCE_DWORD = 0x7fffffff
} DGPLAYER;
#define DGSTICK_RIGHT 0x01
#define DGSTICK_LEFT 0x02
#define DGSTICK_DOWN 0x04
#define DGSTICK_UP 0x08
#define DGBUTTON_A 0x10
#define DGBUTTON_B 0x20
#define DGBUTTON_C 0x40
#define DGBUTTON_D 0x80
#define DGBUTTON_START 0x01
#define DGDIP_1 0x80
#define DGDIP_2 0x40
#define DGDIP_3 0x20
#define DGDIP_4 0x10
#define DGDIP_5 0x08
#define DGDIP_6 0x04
#define DGDIP_7 0x02
#define DGDIP_8 0x01
U8 vgGetButton( DGPLAYER who );
U8 vgGetStick( DGPLAYER who );
U8 vgGetTestSW( void );
U8 vgGetServiceSW( void );
U8 vgGetDIPSW( void );
/***********************************************
Backup memory
************************************************/
U32 GetSizeBackupMem( void );
vgBOOL vgReadBackupMem( U32 addr, U8 *data );
vgBOOL vgWriteBackupMem( U32 addr, U8 data );
/***********************************************
Real Time Clock
************************************************/
typedef struct _DGDATETIME
{
U32 dwYear;
U32 dwMon;
U32 dwDay;
U32 dwDate;
U32 dwHour;
U32 dwMin;
U32 dwSec;
} DGDATETIME;
void vgSetRTC( DGDATETIME *pDateTime );
void vgGetRTC( DGDATETIME *pDateTime );
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -