3 void rfbFillRect(rfbScreenInfoPtr s,int x1,int y1,int x2,int y2,rfbPixel col)
5 int rowstride = s->paddedWidthInBytes, bpp = s->bitsPerPixel>>3;
7 char* colour=(char*)&col;
13 memcpy(s->frameBuffer+j*rowstride+i*bpp,colour,bpp);
14 rfbMarkRectAsModified(s,x1,y1,x2,y2);
17 #define SETPIXEL(x,y) \
18 memcpy(s->frameBuffer+(y)*rowstride+(x)*bpp,colour,bpp)
20 void rfbDrawPixel(rfbScreenInfoPtr s,int x,int y,rfbPixel col)
22 int rowstride = s->paddedWidthInBytes, bpp = s->bitsPerPixel>>3;
23 char* colour=(char*)&col;
28 rfbMarkRectAsModified(s,x,y,x+1,y+1);
31 void rfbDrawLine(rfbScreenInfoPtr s,int x1,int y1,int x2,int y2,rfbPixel col)
33 int rowstride = s->paddedWidthInBytes, bpp = s->bitsPerPixel>>3;
35 char* colour=(char*)&col;
40 #define SWAPPOINTS { i=x1; x1=x2; x2=i; i=y1; y1=y2; y2=i; }
41 if(abs(x1-x2)<abs(y1-y2)) {
45 SETPIXEL(x1+(i-y1)*(x2-x1)/(y2-y1),i);
46 /* TODO: Maybe make this more intelligently? */
47 if(x2<x1) { i=x1; x1=x2; x2=i; }
48 rfbMarkRectAsModified(s,x1,y1,x2+1,y2+1);
53 rfbDrawPixel(s,x1,y1,col);
57 SETPIXEL(i,y1+(i-x1)*(y2-y1)/(x2-x1));
58 if(y2<y1) { i=y1; y1=y2; y2=i; }
59 rfbMarkRectAsModified(s,x1,y1,x2+1,y2+1);