1 /*
2  * OpenBOR - http://www.chronocrash.com
3  * -----------------------------------------------------------------------
4  * All rights reserved, see LICENSE in OpenBOR root for details.
5  *
6  * Copyright (c) 2004 - 2014 OpenBOR Team
7  */
8 
9 #ifndef SPRITE_H
10 #define SPRITE_H
11 
12 #ifndef TRANSPARENT_IDX
13 #define		TRANSPARENT_IDX		0x00
14 #endif
15 
16 unsigned fakey_encodesprite(s_bitmap *bitmap);
17 unsigned encodesprite(int offsx, int offsy, s_bitmap *bitmap, s_sprite *dest);
18 
19 // common sprite draw function, dispatch all formats
20 void putsprite(int x, int y, s_sprite *frame, s_screen *screen, s_drawmethod *drawmethod);
21 
22 // Normal putsprite
23 void putsprite_8(int x, int y, int is_flip, s_sprite *frame, s_screen *screen, unsigned char *remap, unsigned char *blend);
24 //with speical effects
25 void putsprite_ex(int x, int y, s_sprite *frame, s_screen *screen, s_drawmethod *drawmethod);
26 /*
27 // 8bit pixel transpixel functions
28 unsigned char remapcolor(unsigned char* table, unsigned char color, unsigned char unused);
29 unsigned char blendcolor(unsigned char* table, unsigned char color1, unsigned char color2);
30 unsigned char blendfillcolor(unsigned char* table, unsigned char unused, unsigned char color);
31 */
32 //----------------------------------------------------------------------------------------------------
33 //              16/24/32bit palette version
34 ///////////////////////////////////////////////////////////////////////////////////////////////////////
35 // Normal putsprite
36 void putsprite_x8p16(int x, int y, int is_flip, s_sprite *frame, s_screen *screen, unsigned short *remap, unsigned short(*fp)(unsigned short, unsigned short));
37 //with speical effects
38 void putsprite_ex_x8p16(int x, int y, s_sprite *frame, s_screen *screen, s_drawmethod *drawmethod);
39 
40 // Normal putsprite
41 void putsprite_x8p24(int x, int y, int is_flip, s_sprite *frame, s_screen *screen, unsigned char *remap, unsigned(*fp)(unsigned, unsigned));
42 //with speical effects
43 void putsprite_ex_x8p24(int x, int y, s_sprite *frame, s_screen *screen, s_drawmethod *drawmethod);
44 
45 // Normal putsprite
46 void putsprite_x8p32(int x, int y, int is_flip, s_sprite *frame, s_screen *screen, unsigned *remap, unsigned(*fp)(unsigned, unsigned));
47 //with speical effects
48 void putsprite_ex_x8p32(int x, int y, s_sprite *frame, s_screen *screen, s_drawmethod *drawmethod);
49 
50 /*
51 unsigned blend_multiply(unsigned color1, unsigned color2);
52 unsigned blend_screen(unsigned color1, unsigned color2);
53 unsigned blend_overlay(unsigned color1, unsigned color2);
54 unsigned blend_hardlight(unsigned color1, unsigned color2);
55 unsigned blend_dodge(unsigned color1, unsigned color2);
56 unsigned blend_half(unsigned color1, unsigned color2);
57 */
58 unsigned blend_channel32(register unsigned color1, register unsigned color2, register unsigned a);
59 unsigned short blend_channel16(unsigned short color1, unsigned short color2, register unsigned a);
60 #endif
61