Skip to content

Audiogridder patches #1

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

Open
wants to merge 972 commits into
base: audiogridder-patches
Choose a base branch
from

Conversation

kcoul
Copy link

@kcoul kcoul commented May 5, 2025

Hey Andreas!

Setting up for the feature work I've been planning.. which is finally going ahead from today!

This PR is to reconcile your patches to JUCE with the latest version of JUCE 8 - I can't develop from Sequoia without using JUCE 8 it would seem...

We should check this carefully as juce_Socket.cpp in particular had a fairly involved merge process.
I'll test as much as I can on my side...

Cheers!

PS: Another thing I might be able to help with is PRing some of the changes (which look like genuine improvements) upstream to JUCE.. with enough effort we might be able to eliminate the need to maintain a custom fork of JUCE for audiogridder.. which can result in hard-to-review PRs like this one if we get really out-of-date with upstream!

reuk and others added 30 commits December 8, 2024 22:25
add_custom_command rejects this argument in CMake 3.31+ according to
CMP0175.
…gions

This issue could be observed in the GraphicsDemo's SVG pane, when the
"rotation" option was enabled.

Drawables internally enable the unclipped painting flag, which normally
prevents slow clipping when drawing subcomponents of the drawable.

The Direct2D graphics context was using the frame area as the default
area, used to signal that no clipping should be applied. However, when
non-axis-aligned transform was active, this area was incorrectly applied
as a geometric clipping region. D2D geometric clips are relatively slow,
so this caused large slowdowns.

This solution adds a flag that is set whenever a clip is explicitly
requested. If no clip is explicitly requested, then clipping will be
entirely bypassed. This can make rendering of Drawables significantly
faster.
… to trigger a new vblank

Previously, the vblank's thread loop would block on each iteration until
the current async callback had finished, at which point a new async
callback would be immediately triggered.

The new implementation only waits on the vblank event. If a vblank
callback is still in progress the next time the vblank event is
signalled, we assume the last frame is overrunning and avoid sending a
new async update.

The intention of this change is to avoid saturating the message thread
with expensive vblank callbacks. It's also nice to remove a lock,
although that's just an incidental change.
This allows us to exercise classes using DeletedAtShutdown in tests,
without triggering leaked object warnings
…d breaks

The issue prior to this commit would be observable when using the
GlyphArrangement functions e.g. addFittedText.

This is a fix for a regression introduced in
9223805.
…ods.

This fixes a bug introduced in the previous commit that caused all menu items to be sized too large.
chromadevlabs and others added 27 commits April 24, 2025 13:58
This makes Direct2DMetrics and current frameId accessible to implementation subclasses.

It also replaces JUCE_WRITE_TRACE_LOG with JUCE_WRITE_TRACE_LOG_VA as intended in original implementation.

Co-authored-by: Matt Gonzalez <[email protected]>
@kcoul
Copy link
Author

kcoul commented May 5, 2025

The merge commit below should show some of the hotspots, there was one method signature I intended to change as well, putting the IsUnixDomain boolean after the SocketOptions struct since I think our customizations should always be tacked onto the end of the arg list where possible.

@kcoul
Copy link
Author

kcoul commented May 6, 2025

Last thought: we might want to instead re-apply the custom tweaks to JUCE against a fresh branch off of upstream's master for a cleaner changeset.

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 this pull request may close these issues.

9 participants