canvas
canvas copied to clipboard
Shared image
Implementing two new buffers in texel which interact through the existing Texel type:
CellBuffer, keeping its data in a sharedRcand supporting concurrent modification.AtomicBuffer, keeping its data in a sharedArcand supporting parallel modification in a manner that is potentially wait-free if the underlying platform primitives allow it. The effect of modifications is only specified if the user avoids aliasing but it is always sound.
Unfortunately the Image and derived layout-imbued buffers heavily depend on as_slice() -> &[P] which neither of these new types can provide. Even RawImage, the underlying private primitive, depends on traits that offer these methods as all byte-access is done through a direct byte slice for efficiency. Since I don't have a concrete idea on how to best approach this conflict, let's just put that for another time. This also includes lifting the types in canvas where it could be used for the shader / conversion code.