diff options
-rw-r--r-- | Makefile | 4 | ||||
-rw-r--r-- | TODO | 3 | ||||
-rw-r--r-- | font.c | 6 |
3 files changed, 8 insertions, 5 deletions
@@ -9,8 +9,8 @@ VNCSERVERLIB=-L. -lvncserver -L/usr/local/lib -lz -ljpeg # The code for 3 Bytes/Pixel is not very efficient! FLAG24 = -DALLOW24BPP -OPTFLAGS=-g # -Wall -#OPTFLAGS=-O2 -Wall +#OPTFLAGS=-g # -Wall +OPTFLAGS=-O2 -Wall CFLAGS=$(OPTFLAGS) $(PTHREADDEF) $(FLAG24) $(INCLUDES) RANLIB=ranlib @@ -1,7 +1,8 @@ immediate: ---------- -in keysym tester mouse buttons make copy rect, but text is not marked as mod. +extra_bytes in rfbDrawCharWithClip. +in keysym tested mouse buttons make copy rect, but text is not marked as mod. cursor drawing: set optional grain to mark bigger rectangles as drawn (else you end up with thousands of one-pixel-rectangles to encode). selectbox: scroll bars @@ -68,12 +68,14 @@ int rfbDrawCharWithClip(rfbScreenInfoPtr rfbScreen,rfbFontDataPtr font, /* after clipping, x2 will be count of bytes between rows, * x1 start of i, y1 start of j, width and height will be adjusted. */ - if(y1>y) { y1-=y; d+=(width+7)/8; height-=y1; y+=y1; } else y1=0; - if(x1>x) { x1-=x; d+=x1; width-=x1; x+=x1; extra_bytes+=x1/8; } else x1=0; + if(y1>y) { y1-=y; data+=(width+7)/8; height-=y1; y+=y1; } else y1=0; + if(x1>x) { x1-=x; data+=x1; width-=x1; x+=x1; extra_bytes+=x1/8; } else x1=0; if(y2<y+height) height-=y+height-y2; if(x2<x+width) { extra_bytes+=(x1+width)/8-(x+width-x2+7)/8; width-=x+width-x2; } for(j=y1;j<height;j++) { + if((x1&7)!=0) + d=data[-1]; /* TODO: check if in this case extra_bytes is correct! */ for(i=x1;i<width;i++) { if((i&7)==0) { d=*data; |