-
Notifications
You must be signed in to change notification settings - Fork 39
new graphics engine features #174
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
Comments
glyphs will sadly never work in svglite, since there is no way to pass on the information provided by the graphics engine to svg |
vdiffr is indeed based on svglite but is embedded as its own graphic device. This is done so that changes in svglite does not break visual tests in vdiffr because of slight changes to the produced svg. For the same reason we are very conservative with changing anything in the differ graphics device |
Note you can tell |
I had a need for sheared rasters and svglite crashed the R session (see details). That is just to say, I'd like to add my voice to this request. Uncomment to have the reprex crash: library(grid)
rect <- rectGrob(width = 0.5, height = 0.5)
# svglite::svglite()
grid.newpage()
grid.define(rect, name = "my_rect")
grid.use("my_rect", transform = function(...) {
viewportTransform(..., shear = groupShear(0, 0.5))
}) # dev.off() Created on 2024-12-15 with reprex v2.1.1 |
All of the above should now have the best possible support. For inexplicable reasons, the SVG format has horrible support for Porter Duff composition so those blend modes are not supported |
Did some testing around and the new affine transformation support look good to me but the stroking and filling paths don't seem to render for me. When I look at them in Google Chrome, Firefox, or Inkscape I just see a blank screen: library("grid")
library("ragg")
library("svglite")
t_o <- textGrob("O", gp = gpar(cex = 18, col = "yellow"))
gp <- gpar(fill = "yellow", col = "black")
f_o <- fillGrob(t_o, gp = gp)
s_o <- strokeGrob(t_o, gp = gp)
fs_o <- fillStrokeGrob(t_o, gp = gp)
svglite("text.svg")
grid.draw(t_o)
dev.off()
svglite("fill.svg")
grid.draw(f_o)
dev.off()
svglite("fill_stroke.svg")
grid.draw(fs_o)
dev.off()
svglite("stroke.svg")
grid.draw(s_o)
dev.off()
agg_png("fill.png")
grid.draw(f_o)
dev.off()
agg_png("fill_stroke.png")
grid.draw(fs_o)
dev.off()
agg_png("stroke.png")
grid.draw(s_o)
dev.off() |
You can't stroke/fill text since they are not converted to polygons in svglite. In the same vein you can't use text in a clipping mask in svglite |
|
Uh oh!
There was an error while loading. Please reload this page.
Introduced in R 4.2
Introduced in R 4.3
❌ glyphs (maintainer says not in scope)
In a {vdiffr} issue comment @teunbrand writes:
Presumably it would be easier to test these features with {vdiffr} if they were supported by {svglite}
The text was updated successfully, but these errors were encountered: