⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vgsdk.h

📁 adc 3208 上面实现图片旋转的实例
💻 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 + -