Browse Source

Add 2 more juce patches

tags/2018-04-16
falkTX 6 years ago
parent
commit
6ea71c82bb
2 changed files with 221 additions and 0 deletions
  1. +20
    -0
      libs/juce/patches/juce_events-dispatch-public.patch
  2. +201
    -0
      libs/juce/patches/mingw-fixes_pt2.patch

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

@@ -0,0 +1,20 @@
diff --git a/modules/juce_events/messages/juce_MessageManager.h b/modules/juce_events/messages/juce_MessageManager.h
index e0734f8..cc8d44d 100644
--- a/modules/juce_events/messages/juce_MessageManager.h
+++ b/modules/juce_events/messages/juce_MessageManager.h
@@ -189,6 +189,7 @@ public:
// Internal methods - do not use!
void deliverBroadcastMessage (const String&);
~MessageManager() noexcept;
+ static bool dispatchNextMessageOnSystemQueue (bool returnIfNoPendingMessages);
#endif
private:
@@ -212,7 +213,6 @@ private:
static void* exitModalLoopCallback (void*);
static void doPlatformSpecificInitialisation();
static void doPlatformSpecificShutdown();
- static bool dispatchNextMessageOnSystemQueue (bool returnIfNoPendingMessages);
template <typename FunctionType>
struct AsyncCallInvoker : public MessageBase

+ 201
- 0
libs/juce/patches/mingw-fixes_pt2.patch View File

@@ -0,0 +1,201 @@
diff --git a/modules/juce_audio_basics/juce_audio_basics.cpp b/modules/juce_audio_basics/juce_audio_basics.cpp
index c5a6bfa..fae5bff 100644
--- a/modules/juce_audio_basics/juce_audio_basics.cpp
+++ b/modules/juce_audio_basics/juce_audio_basics.cpp
@@ -31,7 +31,7 @@
#include "juce_audio_basics.h"
-#if JUCE_MINGW && ! defined (__SSE2__)
+#if JUCE_MINGW
#define JUCE_USE_SSE_INTRINSICS 0
#endif
diff --git a/modules/juce_audio_processors/format_types/juce_VST3Headers.h b/modules/juce_audio_processors/format_types/juce_VST3Headers.h
index de33170..ef37a65 100644
--- a/modules/juce_audio_processors/format_types/juce_VST3Headers.h
+++ b/modules/juce_audio_processors/format_types/juce_VST3Headers.h
@@ -90,12 +90,13 @@
#define _set_abort_behavior(...)
#endif
#include <base/source/baseiids.cpp>
+ #include <base/source/fatomic.cpp>
#include <base/source/fbuffer.cpp>
#include <base/source/fdebug.cpp>
#include <base/source/fobject.cpp>
#include <base/source/fstreamer.cpp>
#include <base/source/fstring.cpp>
- #include <base/source/flock.cpp>
+ #include <base/source/fthread.cpp>
#include <base/source/updatehandler.cpp>
#include <pluginterfaces/base/conststringtable.cpp>
#include <pluginterfaces/base/funknown.cpp>
diff --git a/modules/juce_events/native/juce_win32_Messaging.cpp b/modules/juce_events/native/juce_win32_Messaging.cpp
index f55e540..12858ba 100644
--- a/modules/juce_events/native/juce_win32_Messaging.cpp
+++ b/modules/juce_events/native/juce_win32_Messaging.cpp
@@ -104,7 +104,7 @@ namespace WindowsMessageHelpers
}
}
-#if JUCE_MODULE_AVAILABLE_juce_gui_extra
+#if JUCE_MODULE_AVAILABLE_juce_gui_extra && ! JUCE_MINGW
LRESULT juce_offerEventToActiveXControl (::MSG&);
#endif
@@ -119,7 +119,7 @@ bool MessageManager::dispatchNextMessageOnSystemQueue (const bool returnIfNoPend
if (GetMessage (&m, (HWND) 0, 0, 0) >= 0)
{
- #if JUCE_MODULE_AVAILABLE_juce_gui_extra
+ #if JUCE_MODULE_AVAILABLE_juce_gui_extra && ! JUCE_MINGW
if (juce_offerEventToActiveXControl (m) != S_FALSE)
return true;
#endif
diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp
index b710d39..a98f00e 100644
--- a/modules/juce_gui_basics/juce_gui_basics.cpp
+++ b/modules/juce_gui_basics/juce_gui_basics.cpp
@@ -83,6 +83,7 @@
#if JUCE_MINGW
#include <imm.h>
+ #define JUCE_DISABLE_WIN32_DPI_AWARENESS 1
#endif
//==============================================================================
diff --git a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp
index 569c400..a390474 100644
--- a/modules/juce_gui_basics/native/juce_win32_Windowing.cpp
+++ b/modules/juce_gui_basics/native/juce_win32_Windowing.cpp
@@ -206,6 +206,10 @@ extern void* getUser32Function (const char*);
};
#endif
+#if JUCE_MINGW
+static bool canUseMultiTouch() { return false; }
+static void checkForPointerAPI() { }
+#else
typedef BOOL (WINAPI* RegisterTouchWindowFunc) (HWND, ULONG);
typedef BOOL (WINAPI* GetTouchInputInfoFunc) (HTOUCHINPUT, UINT, TOUCHINPUT*, int);
typedef BOOL (WINAPI* CloseTouchInputHandleFunc) (HTOUCHINPUT);
@@ -259,6 +263,7 @@ static void checkForPointerAPI()
&& getPointerTouchInfo != nullptr
&& getPointerPenInfo != nullptr);
}
+#endif
static Rectangle<int> rectangleFromRECT (const RECT& r) noexcept
{
@@ -1578,7 +1583,9 @@ private:
case WM_MOUSEACTIVATE:
case WM_NCMOUSEHOVER:
case WM_MOUSEHOVER:
+#if ! JUCE_MINGW
case WM_TOUCH:
+#endif
case WM_POINTERUPDATE:
case WM_NCPOINTERUPDATE:
case WM_POINTERWHEEL:
@@ -1694,8 +1701,10 @@ private:
RegisterDragDrop (hwnd, dropTarget);
+#if ! JUCE_MINGW
if (canUseMultiTouch())
registerTouchWindow (hwnd, 0);
+#endif
setDPIAwareness();
setMessageFilter();
@@ -2025,8 +2034,10 @@ private:
bool isTouchEvent() noexcept
{
+#if ! JUCE_MINGW
if (registerTouchWindow == nullptr)
return false;
+#endif
// Relevant info about touch/pen detection flags:
// https://msdn.microsoft.com/en-us/library/windows/desktop/ms703320(v=vs.85).aspx
@@ -2194,6 +2205,7 @@ private:
static MouseInputSource::InputSourceType getPointerType (WPARAM wParam)
{
+#if ! JUCE_MINGW
if (getPointerTypeFunction != nullptr)
{
POINTER_INPUT_TYPE pointerType;
@@ -2207,6 +2219,7 @@ private:
return MouseInputSource::InputSourceType::pen;
}
}
+#endif
return MouseInputSource::InputSourceType::mouse;
}
@@ -2228,6 +2241,7 @@ private:
peer->handleMouseWheel (getPointerType (wParam), localPos, getMouseEventTime(), wheel);
}
+#if ! JUCE_MINGW
bool doGestureEvent (LPARAM lParam)
{
GESTUREINFO gi;
@@ -2403,6 +2417,7 @@ private:
return touchInput;
}
+#endif
bool handlePenInput (POINTER_PEN_INFO penInfo, Point<float> pos, const float pressure, bool isDown, bool isUp)
{
@@ -2945,6 +2960,7 @@ private:
return 1;
+#if ! JUCE_MINGW
//==============================================================================
case WM_POINTERUPDATE:
if (handlePointerInput (wParam, lParam, false, false))
@@ -2960,6 +2976,7 @@ private:
if (handlePointerInput (wParam, lParam, false, true))
return 0;
break;
+#endif
//==============================================================================
case WM_MOUSEMOVE: doMouseMove (getPointFromLParam (lParam), false); return 0;
@@ -2990,6 +3007,7 @@ private:
return 0;
+#if ! JUCE_MINGW
case WM_TOUCH:
if (getTouchInputInfo != nullptr)
return doTouchEvent ((int) wParam, (HTOUCHINPUT) lParam);
@@ -3001,6 +3019,7 @@ private:
return 0;
break;
+#endif
//==============================================================================
case WM_SIZING: return handleSizeConstraining (*(RECT*) lParam, wParam);
@@ -3898,6 +3917,7 @@ static BOOL CALLBACK enumMonitorsProc (HMONITOR hm, HDC, LPRECT r, LPARAM userIn
const bool isMain = (info.dwFlags & 1 /* MONITORINFOF_PRIMARY */) != 0;
double dpi = 0;
+ #if ! JUCE_DISABLE_WIN32_DPI_AWARENESS
if (getDPIForMonitor != nullptr)
{
UINT dpiX = 0, dpiY = 0;
@@ -3905,6 +3925,7 @@ static BOOL CALLBACK enumMonitorsProc (HMONITOR hm, HDC, LPRECT r, LPARAM userIn
if (SUCCEEDED (getDPIForMonitor (hm, MDT_Default, &dpiX, &dpiY)))
dpi = (dpiX + dpiY) / 2.0;
}
+ #endif
((Array<MonitorInfo>*) userInfo)->add (MonitorInfo (rectangleFromRECT (*r), isMain, dpi));

Loading…
Cancel
Save