Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upPremultiply gradient stop colors #1250
Merged
Conversation
CSS gradient stop colors are interpolated in premultiplied space. Currently we assume that color stops that are passed in are premultiplied, but because it's needed in both Servo and Gecko, it makes sense to do the premultiplication in WebRender and expose a straight alpha color like the rest of the API does. The premultiplication is purposefully not done in DisplayListBuilder to prevent it from being saved for replay and then premultiplied again when we replay the display list.
|
Since we are using premultiplied alpha for gradients, shouldn't we also change the blending mode used for rendering of them? |
|
Sorry, forgot to respond. The gradients should be using a premultiplied alpha blend mode, as before. The change here is to make the API expect unpremultiplied alpha, instead of expecting the client to premultiply the stops. |
|
@bors-servo r+ |
|
|
bors-servo
added a commit
that referenced
this pull request
May 15, 2017
Premultiply gradient stop colors CSS gradient stop colors are interpolated in premultiplied space. Currently we assume that color stops that are passed in are premultiplied, but because it's needed in both Servo and Gecko, it makes sense to do the premultiplication in WebRender and expose a straight alpha color like the rest of the API does. The premultiplication is purposefully not done in DisplayListBuilder to prevent it from being saved for replay and then premultiplied again when we replay the display list. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/webrender/1250) <!-- Reviewable:end -->
|
|
|
@kvark Thanks! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
eqrion commentedMay 12, 2017
•
edited by larsbergstrom
CSS gradient stop colors are interpolated in premultiplied space.
Currently we assume that color stops that are passed in are
premultiplied, but because it's needed in both Servo and Gecko, it makes
sense to do the premultiplication in WebRender and expose a straight
alpha color like the rest of the API does.
The premultiplication is purposefully not done in DisplayListBuilder
to prevent it from being saved for replay and then premultiplied again
when we replay the display list.
This change is