Commit 9e192f40 authored by dscho's avatar dscho

first support for colourmaps

parent bbcc2f51
...@@ -131,6 +131,8 @@ void checkForImageUpdates(rfbScreenInfoPtr s,char *b) ...@@ -131,6 +131,8 @@ void checkForImageUpdates(rfbScreenInfoPtr s,char *b)
int main(int argc,char** argv) int main(int argc,char** argv)
{ {
Screen *sc;
Colormap cm;
XImage *framebufferImage; XImage *framebufferImage;
char *backupImage; char *backupImage;
int xscreen,i; int xscreen,i;
...@@ -168,12 +170,27 @@ int main(int argc,char** argv) ...@@ -168,12 +170,27 @@ int main(int argc,char** argv)
screen->rfbServerFormat.trueColour = TRUE; screen->rfbServerFormat.trueColour = TRUE;
if ( screen->rfbServerFormat.bitsPerPixel == 8 ) { if ( screen->rfbServerFormat.bitsPerPixel == 8 ) {
screen->rfbServerFormat.redShift = 0; if(CellsOfScreen(ScreenOfDisplay(dpy,xscreen))!=0) {
screen->rfbServerFormat.greenShift = 2; XColor color[256];
screen->rfbServerFormat.blueShift = 5; int i;
screen->rfbServerFormat.redMax = 3; screen->rfbServerFormat.trueColour = FALSE;
screen->rfbServerFormat.greenMax = 7; screen->colourMap = malloc(sizeof(rfbColourMap));
screen->rfbServerFormat.blueMax = 3; screen->colourMap.is16 = TRUE;
screen->colourMap.count = XQueryColors(dpy,DefaultColormap(dpy,xscreen),color,256);
screen->colourMap.data.shorts = malloc(6*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;
}
} else {
screen->rfbServerFormat.redShift = 0;
screen->rfbServerFormat.greenShift = 2;
screen->rfbServerFormat.blueShift = 5;
screen->rfbServerFormat.redMax = 3;
screen->rfbServerFormat.greenMax = 7;
screen->rfbServerFormat.blueMax = 3;
}
} else { } else {
screen->rfbServerFormat.redShift = 0; screen->rfbServerFormat.redShift = 0;
if ( framebufferImage->red_mask ) if ( framebufferImage->red_mask )
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment