34 return (
int)((intptr_t)info - 1);
52internal_provider_read(
void* info,
void* buffer, off_t position,
size_t count)
66RA8_INTERNAL static void internal_provider_release(
void* info)
68 (void)close(internal_provider_fd(info));
73 if ((snapshot_fd < 0) || (provider_bytes == 0U)) {
74 if (snapshot_fd >= 0) {
75 (void)close(snapshot_fd);
79 const CGDataProviderDirectCallbacks callbacks = {
81 .getBytePointer =
nullptr,
82 .releaseBytePointer =
nullptr,
83 .getBytesAtPosition = internal_provider_read,
84 .releaseInfo = internal_provider_release,
87 CGDataProviderCreateDirect((
void*)(intptr_t)(snapshot_fd + 1), provider_bytes, &callbacks);
88 if (provider ==
nullptr) {
89 (void)close(snapshot_fd);
97 if (snapshot_fd >= 0) {
98 (void)close(snapshot_fd);
Minimal self-contained macOS window for the board emulator.
size_t board_view_read_rgb888_fd(int fd, off_t position, void *buffer, size_t count)
Expand an arbitrary byte range from a sealed RGB565 descriptor.
CGDataProviderRef priv_board_view_provider_create(int snapshot_fd, size_t provider_bytes)
Transfer one sealed RGB565 descriptor into a lazy RGB888 provider.
Internal immutable-fd CoreGraphics provider factory.
void * CGDataProviderRef
Opaque provider handle for non-Apple parse and contract checking.
#define RA8_INTERNAL
Marker that a function is intended to be static (file-local).