#ifndef MCBITMAP_H #define MCBITMAP_H #include "bitmap.h" extern char MixedColors[4][4][8]; // Set a single pixel void bmmc_put(Bitmap * bm, int x, int y, char c); // Get the state of a single pixel char bmmc_get(Bitmap * bm, int x, int y); // Draw an unclipped line using an eight bit pattern void bmmcu_line(Bitmap * bm, int x0, int y0, int x1, int y1, char color); // Draw a clipped line using an eight bit pattern void bmmc_line(Bitmap * bm, ClipRect * clip, int x0, int y0, int x1, int y1, char color); inline void bmmc_scan_fill(int left, int right, char * lp, int x0, int x1, char pat); // Fill a circle with center x/y and radius r and the 8x8 pattern pat. void bmmc_circle_fill(Bitmap * bm, ClipRect * clip, int x, int y, char r, const char * pat); // Fill a trapezoid with horizontal top and bottom, top left is in x0, top right in x1 // dx0 and dx1 are the horizontal delta for each line. Coordinates are in 16.16 fixed point // numbers. y0 and y1 are vertical coordinates in pixel. void bmmc_trapezoid_fill(Bitmap * bm, ClipRect * clip, long x0, long x1, long dx0, long dx1, int y0, int y1, const char * pat) // Fill a triangle with a pattern, coordinate pairs x0/y0, x1/y1 and x2/y2 are in pixel void bmmc_triangle_fill(Bitmap * bm, ClipRect * clip, int x0, int y0, int x1, int y1, int x2, int y2, const char * pat); // Fill a quad with a pattern, coordinate pairs are in pixel void bmmc_quad_fill(Bitmap * bm, ClipRect * clip, int x0, int y0, int x1, int y1, int x2, int y2, int x3, int y3, const char * pat); // Fill a convex polygon with a pattern, coordinate pairs x[]/y[] are in pixel void bmmc_polygon_fill(Bitmap * bm, ClipRect * clip, int * x, int * y, char num, const char * pat); // Fill an arbitrary polygon with a pattern, coordinate pairs x[]/y[] are in pixel, maximum size is // sixteen vertices void bmmc_polygon_nc_fill(Bitmap * bm, ClipRect * clip, int * x, int * y, char num, const char * pat); inline void bmmcu_rect_fill(Bitmap * dbm, int dx, int dy, int w, int h, char color); // Unclipped rectangle pattern fill inline void bmmcu_rect_pattern(Bitmap * dbm, int dx, int dy, int w, int h, const char * pattern); // Unclipped rectangle copy inline void bmmcu_rect_copy(Bitmap * dbm, int dx, int dy, Bitmap * sbm, int sx, int sy, int w, int h); // Clipped rectangle fill inline void bmmc_rect_fill(Bitmap * dbm, ClipRect * clip, int dx, int dy, int w, int h, char color); // Clipped rectangle pattern fill inline void bmmc_rect_pattern(Bitmap * dbm, ClipRect * clip, int dx, int dy, int w, int h, const char * pattern); // Clipped rectangle copy inline void bmmc_rect_copy(Bitmap * dbm, ClipRect * clip, int dx, int dy, Bitmap * sbm, int sx, int sy, int w, int h); void bmmc_flood_fill(Bitmap * bm, ClipRect * clip, int x, int y, char color); #pragma compile("mcbitmap.c") #endif