--- xmil/vram/palettes.h 2004/08/01 05:31:31 1.1 +++ xmil/vram/palettes.h 2004/08/17 14:46:37 1.8 @@ -1,33 +1,68 @@ -#ifdef __cplusplus -extern "C" { +#define SUPPORT_PALEVENT 1024 + +#if !defined(SUPPORT_TURBOZ) +enum { + XMILPAL_USE = 64 + 64, + XMILPAL_MAX = XMILPAL_USE +}; +#else +enum { + XMILPAL_USE = 64 + 64 + 8, + XMILPAL_4096G = 192, + XMILPAL_4096T = XMILPAL_4096G + 4096, + XMILPAL_MAX = XMILPAL_4096T + 8 +}; #endif -extern RGB32 x1n_pal32[256]; // xm_palette -extern RGB32 x1z_pal32[4096+8]; // GRPHPAL4096 +#if defined(SUPPORT_PALEVENT) +typedef struct { + UINT8 rgbp; + UINT8 value; + UINT8 reserve[2]; + SINT32 clock; +} PAL1EVENT; + +typedef struct { + UINT8 rgbp[8]; + UINT events; + PAL1EVENT event[SUPPORT_PALEVENT]; +} PALEVENT; +#endif -#if defined(SUPPORT_16BPP) -extern RGB16 x1n_pal16[256]; // xmil_pal16 -extern RGB16 x1z_pal16[4096+8]; // GRPHPAL16bit + +#ifdef __cplusplus +extern "C" { #endif +extern UINT xmil_palettes; +extern RGB32 xmil_pal32[XMILPAL_MAX]; // xm_palette +#if defined(SUPPORT_16BPP) +extern RGB16 xmil_pal16[XMILPAL_MAX]; +#endif +#if defined(SUPPORT_PALEVENT) +extern PALEVENT palevent; +#endif -extern int xm_palettes; +void pal_makegrad(RGB32 *pal, int pals, UINT32 bg, UINT32 fg); +#if defined(SUPPORT_TURBOZ) +void pal_settext(REG8 num); // textpalette1 +void pal_setgrph(REG8 bank, REG8 num); // grphpalette1 +void pal_setgrph4096(UINT num); // grphpal4096 +#endif -extern RGB32 TEXTPALS[24]; -extern RGB32 GRPHPALS[2][16]; -extern RGB32 GRPHPALS64[2][64]; -extern BYTE pal_renewal; +void pal_update1(const UINT8 *rgbp); +void pal_update(void); -void textpalette1(BYTE num); -void grphpalette1(BYTE bank, BYTE num); -void grphpal4096(WORD num); -void reflesh_palette(void); +#if defined(SUPPORT_PALEVENT) +void pal_eventclear(void); +#else +#define pal_eventclear() +#endif -void pals_cnv16pal(RGB16 *dst, const RGB32 *src, UINT pals); -void pal_makegrad(RGB32 *pal, int pals, DWORD bg, DWORD fg); +void pal_reset(void); #ifdef __cplusplus }