Implementing two new buffers in texel which interact through the existing Texel type:
CellBuffer, keeping its data in a shared Rc and supporting concurrent modification.
AtomicBuffer, keeping its data in a shared Arc and 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.
Implementing two new buffers in
texel
which interact through the existingTexel
type:CellBuffer
, keeping its data in a sharedRc
and supporting concurrent modification.AtomicBuffer
, keeping its data in a sharedArc
and 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 onas_slice() -> &[P]
which neither of these new types can provide. EvenRawImage
, 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 incanvas
where it could be used for the shader / conversion code.