Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Consider removing mandatory color stop in interval [0,1] #148

Closed
drott opened this issue Dec 9, 2020 · 14 comments · Fixed by #295
Closed

Consider removing mandatory color stop in interval [0,1] #148

drott opened this issue Dec 9, 2020 · 14 comments · Fixed by #295
Milestone

Comments

@drott
Copy link
Collaborator

drott commented Dec 9, 2020

I don't think we need to enforce that there is a color stop defined between 0 and 1.

@rsheeter
Copy link
Contributor

rsheeter commented Dec 9, 2020

Revise to just there must be at least one color stop?

@svgeesus
Copy link

Right. Zero stops is undefined. One stop gives a solid fill and it doesn't matter where the stop position is. Two or more stops, the stop positions matter (but still need not be in the 0 to 1 range).

@PeterConstable
Copy link
Collaborator

@drott Current wording in 5.7.11.1.2.1 is:

A color line is defined with at least one color stop within the interval [0, 1].

Should the requirement to be within [0,1] be removed?

@rsheeter rsheeter added this to the COLRv1 milestone Jun 1, 2021
@PeterConstable
Copy link
Collaborator

@drott We need to close on this.

@behdad
Copy link
Collaborator

behdad commented Jun 2, 2021

@drott We need to close on this.

Is clear what needs to be done.

@PeterConstable
Copy link
Collaborator

Conceptually, it doesn't matter. But is there any issue with what existing libraries can handle?

@davelab6
Copy link
Member

davelab6 commented Jun 2, 2021

@PeterConstable existing libraries for colr v0?

Colr v1 isn't finished speccing, so any existing colr v1 libraries should reasonably be expected to support whatever the spec finally says, imo

@PeterConstable
Copy link
Collaborator

But we were trying to accommodate (to some extent) existing graphics libraries. (Sorry, that's what I meant, not colr v1 libraries.)

@behdad
Copy link
Collaborator

behdad commented Jun 3, 2021

But we were trying to accommodate (to some extent) existing graphics libraries. (Sorry, that's what I meant, not colr v1 libraries.)

Either do some reasoning yourself, or accept that the rest of us have done that.

This pattern of behavior of yours is what I have been objecting to since last year:

  • The rest of us discuss and agree on something, then you show up and keep throwing roadblock after roadblock after roadblock in front instead of just Writing the Damn Thing Down.

  • When you do write things down, you go ahead and CHANGE THINGS IN SEMANTICALLY SIGNIFICANT WAYS. When I spend my valuable time and find those and file issues and ask that they be reverted, you keep asking question after question and demand to be explained to.

I'm not going to accept and tolerate that behavior. If you have suggestions, you discuss it with others, on github, like the rest of us do. Only if there was consensus, you write them down.

Moreover, when I propose things like self-contained offsets, which solve REAL problems (eg. #293, #11), you just ignore.

You didn't understand why this pattern is problematic a year ago. And looks like you still don't.

So yes, I can explain to you why virtual gids are a problem. But I won't, because I do not condone and won't tolerate the above behavior.

@PeterConstable
Copy link
Collaborator

@behdad Your prejudice toward me is getting in the way of reason. The requirement to have at least one color stop defined within the range [0,1] was in the initial document commited by Dominik; I have left that as stated until now. Dominik raised the question in December; he, Rod, Cosimo and I discussed various aspects of the gradient definitions along the way and agreed on various changes, but we never closed on this issue. I have not changed anything; I have not created roadblocks; I am trying to discuss this now on GitHub as you suggest should be done, except when I do you object. This is not reasonable conduct.

@rsheeter
Copy link
Contributor

rsheeter commented Jun 3, 2021

Psychological safety is hard to achieve when we are forced by external factors to eschew face to face interaction. It will make everyones life easier if we assume good intent in others.

Taking virtual gids as an example, I didn't find the harm of them obvious either. Further, one of the things I've always deeply appreciated from the font community in general and @behdad in particular is courtesy around noob questions. It feels OK to not know things, to make basic mistakes, and that makes it dramatically easier to learn. I'd hate to see us lose that.

@davelab6
Copy link
Member

davelab6 commented Jun 3, 2021

But we were trying to accommodate (to some extent) existing graphics libraries. (Sorry, that's what I meant, not colr v1 libraries.)

Ah yes, right - so is what you are asking, is anyone aware of any graphics library that requires that there is a color stop defined between 0 and 1?

@justvanrossum
Copy link

justvanrossum commented Jun 3, 2021

Skia's and Cairo's color line semantics are quite different from what COLRv1 prescribes. In blackrenderer we calculate new points so we can convert COLRv1 to what the graphics libraries need. This recalculation of points does not require any color stops to be within [0, 1] in the COLRv1 model, even though the graphics libraries want everything to be within [0, 1].

So therefore, the [0, 1] restriction in "A color line is defined with at least one color stop within the interval [0, 1]" is IMO unnecessary.

@behdad
Copy link
Collaborator

behdad commented Jun 3, 2021

But we were trying to accommodate (to some extent) existing graphics libraries. (Sorry, that's what I meant, not colr v1 libraries.)

Ah yes, right - so is what you are asking, is anyone aware of any graphics library that requires that there is a color stop defined between 0 and 1?

That's the wrong question to ask. If any graphics library has such limitations, implementation of COLRv1 on top of that library needs to add extrapolated points as necessary.

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 a pull request may close this issue.

7 participants