-
-
Notifications
You must be signed in to change notification settings - Fork 3.3k
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
Type 2.0 #7356
base: dev-2.0
Are you sure you want to change the base?
Type 2.0 #7356
Conversation
add p5v1 missing images to `manual-test-exmples/type`
This reverts commit 1211815.
Type 2.0: visual test cases for both v1 and v2
add test screenshots for v1 and v2
Revert "add test screenshots for v1 and v2"
The last one failing test is a false negative I think. We'll probably need to revert the screenshots. |
there should be no screenshots at all in this pr |
I'll need to check to see what's up with that one failing test case, it looks like lines are rendering behind the fills. I'm not 100% sure just yet what's going on there because I've seen it on a few people's computers before but not on CI. In any case, it seems completely unrelated to your code, so feel free to merge if it's just that one test failing (and in general just ping me if you see weird visual test failures like that, it's probably not your doing!) |
}); | ||
|
||
test('loadFont.then', () => { | ||
myp5.loadFont(fontFile).then(pFont => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We probably need to make this test function async
and then await
this to make sure the assertions happen within this test case
}); | ||
|
||
test('loadFont.callback', () => { | ||
myp5.loadFont(fontFile, (pFont) => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We might need to wrap this in a promise and await it, or use the done
callback to make sure the test only completes when the async stuff finishes:
test('loadFont.callback', (done) => {
myp5.loadFont(fontFile, (pFont) => {
// ...
done()
});
});
Initial PR for typography module 2.0
There are 6 new functions added to the p5 prototype that should be discussed:
textBounds
: tight bounds, now supported for all fonts, not just those with paths as in v1fontBounds
: gives the (loose) bounds for the font, regardless of characters usedfontWidth
: gives the (loose) width of a string of given length in the font, regardless of the characterstextProperty
: allows set/get for one of about 20 font-related propertiestextProperties
: allows batch set/get for one or more of about 20 font-related propertiestextToPoints
: a quick/dirty version using pixel-sampling that doesn't require font pathsAdditionally
textAscent
andtextDescent
now operate differently depending on whether a specific string is passed in. If so, they return the metrics for that specific string, if not, then for the font itself (the max ascent and descent)Issues/Questions:
CanvasRenderingContext2D.font
, as one would often like to grab a long css font-string and apply it directly in p5. This cannot be done usingtextFont
without major changes, so I would argue for a new function to handle this.