#include "wrapalleg.h" #include #include #include #define abs(a) miabs(a) #define clear o2_clear int miabs(int a){ if((a)<0)a=-a; return a; } void upcase(char *p) { while(*p != '\0') { if(*p >= 97 && *p <= 122) *p -= 32; ++p; } } void downcase(char *p) { while(*p != '\0') { if(*p >= 97-32 && *p <= 122-32) *p += 32; ++p; } } void clear(BITMAP *buff){ memset(&buff->line,0,buff->w*buff->h); } BITMAP *create_bitmap(int w,int h){ BITMAP *buff; buff = malloc(sizeof (BITMAP)); buff->line=malloc(1*w*h); buff->w=w; buff->h=h; buff->pitch=w; buff->depth=1; return buff; } int destroy_bitmap(BITMAP *buff){ if (buff->line) { free(buff->line); } free(buff); return 0; } void rect(BITMAP *buff,int x,int y,int x2,int y2,unsigned char color){ // int i,j,idx; // // int dx= abs(x2-x); // int dy= abs(y2-y); // int V_WIDTH = buff->w; // unsigned char *buffer=buff->line[0]; // // for(i=x;iw; // unsigned char *buffer=buff->line[0]; // // for(i=x;iw; // unsigned char *buffer=buff->line[0]; // // for(i=x;iw; // unsigned char *buffer=buff->line[0]; // // for(j=y;jw; // unsigned char *buffer=buff->line[0]; // // dx = x2 - x1; // dy = y2 - y1; // sx = (dx >= 0) ? 1 : -1; // sy = (dy >= 0) ? 1 : -1; // // if (dx==0) { // if (dy>0) { // DrawVline(buff, x1, y1,0, dy, color); // return; // // } else if (dy<0) { // DrawVline(buff, x1, y2,0, -dy, color); // return; // // } else { // idx=x1+y1*V_WIDTH; // buffer[idx]=color; // return ; // } // } // if (dy == 0) { // if (dx>0) { // DrawHline(buff, x1, y1, dx, 0, color); // return; // // } else if (dx<0) { // DrawHline(buff, x2, y1, -dx,0, color); // return; // } // } // // dx = sx * dx + 1; // dy = sy * dy + 1; // // pixx = 1; // pixy = V_WIDTH; // // pixx *= sx; // pixy *= sy; // // if (dx < dy) { // swaptmp = dx; // dx = dy; // dy = swaptmp; // swaptmp = pixx; // pixx = pixy; // pixy = swaptmp; // } // // x = 0; // y = 0; // // idx=x1+y1*V_WIDTH; // // for (; x < dx; x++, idx +=pixx) { // buffer[idx]=color; // y += dy; // if (y >= dx) { // y -= dx; // idx += pixy; // } // } }