mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-14 00:14:18 +00:00
Workaround for OSX tiled image rendering bug. Mingw atomics fix. Fix for compiling atomics on 10.4. Added a 'new folder' button to the directory chooser on Mac.
This commit is contained in:
parent
5153493b46
commit
91eeebda2f
7 changed files with 40 additions and 17 deletions
|
|
@ -21,6 +21,10 @@
|
|||
8414DE8511122A8D00DAF75A /* juce_DynamicObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8414DE8311122A8D00DAF75A /* juce_DynamicObject.h */; };
|
||||
843D4A3B10D3C54500624BA6 /* juce_ValueTree.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 843D4A3910D3C54500624BA6 /* juce_ValueTree.cpp */; };
|
||||
843D4A3C10D3C54500624BA6 /* juce_ValueTree.h in Headers */ = {isa = PBXBuildFile; fileRef = 843D4A3A10D3C54500624BA6 /* juce_ValueTree.h */; };
|
||||
843E5C6F1113949F006F959F /* juce_NamedValueSet.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8414DE76111229B300DAF75A /* juce_NamedValueSet.cpp */; };
|
||||
843E5C701113949F006F959F /* juce_NamedValueSet.h in Headers */ = {isa = PBXBuildFile; fileRef = 8414DE77111229B300DAF75A /* juce_NamedValueSet.h */; };
|
||||
843E5C71111394A2006F959F /* juce_DynamicObject.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8414DE8211122A8D00DAF75A /* juce_DynamicObject.cpp */; };
|
||||
843E5C72111394A3006F959F /* juce_DynamicObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 8414DE8311122A8D00DAF75A /* juce_DynamicObject.h */; };
|
||||
844BB95B10C5578800DF5536 /* juce_TargetPlatform.h in Headers */ = {isa = PBXBuildFile; fileRef = 8481730E10832513008FEC33 /* juce_TargetPlatform.h */; };
|
||||
844BB95C10C5579A00DF5536 /* juce_FillType.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 84F29A9D10C2EFA5005014DF /* juce_FillType.cpp */; };
|
||||
844BB95D10C5579B00DF5536 /* juce_FillType.h in Headers */ = {isa = PBXBuildFile; fileRef = 84F29A9E10C2EFA5005014DF /* juce_FillType.h */; };
|
||||
|
|
@ -3244,6 +3248,8 @@
|
|||
84AF419B10F0008E0035D74F /* juce_ScopedPointer.h in Headers */,
|
||||
84842F9610F6559400490977 /* juce_Value.h in Headers */,
|
||||
84CAC0C1110478D50088D64D /* juce_TemporaryFile.h in Headers */,
|
||||
843E5C701113949F006F959F /* juce_NamedValueSet.h in Headers */,
|
||||
843E5C72111394A3006F959F /* juce_DynamicObject.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -3923,6 +3929,8 @@
|
|||
84B2053F10D535EC008B4A79 /* juce_ValueTree.cpp in Sources */,
|
||||
84842F9510F6559300490977 /* juce_Value.cpp in Sources */,
|
||||
84CAC0C0110478D50088D64D /* juce_TemporaryFile.cpp in Sources */,
|
||||
843E5C6F1113949F006F959F /* juce_NamedValueSet.cpp in Sources */,
|
||||
843E5C71111394A2006F959F /* juce_DynamicObject.cpp in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -212367,7 +212367,7 @@ int SystemStats::getPageSize() throw()
|
|||
extern HWND juce_messageWindowHandle;
|
||||
#endif
|
||||
|
||||
#if ! (JUCE_USE_INTRINSICS || JUCE_GCC)
|
||||
#if ! JUCE_USE_INTRINSICS
|
||||
// In newer compilers, the inline versions of these are used (in juce_Atomic.h), but in
|
||||
// older ones we have to actually call the ops as win32 functions..
|
||||
void Atomic::increment (int32& variable) { InterlockedIncrement (reinterpret_cast <volatile long*> (&variable)); }
|
||||
|
|
@ -240472,7 +240472,9 @@ public:
|
|||
CGContextDrawTiledImage (context, imageRect, image);
|
||||
#else
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
if (CGContextDrawTiledImage != 0)
|
||||
// There's a bug in CGContextDrawTiledImage that makes it incredibly slow
|
||||
// if it's doing a transformation - it's quicker to just draw lots of images manually
|
||||
if (CGContextDrawTiledImage != 0 && transform.isOnlyTranslation())
|
||||
CGContextDrawTiledImage (context, imageRect, image);
|
||||
else
|
||||
#endif
|
||||
|
|
@ -241996,6 +241998,9 @@ void FileChooser::showPlatformDialog (Array<File>& results,
|
|||
|
||||
[panel setDelegate: delegate];
|
||||
|
||||
if (isSaveDialogue || selectsDirectory)
|
||||
[panel setCanCreateDirectories: YES];
|
||||
|
||||
String directory, filename;
|
||||
|
||||
if (currentFileOrDirectory.isDirectory())
|
||||
|
|
@ -244894,7 +244899,9 @@ public:
|
|||
CGContextDrawTiledImage (context, imageRect, image);
|
||||
#else
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
if (CGContextDrawTiledImage != 0)
|
||||
// There's a bug in CGContextDrawTiledImage that makes it incredibly slow
|
||||
// if it's doing a transformation - it's quicker to just draw lots of images manually
|
||||
if (CGContextDrawTiledImage != 0 && transform.isOnlyTranslation())
|
||||
CGContextDrawTiledImage (context, imageRect, image);
|
||||
else
|
||||
#endif
|
||||
|
|
@ -248196,6 +248203,9 @@ void FileChooser::showPlatformDialog (Array<File>& results,
|
|||
|
||||
[panel setDelegate: delegate];
|
||||
|
||||
if (isSaveDialogue || selectsDirectory)
|
||||
[panel setCanCreateDirectories: YES];
|
||||
|
||||
String directory, filename;
|
||||
|
||||
if (currentFileOrDirectory.isDirectory())
|
||||
|
|
|
|||
|
|
@ -3100,14 +3100,14 @@ public:
|
|||
|
||||
#if (JUCE_MAC || JUCE_IPHONE) // Mac and iPhone...
|
||||
|
||||
inline void Atomic::increment (int32& variable) { OSAtomicIncrement32 ((volatile int32_t*) &variable); }
|
||||
inline int32 Atomic::incrementAndReturn (int32& variable) { return OSAtomicIncrement32 ((volatile int32_t*) &variable); }
|
||||
inline void Atomic::decrement (int32& variable) { OSAtomicDecrement32 ((volatile int32_t*) &variable); }
|
||||
inline int32 Atomic::decrementAndReturn (int32& variable) { return OSAtomicDecrement32 ((volatile int32_t*) &variable); }
|
||||
inline void Atomic::increment (int32& variable) { OSAtomicIncrement32 ((int32_t*) &variable); }
|
||||
inline int32 Atomic::incrementAndReturn (int32& variable) { return OSAtomicIncrement32 ((int32_t*) &variable); }
|
||||
inline void Atomic::decrement (int32& variable) { OSAtomicDecrement32 ((int32_t*) &variable); }
|
||||
inline int32 Atomic::decrementAndReturn (int32& variable) { return OSAtomicDecrement32 ((int32_t*) &variable); }
|
||||
inline int32 Atomic::compareAndExchange (int32& destination, int32 newValue, int32 oldValue)
|
||||
{ return OSAtomicCompareAndSwap32Barrier (oldValue, newValue, (volatile int32_t*) &destination); }
|
||||
{ return OSAtomicCompareAndSwap32Barrier (oldValue, newValue, (int32_t*) &destination); }
|
||||
|
||||
#elif JUCE_GCC // Linux...
|
||||
#elif JUCE_LINUX // Linux...
|
||||
|
||||
inline void Atomic::increment (int32& variable) { __sync_add_and_fetch (&variable, 1); }
|
||||
inline int32 Atomic::incrementAndReturn (int32& variable) { return __sync_add_and_fetch (&variable, 1); }
|
||||
|
|
|
|||
|
|
@ -56,14 +56,14 @@ public:
|
|||
//==============================================================================
|
||||
#if (JUCE_MAC || JUCE_IPHONE) // Mac and iPhone...
|
||||
|
||||
inline void Atomic::increment (int32& variable) { OSAtomicIncrement32 ((volatile int32_t*) &variable); }
|
||||
inline int32 Atomic::incrementAndReturn (int32& variable) { return OSAtomicIncrement32 ((volatile int32_t*) &variable); }
|
||||
inline void Atomic::decrement (int32& variable) { OSAtomicDecrement32 ((volatile int32_t*) &variable); }
|
||||
inline int32 Atomic::decrementAndReturn (int32& variable) { return OSAtomicDecrement32 ((volatile int32_t*) &variable); }
|
||||
inline void Atomic::increment (int32& variable) { OSAtomicIncrement32 ((int32_t*) &variable); }
|
||||
inline int32 Atomic::incrementAndReturn (int32& variable) { return OSAtomicIncrement32 ((int32_t*) &variable); }
|
||||
inline void Atomic::decrement (int32& variable) { OSAtomicDecrement32 ((int32_t*) &variable); }
|
||||
inline int32 Atomic::decrementAndReturn (int32& variable) { return OSAtomicDecrement32 ((int32_t*) &variable); }
|
||||
inline int32 Atomic::compareAndExchange (int32& destination, int32 newValue, int32 oldValue)
|
||||
{ return OSAtomicCompareAndSwap32Barrier (oldValue, newValue, (volatile int32_t*) &destination); }
|
||||
{ return OSAtomicCompareAndSwap32Barrier (oldValue, newValue, (int32_t*) &destination); }
|
||||
|
||||
#elif JUCE_GCC // Linux...
|
||||
#elif JUCE_LINUX // Linux...
|
||||
|
||||
//==============================================================================
|
||||
inline void Atomic::increment (int32& variable) { __sync_add_and_fetch (&variable, 1); }
|
||||
|
|
|
|||
|
|
@ -402,7 +402,9 @@ public:
|
|||
CGContextDrawTiledImage (context, imageRect, image);
|
||||
#else
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5
|
||||
if (CGContextDrawTiledImage != 0)
|
||||
// There's a bug in CGContextDrawTiledImage that makes it incredibly slow
|
||||
// if it's doing a transformation - it's quicker to just draw lots of images manually
|
||||
if (CGContextDrawTiledImage != 0 && transform.isOnlyTranslation())
|
||||
CGContextDrawTiledImage (context, imageRect, image);
|
||||
else
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -115,6 +115,9 @@ void FileChooser::showPlatformDialog (Array<File>& results,
|
|||
|
||||
[panel setDelegate: delegate];
|
||||
|
||||
if (isSaveDialogue || selectsDirectory)
|
||||
[panel setCanCreateDirectories: YES];
|
||||
|
||||
String directory, filename;
|
||||
|
||||
if (currentFileOrDirectory.isDirectory())
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
#endif
|
||||
|
||||
//==============================================================================
|
||||
#if ! (JUCE_USE_INTRINSICS || JUCE_GCC)
|
||||
#if ! JUCE_USE_INTRINSICS
|
||||
// In newer compilers, the inline versions of these are used (in juce_Atomic.h), but in
|
||||
// older ones we have to actually call the ops as win32 functions..
|
||||
void Atomic::increment (int32& variable) { InterlockedIncrement (reinterpret_cast <volatile long*> (&variable)); }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue