diff options
author | dscho <dscho> | 2001-11-19 17:51:46 +0000 |
---|---|---|
committer | dscho <dscho> | 2001-11-19 17:51:46 +0000 |
commit | 0c0111d6a4dcb37601fa1900ec7b9a0c59487f93 (patch) | |
tree | bd2c8552418f6d57afd08fa37fe0b6316ff0bc60 | |
parent | 2c820a714bf99cc7cf6b02dd73608d1bf21971e4 (diff) | |
download | libtdevnc-0c0111d6a4dcb37601fa1900ec7b9a0c59487f93.tar.gz libtdevnc-0c0111d6a4dcb37601fa1900ec7b9a0c59487f93.zip |
x11vnc now works with colour maps
-rw-r--r-- | x11vnc.c | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -170,17 +170,20 @@ int main(int argc,char** argv) screen->rfbServerFormat.trueColour = TRUE; if ( screen->rfbServerFormat.bitsPerPixel == 8 ) { - if(CellsOfScreen(ScreenOfDisplay(dpy,xscreen))!=0) { + if(CellsOfScreen(ScreenOfDisplay(dpy,xscreen))) { XColor color[256]; int i; + screen->colourMap.count = 256; screen->rfbServerFormat.trueColour = FALSE; screen->colourMap.is16 = TRUE; - screen->colourMap.count = XQueryColors(dpy,DefaultColormap(dpy,xscreen),color,16); + for(i=0;i<256;i++) + color[i].pixel=i; + XQueryColors(dpy,DefaultColormap(dpy,xscreen),color,256); screen->colourMap.data.shorts = (short*)malloc(3*sizeof(short)*screen->colourMap.count); for(i=0;i<screen->colourMap.count;i++) { - screen->colourMap.data.shorts[i*6+0] = color[i].red; - screen->colourMap.data.shorts[i*6+2] = color[i].green; - screen->colourMap.data.shorts[i*6+4] = color[i].blue; + screen->colourMap.data.shorts[i*3+0] = color[i].red; + screen->colourMap.data.shorts[i*3+1] = color[i].green; + screen->colourMap.data.shorts[i*3+2] = color[i].blue; } } else { screen->rfbServerFormat.redShift = 0; |