Brendan Shanks (@bshanks) commented about dlls/winemac.drv/surface.c:
uint32_t surfaceHeight = abs(info->bmiHeader.biHeight);uint32_t surfaceBytesPerElement = 4;uint32_t surfacePixelFormat = 'BGRA';values[0] = CFNumberCreate(NULL, kCFNumberSInt32Type, &surfaceWidth);values[1] = CFNumberCreate(NULL, kCFNumberSInt32Type, &surfaceHeight);values[2] = CFNumberCreate(NULL, kCFNumberSInt32Type, &surfaceBytesPerElement);values[3] = CFNumberCreate(NULL, kCFNumberSInt32Type, &surfacePixelFormat);properties = CFDictionaryCreate(NULL, (void **)keys, (void **)values, ARRAY_SIZE(keys), &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);io_surface1 = IOSurfaceCreate(properties);io_surface2 = IOSurfaceCreate(properties);CFRelease(properties);memset_pattern4(IOSurfaceGetBaseAddress(io_surface1), &window_background, info->bmiHeader.biSizeImage);memset_pattern4(IOSurfaceGetBaseAddress(io_surface2), &window_background, info->bmiHeader.biSizeImage);
You probably need to unlock/lock the IOSurfaces before writing to them here