Browse Source

Update juce-current patches

Signed-off-by: falkTX <falktx@falktx.com>
juce7
falkTX 3 years ago
parent
commit
6c5203be57
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
29 changed files with 1032 additions and 1734 deletions
  1. +2
    -2
      libs/juce-current/patches/01_audiodevicemanager-prefer-jack-over-alsa.patch
  2. +486
    -443
      libs/juce-current/patches/04_vst2-interface.patch
  3. +74
    -33
      libs/juce-current/patches/05_mingw-fixes.patch
  4. +30
    -0
      libs/juce-current/patches/06_fix-coregraphics-rendering-macro-usage.patch
  5. +0
    -307
      libs/juce-current/patches/06_old-compiler-compatibility.patch
  6. +3
    -3
      libs/juce-current/patches/07_allow-local-ladspa.patch
  7. +21
    -21
      libs/juce-current/patches/08_remove-splashscreen.patch
  8. +2
    -2
      libs/juce-current/patches/09_proper-getExecutableFile.patch
  9. +10
    -11
      libs/juce-current/patches/10_fix-fork-exec-usage.patch
  10. +6
    -6
      libs/juce-current/patches/11_childprocess-getPID.patch
  11. +6
    -6
      libs/juce-current/patches/12_linux-filechooser-needs-modal-loops.patch
  12. +50
    -11
      libs/juce-current/patches/13_dialogwindow-allow-native-titlebar.patch
  13. +2
    -2
      libs/juce-current/patches/14_fix-x11-temporary-windows.patch
  14. +0
    -16
      libs/juce-current/patches/15_fix-linux-thread-prio.patch
  15. +14
    -0
      libs/juce-current/patches/15_fix-usage-with-vestige.patch
  16. +2
    -10
      libs/juce-current/patches/16_lv2-string-state.patch
  17. +2
    -2
      libs/juce-current/patches/17_allow-vst2-without-audio.patch
  18. +2
    -2
      libs/juce-current/patches/18_dynamic-vst2-plugin-name.patch
  19. +0
    -17
      libs/juce-current/patches/19_fix-vst2-linux-gui-init.patch
  20. +0
    -20
      libs/juce-current/patches/20_messagemanager-dispatch-public.patch
  21. +293
    -20
      libs/juce-current/patches/21_audioprocessor-no-gui.patch
  22. +7
    -7
      libs/juce-current/patches/22_mingw-filechooser-no-vista.patch
  23. +0
    -26
      libs/juce-current/patches/23_fix-juce-includes.patch
  24. +20
    -0
      libs/juce-current/patches/24_extra-gl-functions.patch
  25. +0
    -117
      libs/juce-current/patches/24_vital-needed-changes.patch
  26. +0
    -144
      libs/juce-current/patches/24_vital-needed-changes_pt2.patch
  27. +0
    -457
      libs/juce-current/patches/24_vital-needed-changes_pt3.patch
  28. +0
    -18
      libs/juce-current/patches/25_mingw-atomic-add.patch
  29. +0
    -31
      libs/juce-current/patches/26_fix-x11-opengl-offset.patch

+ 2
- 2
libs/juce-current/patches/01_audiodevicemanager-prefer-jack-over-alsa.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp
index a19c7b05e..deabba6db 100644
index d1beeb968..40c2c7ee0 100644
--- a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp
+++ b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp
@@ -185,8 +185,8 @@ void AudioDeviceManager::createAudioDeviceTypes (OwnedArray<AudioIODeviceType>&
@@ -237,8 +237,8 @@ void AudioDeviceManager::createAudioDeviceTypes (OwnedArray<AudioIODeviceType>&
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_CoreAudio());
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_iOSAudio());
addIfNotNull (list, AudioIODeviceType::createAudioIODeviceType_Bela());


+ 486
- 443
libs/juce-current/patches/04_vst2-interface.patch
File diff suppressed because it is too large
View File


+ 74
- 33
libs/juce-current/patches/05_mingw-fixes.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
index 8683dc728..94f6bf569 100644
index a2b0286fb..431919098 100644
--- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
+++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
@@ -61,7 +61,7 @@ JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4996 4100)
@@ -55,7 +55,7 @@ JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4996 4100)
#define PRAGMA_ALIGN_SUPPORTED 1
#endif
@@ -11,27 +11,11 @@ index 8683dc728..94f6bf569 100644
#define __cdecl
#endif
diff --git a/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h b/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h
index 6bea84307..baaa59f06 100644
--- a/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h
+++ b/modules/juce_audio_plugin_client/utility/juce_CheckSettingMacros.h
@@ -73,11 +73,6 @@
#define JucePlugin_Build_RTAS 0
#endif
-#if ! (defined (_MSC_VER) || defined (__APPLE_CPP__) || defined (__APPLE_CC__) || defined (LINUX) || defined (__linux__))
- #undef JucePlugin_Build_VST3
- #define JucePlugin_Build_VST3 0
-#endif
-
//==============================================================================
#if JucePlugin_Build_LV2 && ! defined (JucePlugin_LV2URI)
#error "You need to define the JucePlugin_LV2URI value!"
diff --git a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp
index 620ba9874..d9359b736 100644
index 06b5d5a95..f3506b8bd 100644
--- a/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp
+++ b/modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp
@@ -62,9 +62,6 @@ JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4355)
@@ -50,9 +50,6 @@ JUCE_BEGIN_IGNORE_WARNINGS_MSVC (4355)
#ifndef WM_APPCOMMAND
#define WM_APPCOMMAND 0x0319
#endif
@@ -41,18 +25,75 @@ index 620ba9874..d9359b736 100644
#elif ! JUCE_WINDOWS
static void _fpreset() {}
static void _clearfp() {}
diff --git a/modules/juce_core/threads/juce_WaitableEvent.h b/modules/juce_core/threads/juce_WaitableEvent.h
index 52269f706..670903653 100644
--- a/modules/juce_core/threads/juce_WaitableEvent.h
+++ b/modules/juce_core/threads/juce_WaitableEvent.h
@@ -20,6 +20,10 @@
==============================================================================
*/
+#if JUCE_MINGW && !defined(_GLIBCXX_HAS_GTHREADS)
+#include "mingw-std-threads/mingw.condition_variable.h"
+#endif
diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp
index 2727a4507..bd19f7bec 100644
--- a/modules/juce_gui_basics/juce_gui_basics.cpp
+++ b/modules/juce_gui_basics/juce_gui_basics.cpp
@@ -62,9 +62,12 @@
#include <vfw.h>
#include <commdlg.h>
#include <commctrl.h>
- #include <UIAutomation.h>
#include <sapi.h>
+ #if JUCE_MSVC
+ #include <UIAutomation.h>
+ #endif
+
namespace juce
{
#if JUCE_WEB_BROWSER
#include <exdisp.h>
#include <exdispid.h>
@@ -279,13 +282,15 @@ namespace juce
#include "native/juce_mac_MouseCursor.mm"
#elif JUCE_WINDOWS
- #include "native/accessibility/juce_win32_ComInterfaces.h"
- #include "native/accessibility/juce_win32_WindowsUIAWrapper.h"
- #include "native/accessibility/juce_win32_AccessibilityElement.h"
- #include "native/accessibility/juce_win32_UIAHelpers.h"
- #include "native/accessibility/juce_win32_UIAProviders.h"
- #include "native/accessibility/juce_win32_AccessibilityElement.cpp"
- #include "native/accessibility/juce_win32_Accessibility.cpp"
+ #if JUCE_MSVC
+ #include "native/accessibility/juce_win32_ComInterfaces.h"
+ #include "native/accessibility/juce_win32_WindowsUIAWrapper.h"
+ #include "native/accessibility/juce_win32_AccessibilityElement.h"
+ #include "native/accessibility/juce_win32_UIAHelpers.h"
+ #include "native/accessibility/juce_win32_UIAProviders.h"
+ #include "native/accessibility/juce_win32_AccessibilityElement.cpp"
+ #include "native/accessibility/juce_win32_Accessibility.cpp"
+ #endif
#include "native/juce_win32_Windowing.cpp"
#include "native/juce_win32_DragAndDrop.cpp"
#include "native/juce_win32_FileChooser.cpp"
diff --git a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp
index 954200135..a62f8521e 100644
--- a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp
+++ b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp
@@ -1524,8 +1524,10 @@ public:
// do this first to avoid messages arriving for this window before it's destroyed
JuceWindowIdentifier::setAsJUCEWindow (hwnd, false);
+ #if JUCE_MSVC
if (isAccessibilityActive)
WindowsAccessibility::revokeUIAMapEntriesForWindow (hwnd);
+ #endif
shadower = nullptr;
currentTouches.deleteAllTouchesForPeer (this);
@@ -4057,6 +4059,7 @@ private:
case WM_GETDLGCODE:
return DLGC_WANTALLKEYS;
+ #if JUCE_MSVC
case WM_GETOBJECT:
{
if (static_cast<long> (lParam) == WindowsAccessibility::getUiaRootObjectId())
@@ -4075,6 +4078,7 @@ private:
break;
}
+ #endif
default:
break;
}

+ 30
- 0
libs/juce-current/patches/06_fix-coregraphics-rendering-macro-usage.patch View File

@@ -0,0 +1,30 @@
diff --git a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm
index 17361fc7e..1fed43c3d 100644
--- a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm
+++ b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm
@@ -1089,6 +1089,7 @@ public:
auto dispatchRectangles = [this] ()
{
+ #if USE_COREGRAPHICS_RENDERING
if (@available (macOS 10.14, *))
{
if (metalRenderer != nullptr)
@@ -1101,6 +1102,7 @@ public:
deferredRepaints);
}
}
+ #endif
for (auto& i : deferredRepaints)
[view setNeedsDisplayInRect: makeNSRect (i)];
@@ -1900,7 +1902,9 @@ private:
CVDisplayLinkRef displayLink = nullptr;
dispatch_source_t displaySource = nullptr;
+ #if USE_COREGRAPHICS_RENDERING
std::unique_ptr<CoreGraphicsMetalLayerRenderer> metalRenderer;
+ #endif
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (NSViewComponentPeer)
};

+ 0
- 307
libs/juce-current/patches/06_old-compiler-compatibility.patch View File

@@ -1,307 +0,0 @@
diff --git a/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h b/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h
index acd165ff0..bdc0bf58f 100644
--- a/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h
+++ b/modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h
@@ -20,6 +20,11 @@
==============================================================================
*/
+#ifndef __clang__
+// GCC4 compatibility
+namespace std { using ::max_align_t; }
+#endif
+
namespace juce
{
diff --git a/modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h b/modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h
index ac5ce32da..f0cd938ae 100644
--- a/modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h
+++ b/modules/juce_audio_basics/native/juce_mac_CoreAudioLayouts.h
@@ -236,8 +236,10 @@ private:
{ kAudioChannelLayoutTag_AAC_6_0, { centre, left, right, leftSurround, rightSurround, centreSurround } },
{ kAudioChannelLayoutTag_AAC_6_1, { centre, left, right, leftSurround, rightSurround, centreSurround, LFE } },
{ kAudioChannelLayoutTag_AAC_7_0, { centre, left, right, leftSurround, rightSurround, leftSurroundRear, rightSurroundRear } },
+#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8
{ kAudioChannelLayoutTag_AAC_7_1_B, { centre, left, right, leftSurround, rightSurround, leftSurroundRear, rightSurroundRear, LFE } },
{ kAudioChannelLayoutTag_AAC_7_1_C, { centre, left, right, leftSurround, rightSurround, LFE, topFrontLeft, topFrontRight } },
+#endif
{ kAudioChannelLayoutTag_AAC_Octagonal, { centre, left, right, leftSurround, rightSurround, leftSurroundRear, rightSurroundRear, centreSurround } },
{ kAudioChannelLayoutTag_TMH_10_2_std, { left, right, centre, topFrontCentre, leftSurroundSide, rightSurroundSide, leftSurround, rightSurround, topFrontLeft, topFrontRight, wideLeft, wideRight, topRearCentre, centreSurround, LFE, LFE2 } },
{ kAudioChannelLayoutTag_AC3_1_0_1, { centre, LFE } },
diff --git a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm
index 9aa4a338e..7cad3e7c1 100644
--- a/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm
+++ b/modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm
@@ -59,6 +59,10 @@ JUCE_BEGIN_IGNORE_WARNINGS_GCC_LIKE ("-Wdeprecated-declarations")
namespace juce
{
+#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_8
+static const uint32 kAudioUnitType_MIDIProcessor = 'aumi';
+#endif
+
// Change this to disable logging of various activities
#ifndef AU_LOGGING
#define AU_LOGGING 1
@@ -276,7 +280,7 @@ namespace AudioUnitFormatHelpers
NSBundle* bundle = [[NSBundle alloc] initWithPath: (NSString*) fileOrIdentifier.toCFString()];
NSArray* audioComponents = [bundle objectForInfoDictionaryKey: @"AudioComponents"];
- NSDictionary* dict = audioComponents[0];
+ NSDictionary* dict = [audioComponents objectAtIndex: 0];
desc.componentManufacturer = stringToOSType (nsStringToJuce ((NSString*) [dict valueForKey: @"manufacturer"]));
desc.componentType = stringToOSType (nsStringToJuce ((NSString*) [dict valueForKey: @"type"]));
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.h b/modules/juce_audio_processors/processors/juce_AudioProcessor.h
index 39eac8211..f556f12b3 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessor.h
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.h
@@ -1184,7 +1184,7 @@ public:
String xMeterID, yMeterID;
};
- virtual CurveData getResponseCurve (CurveData::Type /*curveType*/) const { return {}; }
+ virtual CurveData getResponseCurve (CurveData::Type /*curveType*/) const { return CurveData(); }
//==============================================================================
/** Not for public use - this is called before deleting an editor component. */
diff --git a/modules/juce_core/native/juce_osx_ObjCHelpers.h b/modules/juce_core/native/juce_osx_ObjCHelpers.h
index a9a7c8eb7..aa068eaa0 100644
--- a/modules/juce_core/native/juce_osx_ObjCHelpers.h
+++ b/modules/juce_core/native/juce_osx_ObjCHelpers.h
@@ -71,7 +71,7 @@ inline NSArray* varArrayToNSArray (const var& varToParse);
inline NSDictionary* varObjectToNSDictionary (const var& varToParse)
{
- auto dictionary = [NSMutableDictionary dictionary];
+ NSDictionary* dictionary = [NSMutableDictionary dictionary];
if (varToParse.isObject())
{
@@ -118,7 +118,7 @@ inline NSArray* varArrayToNSArray (const var& varToParse)
const auto* varArray = varToParse.getArray();
- auto array = [NSMutableArray arrayWithCapacity: (NSUInteger) varArray->size()];
+ NSArray* array = [NSMutableArray arrayWithCapacity: (NSUInteger) varArray->size()];
for (const auto& aVar : *varArray)
{
@@ -152,7 +152,8 @@ inline var nsDictionaryToVar (NSDictionary* dictionary)
DynamicObject::Ptr dynamicObject (new DynamicObject());
for (NSString* key in dictionary)
- dynamicObject->setProperty (nsStringToJuce (key), nsObjectToVar (dictionary[key]));
+ dynamicObject->setProperty (nsStringToJuce (key),
+ nsObjectToVar ([dictionary objectForKey: key]));
return var (dynamicObject.get());
}
diff --git a/modules/juce_core/system/juce_CompilerSupport.h b/modules/juce_core/system/juce_CompilerSupport.h
index 4d96d7cb0..d76d92d49 100644
--- a/modules/juce_core/system/juce_CompilerSupport.h
+++ b/modules/juce_core/system/juce_CompilerSupport.h
@@ -92,7 +92,7 @@
//==============================================================================
// C++ library
-#if (defined (__GLIBCXX__) && __GLIBCXX__ < 20130322) || (defined(_LIBCPP_VERSION) && (_LIBCPP_VERSION < 3700))
+#if (defined (__GLIBCXX__) && __GLIBCXX__ < 20130322)
#error "JUCE requires a C++ library containing std::atomic"
#endif
diff --git a/modules/juce_core/system/juce_PlatformDefs.h b/modules/juce_core/system/juce_PlatformDefs.h
index 43000cab6..0a1798ba2 100644
--- a/modules/juce_core/system/juce_PlatformDefs.h
+++ b/modules/juce_core/system/juce_PlatformDefs.h
@@ -99,11 +99,7 @@ namespace juce
deliberately and want to ignore the warning.
*/
#if JUCE_CLANG
- #if __has_cpp_attribute(clang::fallthrough)
- #define JUCE_FALLTHROUGH [[clang::fallthrough]];
- #else
- #define JUCE_FALLTHROUGH
- #endif
+ #define JUCE_FALLTHROUGH [[clang::fallthrough]];
#elif JUCE_GCC
#if __GNUC__ >= 7
#define JUCE_FALLTHROUGH [[gnu::fallthrough]];
diff --git a/modules/juce_core/system/juce_TargetPlatform.h b/modules/juce_core/system/juce_TargetPlatform.h
index 5b4d293bb..6b41688b2 100644
--- a/modules/juce_core/system/juce_TargetPlatform.h
+++ b/modules/juce_core/system/juce_TargetPlatform.h
@@ -145,8 +145,8 @@
#endif
#if JUCE_MAC
- #if ! defined (MAC_OS_X_VERSION_10_11)
- #error "The 10.11 SDK (Xcode 7.3.1+) is required to build JUCE apps. You can create apps that run on macOS 10.7+ by changing the deployment target."
+ #if ! defined (MAC_OS_X_VERSION_10_8)
+ #error "The 10.8 SDK is required to build JUCE apps. You can create apps that run on macOS 10.7+ by changing the deployment target."
#elif MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_7
#error "Building for OSX 10.6 is no longer supported!"
#endif
diff --git a/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm b/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm
index de6ffecfc..2a85d25f5 100644
--- a/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm
+++ b/modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm
@@ -26,6 +26,10 @@
namespace juce
{
+#if MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_8
+ #define __nullable
+#endif
+
//==============================================================================
// This class has been renamed from CoreGraphicsImage to avoid a symbol
// collision in Pro Tools 2019.12 and possibly 2020 depending on the Pro Tools
diff --git a/modules/juce_graphics/native/juce_mac_Fonts.mm b/modules/juce_graphics/native/juce_mac_Fonts.mm
index ff0a23a9f..88142091d 100644
--- a/modules/juce_graphics/native/juce_mac_Fonts.mm
+++ b/modules/juce_graphics/native/juce_mac_Fonts.mm
@@ -359,20 +359,20 @@ namespace CoreTextTypeLayout
auto verticalJustification = text.getJustification().getOnlyVerticalFlags();
- auto ctFrameArea = [area, minCTFrameHeight, verticalJustification]
+ const Rectangle<float> ctFrameArea = [area, minCTFrameHeight, verticalJustification]
{
if (minCTFrameHeight < area.getHeight())
- return area;
+ return Rectangle<float> (area);
if (verticalJustification == Justification::verticallyCentred)
return area.withSizeKeepingCentre (area.getWidth(), minCTFrameHeight);
- auto frameArea = area.withHeight (minCTFrameHeight);
+ const Rectangle<float> frameArea = area.withHeight (minCTFrameHeight);
if (verticalJustification == Justification::bottom)
return frameArea.withBottomY (area.getBottom());
- return frameArea;
+ return Rectangle<float> (frameArea);
}();
auto frame = createCTFrame (framesetter, CGRectMake ((CGFloat) ctFrameArea.getX(), flipHeight - (CGFloat) ctFrameArea.getBottom(),
diff --git a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm
index 26ca40630..bd5e69ab0 100644
--- a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm
+++ b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm
@@ -1583,17 +1583,21 @@ private:
case NSEventTypeSystemDefined:
case NSEventTypeApplicationDefined:
case NSEventTypePeriodic:
+ #if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8
case NSEventTypeGesture:
+ #endif
case NSEventTypeMagnify:
case NSEventTypeSwipe:
case NSEventTypeRotate:
case NSEventTypeBeginGesture:
case NSEventTypeEndGesture:
case NSEventTypeQuickLook:
- #if JUCE_64BIT
+ #if JUCE_64BIT
case NSEventTypeSmartMagnify:
+ #if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8
case NSEventTypePressure:
#endif
+ #endif
#if defined (MAC_OS_X_VERSION_10_12) && MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_12
#if JUCE_64BIT
case NSEventTypeDirectTouch:
diff --git a/modules/juce_gui_basics/native/juce_mac_Windowing.mm b/modules/juce_gui_basics/native/juce_mac_Windowing.mm
index 918f0b4a6..63e15d07b 100644
--- a/modules/juce_gui_basics/native/juce_mac_Windowing.mm
+++ b/modules/juce_gui_basics/native/juce_mac_Windowing.mm
@@ -309,7 +309,7 @@ bool DragAndDropContainer::performExternalDragDropOfFiles (const StringArray& fi
for (auto& filename : files)
{
auto* nsFilename = juceStringToNS (filename);
- auto fileURL = [NSURL fileURLWithPath: nsFilename];
+ NSURL* fileURL = [NSURL fileURLWithPath: nsFilename];
auto dragItem = [[NSDraggingItem alloc] initWithPasteboardWriter: fileURL];
auto eventPos = [event locationInWindow];
diff --git a/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp b/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp
index b8e6e0c7e..6ad01c68a 100644
--- a/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp
+++ b/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp
@@ -3329,7 +3329,7 @@ void XWindowSystem::handleButtonPressEvent (LinuxComponentPeer* peer, const XBut
peer->toFront (true);
peer->handleMouseEvent (MouseInputSource::InputSourceType::mouse, getLogicalMousePos (buttonPressEvent, peer->getPlatformScaleFactor()),
ModifierKeys::currentModifiers, MouseInputSource::invalidPressure,
- MouseInputSource::invalidOrientation, getEventTime (buttonPressEvent), {});
+ MouseInputSource::invalidOrientation, getEventTime (buttonPressEvent));
}
void XWindowSystem::handleButtonPressEvent (LinuxComponentPeer* peer, const XButtonPressedEvent& buttonPressEvent) const
diff --git a/modules/juce_gui_basics/windows/juce_ComponentPeer.h b/modules/juce_gui_basics/windows/juce_ComponentPeer.h
index 691e5679b..ed4f3c199 100644
--- a/modules/juce_gui_basics/windows/juce_ComponentPeer.h
+++ b/modules/juce_gui_basics/windows/juce_ComponentPeer.h
@@ -321,7 +321,7 @@ public:
//==============================================================================
void handleMouseEvent (MouseInputSource::InputSourceType type, Point<float> positionWithinPeer, ModifierKeys newMods, float pressure,
- float orientation, int64 time, PenDetails pen = {}, int touchIndex = 0);
+ float orientation, int64 time, PenDetails pen = PenDetails(), int touchIndex = 0);
void handleMouseWheel (MouseInputSource::InputSourceType type, Point<float> positionWithinPeer,
int64 time, const MouseWheelDetails&, int touchIndex = 0);
diff --git a/modules/juce_gui_extra/juce_gui_extra.cpp b/modules/juce_gui_extra/juce_gui_extra.cpp
index 9cf367411..d42555e13 100644
--- a/modules/juce_gui_extra/juce_gui_extra.cpp
+++ b/modules/juce_gui_extra/juce_gui_extra.cpp
@@ -136,7 +136,9 @@
#include "misc/juce_PushNotifications.cpp"
#include "misc/juce_RecentlyOpenedFilesList.cpp"
#include "misc/juce_SplashScreen.cpp"
+#if !JUCE_MAC || MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8
#include "misc/juce_SystemTrayIconComponent.cpp"
+#endif
#include "misc/juce_LiveConstantEditor.cpp"
#include "misc/juce_AnimatedAppComponent.cpp"
@@ -146,7 +148,9 @@
#if JUCE_MAC
#include "native/juce_mac_NSViewComponent.mm"
#include "native/juce_mac_AppleRemote.mm"
- #include "native/juce_mac_SystemTrayIcon.cpp"
+ #if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8
+ #include "native/juce_mac_SystemTrayIcon.cpp"
+ #endif
#endif
#if JUCE_IOS
diff --git a/modules/juce_gui_extra/juce_gui_extra.h b/modules/juce_gui_extra/juce_gui_extra.h
index bcec491c9..062bde636 100644
--- a/modules/juce_gui_extra/juce_gui_extra.h
+++ b/modules/juce_gui_extra/juce_gui_extra.h
@@ -115,7 +115,9 @@
#include "misc/juce_PushNotifications.h"
#include "misc/juce_RecentlyOpenedFilesList.h"
#include "misc/juce_SplashScreen.h"
+#if !JUCE_MAC || MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_8
#include "misc/juce_SystemTrayIconComponent.h"
+#endif
#include "misc/juce_WebBrowserComponent.h"
#include "misc/juce_LiveConstantEditor.h"
#include "misc/juce_AnimatedAppComponent.h"
diff --git a/modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp b/modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp
index 9786c0875..34695b5e1 100644
--- a/modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp
+++ b/modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp
@@ -157,7 +157,7 @@ void RecentlyOpenedFilesList::forgetRecentFileNatively (const File& file)
// from the recent list, so we clear them all and add them back excluding
// the specified file
- auto sharedDocController = [NSDocumentController sharedDocumentController];
+ NSDocumentController* sharedDocController = [NSDocumentController sharedDocumentController];
auto recentDocumentURLs = [sharedDocController recentDocumentURLs];
[sharedDocController clearRecentDocuments: nil];

+ 3
- 3
libs/juce-current/patches/07_allow-local-ladspa.patch View File

@@ -1,10 +1,10 @@
diff --git a/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp
index 19f1d7ac7..8ffe16b06 100644
index ed6688693..ba64e8b2c 100644
--- a/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp
+++ b/modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp
@@ -25,7 +25,7 @@
@@ -18,7 +18,7 @@
#if JUCE_PLUGINHOST_LADSPA && JUCE_LINUX
#if JUCE_PLUGINHOST_LADSPA && (JUCE_LINUX || JUCE_BSD)
-#include <ladspa.h>
+#include "ladspa.h"


+ 21
- 21
libs/juce-current/patches/08_remove-splashscreen.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp
index b980441c9..670cb3969 100644
index 099bce14e..fd71901db 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp
@@ -40,8 +40,6 @@ AudioProcessorEditor::AudioProcessorEditor (AudioProcessor* p) noexcept : proce
@@ -33,8 +33,6 @@ AudioProcessorEditor::AudioProcessorEditor (AudioProcessor* p) noexcept : proce
AudioProcessorEditor::~AudioProcessorEditor()
{
@@ -11,7 +11,7 @@ index b980441c9..670cb3969 100644
// if this fails, then the wrapper hasn't called editorBeingDeleted() on the
// filter for some reason..
jassert (processor.getActiveEditor() != this);
@@ -56,23 +54,6 @@ void AudioProcessorEditor::hostMIDIControllerIsAvailable (bool) {
@@ -49,23 +47,6 @@ void AudioProcessorEditor::hostMIDIControllerIsAvailable (bool) {
void AudioProcessorEditor::initialise()
{
@@ -32,50 +32,50 @@ index b980441c9..670cb3969 100644
-
- // END SECTION A
-
resizable = false;
attachConstrainer (&defaultConstrainer);
resizeListener.reset (new AudioProcessorEditorListener (*this));
addComponentListener (resizeListener.get());
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h
index ff694b78f..07d3765f4 100644
index 9824bf8b6..81a91d8ff 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h
@@ -206,7 +206,6 @@ private:
bool resizable;
@@ -228,7 +228,6 @@ private:
ComponentBoundsConstrainer defaultConstrainer;
ComponentBoundsConstrainer* constrainer = {};
ComponentBoundsConstrainer* constrainer = nullptr;
AudioProcessorEditorHostContext* hostContext = nullptr;
- Component::SafePointer<Component> splashScreen;
AffineTransform hostScaleTransform;
JUCE_DECLARE_NON_COPYABLE (AudioProcessorEditor)
diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp
index 056ff591b..a4d798606 100644
index d9697568b..2727a4507 100644
--- a/modules/juce_gui_basics/juce_gui_basics.cpp
+++ b/modules/juce_gui_basics/juce_gui_basics.cpp
@@ -218,7 +218,6 @@ namespace juce
#include "application/juce_Application.cpp"
@@ -242,7 +242,6 @@ namespace juce
#include "misc/juce_BubbleComponent.cpp"
#include "misc/juce_DropShadower.cpp"
#include "misc/juce_FocusOutline.cpp"
-#include "misc/juce_JUCESplashScreen.cpp"
#include "layout/juce_FlexBox.cpp"
#include "layout/juce_GridItem.cpp"
diff --git a/modules/juce_gui_basics/juce_gui_basics.h b/modules/juce_gui_basics/juce_gui_basics.h
index 729461282..a4873d04b 100644
index 57d10f3ee..8878ae4c6 100644
--- a/modules/juce_gui_basics/juce_gui_basics.h
+++ b/modules/juce_gui_basics/juce_gui_basics.h
@@ -250,7 +250,6 @@ namespace juce
#include "menus/juce_BurgerMenuComponent.h"
@@ -257,7 +257,6 @@ namespace juce
#include "buttons/juce_ToolbarButton.h"
#include "misc/juce_DropShadower.h"
#include "misc/juce_FocusOutline.h"
-#include "misc/juce_JUCESplashScreen.h"
#include "widgets/juce_TreeView.h"
#include "windows/juce_TopLevelWindow.h"
#include "windows/juce_AlertWindow.h"
#include "windows/juce_MessageBoxOptions.h"
diff --git a/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp b/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp
index dc3c7279a..d1d20d6c7 100644
index 3904da287..dea49aa70 100644
--- a/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp
+++ b/modules/juce_gui_basics/windows/juce_ResizableWindow.cpp
@@ -41,8 +41,6 @@ ResizableWindow::ResizableWindow (const String& name, Colour bkgnd, bool shouldA
@@ -34,8 +34,6 @@ ResizableWindow::ResizableWindow (const String& name, Colour bkgnd, bool shouldA
ResizableWindow::~ResizableWindow()
{
@@ -84,7 +84,7 @@ index dc3c7279a..d1d20d6c7 100644
// Don't delete or remove the resizer components yourself! They're managed by the
// ResizableWindow, and you should leave them alone! You may have deleted them
// accidentally by careless use of deleteAllChildren()..?
@@ -60,27 +58,6 @@ ResizableWindow::~ResizableWindow()
@@ -53,27 +51,6 @@ ResizableWindow::~ResizableWindow()
void ResizableWindow::initialise (const bool shouldAddToDesktop)
{
@@ -113,10 +113,10 @@ index dc3c7279a..d1d20d6c7 100644
lastNonFullScreenPos.setBounds (50, 50, 256, 256);
diff --git a/modules/juce_gui_basics/windows/juce_ResizableWindow.h b/modules/juce_gui_basics/windows/juce_ResizableWindow.h
index d67303595..e59f620c1 100644
index d9e4e7fcf..310767c0f 100644
--- a/modules/juce_gui_basics/windows/juce_ResizableWindow.h
+++ b/modules/juce_gui_basics/windows/juce_ResizableWindow.h
@@ -383,7 +383,7 @@ protected:
@@ -384,7 +384,7 @@ protected:
private:
//==============================================================================


+ 2
- 2
libs/juce-current/patches/09_proper-getExecutableFile.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_core/native/juce_posix_SharedCode.h b/modules/juce_core/native/juce_posix_SharedCode.h
index 082a5697a..c79ca18ea 100644
index 661f90d60..f3a8f061b 100644
--- a/modules/juce_core/native/juce_posix_SharedCode.h
+++ b/modules/juce_core/native/juce_posix_SharedCode.h
@@ -600,12 +600,39 @@ File juce_getExecutableFile()
@@ -611,12 +611,39 @@ File juce_getExecutableFile()
auto localSymbol = (void*) juce_getExecutableFile;
dladdr (localSymbol, &exeInfo);


+ 10
- 11
libs/juce-current/patches/10_fix-fork-exec-usage.patch View File

@@ -1,16 +1,15 @@
diff --git a/modules/juce_core/native/juce_linux_Files.cpp b/modules/juce_core/native/juce_linux_Files.cpp
index d2a302e3e..3dc4602ce 100644
index f661e4ab4..dce73fcc2 100644
--- a/modules/juce_core/native/juce_linux_Files.cpp
+++ b/modules/juce_core/native/juce_linux_Files.cpp
@@ -211,15 +211,21 @@ bool Process::openDocument (const String& fileName, const String& parameters)
@@ -223,15 +223,21 @@ bool Process::openDocument (const String& fileName, const String& parameters)
const char* const argv[4] = { "/bin/sh", "-c", cmdString.toUTF8(), nullptr };
const char* const argv[] = { "/bin/sh", "-c", cmdString.toUTF8(), nullptr };
- auto cpid = fork();
+#if JUCE_USE_VFORK
+ const auto cpid = vfork();
+#else
+ const auto cpid = fork();
const auto cpid = fork();
+#endif
if (cpid == 0)
@@ -22,13 +21,13 @@ index d2a302e3e..3dc4602ce 100644
// Child process
- execve (argv[0], (char**) argv, environ);
- exit (0);
+ if (execvp (argv[0], (char**) argv) < 0)
+ if (execve (argv[0], (char**) argv, environ) < 0)
+ _exit (0);
}
return cpid >= 0;
diff --git a/modules/juce_core/native/juce_mac_Files.mm b/modules/juce_core/native/juce_mac_Files.mm
index 1a4d07516..f385a089f 100644
index aefa76317..066c12cde 100644
--- a/modules/juce_core/native/juce_mac_Files.mm
+++ b/modules/juce_core/native/juce_mac_Files.mm
@@ -92,23 +92,22 @@ namespace MacFileHelpers
@@ -65,10 +64,10 @@ index 1a4d07516..f385a089f 100644
#endif
}
diff --git a/modules/juce_core/native/juce_posix_SharedCode.h b/modules/juce_core/native/juce_posix_SharedCode.h
index c79ca18ea..ad46cf390 100644
index f3a8f061b..bcd3eab59 100644
--- a/modules/juce_core/native/juce_posix_SharedCode.h
+++ b/modules/juce_core/native/juce_posix_SharedCode.h
@@ -1104,7 +1104,18 @@ public:
@@ -1125,7 +1125,18 @@ public:
if (pipe (pipeHandles) == 0)
{
@@ -88,7 +87,7 @@ index c79ca18ea..ad46cf390 100644
if (result < 0)
{
@@ -1113,6 +1124,7 @@ public:
@@ -1134,6 +1145,7 @@ public:
}
else if (result == 0)
{
@@ -96,7 +95,7 @@ index c79ca18ea..ad46cf390 100644
// we're the child process..
close (pipeHandles[0]); // close the read handle
@@ -1127,17 +1139,10 @@ public:
@@ -1148,17 +1160,10 @@ public:
dup2 (open ("/dev/null", O_WRONLY), STDERR_FILENO);
close (pipeHandles[1]);


+ 6
- 6
libs/juce-current/patches/11_childprocess-getPID.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_core/native/juce_posix_SharedCode.h b/modules/juce_core/native/juce_posix_SharedCode.h
index ad46cf390..13724ba7c 100644
index bcd3eab59..eb5fc3300 100644
--- a/modules/juce_core/native/juce_posix_SharedCode.h
+++ b/modules/juce_core/native/juce_posix_SharedCode.h
@@ -1239,6 +1239,11 @@ public:
@@ -1260,6 +1260,11 @@ public:
return 0;
}
@@ -15,10 +15,10 @@ index ad46cf390..13724ba7c 100644
int pipeHandle = 0;
int exitCode = -1;
diff --git a/modules/juce_core/native/juce_win32_Threads.cpp b/modules/juce_core/native/juce_win32_Threads.cpp
index 4a4148119..1c38ff2cf 100644
index 8d15042fe..867e6fd2f 100644
--- a/modules/juce_core/native/juce_win32_Threads.cpp
+++ b/modules/juce_core/native/juce_win32_Threads.cpp
@@ -477,6 +477,11 @@ public:
@@ -489,6 +489,11 @@ public:
return (uint32) exitCode;
}
@@ -31,7 +31,7 @@ index 4a4148119..1c38ff2cf 100644
private:
diff --git a/modules/juce_core/threads/juce_ChildProcess.cpp b/modules/juce_core/threads/juce_ChildProcess.cpp
index 3b284c25a..31e9c8d94 100644
index 1e559b1c9..76f13812f 100644
--- a/modules/juce_core/threads/juce_ChildProcess.cpp
+++ b/modules/juce_core/threads/juce_ChildProcess.cpp
@@ -81,6 +81,11 @@ String ChildProcess::readAllProcessOutput()
@@ -47,7 +47,7 @@ index 3b284c25a..31e9c8d94 100644
//==============================================================================
#if JUCE_UNIT_TESTS
diff --git a/modules/juce_core/threads/juce_ChildProcess.h b/modules/juce_core/threads/juce_ChildProcess.h
index 47a26281b..74dbb11ab 100644
index 3c5e83bba..71892f8e9 100644
--- a/modules/juce_core/threads/juce_ChildProcess.h
+++ b/modules/juce_core/threads/juce_ChildProcess.h
@@ -101,6 +101,8 @@ public:


+ 6
- 6
libs/juce-current/patches/12_linux-filechooser-needs-modal-loops.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_gui_basics/native/juce_linux_FileChooser.cpp b/modules/juce_gui_basics/native/juce_linux_FileChooser.cpp
index b799ee2e4..803740c63 100644
index 4d303d74e..3cf9d34e1 100644
--- a/modules/juce_gui_basics/native/juce_linux_FileChooser.cpp
+++ b/modules/juce_gui_basics/native/juce_linux_FileChooser.cpp
@@ -26,6 +26,7 @@
@@ -19,6 +19,7 @@
namespace juce
{
@@ -10,7 +10,7 @@ index b799ee2e4..803740c63 100644
static bool exeIsAvailable (String executable)
{
ChildProcess child;
@@ -245,10 +246,11 @@ private:
@@ -248,10 +249,11 @@ private:
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Native)
};
@@ -23,12 +23,12 @@ index b799ee2e4..803740c63 100644
return false;
#else
static bool canUseNativeBox = exeIsAvailable ("zenity") || exeIsAvailable ("kdialog");
@@ -258,7 +260,11 @@ bool FileChooser::isPlatformDialogAvailable()
@@ -261,7 +263,11 @@ bool FileChooser::isPlatformDialogAvailable()
FileChooser::Pimpl* FileChooser::showPlatformDialog (FileChooser& owner, int flags, FilePreviewComponent*)
std::shared_ptr<FileChooser::Pimpl> FileChooser::showPlatformDialog (FileChooser& owner, int flags, FilePreviewComponent*)
{
+#if JUCE_MODAL_LOOPS_PERMITTED
return new Native (owner, flags);
return std::make_shared<Native> (owner, flags);
+#else
+ return nullptr;
+#endif


+ 50
- 11
libs/juce-current/patches/13_dialogwindow-allow-native-titlebar.patch View File

@@ -1,8 +1,21 @@
diff --git a/extras/AudioPluginHost/Source/UI/MainHostWindow.cpp b/extras/AudioPluginHost/Source/UI/MainHostWindow.cpp
index 926753296..7906895e7 100644
--- a/extras/AudioPluginHost/Source/UI/MainHostWindow.cpp
+++ b/extras/AudioPluginHost/Source/UI/MainHostWindow.cpp
@@ -835,7 +835,7 @@ void MainHostWindow::showAudioSettings()
o.componentToCentreAround = this;
o.dialogBackgroundColour = getLookAndFeel().findColour (ResizableWindow::backgroundColourId);
o.escapeKeyTriggersCloseButton = true;
- o.useNativeTitleBar = false;
+ o.useNativeTitleBar = true;
o.resizable = false;
auto* w = o.create();
diff --git a/modules/juce_gui_basics/windows/juce_DialogWindow.cpp b/modules/juce_gui_basics/windows/juce_DialogWindow.cpp
index ea2675d59..92bf09e16 100644
index eed3b6dbf..007047557 100644
--- a/modules/juce_gui_basics/windows/juce_DialogWindow.cpp
+++ b/modules/juce_gui_basics/windows/juce_DialogWindow.cpp
@@ -131,7 +131,8 @@ void DialogWindow::showDialog (const String& dialogTitle,
@@ -127,7 +127,8 @@ void DialogWindow::showDialog (const String& dialogTitle,
Colour backgroundColour,
const bool escapeKeyTriggersCloseButton,
const bool resizable,
@@ -12,7 +25,7 @@ index ea2675d59..92bf09e16 100644
{
LaunchOptions o;
o.dialogTitle = dialogTitle;
@@ -139,9 +140,9 @@ void DialogWindow::showDialog (const String& dialogTitle,
@@ -135,9 +136,9 @@ void DialogWindow::showDialog (const String& dialogTitle,
o.componentToCentreAround = componentToCentreAround;
o.dialogBackgroundColour = backgroundColour;
o.escapeKeyTriggersCloseButton = escapeKeyTriggersCloseButton;
@@ -23,7 +36,7 @@ index ea2675d59..92bf09e16 100644
o.launchAsync();
}
@@ -153,7 +154,8 @@ int DialogWindow::showModalDialog (const String& dialogTitle,
@@ -149,7 +150,8 @@ int DialogWindow::showModalDialog (const String& dialogTitle,
Colour backgroundColour,
const bool escapeKeyTriggersCloseButton,
const bool resizable,
@@ -33,7 +46,7 @@ index ea2675d59..92bf09e16 100644
{
LaunchOptions o;
o.dialogTitle = dialogTitle;
@@ -161,9 +163,9 @@ int DialogWindow::showModalDialog (const String& dialogTitle,
@@ -157,9 +159,9 @@ int DialogWindow::showModalDialog (const String& dialogTitle,
o.componentToCentreAround = componentToCentreAround;
o.dialogBackgroundColour = backgroundColour;
o.escapeKeyTriggersCloseButton = escapeKeyTriggersCloseButton;
@@ -45,26 +58,52 @@ index ea2675d59..92bf09e16 100644
return o.runModal();
}
diff --git a/modules/juce_gui_basics/windows/juce_DialogWindow.h b/modules/juce_gui_basics/windows/juce_DialogWindow.h
index a10211525..de9ef2f4b 100644
index 0a343619f..8f01f421d 100644
--- a/modules/juce_gui_basics/windows/juce_DialogWindow.h
+++ b/modules/juce_gui_basics/windows/juce_DialogWindow.h
@@ -193,7 +193,8 @@ public:
@@ -192,7 +192,8 @@ public:
Colour backgroundColour,
bool escapeKeyTriggersCloseButton,
bool shouldBeResizable = false,
- bool useBottomRightCornerResizer = false);
+ bool useBottomRightCornerResizer = false,
+ bool useNativeTitleBar = false);
+ bool useNativeTitleBar = true);
#if JUCE_MODAL_LOOPS_PERMITTED || DOXYGEN
#if JUCE_MODAL_LOOPS_PERMITTED
/** Easy way of quickly showing a dialog box containing a given component.
@@ -239,7 +240,8 @@ public:
@@ -238,7 +239,8 @@ public:
Colour backgroundColour,
bool escapeKeyTriggersCloseButton,
bool shouldBeResizable = false,
- bool useBottomRightCornerResizer = false);
+ bool useBottomRightCornerResizer = false,
+ bool useNativeTitleBar = false);
+ bool useNativeTitleBar = true);
#endif
diff --git a/modules/juce_gui_basics/windows/juce_TopLevelWindow.h b/modules/juce_gui_basics/windows/juce_TopLevelWindow.h
index 75620cb01..89c9477bb 100644
--- a/modules/juce_gui_basics/windows/juce_TopLevelWindow.h
+++ b/modules/juce_gui_basics/windows/juce_TopLevelWindow.h
@@ -147,7 +147,7 @@ protected:
private:
friend class TopLevelWindowManager;
friend class ResizableWindow;
- bool useDropShadow = true, useNativeTitleBar = false, isCurrentlyActive = false;
+ bool useDropShadow = true, useNativeTitleBar = true, isCurrentlyActive = false;
std::unique_ptr<DropShadower> shadower;
std::unique_ptr<AccessibilityHandler> createAccessibilityHandler() override;
diff --git a/modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp b/modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp
index e94c544b5..70b70d386 100644
--- a/modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp
+++ b/modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp
@@ -85,7 +85,7 @@ void PreferencesPanel::showInDialogBox (const String& dialogTitle, int dialogWid
o.dialogTitle = dialogTitle;
o.dialogBackgroundColour = backgroundColour;
o.escapeKeyTriggersCloseButton = false;
- o.useNativeTitleBar = false;
+ o.useNativeTitleBar = true;
o.resizable = false;
o.launchAsync();

+ 2
- 2
libs/juce-current/patches/14_fix-x11-temporary-windows.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp b/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp
index 6ad01c68a..490a3a792 100644
index 165ca28c6..f3cf5c276 100644
--- a/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp
+++ b/modules/juce_gui_basics/native/x11/juce_linux_XWindowSystem.cpp
@@ -2804,10 +2804,14 @@ void XWindowSystem::setWindowType (::Window windowH, int styleFlags) const
@@ -2935,10 +2935,14 @@ void XWindowSystem::setWindowType (::Window windowH, int styleFlags) const
if (atoms.windowType != None)
{


+ 0
- 16
libs/juce-current/patches/15_fix-linux-thread-prio.patch View File

@@ -1,16 +0,0 @@
diff --git a/modules/juce_core/native/juce_posix_SharedCode.h b/modules/juce_core/native/juce_posix_SharedCode.h
index 13724ba7c..f8892081c 100644
--- a/modules/juce_core/native/juce_posix_SharedCode.h
+++ b/modules/juce_core/native/juce_posix_SharedCode.h
@@ -989,7 +989,11 @@ bool Thread::setThreadPriority (void* handle, int priority)
if (pthread_getschedparam ((pthread_t) handle, &policy, &param) != 0)
return false;
+ #if JUCE_LINUX
+ policy = priority < 9 ? SCHED_OTHER : SCHED_RR;
+ #else
policy = priority == 0 ? SCHED_OTHER : SCHED_RR;
+ #endif
const int minPriority = sched_get_priority_min (policy);
const int maxPriority = sched_get_priority_max (policy);

+ 14
- 0
libs/juce-current/patches/15_fix-usage-with-vestige.patch View File

@@ -0,0 +1,14 @@
diff --git a/modules/juce_audio_processors/utilities/juce_ExtensionsVisitor.h b/modules/juce_audio_processors/utilities/juce_ExtensionsVisitor.h
index a272fee76..5b484f4e4 100644
--- a/modules/juce_audio_processors/utilities/juce_ExtensionsVisitor.h
+++ b/modules/juce_audio_processors/utilities/juce_ExtensionsVisitor.h
@@ -56,7 +56,9 @@ typedef AudioComponentInstance AudioUnit;
}
@endcode
*/
+#ifndef _VESTIGE_H
struct AEffect;
+#endif
//==============================================================================
namespace juce

libs/juce-current/patches/16_lv2-definitions.patch → libs/juce-current/patches/16_lv2-string-state.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.h b/modules/juce_audio_processors/processors/juce_AudioProcessor.h
index ae60fde15..dbad562ef 100644
index 361f13d9a..c2710aa5c 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessor.h
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.h
@@ -1116,6 +1116,11 @@ public:
@@ -1111,6 +1111,11 @@ public:
/** This method is called when the layout of the audio processor changes. */
virtual void processorLayoutsChanged();
@@ -14,11 +14,3 @@ index ae60fde15..dbad562ef 100644
//==============================================================================
/** Adds a listener that will be called when an aspect of this processor changes. */
virtual void addListener (AudioProcessorListener* newListener);
@@ -1200,6 +1205,7 @@ public:
wrapperType_AudioUnitv3,
wrapperType_RTAS,
wrapperType_AAX,
+ wrapperType_LV2,
wrapperType_Standalone,
wrapperType_Unity
};

+ 2
- 2
libs/juce-current/patches/17_allow-vst2-without-audio.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
index 94f6bf569..ddbe6fd65 100644
index 652665434..243e194fc 100644
--- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
+++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
@@ -294,9 +294,6 @@ public:
@@ -246,9 +246,6 @@ public:
// You must at least have some channels
jassert (processor->isMidiEffect() || (maxNumInChannels > 0 || maxNumOutChannels > 0));


+ 2
- 2
libs/juce-current/patches/18_dynamic-vst2-plugin-name.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
index 7e2122580..cff9b7a88 100644
index 243e194fc..a2b0286fb 100644
--- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
+++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
@@ -1841,7 +1841,7 @@ private:
@@ -1853,7 +1853,7 @@ private:
pointer_sized_int handleGetPlugInName (VstOpCodeArguments args)
{


+ 0
- 17
libs/juce-current/patches/19_fix-vst2-linux-gui-init.patch View File

@@ -1,17 +0,0 @@
diff --git a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
index ebc9325ca..cabbbcf13 100644
--- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
+++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
@@ -203,11 +203,11 @@ struct SharedMessageThread : public Thread
void run() override
{
initialiseJuce_GUI();
- initialised = true;
MessageManager::getInstance()->setCurrentThreadAsMessageThread();
XWindowSystem::getInstance();
+ initialised = true;
while ((! threadShouldExit()) && MessageManager::getInstance()->runDispatchLoopUntil (250))
{}

+ 0
- 20
libs/juce-current/patches/20_messagemanager-dispatch-public.patch View File

@@ -1,20 +0,0 @@
diff --git a/modules/juce_events/messages/juce_MessageManager.h b/modules/juce_events/messages/juce_MessageManager.h
index ae7231101..fff5b9794 100644
--- a/modules/juce_events/messages/juce_MessageManager.h
+++ b/modules/juce_events/messages/juce_MessageManager.h
@@ -311,6 +311,7 @@ public:
// Internal methods - do not use!
void deliverBroadcastMessage (const String&);
~MessageManager() noexcept;
+ static bool dispatchNextMessageOnSystemQueue (bool returnIfNoPendingMessages);
#endif
private:
@@ -333,7 +334,6 @@ private:
static void* exitModalLoopCallback (void*);
static void doPlatformSpecificInitialisation();
static void doPlatformSpecificShutdown();
- static bool dispatchNextMessageOnSystemQueue (bool returnIfNoPendingMessages);
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MessageManager)
};

+ 293
- 20
libs/juce-current/patches/21_audioprocessor-no-gui.patch View File

@@ -1,17 +1,136 @@
diff --git a/modules/juce_audio_plugin_client/LV2/juce_LV2_Client.cpp b/modules/juce_audio_plugin_client/LV2/juce_LV2_Client.cpp
index e9401a981..6c4d12546 100644
--- a/modules/juce_audio_plugin_client/LV2/juce_LV2_Client.cpp
+++ b/modules/juce_audio_plugin_client/LV2/juce_LV2_Client.cpp
@@ -32,12 +32,17 @@
#include <juce_audio_plugin_client/juce_audio_plugin_client.h>
#include <juce_audio_plugin_client/utility/juce_CheckSettingMacros.h>
-#include <juce_audio_plugin_client/utility/juce_LinuxMessageThread.h>
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI
+ #include <juce_audio_plugin_client/utility/juce_LinuxMessageThread.h>
+#endif
#include <juce_audio_processors/utilities/juce_FlagCache.h>
#include <juce_audio_processors/format_types/juce_LegacyAudioParameter.cpp>
-#include "JuceLV2Defines.h"
+#ifndef JucePlugin_LV2URI
+ #include "JuceLV2Defines.h"
+#endif
+
#include <juce_audio_processors/format_types/juce_LV2Common.h>
#include <fstream>
@@ -679,6 +684,7 @@ public:
return LV2_STATE_SUCCESS;
}
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI
std::unique_ptr<AudioProcessorEditor> createEditor()
{
return std::unique_ptr<AudioProcessorEditor> (processor->createEditorIfNeeded());
@@ -688,6 +694,7 @@ public:
{
processor->editorBeingDeleted (editor);
}
+ #endif
static std::unique_ptr<AudioProcessor> createProcessorInstance()
{
@@ -745,7 +752,7 @@ private:
ScopedJuceInitialiser_GUI scopedJuceInitialiser;
- #if JUCE_LINUX || JUCE_BSD
+ #if (JUCE_LINUX || JUCE_BSD) && ! JUCE_AUDIOPROCESSOR_NO_GUI
SharedResourcePointer<MessageThread> messageThread;
#endif
@@ -828,6 +835,7 @@ private:
"\tlv2:binary <" << libraryPath.getFileName() << "> ;\n"
"\trdfs:seeAlso <dsp.ttl> .\n";
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI
if (proc.hasEditor())
{
#if JUCE_MAC
@@ -847,6 +855,7 @@ private:
"\trdfs:seeAlso <ui.ttl> .\n"
"\n";
}
+ #endif
for (auto i = 0, end = proc.getNumPrograms(); i < end; ++i)
{
@@ -1073,8 +1082,10 @@ private:
os << "<" JucePlugin_LV2URI ">\n";
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI
if (proc.hasEditor())
os << "\tui:ui <" << JucePluginLV2UriUi << "> ;\n";
+ #endif
const auto versionParts = StringArray::fromTokens (JucePlugin_VersionString, ".", "");
@@ -1270,6 +1281,7 @@ private:
static Result writeUiTtl (AudioProcessor& proc, const File& libraryPath)
{
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI
if (! proc.hasEditor())
return Result::ok();
@@ -1307,6 +1319,7 @@ private:
"\topts:supportedOption\n"
"\t\tui:scaleFactor ,\n"
"\t\tparam:sampleRate .\n";
+ #endif
return Result::ok();
}
@@ -1436,6 +1449,7 @@ static lv2_shared::NumericAtomParser::ParseResult<float> findScaleFactor (const
return parser.parseNumericOption<float> (scaleFactorOption);
}
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI
class LV2UIInstance : private Component,
private ComponentListener
{
@@ -1749,6 +1763,7 @@ LV2_SYMBOL_EXPORT const LV2UI_Descriptor* lv2ui_descriptor (uint32_t index)
return &descriptor;
}
+#endif
}
}
diff --git a/modules/juce_audio_processors/juce_audio_processors.cpp b/modules/juce_audio_processors/juce_audio_processors.cpp
index 43ad88e1b..149154804 100644
index 80914cc0a..ce5e329d2 100644
--- a/modules/juce_audio_processors/juce_audio_processors.cpp
+++ b/modules/juce_audio_processors/juce_audio_processors.cpp
@@ -47,7 +47,7 @@
@@ -27,7 +27,9 @@
#define JUCE_CORE_INCLUDE_NATIVE_HEADERS 1
#define JUCE_CORE_INCLUDE_OBJC_HELPERS 1
-#define JUCE_GUI_BASICS_INCLUDE_XHEADERS 1
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI
+ #define JUCE_GUI_BASICS_INCLUDE_XHEADERS 1
+#endif
#define JUCE_GUI_BASICS_INCLUDE_SCOPED_THREAD_DPI_AWARENESS_SETTER 1
#define JUCE_GRAPHICS_INCLUDE_COREGRAPHICS_HELPERS 1
@@ -43,7 +45,7 @@
#endif
#endif
-#if (JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_VST3) && JUCE_LINUX
+#if (JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_VST3) && JUCE_LINUX && ! JUCE_AUDIOPROCESSOR_NO_GUI
-#if (JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_VST3) && (JUCE_LINUX || JUCE_BSD)
+#if (JUCE_PLUGINHOST_VST || JUCE_PLUGINHOST_VST3) && (JUCE_LINUX || JUCE_BSD) && ! JUCE_AUDIOPROCESSOR_NO_GUI
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <sys/utsname.h>
@@ -230,9 +230,11 @@ struct AutoResizingNSViewComponentWithParent : public AutoResizingNSViewCompone
@@ -202,17 +204,21 @@ private:
#include "format_types/juce_LegacyAudioParameter.cpp"
#include "processors/juce_AudioProcessor.cpp"
#include "processors/juce_AudioPluginInstance.cpp"
@@ -25,11 +144,80 @@ index 43ad88e1b..149154804 100644
#include "processors/juce_PluginDescription.cpp"
#include "format_types/juce_LADSPAPluginFormat.cpp"
#include "format_types/juce_VSTPluginFormat.cpp"
#include "format_types/juce_VST3PluginFormat.cpp"
#include "format_types/juce_AudioUnitPluginFormat.mm"
-#include "scanning/juce_KnownPluginList.cpp"
-#include "scanning/juce_PluginDirectoryScanner.cpp"
-#include "scanning/juce_PluginListComponent.cpp"
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI
+ #include "scanning/juce_KnownPluginList.cpp"
+ #include "scanning/juce_PluginDirectoryScanner.cpp"
+ #include "scanning/juce_PluginListComponent.cpp"
+#endif
#include "processors/juce_AudioProcessorParameterGroup.cpp"
#include "utilities/juce_AudioProcessorParameterWithID.cpp"
#include "utilities/juce_RangedAudioParameter.cpp"
@@ -220,7 +226,9 @@ private:
#include "utilities/juce_AudioParameterInt.cpp"
#include "utilities/juce_AudioParameterBool.cpp"
#include "utilities/juce_AudioParameterChoice.cpp"
-#include "utilities/juce_ParameterAttachments.cpp"
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI
+ #include "utilities/juce_ParameterAttachments.cpp"
+#endif
#include "utilities/juce_AudioProcessorValueTreeState.cpp"
#include "utilities/juce_PluginHostType.cpp"
#include "utilities/juce_NativeScaleFactorNotifier.cpp"
@@ -231,3 +239,8 @@ private:
#include "format_types/juce_VST3PluginFormat_test.cpp"
#include "format_types/juce_LV2PluginFormat_test.cpp"
#endif
+
+#if JUCE_AUDIOPROCESSOR_NO_GUI
+// commonly used classes in DSP code
+namespace juce { Colour::Colour(juce::uint32) noexcept {} }
+#endif
diff --git a/modules/juce_audio_processors/juce_audio_processors.h b/modules/juce_audio_processors/juce_audio_processors.h
index 553e3d24b..838167ab5 100644
--- a/modules/juce_audio_processors/juce_audio_processors.h
+++ b/modules/juce_audio_processors/juce_audio_processors.h
@@ -123,14 +123,18 @@
#include "processors/juce_AudioProcessorParameter.h"
#include "processors/juce_HostedAudioProcessorParameter.h"
#include "processors/juce_AudioProcessorEditorHostContext.h"
-#include "processors/juce_AudioProcessorEditor.h"
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI
+ #include "processors/juce_AudioProcessorEditor.h"
+#endif
#include "processors/juce_AudioProcessorListener.h"
#include "processors/juce_AudioProcessorParameterGroup.h"
#include "processors/juce_AudioProcessor.h"
#include "processors/juce_PluginDescription.h"
#include "processors/juce_AudioPluginInstance.h"
#include "processors/juce_AudioProcessorGraph.h"
-#include "processors/juce_GenericAudioProcessorEditor.h"
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI
+ #include "processors/juce_GenericAudioProcessorEditor.h"
+#endif
#include "format/juce_AudioPluginFormat.h"
#include "format/juce_AudioPluginFormatManager.h"
#include "scanning/juce_KnownPluginList.h"
@@ -148,7 +152,9 @@
#include "utilities/juce_AudioParameterInt.h"
#include "utilities/juce_AudioParameterBool.h"
#include "utilities/juce_AudioParameterChoice.h"
-#include "utilities/juce_ParameterAttachments.h"
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI
+ #include "utilities/juce_ParameterAttachments.h"
+#endif
#include "utilities/juce_AudioProcessorValueTreeState.h"
#include "utilities/juce_PluginHostType.h"
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp
index 040accf2e..df0b6c67b 100644
index 6b6921b30..48744f05f 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.cpp
@@ -51,12 +51,14 @@ AudioProcessor::AudioProcessor (const BusesProperties& ioConfig)
@@ -43,12 +43,14 @@ AudioProcessor::AudioProcessor (const BusesProperties& ioConfig)
AudioProcessor::~AudioProcessor()
{
@@ -44,7 +232,7 @@ index 040accf2e..df0b6c67b 100644
#if JUCE_DEBUG && ! JUCE_DISABLE_AUDIOPROCESSOR_BEGIN_END_GESTURE_CHECKING
// This will fail if you've called beginParameterChangeGesture() for one
@@ -826,6 +828,7 @@ void AudioProcessor::audioIOChanged (bool busNumberChanged, bool channelNumChang
@@ -867,6 +869,7 @@ void AudioProcessor::audioIOChanged (bool busNumberChanged, bool channelNumChang
processorLayoutsChanged();
}
@@ -52,7 +240,7 @@ index 040accf2e..df0b6c67b 100644
//==============================================================================
void AudioProcessor::editorBeingDeleted (AudioProcessorEditor* const editor) noexcept
{
@@ -862,6 +865,7 @@ AudioProcessorEditor* AudioProcessor::createEditorIfNeeded()
@@ -903,6 +906,7 @@ AudioProcessorEditor* AudioProcessor::createEditorIfNeeded()
return ed;
}
@@ -61,10 +249,10 @@ index 040accf2e..df0b6c67b 100644
//==============================================================================
void AudioProcessor::getCurrentProgramStateInformation (juce::MemoryBlock& destData)
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessor.h b/modules/juce_audio_processors/processors/juce_AudioProcessor.h
index f72a4ed3f..849b77d3c 100644
index c2710aa5c..8b15f023f 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessor.h
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessor.h
@@ -926,6 +926,7 @@ public:
@@ -921,6 +921,7 @@ public:
*/
virtual void setNonRealtime (bool isNonRealtime) noexcept;
@@ -72,7 +260,7 @@ index f72a4ed3f..849b77d3c 100644
//==============================================================================
/** Creates the processor's GUI.
@@ -975,6 +976,7 @@ public:
@@ -970,6 +971,7 @@ public:
This may call createEditor() internally to create the component.
*/
AudioProcessorEditor* createEditorIfNeeded();
@@ -80,9 +268,9 @@ index f72a4ed3f..849b77d3c 100644
//==============================================================================
/** Returns the default number of steps for a parameter.
@@ -1191,9 +1193,11 @@ public:
@@ -1231,9 +1233,11 @@ public:
virtual CurveData getResponseCurve (CurveData::Type /*curveType*/) const { return CurveData(); }
virtual CurveData getResponseCurve (CurveData::Type /*curveType*/) const { return {}; }
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI
//==============================================================================
@@ -92,7 +280,17 @@ index f72a4ed3f..849b77d3c 100644
/** Flags to indicate the type of plugin context in which a processor is being used. */
enum WrapperType
@@ -1468,7 +1472,9 @@ private:
@@ -1264,7 +1268,9 @@ public:
struct TrackProperties
{
String name; // The name of the track - this will be empty if the track name is not known
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI
Colour colour; // The colour of the track - this will be transparentBlack if the colour is not known
+ #endif
// other properties may be added in the future
};
@@ -1513,7 +1519,9 @@ private:
//==============================================================================
Array<AudioProcessorListener*> listeners;
@@ -103,10 +301,10 @@ index f72a4ed3f..849b77d3c 100644
int blockSize = 0, latencySamples = 0;
bool suspended = false;
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp
index 17c5af30c..3d4a0d428 100644
index fd013c4d9..03b74cfa1 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp
@@ -1519,8 +1519,10 @@ bool AudioProcessorGraph::AudioGraphIOProcessor::producesMidi() const
@@ -1575,8 +1575,10 @@ bool AudioProcessorGraph::AudioGraphIOProcessor::producesMidi() const
bool AudioProcessorGraph::AudioGraphIOProcessor::isInput() const noexcept { return type == audioInputNode || type == midiInputNode; }
bool AudioProcessorGraph::AudioGraphIOProcessor::isOutput() const noexcept { return type == audioOutputNode || type == midiOutputNode; }
@@ -118,10 +316,10 @@ index 17c5af30c..3d4a0d428 100644
int AudioProcessorGraph::AudioGraphIOProcessor::getNumPrograms() { return 0; }
int AudioProcessorGraph::AudioGraphIOProcessor::getCurrentProgram() { return 0; }
diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h
index a60e67d84..17a121893 100644
index 9c54201dc..d1046844f 100644
--- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h
+++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h
@@ -355,8 +355,10 @@ public:
@@ -357,8 +357,10 @@ public:
bool acceptsMidi() const override;
bool producesMidi() const override;
@@ -132,7 +330,7 @@ index a60e67d84..17a121893 100644
int getNumPrograms() override;
int getCurrentProgram() override;
@@ -392,8 +394,10 @@ public:
@@ -394,8 +396,10 @@ public:
bool acceptsMidi() const override;
bool producesMidi() const override;
@@ -143,3 +341,78 @@ index a60e67d84..17a121893 100644
int getNumPrograms() override { return 0; }
int getCurrentProgram() override { return 0; }
void setCurrentProgram (int) override { }
diff --git a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp
index a7e8c8af1..2da1d9023 100644
--- a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp
+++ b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.cpp
@@ -466,6 +466,7 @@ void AudioProcessorValueTreeState::timerCallback()
}
//==============================================================================
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI
template <typename Attachment, typename Control>
std::unique_ptr<Attachment> makeAttachment (const AudioProcessorValueTreeState& stateToUse,
const String& parameterID,
@@ -498,6 +499,7 @@ AudioProcessorValueTreeState::ButtonAttachment::ButtonAttachment (AudioProcessor
: attachment (makeAttachment<ButtonParameterAttachment> (stateToUse, parameterID, button))
{
}
+#endif
//==============================================================================
//==============================================================================
diff --git a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h
index 3942f3345..7c113c9a2 100644
--- a/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h
+++ b/modules/juce_audio_processors/utilities/juce_AudioProcessorValueTreeState.h
@@ -519,6 +519,7 @@ public:
friend class AudioProcessorValueTreeState::ParameterAdapter;
};
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI
//==============================================================================
/** An object of this class maintains a connection between a Slider and a parameter
in an AudioProcessorValueTreeState.
@@ -586,6 +587,7 @@ public:
std::unique_ptr<ButtonParameterAttachment> attachment;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (ButtonAttachment)
};
+ #endif
private:
//==============================================================================
diff --git a/modules/juce_audio_processors/utilities/juce_PluginHostType.cpp b/modules/juce_audio_processors/utilities/juce_PluginHostType.cpp
index f51fed0d3..7e07d9f89 100644
--- a/modules/juce_audio_processors/utilities/juce_PluginHostType.cpp
+++ b/modules/juce_audio_processors/utilities/juce_PluginHostType.cpp
@@ -63,6 +63,7 @@ bool PluginHostType::isInAAXAudioSuite (AudioProcessor& processor)
return false;
}
+#if ! JUCE_AUDIOPROCESSOR_NO_GUI
Image PluginHostType::getHostIcon (int size) const
{
ignoreUnused (size);
@@ -79,6 +80,7 @@ Image PluginHostType::getHostIcon (int size) const
return Image();
}
+#endif
const char* PluginHostType::getHostDescription() const noexcept
{
diff --git a/modules/juce_audio_processors/utilities/juce_PluginHostType.h b/modules/juce_audio_processors/utilities/juce_PluginHostType.h
index f83ccd3f4..7f7358db3 100644
--- a/modules/juce_audio_processors/utilities/juce_PluginHostType.h
+++ b/modules/juce_audio_processors/utilities/juce_PluginHostType.h
@@ -200,8 +200,10 @@ public:
bool isInterAppAudioConnected() const;
/** Switches to the host application when Inter-App Audio is used on iOS. */
void switchToHostApplication() const;
+ #if ! JUCE_AUDIOPROCESSOR_NO_GUI
/** Gets the host app's icon when Inter-App Audio is used on iOS. */
Image getHostIcon (int size) const;
+ #endif
//==============================================================================
/** Returns the complete absolute path of the host application executable. */

+ 7
- 7
libs/juce-current/patches/22_mingw-filechooser-no-vista.patch View File

@@ -1,8 +1,8 @@
diff --git a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp
index 0c1138a2b..a5b42b8ef 100644
--- a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp
+++ b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp
@@ -172,6 +172,7 @@ private:
diff --git a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp
index ec946b7a4..ce42c0093 100644
--- a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp
+++ b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp
@@ -159,6 +159,7 @@ private:
void operator() (LPWSTR ptr) const noexcept { CoTaskMemFree (ptr); }
};
@@ -10,7 +10,7 @@ index 0c1138a2b..a5b42b8ef 100644
bool showDialog (IFileDialog& dialog, bool async)
{
FILEOPENDIALOGOPTIONS flags = {};
@@ -327,6 +328,7 @@ private:
@@ -376,6 +377,7 @@ private:
return result;
}
@@ -18,7 +18,7 @@ index 0c1138a2b..a5b42b8ef 100644
Array<URL> openDialogPreVista (bool async)
{
@@ -436,11 +438,13 @@ private:
@@ -492,11 +494,13 @@ private:
const Remover remover (*this);


+ 0
- 26
libs/juce-current/patches/23_fix-juce-includes.patch View File

@@ -1,26 +0,0 @@
diff --git a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
index cabbbcf13..f722ab36c 100644
--- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
+++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp
@@ -488,7 +488,7 @@ public:
{
const int numChannels = jmax (numIn, numOut);
- AudioBuffer<FloatType> chans (tmpBuffers.channels, isMidiEffect ? 0 : numChannels, numSamples);
+ juce::AudioBuffer<FloatType> chans (tmpBuffers.channels, isMidiEffect ? 0 : numChannels, numSamples);
if (isBypassed)
processor->processBlockBypassed (chans, midiEvents);
diff --git a/modules/juce_audio_plugin_client/utility/juce_IncludeModuleHeaders.h b/modules/juce_audio_plugin_client/utility/juce_IncludeModuleHeaders.h
index 4b36f6d64..61dbdeede 100644
--- a/modules/juce_audio_plugin_client/utility/juce_IncludeModuleHeaders.h
+++ b/modules/juce_audio_plugin_client/utility/juce_IncludeModuleHeaders.h
@@ -23,6 +23,8 @@
==============================================================================
*/
+#pragma once
+
#include <juce_audio_plugin_client/juce_audio_plugin_client.h>
#include "juce_CreatePluginFilter.h"

+ 20
- 0
libs/juce-current/patches/24_extra-gl-functions.patch View File

@@ -0,0 +1,20 @@
diff --git a/modules/juce_opengl/native/juce_OpenGLExtensions.h b/modules/juce_opengl/native/juce_OpenGLExtensions.h
index f07ede9a3..c934e9e37 100644
--- a/modules/juce_opengl/native/juce_OpenGLExtensions.h
+++ b/modules/juce_opengl/native/juce_OpenGLExtensions.h
@@ -76,7 +76,14 @@ namespace juce
X (glCheckFramebufferStatus) \
X (glFramebufferTexture2D) \
X (glFramebufferRenderbuffer) \
- X (glGetFramebufferAttachmentParameteriv)
+ X (glGetFramebufferAttachmentParameteriv) \
+ X (glTransformFeedbackVaryings) \
+ X (glBeginTransformFeedback) \
+ X (glEndTransformFeedback) \
+ X (glBindBufferBase) \
+ X (glMapBufferRange) \
+ X (glUnmapBuffer)
+
/** @internal This macro contains a list of GL extension functions that need to be dynamically loaded on Windows/Linux.
@see OpenGLExtensionFunctions

+ 0
- 117
libs/juce-current/patches/24_vital-needed-changes.patch View File

@@ -1,117 +0,0 @@
diff --git a/modules/juce_gui_basics/components/juce_Component.cpp b/modules/juce_gui_basics/components/juce_Component.cpp
index c4404c637..fa8d3ccf5 100644
--- a/modules/juce_gui_basics/components/juce_Component.cpp
+++ b/modules/juce_gui_basics/components/juce_Component.cpp
@@ -387,6 +387,10 @@ struct Component::ComponentHelpers
template <typename PointOrRect>
static PointOrRect convertCoordinate (const Component* target, const Component* source, PointOrRect p)
{
+ float total_scaling = source->getTotalPixelScaling();
+ Component* top = nullptr;
+ if (source)
+ top = source->getTopLevelComponent();
while (source != nullptr)
{
if (source == target)
@@ -395,6 +399,9 @@ struct Component::ComponentHelpers
if (source->isParentOf (target))
return convertFromDistantParentSpace (source, *target, p);
+ if (source == top)
+ p /= total_scaling;
+
p = convertToParentSpace (*source, p);
source = source->getParentComponent();
}
@@ -1390,13 +1397,14 @@ bool Component::reallyContains (Point<int> point, bool returnTrueIfWithinAChild)
Component* Component::getComponentAt (Point<int> position)
{
+ Point<int> scale = (position.toFloat() * getPixelScaling()).roundToInt();
if (flags.visibleFlag && ComponentHelpers::hitTest (*this, position))
{
for (int i = childComponentList.size(); --i >= 0;)
{
auto* child = childComponentList.getUnchecked(i);
- child = child->getComponentAt (ComponentHelpers::convertFromParentSpace (*child, position));
+ child = child->getComponentAt (ComponentHelpers::convertFromParentSpace (*child, scale));
if (child != nullptr)
return child;
diff --git a/modules/juce_gui_basics/components/juce_Component.h b/modules/juce_gui_basics/components/juce_Component.h
index 6b2b0072b..ccb2681fa 100644
--- a/modules/juce_gui_basics/components/juce_Component.h
+++ b/modules/juce_gui_basics/components/juce_Component.h
@@ -2284,6 +2284,17 @@ public:
*/
bool getViewportIgnoreDragFlag() const noexcept { return flags.viewportIgnoreDragFlag; }
+ virtual float getPixelScaling() const { return 1.0f; }
+ float getTotalPixelScaling() const {
+ const Component* component = this;
+ float pixel_scaling = 1.0f;
+ while (component) {
+ pixel_scaling *= component->getPixelScaling();
+ component = component->getParentComponent();
+ }
+ return pixel_scaling;
+ }
+
private:
//==============================================================================
friend class ComponentPeer;
diff --git a/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp b/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp
index a8c2c283a..ddb15b88d 100644
--- a/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp
+++ b/modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp
@@ -61,7 +61,7 @@ public:
{
if (auto* peer = comp.getPeer())
{
- pos = peer->globalToLocal (pos);
+ pos = peer->globalToLocal (pos) * comp.getTotalPixelScaling();
auto& peerComp = peer->getComponent();
return comp.getLocalPoint (&peerComp, ScalingHelpers::unscaledScreenPosToScaled (peerComp, pos));
}
diff --git a/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp b/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp
index 8d7febd4b..7ec8fbb00 100644
--- a/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp
+++ b/modules/juce_gui_basics/windows/juce_ComponentPeer.cpp
@@ -474,7 +474,7 @@ bool ComponentPeer::handleDragMove (const ComponentPeer::DragInfo& info)
if (DragHelpers::isSuitableTarget (info, newTarget))
{
dragAndDropTargetComponent = newTarget;
- auto pos = newTarget->getLocalPoint (&component, info.position);
+ auto pos = newTarget->getLocalPoint (&component, info.position * newTarget->getTotalPixelScaling());
if (DragHelpers::isFileDrag (info))
dynamic_cast<FileDragAndDropTarget*> (newTarget)->fileDragEnter (info.files, pos.x, pos.y);
@@ -491,7 +491,7 @@ bool ComponentPeer::handleDragMove (const ComponentPeer::DragInfo& info)
if (! DragHelpers::isSuitableTarget (info, newTarget))
return false;
- auto pos = newTarget->getLocalPoint (&component, info.position);
+ auto pos = newTarget->getLocalPoint (&component, info.position * newTarget->getTotalPixelScaling());
if (DragHelpers::isFileDrag (info))
dynamic_cast<FileDragAndDropTarget*> (newTarget)->fileDragMove (info.files, pos.x, pos.y);
diff --git a/modules/juce_opengl/native/juce_OpenGLExtensions.h b/modules/juce_opengl/native/juce_OpenGLExtensions.h
index e7eab9dbf..d7039b144 100644
--- a/modules/juce_opengl/native/juce_OpenGLExtensions.h
+++ b/modules/juce_opengl/native/juce_OpenGLExtensions.h
@@ -83,7 +83,13 @@ namespace juce
USE_FUNCTION (glCheckFramebufferStatus, GLenum, (GLenum p1), (p1))\
USE_FUNCTION (glFramebufferTexture2D, void, (GLenum p1, GLenum p2, GLenum p3, GLuint p4, GLint p5), (p1, p2, p3, p4, p5))\
USE_FUNCTION (glFramebufferRenderbuffer, void, (GLenum p1, GLenum p2, GLenum p3, GLuint p4), (p1, p2, p3, p4))\
- USE_FUNCTION (glGetFramebufferAttachmentParameteriv, void, (GLenum p1, GLenum p2, GLenum p3, GLint* p4), (p1, p2, p3, p4))
+ USE_FUNCTION (glGetFramebufferAttachmentParameteriv, void, (GLenum p1, GLenum p2, GLenum p3, GLint* p4), (p1, p2, p3, p4))\
+ USE_FUNCTION (glTransformFeedbackVaryings, void, (GLuint p1, GLsizei p2, const char **p3, GLenum p4), (p1, p2, p3, p4))\
+ USE_FUNCTION (glBeginTransformFeedback, void, (GLenum p1), (p1))\
+ USE_FUNCTION (glEndTransformFeedback, void, (), ())\
+ USE_FUNCTION (glBindBufferBase, void, (GLenum p1, GLuint p2, GLuint p3), (p1, p2, p3))\
+ USE_FUNCTION (glMapBufferRange, void*, (GLenum p1, GLintptr p2, GLsizeiptr p3, GLbitfield p4), (p1, p2, p3, p4))\
+ USE_FUNCTION (glUnmapBuffer, GLboolean, (GLenum p1), (p1));
/** @internal This macro contains a list of GL extension functions that need to be dynamically loaded on Windows/Linux.
@see OpenGLExtensionFunctions

+ 0
- 144
libs/juce-current/patches/24_vital-needed-changes_pt2.patch View File

@@ -1,144 +0,0 @@
diff --git a/modules/juce_opengl/juce_opengl.h b/modules/juce_opengl/juce_opengl.h
index f7bc806f8..d325d3e34 100644
--- a/modules/juce_opengl/juce_opengl.h
+++ b/modules/juce_opengl/juce_opengl.h
@@ -124,7 +124,7 @@
It's mandatory in OpenGL 3.0 to specify the GLSL version.
*/
#if JUCE_OPENGL3
- #if JUCE_OPENGL_ES
+ #if JUCE_OPENGL_ES || OPENGL_ES
#define JUCE_GLSL_VERSION "#version 300 es"
#else
#define JUCE_GLSL_VERSION "#version 150"
diff --git a/modules/juce_opengl/native/juce_MissingGLDefinitions.h b/modules/juce_opengl/native/juce_MissingGLDefinitions.h
index c23ec097a..00c6cf565 100644
--- a/modules/juce_opengl/native/juce_MissingGLDefinitions.h
+++ b/modules/juce_opengl/native/juce_MissingGLDefinitions.h
@@ -126,6 +126,14 @@ enum MissingOpenGLDefinitions
GL_DYNAMIC_DRAW = 0x88E8,
GL_STREAM_DRAW = 0x88E0,
+ GL_GEOMETRY_SHADER = 0x8DD9,
+ GL_LINE_STRIP_ADJACENCY = 0x000B,
+ GL_INTERLEAVED_ATTRIBS = 0x8C8C,
+ GL_STATIC_READ = 0x88E5,
+ GL_TRANSFORM_FEEDBACK_BUFFER = 0x8C8E,
+ GL_RASTERIZER_DISCARD = 0x8C89,
+ GL_MAP_READ_BIT = 0x0001,
+
WGL_NUMBER_PIXEL_FORMATS_ARB = 0x2000,
WGL_DRAW_TO_WINDOW_ARB = 0x2001,
WGL_ACCELERATION_ARB = 0x2003,
diff --git a/modules/juce_opengl/native/juce_OpenGL_linux_X11.h b/modules/juce_opengl/native/juce_OpenGL_linux_X11.h
index ef7eb852e..b4ba85cc4 100644
--- a/modules/juce_opengl/native/juce_OpenGL_linux_X11.h
+++ b/modules/juce_opengl/native/juce_OpenGL_linux_X11.h
@@ -69,8 +69,8 @@ public:
GLint attribs[] =
{
- GLX_RGBA,
- GLX_DOUBLEBUFFER,
+ GLX_RENDER_TYPE, GLX_RGBA_BIT,
+ GLX_DOUBLEBUFFER, True,
GLX_RED_SIZE, cPixelFormat.redBits,
GLX_GREEN_SIZE, cPixelFormat.greenBits,
GLX_BLUE_SIZE, cPixelFormat.blueBits,
@@ -81,13 +81,21 @@ public:
GLX_ACCUM_GREEN_SIZE, cPixelFormat.accumulationBufferGreenBits,
GLX_ACCUM_BLUE_SIZE, cPixelFormat.accumulationBufferBlueBits,
GLX_ACCUM_ALPHA_SIZE, cPixelFormat.accumulationBufferAlphaBits,
+ GLX_X_RENDERABLE, True,
None
};
- bestVisual = glXChooseVisual (display, X11Symbols::getInstance()->xDefaultScreen (display), attribs);
- if (bestVisual == nullptr)
+ int countFbConfigs;
+ fbConfig = glXChooseFBConfig (display, DefaultScreen (display), attribs, &countFbConfigs);
+ if (fbConfig == nullptr)
return;
+ bestVisual = glXGetVisualFromFBConfig (display, *fbConfig);
+ if (bestVisual == nullptr) {
+ X11Symbols::getInstance()->xFree (fbConfig);
+ return;
+ }
+
auto* peer = component.getPeer();
jassert (peer != nullptr);
@@ -139,6 +147,9 @@ public:
}
}
+ if (fbConfig != nullptr)
+ X11Symbols::getInstance()->xFree (fbConfig);
+
if (bestVisual != nullptr)
X11Symbols::getInstance()->xFree (bestVisual);
}
@@ -146,7 +157,18 @@ public:
bool initialiseOnRenderThread (OpenGLContext& c)
{
XWindowSystemUtilities::ScopedXLock xLock;
- renderContext = glXCreateContext (display, bestVisual, (GLXContext) contextToShareWith, GL_TRUE);
+ PFNGLXCREATECONTEXTATTRIBSARBPROC createContextAttribs;
+ int attribs[] = {
+ GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
+ GLX_CONTEXT_MINOR_VERSION_ARB, 2,
+ GLX_CONTEXT_PROFILE_MASK_ARB, GLX_CONTEXT_CORE_PROFILE_BIT_ARB,
+ 0
+ };
+
+ createContextAttribs = (PFNGLXCREATECONTEXTATTRIBSARBPROC)
+ OpenGLHelpers::getExtensionFunction("glXCreateContextAttribsARB");
+
+ renderContext = createContextAttribs (display, *fbConfig, (GLXContext) contextToShareWith, GL_TRUE, attribs);
c.makeActive();
context = &c;
@@ -240,6 +262,7 @@ private:
int swapFrames = 1;
Rectangle<int> bounds;
XVisualInfo* bestVisual = nullptr;
+ GLXFBConfig* fbConfig = nullptr;
void* contextToShareWith;
OpenGLContext* context = nullptr;
diff --git a/modules/juce_opengl/native/juce_OpenGL_win32.h b/modules/juce_opengl/native/juce_OpenGL_win32.h
index 6106fce54..7ba46c079 100644
--- a/modules/juce_opengl/native/juce_OpenGL_win32.h
+++ b/modules/juce_opengl/native/juce_OpenGL_win32.h
@@ -285,6 +285,8 @@ private:
atts[n++] = WGL_DRAW_TO_WINDOW_ARB; atts[n++] = GL_TRUE;
atts[n++] = WGL_SUPPORT_OPENGL_ARB; atts[n++] = GL_TRUE;
+ atts[n++] = WGL_CONTEXT_MAJOR_VERSION_ARB; atts[n++] = 3;
+ atts[n++] = WGL_CONTEXT_MINOR_VERSION_ARB; atts[n++] = 2;
atts[n++] = WGL_DOUBLE_BUFFER_ARB; atts[n++] = GL_TRUE;
atts[n++] = WGL_PIXEL_TYPE_ARB; atts[n++] = WGL_TYPE_RGBA_ARB;
atts[n++] = WGL_ACCELERATION_ARB;
diff --git a/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp b/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp
index 97dc1f0b5..ad40fa640 100644
--- a/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp
+++ b/modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp
@@ -83,7 +83,7 @@ void OpenGLHelpers::enableScissorTest (Rectangle<int> clip)
String OpenGLHelpers::translateVertexShaderToV3 (const String& code)
{
- #if JUCE_OPENGL3
+ #if JUCE_OPENGL3 || OPENGL_ES
if (OpenGLShaderProgram::getLanguageVersion() > 1.2)
{
String output;
@@ -119,7 +119,7 @@ String OpenGLHelpers::translateVertexShaderToV3 (const String& code)
String OpenGLHelpers::translateFragmentShaderToV3 (const String& code)
{
- #if JUCE_OPENGL3
+ #if JUCE_OPENGL3 || OPENGL_ES
if (OpenGLShaderProgram::getLanguageVersion() > 1.2)
return JUCE_GLSL_VERSION "\n"
"out " JUCE_MEDIUMP " vec4 fragColor;\n"

+ 0
- 457
libs/juce-current/patches/24_vital-needed-changes_pt3.patch View File

@@ -1,457 +0,0 @@
diff --git a/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp
index 7642040bd..ed02448b8 100644
--- a/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp
+++ b/modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp
@@ -842,6 +842,26 @@ namespace WavFileHelpers
return out.getMemoryBlock();
}
};
+
+ //==============================================================================
+ struct Clm_Chunk
+ {
+ static MemoryBlock createFrom (const StringPairArray& values)
+ {
+ MemoryOutputStream out;
+ auto s = values["clm "];
+
+ if (s.isNotEmpty())
+ {
+ out.writeString (s);
+
+ if ((out.getDataSize() & 1) != 0)
+ out.writeByte(0);
+ }
+
+ return out.getMemoryBlock();
+ }
+ };
//==============================================================================
namespace AXMLChunk
@@ -1321,6 +1341,7 @@ public:
listInfoChunk = ListInfoChunk::createFrom (metadataValues);
acidChunk = AcidChunk::createFrom (metadataValues);
trckChunk = TracktionChunk::createFrom (metadataValues);
+ clm_Chunk = Clm_Chunk::createFrom (metadataValues);
}
headerPosition = out->getPosition();
@@ -1383,7 +1404,7 @@ public:
}
private:
- MemoryBlock tempBlock, bwavChunk, axmlChunk, smplChunk, instChunk, cueChunk, listChunk, listInfoChunk, acidChunk, trckChunk;
+ MemoryBlock tempBlock, bwavChunk, axmlChunk, smplChunk, instChunk, cueChunk, listChunk, listInfoChunk, acidChunk, trckChunk, clm_Chunk;
uint64 lengthInSamples = 0, bytesWritten = 0;
int64 headerPosition = 0;
bool writeFailed = false;
@@ -1421,6 +1442,7 @@ private:
+ chunkSize (listInfoChunk)
+ chunkSize (acidChunk)
+ chunkSize (trckChunk)
+ + chunkSize (clm_Chunk)
+ (8 + 28)); // (ds64 chunk)
riffChunkSize += (riffChunkSize & 1);
@@ -1503,6 +1525,7 @@ private:
writeChunk (listInfoChunk, chunkName ("LIST"));
writeChunk (acidChunk, chunkName ("acid"));
writeChunk (trckChunk, chunkName ("Trkn"));
+ writeChunk (clm_Chunk, chunkName ("clm "));
writeChunkHeader (chunkName ("data"), isRF64 ? -1 : (int) (lengthInSamples * bytesPerFrame));
diff --git a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp
index 7909098c9..19eb385fd 100644
--- a/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp
+++ b/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp
@@ -2618,6 +2621,9 @@ public:
//==============================================================================
void processParameterChanges (Vst::IParameterChanges& paramChanges)
{
+ if (juceVST3EditController == nullptr)
+ return;
+
jassert (pluginInstance != nullptr);
auto numParamsChanged = paramChanges.getParameterCount();
diff --git a/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp b/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp
index 50cae68ed..549d8edb8 100644
--- a/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp
+++ b/modules/juce_audio_utils/gui/juce_AudioDeviceSelectorComponent.cpp
@@ -393,6 +393,7 @@ public:
AlertWindow::showMessageBoxAsync (AlertWindow::WarningIcon,
TRANS("Error when trying to open audio device!"),
error);
+ resized();
}
bool showDeviceControlPanel()
@@ -1120,6 +1121,8 @@ void AudioDeviceSelectorComponent::updateMidiOutput()
deviceManager.setDefaultMidiOutputDevice ({});
else
deviceManager.setDefaultMidiOutputDevice (currentMidiOutputs[selectedId - 1].identifier);
+
+ resized();
}
void AudioDeviceSelectorComponent::changeListenerCallback (ChangeBroadcaster*)
diff --git a/modules/juce_core/native/juce_curl_Network.cpp b/modules/juce_core/native/juce_curl_Network.cpp
index 00d428350..dd3375ff7 100644
--- a/modules/juce_core/native/juce_curl_Network.cpp
+++ b/modules/juce_core/native/juce_curl_Network.cpp
@@ -332,6 +332,9 @@ public:
// or 3) data is in the in buffer
while ((! finished) && curlBuffer.getSize() == 0)
{
+ if (Thread::currentThreadShouldExit())
+ return false;
+
{
const ScopedLock lock (cleanupLock);
diff --git a/modules/juce_dsp/native/juce_sse_SIMDNativeOps.h b/modules/juce_dsp/native/juce_sse_SIMDNativeOps.h
index 7f64d433d..e9360e0de 100644
--- a/modules/juce_dsp/native/juce_sse_SIMDNativeOps.h
+++ b/modules/juce_dsp/native/juce_sse_SIMDNativeOps.h
@@ -74,6 +74,7 @@ struct SIMDNativeOps<float>
static forcedinline __m128 JUCE_VECTOR_CALLTYPE add (__m128 a, __m128 b) noexcept { return _mm_add_ps (a, b); }
static forcedinline __m128 JUCE_VECTOR_CALLTYPE sub (__m128 a, __m128 b) noexcept { return _mm_sub_ps (a, b); }
static forcedinline __m128 JUCE_VECTOR_CALLTYPE mul (__m128 a, __m128 b) noexcept { return _mm_mul_ps (a, b); }
+ static forcedinline __m128 JUCE_VECTOR_CALLTYPE div (__m128 a, __m128 b) noexcept { return _mm_div_ps (a, b); }
static forcedinline __m128 JUCE_VECTOR_CALLTYPE bit_and (__m128 a, __m128 b) noexcept { return _mm_and_ps (a, b); }
static forcedinline __m128 JUCE_VECTOR_CALLTYPE bit_or (__m128 a, __m128 b) noexcept { return _mm_or_ps (a, b); }
static forcedinline __m128 JUCE_VECTOR_CALLTYPE bit_xor (__m128 a, __m128 b) noexcept { return _mm_xor_ps (a, b); }
@@ -142,6 +143,7 @@ struct SIMDNativeOps<double>
static forcedinline __m128d JUCE_VECTOR_CALLTYPE add (__m128d a, __m128d b) noexcept { return _mm_add_pd (a, b); }
static forcedinline __m128d JUCE_VECTOR_CALLTYPE sub (__m128d a, __m128d b) noexcept { return _mm_sub_pd (a, b); }
static forcedinline __m128d JUCE_VECTOR_CALLTYPE mul (__m128d a, __m128d b) noexcept { return _mm_mul_pd (a, b); }
+ static forcedinline __m128d JUCE_VECTOR_CALLTYPE div (__m128d a, __m128d b) noexcept { return _mm_div_pd (a, b); }
static forcedinline __m128d JUCE_VECTOR_CALLTYPE bit_and (__m128d a, __m128d b) noexcept { return _mm_and_pd (a, b); }
static forcedinline __m128d JUCE_VECTOR_CALLTYPE bit_or (__m128d a, __m128d b) noexcept { return _mm_or_pd (a, b); }
static forcedinline __m128d JUCE_VECTOR_CALLTYPE bit_xor (__m128d a, __m128d b) noexcept { return _mm_xor_pd (a, b); }
diff --git a/modules/juce_events/native/juce_mac_MessageManager.mm b/modules/juce_events/native/juce_mac_MessageManager.mm
index 7a0718868..9d83519ff 100644
--- a/modules/juce_events/native/juce_mac_MessageManager.mm
+++ b/modules/juce_events/native/juce_mac_MessageManager.mm
@@ -369,6 +369,7 @@ void MessageManager::runDispatchLoop()
static void shutdownNSApp()
{
[NSApp stop: nil];
+ [NSEvent stopPeriodicEvents];
[NSEvent startPeriodicEventsAfterDelay: 0 withPeriod: 0.1];
}
diff --git a/modules/juce_gui_basics/buttons/juce_Button.cpp b/modules/juce_gui_basics/buttons/juce_Button.cpp
index 1df2d6e20..e5c243eda 100644
--- a/modules/juce_gui_basics/buttons/juce_Button.cpp
+++ b/modules/juce_gui_basics/buttons/juce_Button.cpp
@@ -482,10 +482,7 @@ void Button::mouseDrag (const MouseEvent& e)
bool Button::isMouseSourceOver (const MouseEvent& e)
{
- if (e.source.isTouch() || e.source.isPen())
- return getLocalBounds().toFloat().contains (e.position);
-
- return isMouseOver();
+ return getLocalBounds().toFloat().contains (e.position);
}
void Button::focusGained (FocusChangeType)
diff --git a/modules/juce_gui_basics/buttons/juce_ShapeButton.cpp b/modules/juce_gui_basics/buttons/juce_ShapeButton.cpp
index 314544638..f3b61e2c3 100644
--- a/modules/juce_gui_basics/buttons/juce_ShapeButton.cpp
+++ b/modules/juce_gui_basics/buttons/juce_ShapeButton.cpp
@@ -76,9 +76,6 @@ void ShapeButton::setShape (const Path& newShape,
shape = newShape;
maintainShapeProportions = maintainShapeProportions_;
- shadow.setShadowProperties (DropShadow (Colours::black.withAlpha (0.5f), 3, Point<int>()));
- setComponentEffect (hasShadow ? &shadow : nullptr);
-
if (resizeNowToFitThisShape)
{
auto newBounds = shape.getBounds();
diff --git a/modules/juce_gui_basics/buttons/juce_ShapeButton.h b/modules/juce_gui_basics/buttons/juce_ShapeButton.h
index 6863b1cab..5f9cee9ee 100644
--- a/modules/juce_gui_basics/buttons/juce_ShapeButton.h
+++ b/modules/juce_gui_basics/buttons/juce_ShapeButton.h
@@ -88,6 +88,8 @@ public:
Colour overColourOn,
Colour downColourOn);
+ void setShadowColour (Colour shadow) { shadowColour = shadow; }
+
/** Set whether the button should use the 'on' set of colours when its toggle state is 'on'.
By default these will be the same as the normal colours but the setOnColours method can be
used to provide a different set of colours.
@@ -112,9 +114,8 @@ public:
private:
//==============================================================================
Colour normalColour, overColour, downColour,
- normalColourOn, overColourOn, downColourOn, outlineColour;
+ normalColourOn, overColourOn, downColourOn, outlineColour, shadowColour;
bool useOnColours;
- DropShadowEffect shadow;
Path shape;
BorderSize<int> border;
bool maintainShapeProportions;
diff --git a/modules/juce_gui_basics/components/juce_Component.cpp b/modules/juce_gui_basics/components/juce_Component.cpp
index fa8d3ccf5..b2d75c655 100644
--- a/modules/juce_gui_basics/components/juce_Component.cpp
+++ b/modules/juce_gui_basics/components/juce_Component.cpp
@@ -3021,7 +3021,8 @@ void Component::modifierKeysChanged (const ModifierKeys& modifiers)
void Component::internalModifierKeysChanged()
{
- sendFakeMouseMove();
+ auto mainMouse = Desktop::getInstance().getMainMouseSource();
+ mainMouse.triggerFakeMove();
modifierKeysChanged (ModifierKeys::currentModifiers);
}
diff --git a/modules/juce_gui_basics/components/juce_Component.h b/modules/juce_gui_basics/components/juce_Component.h
index 3add1db6b..ca84bc80e 100644
--- a/modules/juce_gui_basics/components/juce_Component.h
+++ b/modules/juce_gui_basics/components/juce_Component.h
@@ -439,7 +439,7 @@ public:
@see setBounds, ComponentListener::componentMovedOrResized
*/
- void setTopLeftPosition (Point<int> newTopLeftPosition);
+ virtual void setTopLeftPosition (Point<int> newTopLeftPosition);
/** Moves the component to a new position.
diff --git a/modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp b/modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp
index 7c6b83fbf..a84cf5a91 100644
--- a/modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp
+++ b/modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp
@@ -43,14 +43,9 @@ void CaretComponent::paint (Graphics& g)
g.fillRect (getLocalBounds());
}
-void CaretComponent::timerCallback()
-{
- setVisible (shouldBeShown() && ! isVisible());
-}
void CaretComponent::setCaretPosition (const Rectangle<int>& characterArea)
{
- startTimer (380);
setVisible (shouldBeShown());
setBounds (characterArea.withWidth (2));
}
diff --git a/modules/juce_gui_basics/keyboard/juce_CaretComponent.h b/modules/juce_gui_basics/keyboard/juce_CaretComponent.h
index a10b26c69..97894c075 100644
--- a/modules/juce_gui_basics/keyboard/juce_CaretComponent.h
+++ b/modules/juce_gui_basics/keyboard/juce_CaretComponent.h
@@ -31,8 +31,7 @@ namespace juce
@tags{GUI}
*/
-class JUCE_API CaretComponent : public Component,
- private Timer
+class JUCE_API CaretComponent : public Component
{
public:
//==============================================================================
@@ -73,7 +72,6 @@ private:
Component* owner;
bool shouldBeShown() const;
- void timerCallback() override;
JUCE_DECLARE_NON_COPYABLE (CaretComponent)
};
diff --git a/modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp b/modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp
index 9ea63b215..7e8f14993 100644
--- a/modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp
+++ b/modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp
@@ -271,23 +271,6 @@ void ComponentBoundsConstrainer::checkBounds (Rectangle<int>& bounds,
bounds.setWidth (roundToInt (bounds.getHeight() * aspectRatio));
}
}
-
- if ((isStretchingTop || isStretchingBottom) && ! (isStretchingLeft || isStretchingRight))
- {
- bounds.setX (old.getX() + (old.getWidth() - bounds.getWidth()) / 2);
- }
- else if ((isStretchingLeft || isStretchingRight) && ! (isStretchingTop || isStretchingBottom))
- {
- bounds.setY (old.getY() + (old.getHeight() - bounds.getHeight()) / 2);
- }
- else
- {
- if (isStretchingLeft)
- bounds.setX (old.getRight() - bounds.getWidth());
-
- if (isStretchingTop)
- bounds.setY (old.getBottom() - bounds.getHeight());
- }
}
jassert (! bounds.isEmpty());
diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp
index 738fed8c1..f9f79994c 100644
--- a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp
+++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp
@@ -41,8 +41,6 @@ LookAndFeel_V1::LookAndFeel_V1()
setColour (PopupMenu::highlightedBackgroundColourId, Colour (0xbfa4c2ce));
setColour (PopupMenu::highlightedTextColourId, Colours::black);
setColour (TextEditor::focusedOutlineColourId, findColour (TextButton::buttonColourId));
-
- scrollbarShadow.setShadowProperties (DropShadow (Colours::black.withAlpha (0.5f), 2, Point<int>()));
}
LookAndFeel_V1::~LookAndFeel_V1()
@@ -291,7 +289,7 @@ void LookAndFeel_V1::drawScrollbar (Graphics& g, ScrollBar& bar,
ImageEffectFilter* LookAndFeel_V1::getScrollbarEffect()
{
- return &scrollbarShadow;
+ return nullptr;
}
@@ -477,7 +475,7 @@ Button* LookAndFeel_V1::createSliderButton (Slider&, const bool isIncrement)
ImageEffectFilter* LookAndFeel_V1::getSliderEffect (Slider&)
{
- return &scrollbarShadow;
+ return nullptr;
}
int LookAndFeel_V1::getSliderThumbRadius (Slider&)
diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h
index b6c05aed7..51508a57a 100644
--- a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h
+++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h
@@ -97,8 +97,6 @@ public:
bool positionTitleBarButtonsOnLeft) override;
private:
- DropShadowEffect scrollbarShadow;
-
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (LookAndFeel_V1)
};
diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp
index 21042d0b2..829fed8e6 100644
--- a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp
+++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V4.cpp
@@ -1292,8 +1292,6 @@ void LookAndFeel_V4::drawCallOutBoxBackground (CallOutBox& box, Graphics& g,
{
cachedImage = { Image::ARGB, box.getWidth(), box.getHeight(), true };
Graphics g2 (cachedImage);
-
- DropShadow (Colours::black.withAlpha (0.7f), 8, { 0, 2 }).drawForPath (g2, path);
}
g.setColour (Colours::black);
diff --git a/modules/juce_gui_basics/misc/juce_BubbleComponent.cpp b/modules/juce_gui_basics/misc/juce_BubbleComponent.cpp
index 7c0848644..2017bccb5 100644
--- a/modules/juce_gui_basics/misc/juce_BubbleComponent.cpp
+++ b/modules/juce_gui_basics/misc/juce_BubbleComponent.cpp
@@ -30,9 +30,6 @@ BubbleComponent::BubbleComponent()
: allowablePlacements (above | below | left | right)
{
setInterceptsMouseClicks (false, false);
-
- shadow.setShadowProperties (DropShadow (Colours::black.withAlpha (0.35f), 5, Point<int>()));
- setComponentEffect (&shadow);
}
BubbleComponent::~BubbleComponent() {}
diff --git a/modules/juce_gui_basics/misc/juce_BubbleComponent.h b/modules/juce_gui_basics/misc/juce_BubbleComponent.h
index f086c8ff3..cca6205a3 100644
--- a/modules/juce_gui_basics/misc/juce_BubbleComponent.h
+++ b/modules/juce_gui_basics/misc/juce_BubbleComponent.h
@@ -178,7 +178,6 @@ private:
Rectangle<int> content;
Point<int> arrowTip;
int allowablePlacements;
- DropShadowEffect shadow;
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (BubbleComponent)
};
diff --git a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp
index f18b890f4..e92e9af14 100644
--- a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp
+++ b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp
@@ -1816,7 +1816,7 @@ public:
if (peerIsDeleted)
return S_FALSE;
- peer.handleDragExit (dragInfo);
+ peer.handleDragDrop (dragInfo);
return S_OK;
}
diff --git a/modules/juce_gui_basics/widgets/juce_Slider.cpp b/modules/juce_gui_basics/widgets/juce_Slider.cpp
index 731193ff1..0f68f6efa 100644
--- a/modules/juce_gui_basics/widgets/juce_Slider.cpp
+++ b/modules/juce_gui_basics/widgets/juce_Slider.cpp
@@ -749,7 +749,7 @@ public:
? e.position.x - mouseDragStartPos.x
: mouseDragStartPos.y - e.position.y;
- newPos = owner.valueToProportionOfLength (valueOnMouseDown)
+ newPos = owner.valueToProportionOfLength (valueWhenLastDragged)
+ mouseDiff * (1.0 / pixelsForFullDragExtent);
if (style == IncDecButtons)
@@ -763,7 +763,7 @@ public:
auto mouseDiff = (e.position.x - mouseDragStartPos.x)
+ (mouseDragStartPos.y - e.position.y);
- newPos = owner.valueToProportionOfLength (valueOnMouseDown)
+ newPos = owner.valueToProportionOfLength (valueWhenLastDragged)
+ mouseDiff * (1.0 / pixelsForFullDragExtent);
}
else
@@ -774,6 +774,7 @@ public:
newPos = 1.0 - newPos;
}
+ mouseDragStartPos = e.position;
newPos = (isRotary() && ! rotaryParams.stopAtEnd) ? newPos - std::floor (newPos)
: jlimit (0.0, 1.0, newPos);
valueWhenLastDragged = owner.proportionOfLengthToValue (newPos);
diff --git a/modules/juce_gui_basics/widgets/juce_TextEditor.cpp b/modules/juce_gui_basics/widgets/juce_TextEditor.cpp
index 233c23305..70afc33a1 100644
--- a/modules/juce_gui_basics/widgets/juce_TextEditor.cpp
+++ b/modules/juce_gui_basics/widgets/juce_TextEditor.cpp
@@ -833,6 +833,11 @@ struct TextEditor::TextHolderComponent : public Component,
{
owner.drawContent (g);
}
+
+ void setTopLeftPosition(Point<int> new_position) override {
+ Component::setTopLeftPosition(new_position);
+ owner.textChanged();
+ }
void restartTimer()
{
@@ -1558,6 +1563,9 @@ void TextEditor::moveCaretTo (const int newPosition, const bool isSelecting)
moveCaret (newPosition);
selection = Range<int>::emptyRange (getCaretPosition());
}
+
+ if (listeners.size() != 0 || onTextChange != nullptr)
+ postCommandMessage (TextEditorDefs::textChangeMessageId);
}
int TextEditor::getTextIndexAt (const int x, const int y)
@@ -2141,6 +2149,9 @@ void TextEditor::focusGained (FocusChangeType cause)
repaint();
updateCaretPosition();
+
+ if (listeners.size() != 0 || onTextChange != nullptr)
+ postCommandMessage (TextEditorDefs::textChangeMessageId);
}
void TextEditor::focusLost (FocusChangeType)

+ 0
- 18
libs/juce-current/patches/25_mingw-atomic-add.patch View File

@@ -1,18 +0,0 @@
diff --git a/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp b/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp
index 206a64afc..aa6196934 100644
--- a/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp
+++ b/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.cpp
@@ -67,11 +67,11 @@ namespace FUnknownPrivate {
//------------------------------------------------------------------------
int32 PLUGIN_API atomicAdd (int32& var, int32 d)
{
-#if SMTG_OS_WINDOWS
+#if SMTG_OS_WINDOWS && !defined(__MINGW32__)
return InterlockedExchangeAdd (&var, d) + d;
#elif SMTG_OS_MACOS
return OSAtomicAdd32Barrier (d, (int32_t*)&var);
-#elif SMTG_OS_LINUX
+#elif SMTG_OS_LINUX || defined(__MINGW32__)
__gnu_cxx::__atomic_add (&var, d);
return var;
#else

+ 0
- 31
libs/juce-current/patches/26_fix-x11-opengl-offset.patch View File

@@ -1,31 +0,0 @@
diff --git a/modules/juce_opengl/native/juce_OpenGL_linux_X11.h b/modules/juce_opengl/native/juce_OpenGL_linux_X11.h
index 203798b2f..aed0f3af9 100644
--- a/modules/juce_opengl/native/juce_OpenGL_linux_X11.h
+++ b/modules/juce_opengl/native/juce_OpenGL_linux_X11.h
@@ -110,7 +110,8 @@ public:
auto glBounds = component.getTopLevelComponent()
->getLocalArea (&component, component.getLocalBounds());
- glBounds = Desktop::getInstance().getDisplays().logicalToPhysical (glBounds);
+ if (JUCEApplicationBase::isStandaloneApp())
+ glBounds = Desktop::getInstance().getDisplays().logicalToPhysical (glBounds);
embeddedWindow = X11Symbols::getInstance()->xCreateWindow (display, windowH,
glBounds.getX(), glBounds.getY(),
@@ -227,8 +228,14 @@ public:
auto physicalBounds = Desktop::getInstance().getDisplays().logicalToPhysical (bounds);
XWindowSystemUtilities::ScopedXLock xLock;
- X11Symbols::getInstance()->xMoveResizeWindow (display, embeddedWindow,
- physicalBounds.getX(), physicalBounds.getY(),
+
+ if (JUCEApplicationBase::isStandaloneApp())
+ X11Symbols::getInstance()->xMoveResizeWindow (display, embeddedWindow,
+ physicalBounds.getX(), physicalBounds.getY(),
+ (unsigned int) jmax (1, physicalBounds.getWidth()),
+ (unsigned int) jmax (1, physicalBounds.getHeight()));
+ else
+ X11Symbols::getInstance()->xResizeWindow (display, embeddedWindow,
(unsigned int) jmax (1, physicalBounds.getWidth()),
(unsigned int) jmax (1, physicalBounds.getHeight()));
}

Loading…
Cancel
Save