diff options
author | steven_carr <steven_carr> | 2006-05-04 16:07:06 +0000 |
---|---|---|
committer | steven_carr <steven_carr> | 2006-05-04 16:07:06 +0000 |
commit | 5865f0c4b76a45e630ffc1899016ef99616b6fbf (patch) | |
tree | 27ecf26441ee092c4e441e2bdba3a3bb1b850907 /libvncclient/vncviewer.c | |
parent | 97fe75fdce41162dd3744850564694aab36a4615 (diff) | |
download | libtdevnc-5865f0c4b76a45e630ffc1899016ef99616b6fbf.tar.gz libtdevnc-5865f0c4b76a45e630ffc1899016ef99616b6fbf.zip |
Client side support for PalmVNC/UltraVNC 'Server Side Scaling'
Diffstat (limited to 'libvncclient/vncviewer.c')
-rw-r--r-- | libvncclient/vncviewer.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/libvncclient/vncviewer.c b/libvncclient/vncviewer.c index 1a9784e..c66e02d 100644 --- a/libvncclient/vncviewer.c +++ b/libvncclient/vncviewer.c @@ -201,9 +201,23 @@ static rfbBool rfbInitConnection(rfbClient* client) client->width=client->si.framebufferWidth; client->height=client->si.framebufferHeight; client->MallocFrameBuffer(client); - if (!SendFramebufferUpdateRequest(client, - 0,0,client->width,client->height,FALSE)) - return FALSE; + + if (client->appData.scaleSetting>1) + { + if (!SendScaleSetting(client, client->appData.scaleSetting)) + return FALSE; + if (!SendFramebufferUpdateRequest(client, + 0,0, + client->width/client->appData.scaleSetting, + client->height/client->appData.scaleSetting,FALSE)) + return FALSE; + } + else + { + if (!SendFramebufferUpdateRequest(client, + 0,0,client->width,client->height,FALSE)) + return FALSE; + } return TRUE; } @@ -232,6 +246,9 @@ rfbBool rfbInitClient(rfbClient* client,int* argc,char** argv) { } else if (i+1<*argc && strcmp(argv[i], "-quality") == 0) { client->appData.qualityLevel = atoi(argv[i+1]); j+=2; + } else if (i+1<*argc && strcmp(argv[i], "-scale") == 0) { + client->appData.scaleSetting = atoi(argv[i+1]); + j+=2; } else { char* colon=strchr(argv[i],':'); |