diff options
| author | Simon <simon@hardwired.org.uk> | 2010-08-25 11:22:41 (GMT) |
|---|---|---|
| committer | Simon <simon@hardwired.org.uk> | 2010-08-25 11:22:41 (GMT) |
| commit | 470519c92ed917b41c6ccae2e193eb59bdfe2ece (patch) | |
| tree | 0c0c3fca1be16e55f7e784b9aae77021a2187be6 /graphics.h | |
| parent | 8d089bba50937b572df918c849afc28181f852c6 (diff) | |
| download | powder-470519c92ed917b41c6ccae2e193eb59bdfe2ece.zip powder-470519c92ed917b41c6ccae2e193eb59bdfe2ece.tar.gz | |
Seperation WIP
Diffstat (limited to 'graphics.h')
| -rw-r--r-- | graphics.h | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/graphics.h b/graphics.h new file mode 100644 index 0000000..935dd43 --- /dev/null +++ b/graphics.h @@ -0,0 +1,109 @@ +#ifndef GRAPHICS_H +#define GRAPHICS_H +#include <SDL/SDL.h> + +#ifdef PIX16 +#define PIXELSIZE 2 +typedef unsigned short pixel; +#define PIXPACK(x) ((((x)>>8)&0xF800)|(((x)>>5)&0x07E0)|(((x)>>3)&0x001F)) +#define PIXRGB(r,g,b) ((((r)<<8)&0xF800)|(((g)<<3)&0x07E0)|(((b)>>3)&0x001F)) +#define PIXR(x) (((x)>>8)&0xF8) +#define PIXG(x) (((x)>>3)&0xFC) +#define PIXB(x) (((x)<<3)&0xF8) +#else +#define PIXELSIZE 4 +typedef unsigned int pixel; +#ifdef PIX32BGR +#define PIXPACK(x) ((((x)>>16)&0x0000FF)|((x)&0x00FF00)|(((x)<<16)&0xFF0000)) +#define PIXRGB(r,g,b) (((b)<<16)|((g)<<8)|((r)))// (((b)<<16)|((g)<<8)|(r)) +#define PIXR(x) ((x)&0xFF) +#define PIXG(x) (((x)>>8)&0xFF) +#define PIXB(x) ((x)>>16) +#else +#ifdef PIX32BGRA +#define PIXPACK(x) ((((x)>>8)&0x0000FF00)|(((x)<<8)&0x00FF0000)|(((x)<<24)&0xFF000000)) +#define PIXRGB(r,g,b) (((b)<<24)|((g)<<16)|((r)<<8)) +#define PIXR(x) (((x)>>8)&0xFF) +#define PIXG(x) (((x)>>16)&0xFF) +#define PIXB(x) (((x)>>24)) +#else +#define PIXPACK(x) (x) +#define PIXRGB(r,g,b) (((r)<<16)|((g)<<8)|(b)) +#define PIXR(x) ((x)>>16) +#define PIXG(x) (((x)>>8)&0xFF) +#define PIXB(x) ((x)&0xFF) +#endif +#endif +#endif + +unsigned cmode = 3; +SDL_Surface *sdl_scrn; +int sdl_scale = 1; + +pixel *rescale_img(pixel *src, int sw, int sh, int *qw, int *qh, int f); + +void sdl_blit_1(int x, int y, int w, int h, pixel *src, int pitch); + +void sdl_blit_2(int x, int y, int w, int h, pixel *src, int pitch); + +void sdl_blit(int x, int y, int w, int h, pixel *src, int pitch); + +void drawblob(pixel *vid, int x, int y, unsigned char cr, unsigned char cg, unsigned char cb); + +void draw_tool(pixel *vid_buf, int b, int sl, int sr, unsigned pc, unsigned iswall); + +int draw_tool_xy(pixel *vid_buf, int x, int y, int b, unsigned pc); + +void draw_menu(pixel *vid_buf, int i, int hover); + +#ifdef WIN32 +_inline void drawpixel(pixel *vid, int x, int y, int r, int g, int b, int a); +#else +inline void drawpixel(pixel *vid, int x, int y, int r, int g, int b, int a); +#endif + +#ifdef WIN32 +_inline int drawchar(pixel *vid, int x, int y, int c, int r, int g, int b, int a); +#else +inline int drawchar(pixel *vid, int x, int y, int c, int r, int g, int b, int a); +#endif + +int drawtext(pixel *vid, int x, int y, char *s, int r, int g, int b, int a); + +void drawrect(pixel *vid, int x, int y, int w, int h, int r, int g, int b, int a); + +void fillrect(pixel *vid, int x, int y, int w, int h, int r, int g, int b, int a); + +void clearrect(pixel *vid, int x, int y, int w, int h); + +void drawdots(pixel *vid, int x, int y, int h, int r, int g, int b, int a); + +int textwidth(char *s); + +int drawtextmax(pixel *vid, int x, int y, int w, char *s, int r, int g, int b, int a); + +int textnwidth(char *s, int n); + +int textwidthx(char *s, int w); + +#ifdef WIN32 +_inline void blendpixel(pixel *vid, int x, int y, int r, int g, int b, int a); +#else +inline void blendpixel(pixel *vid, int x, int y, int r, int g, int b, int a); +#endif + +void draw_icon(pixel *vid_buf, int x, int y, char ch, int flag); + +void draw_air(pixel *vid); + +void draw_line(pixel *vid, int x1, int y1, int x2, int y2, int r, int g, int b, int a); + +void addpixel(pixel *vid, int x, int y, int r, int g, int b, int a); + +void xor_pixel(int x, int y, pixel *vid); + +void xor_line(int x1, int y1, int x2, int y2, pixel *vid); + +void xor_rect(pixel *vid, int x, int y, int w, int h); + +#endif
\ No newline at end of file |
