PA_Palette.h

Go to the documentation of this file.
00001 #ifndef _PA_Palette
00002 #define _PA_Palette
00003 
00004 
00005 
00006 void PA_LoadSpriteExtPal(u8 screen, u16 palette_number, void* palette);
00007 #define PA_LoadBgExtPal(screen, bg_number, palette) PA_LoadBgPal(screen, bg_number, palette)
00008 
00009 
00010 
00017 //#include "../PA.h"
00018 
00019 
00021 // Système pour les palettes
00023 #define PAL_BG0 0x05000000 
00024 #define PAL_SPRITE0 0x05000200 
00025 #define PAL_BG1 0x05000400 
00026 #define PAL_SPRITE1 0x05000600 
00027 
00028 #define REG_BRIGHT 0x0400006C  // Brightness
00029 
00030 
00031 
00049 #define PA_LoadPal(palette, source) {\
00050        DMA_Copy((void*)source, (void*)palette, 256, DMA_16NOW);\
00051        if (palette == PAL_SPRITE0) PA_LoadSpritePal(0, 0, (void*)source);\
00052        if (palette == PAL_SPRITE1) PA_LoadSpritePal(1, 0, (void*)source);\
00053        if (palette == PAL_BG0) {u8 itemp; for (itemp = 0; itemp < 4; itemp++) PA_LoadBgPal(0, itemp, (void*)(source));}\
00054        if (palette == PAL_BG1) {u8 itemp; for (itemp = 0; itemp < 4; itemp++) PA_LoadBgPal(1, itemp, (void*)(source));}}
00055 
00056 
00068 extern inline void PA_Load8bitBgPal(u8 screen, void *Pal){
00069 u32 dest = PAL_BG0 + (screen<<10);
00070        DMA_Copy((void*)Pal, (void*)dest, 256, DMA_16NOW);\
00071 } 
00072 
00073 
00089 #define PA_LoadPal16(palette, n_palette, source)   DMA_Copy((void*)source, (void*)(palette + (n_palette << 5)), 16, DMA_16NOW)
00090 
00106 #define PA_LoadSprite16cPal(screen, n_palette, palette) PA_LoadPal16((PAL_SPRITE0+(0x400*screen)), (n_palette), palette)
00107 
00108 
00124 #define PA_RGB(r,g,b) ((1 << 15) + (r) + ((g)<<5) + ((b)<<10))
00125 
00139 void PA_SetBrightness(u8 screen, s8 bright);
00140 
00141 
00142 
00151 extern inline void PA_SetPalNeg(u32 palette) {
00152        u16* pal = (u16*)palette;
00153        u16 i;
00154        
00155        for (i = 0; i < 256; i++) pal[i] = ~pal[i]; // On fout le négatif...
00156 }
00157 
00158 
00159 
00160 
00172 extern inline void PA_SetPal16Neg(u32 palette, u8 n_palette) {
00173 u16* pal = (u16*)palette;
00174 u16 i;
00175 
00176 for (i = (n_palette << 4); i < ((n_palette + 1) << 4); i++) pal[i] = ~pal[i]; // On fout le négatif...
00177 }
00178 
00179 
00185 void PA_InitSpriteExtPal(void);
00186 
00187 
00188 
00194 void PA_InitBgExtPal(void);
00195 
00196 
00197 
00212 extern inline void PA_LoadSpritePal(u8 screen, u8 palette_number, void* palette)
00213 {
00214        PA_LoadSpriteExtPal(screen, palette_number, palette);
00215 }
00216 
00217 
00235 void PA_LoadBgPalN(u8 screen, u8 bg_number, u8 pal_number, void* palette);
00236 
00237 
00252 extern inline void PA_LoadBgPal(u8 screen, u16 bg_number, void* palette){
00253        PA_LoadBgPalN(screen, bg_number, 0, palette);
00254 }
00255 
00273 void PA_LoadBgPalN(u8 screen, u8 bg_number, u8 pal_number, void* palette);
00274 
00275 
00276 
00277 
00292 #define PA_SetBgPalCol(screen, color_number, colorRGB) BG_PALETTE[color_number + (screen << 9)] = colorRGB
00293 
00294 
00295 
00316 void PA_SetBgPalNCol(u8 screen, u8 bg_number, u8 pal_number, u8 color_number, u16 color);
00317 
00318 
00319 
00320 
00321 
00333 extern inline void PA_SetBgColor(u8 screen, u16 color){
00334        BG_PALETTE[screen<<9] = color;
00335 } 
00336 
00337 
00355 void PA_SetSpritePalCol(u8 screen, u8 pal_number, u8 color_number, u16 color);
00356 
00357 
00358 
00359 
00360 #define PA_AdjustCol(color, bright) color+= bright; if (color < 0) color = 0; if (color > 31) color = 31
00361 
00362 void PA_CreatePalBright(u16 *pal, u16 *newpal, s8 bright);
00363 
00364 void PA_CreatePalTransition(u16 *pal, u16 *newpal, s8 level, u8 destr, u8 destg, u8 destb);
00365 
00366 
00367 
00368 
00369 
00370 
00371 
00372 
00373 
00374 
00375 
00376 
00377 
00378 
00379  // end of Palette
00382 extern inline void* PA_GetBgPal(u8 screen, u8 bg_number){
00383        if (screen == 0) return (void*)(VRAM_E + (bg_number << 12));
00384        else return (void*)(VRAM_H + (bg_number << 12));
00385 }
00386 
00387 
00402 /*#define PA_SetSpritePalCol(screen, color_number, colorRGB) BG_PALETTE[256 + color_number + (screen << 9)] = colorRGB*/
00403 
00404 
00405 
00406 
00407 #endif
00408 
00409 

Generated on Tue Jan 30 23:00:22 2007 for PAlib by  doxygen 1.5.1-p1