cuticle/hi/img.h
mid b1a1b9a1eb Architectural updates
1. Introduce image UUIDs, so nodes may check for source updates.
2. Flip over design. Now, CHiPubNodes contain private data, instead of
CHiPubNodes being contained within private data. Each node must cache
its source data if it wants to conditionally run.
2025-10-15 09:45:38 +03:00

35 lines
664 B
C

#pragma once
#include<stddef.h>
#include<stdint.h>
#include"defs.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef struct CHiImage {
uint8_t bpc;
uint8_t channels;
uint16_t stride;
uint16_t width;
uint16_t height;
union {
uint16_t *data16;
uint8_t *data8;
};
uint8_t owned;
size_t uuid;
} CHiImage;
CUTIVIS CHiImage* CHi_Image_New(uint8_t bpc, uint8_t channels, uint16_t stride, uint16_t width, uint16_t height, void *data);
CUTIVIS void CHi_Image_Free(CHiImage *img);
CUTIVIS void CHi_Restride(const void *oldbuf, void *newbuf, uint16_t oldStride, uint16_t newStride, uint16_t rows);
CUTIVIS size_t CHi_NextUUID();
#ifdef __cplusplus
}
#endif