Thanks to Axel's change, now we can pass the app_server's colormap to libbe. Methods like BScreen::ColorMap() and BScreen::ColorForIndex() work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13023 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -189,11 +189,9 @@ BPrivateScreen::IndexForColor(uint8 red, uint8 green, uint8 blue, uint8 alpha)
|
|||||||
blue == B_TRANSPARENT_COLOR.blue && alpha == B_TRANSPARENT_COLOR.alpha)
|
blue == B_TRANSPARENT_COLOR.blue && alpha == B_TRANSPARENT_COLOR.alpha)
|
||||||
return B_TRANSPARENT_8_BIT;
|
return B_TRANSPARENT_8_BIT;
|
||||||
|
|
||||||
|
uint8 index = ((red & 0xf8) << 7) | ((green & 0xf8) << 2) | (blue >> 3);
|
||||||
if (fColorMap)
|
if (fColorMap)
|
||||||
return fColorMap->index_map[((red & 0xf8) << 7)
|
return fColorMap->index_map[index];
|
||||||
| ((green & 0xf8) << 2)
|
|
||||||
| (blue >> 3)];
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@@ -473,9 +471,7 @@ BPrivateScreen::BPrivateScreen()
|
|||||||
if (reply == SERVER_TRUE) {
|
if (reply == SERVER_TRUE) {
|
||||||
fColorMap = (color_map *)malloc(sizeof(color_map));
|
fColorMap = (color_map *)malloc(sizeof(color_map));
|
||||||
fOwnsColorMap = true;
|
fOwnsColorMap = true;
|
||||||
// TODO: This doesn't work. We probably ran into a port
|
link.Read<color_map>(fColorMap);
|
||||||
// capacity issue ?
|
|
||||||
//link.Read<color_map>(fColorMap);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1769,10 +1769,7 @@ printf("ServerApp %s: AS_SCREEN_GET_MODE\n", fSignature.String());
|
|||||||
link.Read<screen_id>(&id);
|
link.Read<screen_id>(&id);
|
||||||
|
|
||||||
fLink.StartMessage(SERVER_TRUE);
|
fLink.StartMessage(SERVER_TRUE);
|
||||||
|
fLink.Attach<color_map>(*SystemColorMap());
|
||||||
// TODO: this doesn't seem to work.
|
|
||||||
//See also comment in BPrivateScreen::BPrivateScreen()
|
|
||||||
//fLink.Attach<color_map>(*SystemColorMap());
|
|
||||||
fLink.Flush();
|
fLink.Flush();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user