Commit 47c481b7 authored by dscho's avatar dscho

fixed LinuxVNC colours

parent d3bb5fb6
...@@ -65,6 +65,17 @@ void do_key(Bool down,KeySym keySym,rfbClientPtr cl) ...@@ -65,6 +65,17 @@ void do_key(Bool down,KeySym keySym,rfbClientPtr cl)
isControl--; isControl--;
} }
/* these colours are from linux kernel drivers/char/console.c */
unsigned char color_table[] = { 0, 4, 2, 6, 1, 5, 3, 7,
8,12,10,14, 9,13,11,15 };
/* the default colour table, for VGA+ colour systems */
int default_red[] = {0x00,0xaa,0x00,0xaa,0x00,0xaa,0x00,0xaa,
0x55,0xff,0x55,0xff,0x55,0xff,0x55,0xff};
int default_grn[] = {0x00,0x00,0xaa,0x55,0x00,0x00,0xaa,0xaa,
0x55,0x55,0xff,0xff,0x55,0x55,0xff,0xff};
int default_blu[] = {0x00,0x00,0x00,0x00,0xaa,0xaa,0xaa,0xaa,
0x55,0x55,0x55,0x55,0xff,0xff,0xff,0xff};
int main(int argc,char **argv) int main(int argc,char **argv)
{ {
int width=80,height=25; int width=80,height=25;
...@@ -103,6 +114,11 @@ int main(int argc,char **argv) ...@@ -103,6 +114,11 @@ int main(int argc,char **argv)
/* console init */ /* console init */
console=vcGetConsole(&argc,argv,width,height,&vgaFont,TRUE); console=vcGetConsole(&argc,argv,width,height,&vgaFont,TRUE);
for(i=0;i<16;i++) {
console->rfbScreen->colourMap.data.bytes[i*3+0]=default_red[color_table[i]];
console->rfbScreen->colourMap.data.bytes[i*3+1]=default_grn[color_table[i]];
console->rfbScreen->colourMap.data.bytes[i*3+2]=default_blu[color_table[i]];
}
console->rfbScreen->desktopName=title; console->rfbScreen->desktopName=title;
console->rfbScreen->kbdAddEvent=do_key; console->rfbScreen->kbdAddEvent=do_key;
console->selectTimeOut=100000; console->selectTimeOut=100000;
......
...@@ -29,9 +29,7 @@ void MakeColourMap16(vncConsolePtr c) ...@@ -29,9 +29,7 @@ void MakeColourMap16(vncConsolePtr c)
if(colourMap->count) if(colourMap->count)
free(colourMap->data.bytes); free(colourMap->data.bytes);
colourMap->data.bytes=malloc(16*3); colourMap->data.bytes=malloc(16*3);
for(i=0;i<16;i++) memcpy(colourMap->data.bytes,colourMap16,16*3);
for(j=0;j<3;j++)
colourMap->data.bytes[i*3+2-j]=colourMap16[i*3+j];
colourMap->count=16; colourMap->count=16;
colourMap->is16=FALSE; colourMap->is16=FALSE;
c->rfbScreen->rfbServerFormat.trueColour=FALSE; c->rfbScreen->rfbServerFormat.trueColour=FALSE;
......
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