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);