SDL画线 16位

来源:互联网 发布:sql server服务器ip 编辑:程序博客网 时间:2024/06/05 12:41
void put_pixel_16( SDL_Surface *surface, int x, int y, Uint16 pixel ){Uint16 *pixels = (Uint16 *)surface->pixels;pixels[ ( y * surface->w ) + x ] = pixel;return ;}void draw_line(SDL_Surface *surface, Uint16 x0, Uint16 y0, Uint16 xEnd, Uint16 yEnd, Uint16 pixel){        Uint16 dx = abs (xEnd -x0), dy = abs (yEnd-y0);//fabs        Uint16 p =2* dy-dx;        Uint16 twoDy = 2*dy, twoDyMinusDx = 2* (dy - dx);        Uint16 x,y;        if (x0>xEnd)        {                x=xEnd;                y=yEnd;                xEnd=x0;        }        else{                x=x0;                y=y0;        }        put_pixel_16( surface, x, y, pixel );        while (x<xEnd)        {                x++;                if(p<0)                        p+=twoDy;                else{                        y++;                        p+=twoDyMinusDx;                }put_pixel_16( surface, x, y, pixel );       }}

0 0