mirror of
https://github.com/sheumann/VNCviewGS.git
synced 2024-11-24 00:30:46 +00:00
Check for events during raw drawing based on time, rather than every 16 lines.
This avoids situations where the system may seem unresponsive for some time (primarily, I think, due to network processing being relatively slow).
This commit is contained in:
parent
a11e065a35
commit
1e7b5a13fe
11
raw.cc
11
raw.cc
@ -27,6 +27,8 @@ segment "VNCview GS";
|
|||||||
#include "readtcp.h"
|
#include "readtcp.h"
|
||||||
#include "raw.h"
|
#include "raw.h"
|
||||||
|
|
||||||
|
#define EVENT_CHECK_INVERVAL 10 /* tick count between event checks */
|
||||||
|
|
||||||
/* Data on state of raw rectangle drawing routines */
|
/* Data on state of raw rectangle drawing routines */
|
||||||
static unsigned int lineBytes; /* Number of bytes in a line of GS pixels */
|
static unsigned int lineBytes; /* Number of bytes in a line of GS pixels */
|
||||||
static unsigned long pixels;
|
static unsigned long pixels;
|
||||||
@ -68,11 +70,13 @@ void RawDraw (void) {
|
|||||||
unsigned int i; /* Loop indices */
|
unsigned int i; /* Loop indices */
|
||||||
unsigned char *initialLineDataPtr;
|
unsigned char *initialLineDataPtr;
|
||||||
unsigned char *finalDestPtr;
|
unsigned char *finalDestPtr;
|
||||||
static EventRecord unusedEventRec;
|
static EventRecord eventRec;
|
||||||
|
unsigned long eventCheckTime;
|
||||||
|
|
||||||
/* For use with GetContentOrigin() */
|
/* For use with GetContentOrigin() */
|
||||||
Origin contentOrigin;
|
Origin contentOrigin;
|
||||||
|
|
||||||
|
eventCheckTime = TickCount() + EVENT_CHECK_INVERVAL;
|
||||||
SetPort(vncWindow); /* Drawing in VNC window */
|
SetPort(vncWindow); /* Drawing in VNC window */
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
@ -182,10 +186,11 @@ void RawDraw (void) {
|
|||||||
* instead processing the minimum necessary periodic tasks and then
|
* instead processing the minimum necessary periodic tasks and then
|
||||||
* going straight to the next line of data.
|
* going straight to the next line of data.
|
||||||
*/
|
*/
|
||||||
if (!(drawingLine & 15)) {
|
if (TickCount() >= eventCheckTime) {
|
||||||
if (EventAvail(0xFFFF, &unusedEventRec))
|
if (EventAvail(0xFFFF, &eventRec))
|
||||||
return;
|
return;
|
||||||
SystemTask(); /* Let periodic Desk Accesories do their things */
|
SystemTask(); /* Let periodic Desk Accesories do their things */
|
||||||
|
eventCheckTime = eventRec.when + EVENT_CHECK_INVERVAL;
|
||||||
}
|
}
|
||||||
TCPIPPoll(); /* Let Marinetti keep processing data */
|
TCPIPPoll(); /* Let Marinetti keep processing data */
|
||||||
} while (1);
|
} while (1);
|
||||||
|
Loading…
Reference in New Issue
Block a user