I meant the existing blend modes that lots of SVGs can use, like “add”, “screen”, “overlay”, etc. If these are not supported, SVGs using them, will not look correct.
The improved SVG rendering of radial gradients is great and allows me to use vector assets instead of bitmaps, well done!
Is there a targeted release date for JUCE 9? Would help to decide if I should switch to SVG or keep png graphics.
Thank you for trying it out!
We don’t yet have a firm release date set. We would like to get a lot more people testing the juce9 branch, and have any issues uncovered fixed beforehand. If we discover anything that requires a lot of work then that will push the release date back a bit.
The JUCE team is also attending ADC Japan
next week, and we have meetings with a lot of companies using JUCE both before and after the conference. All this direct engagement with our customers is great, but it may also mean we’re a little slower than usual responding to anything reported on the forum.
That being said, if we don’t have JUCE 9 released before Q4 2026 something has gone very badly wrong, and I suspect we’ll closer to the start, rather than the end, of Q3.
Wow, Q3 sounds really close
I will try JUCE 9 once APv2 is out as it sounds most attractive to me.
BTW, do you expect any change in the minimum deployment system target? I would guess/hope no ![]()
We don’t anticipate any changes to the minimum deployment targets relative to the latest JUCE 8 release.
Those aren’t supported currently. The blend modes are limited to the four basic modes listed above, supporting basic masking and compositing operations.
The JUCE graphics functions could easily be extended with other ones, but lunasvg only supports these modes at the moment.
The operations are used when displaying the following example .svg.
masking.svg.zip (10.5 KB)
Do the tester apps and/or demo have mechanisms to test and display the blend modes so we can see for ourselves?
I’m afraid not. If you have any .svg files used in production, please see if you could use this branch to render it satisfactorily. If you’re experiencing problems we’re happy to take a look if we can adjust the implementation to render it correctly.
You can also use the 4 blend modes (source over, source, destination in and destination out) in normal JUCE drawing operations using the new ScopedBlendContext class.
Agree! setBounds with floats would really solve a big pain point with making UIs with JUCE
JUCE 9 looks very exciting. I’m particularly looking forward to variable font support!
My feedback so far: variable fonts and SVGs are too hard to use. JUCE used to be simpler. Convenience functions are missing.
How it should be:
Font fnt; // font that was loaded from a typeface in the constructor
void GUI_DynamicLabel::paint ( juce::Graphics& g )
{
g.setFont ( fnt.withWeight ( 657.3f).withHeight ( 16.0f ) );
g.drawText ( "Foobar", getLocalBounds ().toFloat () );
}
I’ve tried to make it work by using the new functions and classes, but ultimately couldn’t get it to work. The fonts were the correct height, but always very thin, so it seems my settings didn’t take. It was a very frustrating experience.
Same for SVG. Since they are not just a Drawable anymore, but a DrawableComposite, the new class is missing functions. You can’t apply a transform, you can’t transformToFit, etc. so drawing SVG didn’t work as expected. I convert them to paths, so I can draw them with any color I like, but I couldn’t get them to stay where they were supposed to be going, or they were stretched, as I had to use “setBoundingBox” as a work-around for the missing transforms.
At that point I gave up and reverted back to latest develop, so I could continue with my projects.
2 times withHeight?
Read again ![]()
my bad…
Nice to see the progress! ![]()
Can you explain more about the above “multiple audio processors”? How you would use it and how it’s going to work? Could you make one plugin look like multiple different plugins to the host?
