summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordscho <dscho>2005-01-18 22:58:59 +0000
committerdscho <dscho>2005-01-18 22:58:59 +0000
commitdd923e866021418379ee88b8a927597f616fbc84 (patch)
tree7dd7e239f8334dabac332a030cb00c212dbdda94
parent9cc78e546033fe8cbc576a9fe1084338ceb47928 (diff)
downloadlibtdevnc-dd923e86.tar.gz
libtdevnc-dd923e86.zip
add convenience function to clip using x2,y2 instead of w,h
-rwxr-xr-xlibvncserver/rfbregion.c22
-rwxr-xr-xrfb/rfbregion.h3
2 files changed, 25 insertions, 0 deletions
diff --git a/libvncserver/rfbregion.c b/libvncserver/rfbregion.c
index e8d11f0..fdac51e 100755
--- a/libvncserver/rfbregion.c
+++ b/libvncserver/rfbregion.c
@@ -803,6 +803,28 @@ sraClipRect(int *x, int *y, int *w, int *h,
return (*w>0) && (*h>0);
}
+rfbBool
+sraClipRect2(int *x, int *y, int *x2, int *y2,
+ int cx, int cy, int cx2, int cy2) {
+ if (*x < cx)
+ *x = cx;
+ if (*y < cy)
+ *y = cy;
+ if (*x >= cx2)
+ *x = cx2-1;
+ if (*y >= cy2)
+ *y = cy2-1;
+ if (*x2 <= cx)
+ *x2 = cx+1;
+ if (*y2 <= cy)
+ *y2 = cy+1;
+ if (*x2 > cx2)
+ *x2 = cx2;
+ if (*y2 > cy2)
+ *y2 = cy2;
+ return (*x2>*x) && (*y2>*y);
+}
+
/* test */
#ifdef SRA_TEST
diff --git a/rfb/rfbregion.h b/rfb/rfbregion.h
index 8c07054..53da667 100755
--- a/rfb/rfbregion.h
+++ b/rfb/rfbregion.h
@@ -59,4 +59,7 @@ void sraRgnPrint(const sraRegion *s);
extern rfbBool sraClipRect(int *x, int *y, int *w, int *h,
int cx, int cy, int cw, int ch);
+extern rfbBool sraClipRect2(int *x, int *y, int *x2, int *y2,
+ int cx, int cy, int cx2, int cy2);
+
#endif