Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
ImagePipeline v2
The first iteration of
ImagePipeline
introduced in Nuke 7 has some technical debt which needs to be addressed. The primary reason for adding tech debt was introduction of progressive decoding without rethinking the existing solution.Before #227 Caching Processing Image can be implemented this tech debt needs to be addressed.
Problem
The current solution is no longer adequate for the requirements.
Most of the complexity in the current solution lies in the imperative nature of the pipeline – it goes from step 1 to the final step and also the fact that it doesn't fully embrace the progressive decoding.
Solution
The solution suggested is to rethink the way we think about the pipeline. Instead of going from step 1, it's actually best to start at the last step. This way we would naturally create a dependency graph between steps. In order to do that we also introduce a new
Task
abstraction with support for one-to-many observers which we need for duplications and for progressive decoding. By doing that we can also:CancellationTokenSource
Property
isDecodingEnabled
fromImageRequest
and introduce properloadData
API to the pipeline (not in the scope of the MR).