aboutsummaryrefslogtreecommitdiffstats
path: root/x0vncserver/PollingManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'x0vncserver/PollingManager.h')
-rw-r--r--x0vncserver/PollingManager.h22
1 files changed, 20 insertions, 2 deletions
diff --git a/x0vncserver/PollingManager.h b/x0vncserver/PollingManager.h
index 8f7f820a..a35fafee 100644
--- a/x0vncserver/PollingManager.h
+++ b/x0vncserver/PollingManager.h
@@ -38,9 +38,17 @@ public:
virtual ~PollingManager();
void setVNCServer(VNCServer *s);
+
+ void setPointerPos(const Point &pos);
+ void unsetPointerPos();
+
void pollDebug();
void poll();
+ // Configurable parameters.
+ static BoolParameter pollPointer;
+ static IntParameter pollingType;
+
protected:
//
@@ -52,6 +60,10 @@ protected:
bool poll_Traditional();
bool poll_Dumb();
+ // Separate polling for the area around current pointer position.
+ void computePointerArea(Rect *r);
+ bool pollPointerArea();
+
Display *m_dpy;
VNCServer *m_server;
@@ -61,12 +73,18 @@ protected:
int m_widthTiles;
int m_heightTiles;
+ // Tracking pointer position for polling improvements.
+ bool m_pointerPosKnown;
+ Point m_pointerPos;
+
private:
void adjustVideoArea();
- Image *m_rowImage;
- Image *m_tileImage;
+ // Additional images used in polling algorithms.
+ Image *m_rowImage; // One row of the framebuffer
+ Image *m_tileImage; // One tile (32x32 or less)
+ Image *m_areaImage; // Area around the pointer (up to 128x128)
char *m_statusMatrix;