app_server & libbe: Use server_read_only_memory for the colormap.

At present there's only ever one global one, so we don't bother using
an array for multiple screens (and we don't support multiple screens
yet anyway.)

This fixes a very old TODO, and avoids sending a ~32 KB port message
on every application startup.

Note that this breaks the app_server protocol ABI.
This commit is contained in:
Augustin Cavalier
2025-01-06 23:39:39 -05:00
parent 3aa371a285
commit 2b7da773ed
8 changed files with 17 additions and 64 deletions
-4
View File
@@ -162,7 +162,6 @@ enum {
AS_GET_PIXEL_CLOCK_LIMITS,
AS_GET_TIMING_CONSTRAINTS,
AS_SCREEN_GET_COLORMAP,
AS_GET_DESKTOP_COLOR,
AS_SET_DESKTOP_COLOR,
AS_GET_SCREEN_ID_FROM_WINDOW,
@@ -375,9 +374,6 @@ enum {
AS_VIEW_CLIP_TO_RECT,
AS_VIEW_CLIP_TO_SHAPE,
// Internal messages
AS_COLOR_MAP_UPDATED,
AS_LAST_CODE
};
@@ -21,6 +21,7 @@ static const int32 kColorWhichCount = kColorWhichLastContinuous + 3;
struct server_read_only_memory {
color_map colormap;
rgb_color colors[kColorWhichCount];
};
@@ -107,10 +107,8 @@ private:
private:
int32 fID;
int32 fReferenceCount;
color_map* fColorMap;
sem_id fRetraceSem;
bool fRetraceSemValid;
bool fOwnsColorMap;
BRect fFrame;
bigtime_t fLastUpdate;
};