Skip to content

Conversation

@197g
Copy link
Member

@197g 197g commented Jun 12, 2025

Most crucially this should allow to interact with the color conversion. This is complete when tests demonstrate the basic behavior, that is reading from a shared image that is in fact not modified at all through synchronization.

Future extensions

  • Have color conversion edit a sub-region of the whole planes or canvas layout. In and out regions need not be located at the same offsets (i.e. the whole canvases may have different widths and heights). Then tests should ensure that non-overlapping regions can be edited concurrently without affecting the conversion.
  • Extend the provided interface of shared canvas for other modifications.

197g and others added 7 commits May 24, 2025 19:23
Reduce the complexity of interactions between pipeline parts by ensuring
that all this is available in advance, in one struct. This removes a few
parameters from function interfaces.
The main API change is that `add_plane*` in the public conversion
interface takes our own `BytePlane` types instead of the wrapped
internal `image-texel` plane types.

We made the internal shader operation of conversion independent from the
color model of a `Canvas`, i.e. we can operate on arrays described by
`PlaneBytes` layouts each. Instead of a signular description of one
image we have a (coherent) collection of texel components coming from
some input planes and flowing to some output planes.

By making this description internal to the converter we also enable
flexible Yuv conversion, mixed-depth alpha, and dynamically associated
filter planes, depth-buffers, etc in subsequent PRs.
@197g 197g marked this pull request as ready for review June 13, 2025 12:28
@197g 197g merged commit ac121c1 into master Jun 13, 2025
8 checks passed
@197g 197g deleted the shared-canvas branch June 13, 2025 12:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants