1 /* ______ ___ ___ 2 * /\ _ \ /\_ \ /\_ \ 3 * \ \ \L\ \\//\ \ \//\ \ __ __ _ __ ___ 4 * \ \ __ \ \ \ \ \ \ \ /'__`\ /'_ `\/\`'__\/ __`\ 5 * \ \ \/\ \ \_\ \_ \_\ \_/\ __//\ \L\ \ \ \//\ \L\ \ 6 * \ \_\ \_\/\____\/\____\ \____\ \____ \ \_\\ \____/ 7 * \/_/\/_/\/____/\/____/\/____/\/___L\ \/_/ \/___/ 8 * /\____/ 9 * \_/__/ 10 * 11 * Defines for 256 color graphics primitives. 12 * 13 * By Michael Bukin. 14 * 15 * See readme.txt for copyright information. 16 */ 17 18 #ifndef __bma_cdefs8_h 19 #define __bma_cdefs8_h 20 21 #define PP_DEPTH 8 22 23 #define PIXEL_PTR unsigned char* 24 #define PTR_PER_PIXEL 1 25 #define OFFSET_PIXEL_PTR(p,x) ((PIXEL_PTR) (p) + (x)) 26 #define INC_PIXEL_PTR(p) ((p)++) 27 #define INC_PIXEL_PTR_N(p,d) ((p) += d) 28 #define DEC_PIXEL_PTR(p) ((p)--) 29 30 #define PUT_PIXEL(p,c) bmp_write8((uintptr_t) (p), (c)) 31 #define PUT_MEMORY_PIXEL(p,c) (*(p) = (c)) 32 #define PUT_RGB(p,r,g,b) bmp_write8((uintptr_t) (p), makecol8((r), (g), (b))) 33 #define GET_PIXEL(p) bmp_read8((uintptr_t) (p)) 34 #define GET_MEMORY_PIXEL(p) (*(p)) 35 36 #define IS_MASK(c) ((c) == 0) 37 #define IS_SPRITE_MASK(b,c) ((c) == 0) 38 39 /* Blender for putpixel (DRAW_MODE_TRANS). */ 40 #define PP_BLENDER unsigned char* 41 #define MAKE_PP_BLENDER(c) (color_map->data[(c) & 0xFF]) 42 #define PP_BLEND(b,o,n) ((b)[(o) & 0xFF]) 43 44 /* Blender for draw_trans_*_sprite. */ 45 #define DTS_BLENDER COLOR_MAP* 46 #define MAKE_DTS_BLENDER() color_map 47 #define DTS_BLEND(b,o,n) ((b)->data[(n)& 0xFF][(o) & 0xFF]) 48 49 /* Blender for draw_lit_*_sprite. */ 50 #define DLS_BLENDER unsigned char* 51 #define MAKE_DLS_BLENDER(a) (color_map->data[(a) & 0xFF]) 52 #define DLS_BLEND(b,a,c) ((b)[(c) & 0xFF]) 53 #define DLSX_BLEND(b,c) ((b)[(c) & 0xFF]) 54 55 /* Blender for poly_scanline_*_lit. */ 56 #define PS_BLENDER COLOR_MAP* 57 #define MAKE_PS_BLENDER() color_map 58 #define PS_BLEND(b,o,c) ((b)->data[(o) & 0xFF][(c) & 0xFF]) 59 #define PS_ALPHA_BLEND(b,o,c) ((b)->data[(o) & 0xFF][(c) & 0xFF]) 60 61 #define PATTERN_LINE(y) _drawing_pattern->line[((y) - _drawing_y_anchor) & _drawing_y_mask] 62 #define GET_PATTERN_PIXEL(x,y) GET_MEMORY_PIXEL(OFFSET_PIXEL_PTR(PATTERN_LINE(y), \ 63 ((x) - _drawing_x_anchor) & _drawing_x_mask)) 64 65 #define RLE_PTR signed char* 66 #define RLE_IS_EOL(c) ((c) == 0) 67 68 #define FUNC_LINEAR_CLEAR_TO_COLOR _linear_clear_to_color8 69 #define FUNC_LINEAR_BLIT _linear_blit8 70 #define FUNC_LINEAR_BLIT_BACKWARD _linear_blit_backward8 71 #define FUNC_LINEAR_MASKED_BLIT _linear_masked_blit8 72 73 #define FUNC_LINEAR_PUTPIXEL _linear_putpixel8 74 #define FUNC_LINEAR_GETPIXEL _linear_getpixel8 75 #define FUNC_LINEAR_HLINE _linear_hline8 76 #define FUNC_LINEAR_VLINE _linear_vline8 77 78 #define FUNC_LINEAR_DRAW_SPRITE _linear_draw_sprite8 79 #define FUNC_LINEAR_DRAW_SPRITE_EX _linear_draw_sprite_ex8 80 #define FUNC_LINEAR_DRAW_256_SPRITE _linear_draw_256_sprite8 81 #define FUNC_LINEAR_DRAW_SPRITE_V_FLIP _linear_draw_sprite_v_flip8 82 #define FUNC_LINEAR_DRAW_SPRITE_H_FLIP _linear_draw_sprite_h_flip8 83 #define FUNC_LINEAR_DRAW_SPRITE_VH_FLIP _linear_draw_sprite_vh_flip8 84 #define FUNC_LINEAR_DRAW_TRANS_SPRITE _linear_draw_trans_sprite8 85 #define FUNC_LINEAR_DRAW_TRANS_RGBA_SPRITE _linear_draw_trans_rgba_sprite8 86 #define FUNC_LINEAR_DRAW_LIT_SPRITE _linear_draw_lit_sprite8 87 #define FUNC_LINEAR_DRAW_CHARACTER _linear_draw_character8 88 #define FUNC_LINEAR_DRAW_RLE_SPRITE _linear_draw_rle_sprite8 89 #define FUNC_LINEAR_DRAW_TRANS_RLE_SPRITE _linear_draw_trans_rle_sprite8 90 #define FUNC_LINEAR_DRAW_TRANS_RGBA_RLE_SPRITE _linear_draw_trans_rgba_rle_sprite8 91 #define FUNC_LINEAR_DRAW_LIT_RLE_SPRITE _linear_draw_lit_rle_sprite8 92 93 #define FUNC_LINEAR_DRAW_SPRITE_END _linear_draw_sprite8_end 94 #define FUNC_LINEAR_BLIT_END _linear_blit8_end 95 96 #define FUNC_POLY_SCANLINE_GCOL _poly_scanline_gcol8 97 #define FUNC_POLY_SCANLINE_GRGB _poly_scanline_grgb8 98 #define FUNC_POLY_SCANLINE_ATEX _poly_scanline_atex8 99 #define FUNC_POLY_SCANLINE_ATEX_MASK _poly_scanline_atex_mask8 100 #define FUNC_POLY_SCANLINE_ATEX_LIT _poly_scanline_atex_lit8 101 #define FUNC_POLY_SCANLINE_ATEX_MASK_LIT _poly_scanline_atex_mask_lit8 102 #define FUNC_POLY_SCANLINE_PTEX _poly_scanline_ptex8 103 #define FUNC_POLY_SCANLINE_PTEX_MASK _poly_scanline_ptex_mask8 104 #define FUNC_POLY_SCANLINE_PTEX_LIT _poly_scanline_ptex_lit8 105 #define FUNC_POLY_SCANLINE_PTEX_MASK_LIT _poly_scanline_ptex_mask_lit8 106 #define FUNC_POLY_SCANLINE_ATEX_TRANS _poly_scanline_atex_trans8 107 #define FUNC_POLY_SCANLINE_ATEX_MASK_TRANS _poly_scanline_atex_mask_trans8 108 #define FUNC_POLY_SCANLINE_PTEX_TRANS _poly_scanline_ptex_trans8 109 #define FUNC_POLY_SCANLINE_PTEX_MASK_TRANS _poly_scanline_ptex_mask_trans8 110 111 #endif /* !__bma_cdefs8_h */ 112 113