// // G A M E.O.N.E - LOW LEVEL LIB V1.0 // Copyright (C) 2001 LEVEL ONE ENTERTAINMENT, // Licensed under the terms of LGPL. //:--------------------------------------------------------------------------- //:Description // // Headerfile for system platform drivers // #ifndef _DRIVER_H #define _DRIVER_H /************************************************************************/ // First WINDOWS CE PPC DRIVER // /************************************************************************/ #define SYS_PLATFORM_WCE_2002 #define SYS_PLATFORM_DEFINED #include "wce_2002/sys_2002.h" #include "../llmem.h" #include "../ll2d_srect.h" #include "../llqueue.h" #include "../llgfx_sscreen.h" #include "../llgfx_stexture.h" #include "../llsound.h" #include "../llinput.h" #include "../llfile.h" #include "../llgfx_blit.h" #include "../os_main.h" /************************************************************************/ /* DRIVER INTERFACE */ /************************************************************************/ // Context=Window handle, otherwise 0 void drv_irq_Init(void *context); void drv_sound_Init(void *context); void drv_input_Init(void *context); void drv_irq_Exit(); void drv_sound_Exit(); void drv_input_Exit(); void * drv_mem_alloc( int size ); void drv_mem_free( void * ptr ); /* * SOUND */ #define LLSOUND_ONESHOT (0) #define LLSOUND_LOOP (0x1) #define LLSOUND_STREAM (0x2) void * drv_sound_LoadSoundBuffer(int stream, int mode); void * drv_sound_CreateSoundBuffer(int size, int numchannels, int bitspersample, int samplefrequency ); int drv_sound_FillSoundBuffer(void *sndObj, int bytepos, int bytes, void* samples); int drv_sound_LockSoundBuffer(void *sndObj, int bytepos, int bytes, void** ptr1, int *size1, void** ptr2, int *size2); void drv_sound_UnlockSoundBuffer(void *sndObj, void *ptr1, int size1, void *ptr2, int size2); void * drv_sound_CloneSoundBuffer(void * sndObj); void drv_sound_ReleaseSoundBuffer( void * sndObj ); float drv_sound_GetPlayLength(void * sndObj); float drv_sound_GetPlayTime(void * sndObj); int drv_sound_GetPlayPosition(void * sndObj); void drv_sound_SetPlayBackPosition(void * sndObj, float sec); void drv_sound_SetPlayBackPosition(void * sndObj, int playpos); void drv_sound_SetVolume( void * sndObj, float vol); void drv_sound_SetFrequency( void * sndObj, int Hz); void drv_sound_SetPan( void * sndObj, float panlr, float panfb); int drv_sound_GetStatus(void * sndObj); int drv_sound_Play(void * sndObj, int mode); int drv_sound_Stop(void * sndObj); void drv_sound_Init(void * context); void drv_sound_Exit(); /* * GFX */ void drv_gfx_Init(void *context); void drv_gfx_Exit(); int drv_gfx_SetDisplayMode (int w, int h, int bpp, bool want_fullscreen, int refreshrate=0); void drv_gfx_ReleaseMode(); void drv_gfx_FlipScreen (void * GFXOBJ, bool wait); void * drv_gfx_CreateGfx (int width,int height); void drv_gfx_DeleteGfx (void * GFXOBJ ); void drv_gfx_EnableColorKey (void * GFXOBJ); void drv_gfx_DisableColorKey (void * GFXOBJ ); void drv_gfx_SetColorKey (void * GFXOBJ, TxU32 RGBColorValue); void * drv_gfx_GetGFXptr (void * GFXOBJ, llgfx_sSURFACE *surfacedesc ); void drv_gfx_UnGetGFXptr (void * GFXOBJ); void * drv_gfx_GetMaskptr (void * GFXOBJ, llgfx_sSURFACE *surfacedesc ); void drv_gfx_UnGetMaskptr (void * GFXOBJ); void drv_gfx_WaitVBI(); void * drv_gfx_GetBackBuffer(); void * drv_gfx_GetFrontBuffer(); void * drv_gfx_GetStretchBuffer(); /* * Blitter */ int drv_blit_BLIT (void *GFXOBJDEST, void *GFXOBJSRC, int x, int y, s_rect *rect, int blitflags, s_blitfx *blitfx ); int drv_blit_s (void *GFXOBJDEST, void *GFXOBJSRC, int x, int y, s_rect *rect, int blitflags, s_blitfx *blitfx ); int drv_blit_Fx (void *GFXOBJDEST, void *GFXOBJSRC, int x, int y, s_rect *rect, int blitflags, TxU8 alpha, TxU32 color); int drv_blit_Mask (void *GFXOBJDEST, void *GFXOBJSRC, int x, int y, s_rect *rect); int drv_blit_BLITFast (void *GFXOBJDEST, void *GFXOBJSRC); int drv_blit_Clear (void *GFXOBJ, TxU32 color, s_rect *dstrect ); int drv_blit_c (void *GFXOBJ, TxU32 color, s_rect *dstrect, int blitflags, s_blitfx *blitfx ); int drv_blit_Stretch (void *GFXOBJDEST, s_rect *dst_rect, void *GFXOBJSRC, s_rect *src_rect, s_rect *src_rect_uc, float x_scale, float y_scale); int drv_blit_StretchMask( void *GFXOBJDEST, s_rect *dst_rect, void *GFXOBJSRC, s_rect *src_rect, s_rect *src_rect_uc, float x_scale, float y_scale); void * drv_blit_SkewH( void *GFXOBJSRC, s_rect *src_rect, int horzdiff, int *width, int *height, bool mask=false); void * drv_blit_SkewV( void *GFXOBJSRC, s_rect *src_rect, int vertdiff, int *width, int *height, bool mask=false); void * drv_blit_Rotate( void *GFXOBJSRC, s_rect *src_rect, float deg_angle, int *width, int *height, bool mask=false ); void * drv_blit_Rotate90( void *GFXOBJSRC, s_rect *src_rect, int *width, int *height, bool mask=false ); void * drv_blit_Rotate180( void *GFXOBJSRC, s_rect *src_rect, int *width, int *height, bool mask=false ); void * drv_blit_Rotate270( void *GFXOBJSRC, s_rect *src_rect, int *width, int *height, bool mask=false ); /* * TIMER */ void drv_irq_Init(void *context); void drv_irq_Exit(); int drv_irq_GetTime(); void drv_irq_Sleep(int milliseconds); void drv_irq_ResetTime(); float drv_irq_GetDeltaTime(); /* * FILE IO */ int drv_fileread( void *ioBuf, int iNum, void *filehandle ); int drv_filewrite( void *ioBuf, int iNum, void *filehandle ); void * drv_fileopen( const char *filename, int mode ); int drv_fileexist( const char *filename ); void drv_fileclose( void *filehandle ); int drv_filesize( void *filehandle ); int drv_fileseek( void *filehandle, int iPos, int offset ); int drv_fileftell( void *filehandle); int drv_path_cur_dir( char * buffer, int bufsize ); int drv_path_app_path( char * buffer, int bufsize ); int drv_path_app_dir( char * buffer, int bufsize ); int drv_path_app_name( char * buffer, int bufsize ); int drv_path_app_ext( char * buffer, int bufsize ); int drv_path_temp_dir( char * buffer, int bufsize ); int drv_path_temp_name( char * buffer, int bufsize ); void * drv_gotoUrl(const char * path); void * drv_openProcess(const char * path); int drv_tex_ReadTexture( llfile_sMAPFILE *stream, s_texture * texture, const char * filename ); int drv_tex_SaveScreenShot( const char *filename, s_texture * texture); // TXFMT_ARGB /* * INPUT */ extern TxU8 llinput_Keys[256]; extern int llinput_MouseX; extern int llinput_MouseY; extern int llinput_MouseZ; extern int llinput_MouseRelX; extern int llinput_MouseRelY; extern int llinput_MouseRelZ; extern TxU8 llinput_MouseBtn1; extern TxU8 llinput_MouseBtn2; extern TxU8 llinput_MouseBtn3; extern TxU8 llinput_MouseBtn4; extern queue Input_Devices; void drv_input_Update (); //no msg wait void drv_input_Poll (); //msg wait void drv_input_mouse_GetPosition( int *buffer ); void drv_input_mouse_SetPosition( int xpos, int ypos ); void drv_input_mouse_GetButtonStates( TxU8 *buffer, int bufsize ); void drv_input_keyboard_GetKeyStates( TxU8 *keybuffer, int bufsize ); void drv_input_keyboard_GetInput( TxU8 *inputbuffer, int bufsize ); int drv_input_joystick_getdata(); int drv_input_joystick_getstate(); void * drv_input_GetEvent(const char *devicename); void drv_input_ResetEvent(const char *devicename); void * drv_input_GetState(int eventid, const char *devicename); #endif // ifndef _DRIVER_H