MCPcopy Create free account
hub / github.com/danoon2/Boxedwine / x11_CreateColorMap

Function x11_CreateColorMap

source/x11/x11common.cpp:1246–1270  ·  view source on GitHub ↗

Colormap XCreateColormap(Display* display, Window w, Visual* visual, int alloc)

Source from the content-addressed store, hash-verified

1244
1245// Colormap XCreateColormap(Display* display, Window w, Visual* visual, int alloc)
1246static void x11_CreateColorMap(CPU* cpu) {
1247 KThread* thread = cpu->thread;
1248 KMemory* memory = thread->memory;
1249 XServer* server = XServer::getServer();
1250 U32 displayId = ARG1;
1251 Visual visual;
1252 U32 visualAddress = ARG3;
1253
1254 if (visualAddress) {
1255 visual.read(memory, visualAddress);
1256 }
1257
1258 if (ARG4 == AllocNone && ((visualAddress && visual.c_class == TrueColor) || !visualAddress)) {
1259 EAX = DummyAtom;
1260 } else {
1261 EAX = server->createColorMap(&visual, ARG4);
1262 if (ARG4 == AllocAll) {
1263 XColorMapPtr colorMap = server->getColorMap(EAX);
1264 for (U32 i = 0; i < MAX_COLORMAP_SIZE; i++) {
1265 colorMap->colors->flags |= (COLOR_ALLOCATED | COLOR_WRITE);
1266 colorMap->colors->uses.set(displayId, 1);
1267 }
1268 }
1269 }
1270}
1271
1272static void x11_FreeColorMap(CPU* cpu) {
1273 //kpanic("x11_FreeColorMap");

Callers

nothing calls this directly

Calls 4

createColorMapMethod · 0.80
getColorMapMethod · 0.80
readMethod · 0.45
setMethod · 0.45

Tested by

no test coverage detected