| @@ -506,8 +506,16 @@ | |||||
| #define WIN32_LEAN_AND_MEAN 1 | #define WIN32_LEAN_AND_MEAN 1 | ||||
| #if JUCE_MSVC | #if JUCE_MSVC | ||||
| #pragma warning (push) | |||||
| #pragma warning (disable : 4100 4201 4514 4312 4995) | |||||
| #ifndef _CPPRTTI | |||||
| #error "You're compiling without RTTI enabled! This is needed for a lot of JUCE classes, please update your compiler settings!" | |||||
| #endif | |||||
| #ifndef _CPPUNWIND | |||||
| #error "You're compiling without exceptions enabled! This is needed for a lot of JUCE classes, please update your compiler settings!" | |||||
| #endif | |||||
| #pragma warning (push) | |||||
| #pragma warning (disable : 4100 4201 4514 4312 4995) | |||||
| #endif | #endif | ||||
| #define _WIN32_WINNT 0x0500 | #define _WIN32_WINNT 0x0500 | ||||
| @@ -33480,14 +33488,7 @@ public: | |||||
| events.realloc (size, 1); | events.realloc (size, 1); | ||||
| for (int i = numEventsAllocated; i < numEventsNeeded; ++i) | for (int i = numEventsAllocated; i < numEventsNeeded; ++i) | ||||
| { | |||||
| VstMidiEvent* const e = (VstMidiEvent*) juce_calloc (jmax ((int) sizeof (VstMidiEvent), | |||||
| (int) sizeof (VstMidiSysexEvent))); | |||||
| e->type = kVstMidiType; | |||||
| e->byteSize = sizeof (VstMidiEvent); | |||||
| events->events[i] = (VstEvent*) e; | |||||
| } | |||||
| events->events[i] = allocateVSTEvent(); | |||||
| numEventsAllocated = numEventsNeeded; | numEventsAllocated = numEventsNeeded; | ||||
| } | } | ||||
| @@ -33498,14 +33499,7 @@ public: | |||||
| if (events != nullptr) | if (events != nullptr) | ||||
| { | { | ||||
| for (int i = numEventsAllocated; --i >= 0;) | for (int i = numEventsAllocated; --i >= 0;) | ||||
| { | |||||
| VstMidiEvent* const e = (VstMidiEvent*) (events->events[i]); | |||||
| if (e->type == kVstSysExType) | |||||
| delete[] (((VstMidiSysexEvent*) e)->sysexDump); | |||||
| juce_free (e); | |||||
| } | |||||
| freeVSTEvent (events->events[i]); | |||||
| events.free(); | events.free(); | ||||
| numEventsUsed = 0; | numEventsUsed = 0; | ||||
| @@ -33517,6 +33511,23 @@ public: | |||||
| private: | private: | ||||
| int numEventsUsed, numEventsAllocated; | int numEventsUsed, numEventsAllocated; | ||||
| static VstEvent* allocateVSTEvent() | |||||
| { | |||||
| VstEvent* const e = (VstEvent*) ::calloc (1, sizeof (VstMidiEvent) > sizeof (VstMidiSysexEvent) ? sizeof (VstMidiEvent) | |||||
| : sizeof (VstMidiSysexEvent)); | |||||
| e->type = kVstMidiType; | |||||
| e->byteSize = sizeof (VstMidiEvent); | |||||
| return e; | |||||
| } | |||||
| static void freeVSTEvent (VstEvent* e) | |||||
| { | |||||
| if (e->type == kVstSysExType) | |||||
| delete[] (((VstMidiSysexEvent*) e)->sysexDump); | |||||
| ::free (e); | |||||
| } | |||||
| }; | }; | ||||
| #endif // __JUCE_VSTMIDIEVENTLIST_JUCEHEADER__ | #endif // __JUCE_VSTMIDIEVENTLIST_JUCEHEADER__ | ||||
| @@ -246256,23 +246267,6 @@ void MessageManager::broadcastMessage (const String& value) | |||||
| void MessageManager::doPlatformSpecificInitialisation() | void MessageManager::doPlatformSpecificInitialisation() | ||||
| { | { | ||||
| #if JUCE_DEBUG | |||||
| try // This section is just a safety-net for catching builds without RTTI enabled.. | |||||
| { | |||||
| MemoryOutputStream mo; | |||||
| OutputStream* o = &mo; | |||||
| // Got an exception here? Then TURN ON RTTI in your compiler settings!! | |||||
| o = dynamic_cast <MemoryOutputStream*> (o); | |||||
| jassert (o != nullptr); | |||||
| } | |||||
| catch (...) | |||||
| { | |||||
| // Ended up here? If so, TURN ON RTTI in your compiler settings!! | |||||
| jassertfalse; | |||||
| } | |||||
| #endif | |||||
| OleInitialize (0); | OleInitialize (0); | ||||
| // this name has to be different for each app/dll instance because otherwise | // this name has to be different for each app/dll instance because otherwise | ||||
| @@ -263674,10 +263668,10 @@ namespace Visuals | |||||
| if (desiredDepth == 32) | if (desiredDepth == 32) | ||||
| { | { | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| if (XSHMHelpers::isShmAvailable()) | if (XSHMHelpers::isShmAvailable()) | ||||
| { | { | ||||
| #if JUCE_USE_XRENDER | |||||
| #if JUCE_USE_XRENDER | |||||
| if (XRender::isAvailable()) | if (XRender::isAvailable()) | ||||
| { | { | ||||
| XRenderPictFormat* pictFormat = XRender::findPictureFormat(); | XRenderPictFormat* pictFormat = XRender::findPictureFormat(); | ||||
| @@ -263713,7 +263707,7 @@ namespace Visuals | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| #endif | |||||
| #endif | |||||
| if (visual == 0) | if (visual == 0) | ||||
| { | { | ||||
| visual = findVisualWithDepth (32); | visual = findVisualWithDepth (32); | ||||
| @@ -263721,7 +263715,7 @@ namespace Visuals | |||||
| matchedDepth = 32; | matchedDepth = 32; | ||||
| } | } | ||||
| } | } | ||||
| #endif | |||||
| #endif | |||||
| } | } | ||||
| if (visual == 0 && desiredDepth >= 24) | if (visual == 0 && desiredDepth >= 24) | ||||
| @@ -263759,7 +263753,7 @@ public: | |||||
| ScopedXLock xlock; | ScopedXLock xlock; | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| usingXShm = false; | usingXShm = false; | ||||
| if ((imageDepth > 16) && XSHMHelpers::isShmAvailable()) | if ((imageDepth > 16) && XSHMHelpers::isShmAvailable()) | ||||
| @@ -263804,12 +263798,12 @@ public: | |||||
| } | } | ||||
| if (! usingXShm) | if (! usingXShm) | ||||
| #endif | |||||
| #endif | |||||
| { | { | ||||
| imageDataAllocated.allocate (lineStride * h, format_ == Image::ARGB && clearImage); | imageDataAllocated.allocate (lineStride * h, format_ == Image::ARGB && clearImage); | ||||
| imageData = imageDataAllocated; | imageData = imageDataAllocated; | ||||
| xImage = (XImage*) juce_calloc (sizeof (XImage)); | |||||
| xImage = (XImage*) ::calloc (1, sizeof (XImage)); | |||||
| xImage->width = w; | xImage->width = w; | ||||
| xImage->height = h; | xImage->height = h; | ||||
| @@ -263855,7 +263849,7 @@ public: | |||||
| if (gc != None) | if (gc != None) | ||||
| XFreeGC (display, gc); | XFreeGC (display, gc); | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| if (usingXShm) | if (usingXShm) | ||||
| { | { | ||||
| XShmDetach (display, &segmentInfo); | XShmDetach (display, &segmentInfo); | ||||
| @@ -263867,7 +263861,7 @@ public: | |||||
| shmctl (segmentInfo.shmid, IPC_RMID, 0); | shmctl (segmentInfo.shmid, IPC_RMID, 0); | ||||
| } | } | ||||
| else | else | ||||
| #endif | |||||
| #endif | |||||
| { | { | ||||
| xImage->data = nullptr; | xImage->data = nullptr; | ||||
| XDestroyImage (xImage); | XDestroyImage (xImage); | ||||
| @@ -264387,9 +264381,9 @@ public: | |||||
| void toBehind (ComponentPeer* other) | void toBehind (ComponentPeer* other) | ||||
| { | { | ||||
| LinuxComponentPeer* const otherPeer = dynamic_cast <LinuxComponentPeer*> (other); | LinuxComponentPeer* const otherPeer = dynamic_cast <LinuxComponentPeer*> (other); | ||||
| jassert (otherPeer != 0); // wrong type of window? | |||||
| jassert (otherPeer != nullptr); // wrong type of window? | |||||
| if (otherPeer != 0) | |||||
| if (otherPeer != nullptr) | |||||
| { | { | ||||
| setMinimised (false); | setMinimised (false); | ||||
| @@ -265025,7 +265019,7 @@ private: | |||||
| : peer (peer_), | : peer (peer_), | ||||
| lastTimeImageUsed (0) | lastTimeImageUsed (0) | ||||
| { | { | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| shmCompletedDrawing = true; | shmCompletedDrawing = true; | ||||
| useARGBImagesForRendering = XSHMHelpers::isShmAvailable(); | useARGBImagesForRendering = XSHMHelpers::isShmAvailable(); | ||||
| @@ -265042,15 +265036,15 @@ private: | |||||
| useARGBImagesForRendering = (testImage->bits_per_pixel == 32); | useARGBImagesForRendering = (testImage->bits_per_pixel == 32); | ||||
| XDestroyImage (testImage); | XDestroyImage (testImage); | ||||
| } | } | ||||
| #endif | |||||
| #endif | |||||
| } | } | ||||
| void timerCallback() | void timerCallback() | ||||
| { | { | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| if (! shmCompletedDrawing) | if (! shmCompletedDrawing) | ||||
| return; | return; | ||||
| #endif | |||||
| #endif | |||||
| if (! regionsNeedingRepaint.isEmpty()) | if (! regionsNeedingRepaint.isEmpty()) | ||||
| { | { | ||||
| stopTimer(); | stopTimer(); | ||||
| @@ -265073,13 +265067,13 @@ private: | |||||
| void performAnyPendingRepaintsNow() | void performAnyPendingRepaintsNow() | ||||
| { | { | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| if (! shmCompletedDrawing) | if (! shmCompletedDrawing) | ||||
| { | { | ||||
| startTimer (repaintTimerPeriod); | startTimer (repaintTimerPeriod); | ||||
| return; | return; | ||||
| } | } | ||||
| #endif | |||||
| #endif | |||||
| peer->clearMaskedRegion(); | peer->clearMaskedRegion(); | ||||
| @@ -265092,12 +265086,12 @@ private: | |||||
| if (image.isNull() || image.getWidth() < totalArea.getWidth() | if (image.isNull() || image.getWidth() < totalArea.getWidth() | ||||
| || image.getHeight() < totalArea.getHeight()) | || image.getHeight() < totalArea.getHeight()) | ||||
| { | { | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| image = Image (new XBitmapImage (useARGBImagesForRendering ? Image::ARGB | image = Image (new XBitmapImage (useARGBImagesForRendering ? Image::ARGB | ||||
| : Image::RGB, | : Image::RGB, | ||||
| #else | |||||
| #else | |||||
| image = Image (new XBitmapImage (Image::RGB, | image = Image (new XBitmapImage (Image::RGB, | ||||
| #endif | |||||
| #endif | |||||
| (totalArea.getWidth() + 31) & ~31, | (totalArea.getWidth() + 31) & ~31, | ||||
| (totalArea.getHeight() + 31) & ~31, | (totalArea.getHeight() + 31) & ~31, | ||||
| false, peer->depth, peer->visual)); | false, peer->depth, peer->visual)); | ||||
| @@ -265124,9 +265118,9 @@ private: | |||||
| for (RectangleList::Iterator i (originalRepaintRegion); i.next();) | for (RectangleList::Iterator i (originalRepaintRegion); i.next();) | ||||
| { | { | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| shmCompletedDrawing = false; | shmCompletedDrawing = false; | ||||
| #endif | |||||
| #endif | |||||
| const Rectangle<int>& r = *i.getRectangle(); | const Rectangle<int>& r = *i.getRectangle(); | ||||
| static_cast<XBitmapImage*> (image.getSharedImage()) | static_cast<XBitmapImage*> (image.getSharedImage()) | ||||
| @@ -265140,9 +265134,9 @@ private: | |||||
| startTimer (repaintTimerPeriod); | startTimer (repaintTimerPeriod); | ||||
| } | } | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| void notifyPaintCompleted() { shmCompletedDrawing = true; } | void notifyPaintCompleted() { shmCompletedDrawing = true; } | ||||
| #endif | |||||
| #endif | |||||
| private: | private: | ||||
| enum { repaintTimerPeriod = 1000 / 100 }; | enum { repaintTimerPeriod = 1000 / 100 }; | ||||
| @@ -265152,9 +265146,9 @@ private: | |||||
| uint32 lastTimeImageUsed; | uint32 lastTimeImageUsed; | ||||
| RectangleList regionsNeedingRepaint; | RectangleList regionsNeedingRepaint; | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| bool useARGBImagesForRendering, shmCompletedDrawing; | bool useARGBImagesForRendering, shmCompletedDrawing; | ||||
| #endif | |||||
| #endif | |||||
| JUCE_DECLARE_NON_COPYABLE (LinuxRepaintManager); | JUCE_DECLARE_NON_COPYABLE (LinuxRepaintManager); | ||||
| }; | }; | ||||
| @@ -265193,9 +265187,9 @@ private: | |||||
| { | { | ||||
| int keyMods = 0; | int keyMods = 0; | ||||
| if (status & ShiftMask) keyMods |= ModifierKeys::shiftModifier; | |||||
| if (status & ControlMask) keyMods |= ModifierKeys::ctrlModifier; | |||||
| if (status & Keys::AltMask) keyMods |= ModifierKeys::altModifier; | |||||
| if ((status & ShiftMask) != 0) keyMods |= ModifierKeys::shiftModifier; | |||||
| if ((status & ControlMask) != 0) keyMods |= ModifierKeys::ctrlModifier; | |||||
| if ((status & Keys::AltMask) != 0) keyMods |= ModifierKeys::altModifier; | |||||
| currentModifiers = currentModifiers.withOnlyMouseButtons().withFlags (keyMods); | currentModifiers = currentModifiers.withOnlyMouseButtons().withFlags (keyMods); | ||||
| @@ -73,7 +73,7 @@ namespace JuceDummyNamespace {} | |||||
| */ | */ | ||||
| #define JUCE_MAJOR_VERSION 1 | #define JUCE_MAJOR_VERSION 1 | ||||
| #define JUCE_MINOR_VERSION 53 | #define JUCE_MINOR_VERSION 53 | ||||
| #define JUCE_BUILDNUMBER 86 | |||||
| #define JUCE_BUILDNUMBER 87 | |||||
| /** Current Juce version number. | /** Current Juce version number. | ||||
| @@ -46201,14 +46201,7 @@ public: | |||||
| events.realloc (size, 1); | events.realloc (size, 1); | ||||
| for (int i = numEventsAllocated; i < numEventsNeeded; ++i) | for (int i = numEventsAllocated; i < numEventsNeeded; ++i) | ||||
| { | |||||
| VstMidiEvent* const e = (VstMidiEvent*) juce_calloc (jmax ((int) sizeof (VstMidiEvent), | |||||
| (int) sizeof (VstMidiSysexEvent))); | |||||
| e->type = kVstMidiType; | |||||
| e->byteSize = sizeof (VstMidiEvent); | |||||
| events->events[i] = (VstEvent*) e; | |||||
| } | |||||
| events->events[i] = allocateVSTEvent(); | |||||
| numEventsAllocated = numEventsNeeded; | numEventsAllocated = numEventsNeeded; | ||||
| } | } | ||||
| @@ -46219,14 +46212,7 @@ public: | |||||
| if (events != nullptr) | if (events != nullptr) | ||||
| { | { | ||||
| for (int i = numEventsAllocated; --i >= 0;) | for (int i = numEventsAllocated; --i >= 0;) | ||||
| { | |||||
| VstMidiEvent* const e = (VstMidiEvent*) (events->events[i]); | |||||
| if (e->type == kVstSysExType) | |||||
| delete[] (((VstMidiSysexEvent*) e)->sysexDump); | |||||
| juce_free (e); | |||||
| } | |||||
| freeVSTEvent (events->events[i]); | |||||
| events.free(); | events.free(); | ||||
| numEventsUsed = 0; | numEventsUsed = 0; | ||||
| @@ -46238,6 +46224,23 @@ public: | |||||
| private: | private: | ||||
| int numEventsUsed, numEventsAllocated; | int numEventsUsed, numEventsAllocated; | ||||
| static VstEvent* allocateVSTEvent() | |||||
| { | |||||
| VstEvent* const e = (VstEvent*) ::calloc (1, sizeof (VstMidiEvent) > sizeof (VstMidiSysexEvent) ? sizeof (VstMidiEvent) | |||||
| : sizeof (VstMidiSysexEvent)); | |||||
| e->type = kVstMidiType; | |||||
| e->byteSize = sizeof (VstMidiEvent); | |||||
| return e; | |||||
| } | |||||
| static void freeVSTEvent (VstEvent* e) | |||||
| { | |||||
| if (e->type == kVstSysExType) | |||||
| delete[] (((VstMidiSysexEvent*) e)->sysexDump); | |||||
| ::free (e); | |||||
| } | |||||
| }; | }; | ||||
| #endif // __JUCE_VSTMIDIEVENTLIST_JUCEHEADER__ | #endif // __JUCE_VSTMIDIEVENTLIST_JUCEHEADER__ | ||||
| @@ -142,14 +142,7 @@ public: | |||||
| events.realloc (size, 1); | events.realloc (size, 1); | ||||
| for (int i = numEventsAllocated; i < numEventsNeeded; ++i) | for (int i = numEventsAllocated; i < numEventsNeeded; ++i) | ||||
| { | |||||
| VstMidiEvent* const e = (VstMidiEvent*) juce_calloc (jmax ((int) sizeof (VstMidiEvent), | |||||
| (int) sizeof (VstMidiSysexEvent))); | |||||
| e->type = kVstMidiType; | |||||
| e->byteSize = sizeof (VstMidiEvent); | |||||
| events->events[i] = (VstEvent*) e; | |||||
| } | |||||
| events->events[i] = allocateVSTEvent(); | |||||
| numEventsAllocated = numEventsNeeded; | numEventsAllocated = numEventsNeeded; | ||||
| } | } | ||||
| @@ -160,14 +153,7 @@ public: | |||||
| if (events != nullptr) | if (events != nullptr) | ||||
| { | { | ||||
| for (int i = numEventsAllocated; --i >= 0;) | for (int i = numEventsAllocated; --i >= 0;) | ||||
| { | |||||
| VstMidiEvent* const e = (VstMidiEvent*) (events->events[i]); | |||||
| if (e->type == kVstSysExType) | |||||
| delete[] (((VstMidiSysexEvent*) e)->sysexDump); | |||||
| juce_free (e); | |||||
| } | |||||
| freeVSTEvent (events->events[i]); | |||||
| events.free(); | events.free(); | ||||
| numEventsUsed = 0; | numEventsUsed = 0; | ||||
| @@ -180,6 +166,23 @@ public: | |||||
| private: | private: | ||||
| int numEventsUsed, numEventsAllocated; | int numEventsUsed, numEventsAllocated; | ||||
| static VstEvent* allocateVSTEvent() | |||||
| { | |||||
| VstEvent* const e = (VstEvent*) ::calloc (1, sizeof (VstMidiEvent) > sizeof (VstMidiSysexEvent) ? sizeof (VstMidiEvent) | |||||
| : sizeof (VstMidiSysexEvent)); | |||||
| e->type = kVstMidiType; | |||||
| e->byteSize = sizeof (VstMidiEvent); | |||||
| return e; | |||||
| } | |||||
| static void freeVSTEvent (VstEvent* e) | |||||
| { | |||||
| if (e->type == kVstSysExType) | |||||
| delete[] (((VstMidiSysexEvent*) e)->sysexDump); | |||||
| ::free (e); | |||||
| } | |||||
| }; | }; | ||||
| @@ -33,7 +33,7 @@ | |||||
| */ | */ | ||||
| #define JUCE_MAJOR_VERSION 1 | #define JUCE_MAJOR_VERSION 1 | ||||
| #define JUCE_MINOR_VERSION 53 | #define JUCE_MINOR_VERSION 53 | ||||
| #define JUCE_BUILDNUMBER 86 | |||||
| #define JUCE_BUILDNUMBER 87 | |||||
| /** Current Juce version number. | /** Current Juce version number. | ||||
| @@ -373,10 +373,10 @@ namespace Visuals | |||||
| if (desiredDepth == 32) | if (desiredDepth == 32) | ||||
| { | { | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| if (XSHMHelpers::isShmAvailable()) | if (XSHMHelpers::isShmAvailable()) | ||||
| { | { | ||||
| #if JUCE_USE_XRENDER | |||||
| #if JUCE_USE_XRENDER | |||||
| if (XRender::isAvailable()) | if (XRender::isAvailable()) | ||||
| { | { | ||||
| XRenderPictFormat* pictFormat = XRender::findPictureFormat(); | XRenderPictFormat* pictFormat = XRender::findPictureFormat(); | ||||
| @@ -412,7 +412,7 @@ namespace Visuals | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| #endif | |||||
| #endif | |||||
| if (visual == 0) | if (visual == 0) | ||||
| { | { | ||||
| visual = findVisualWithDepth (32); | visual = findVisualWithDepth (32); | ||||
| @@ -420,7 +420,7 @@ namespace Visuals | |||||
| matchedDepth = 32; | matchedDepth = 32; | ||||
| } | } | ||||
| } | } | ||||
| #endif | |||||
| #endif | |||||
| } | } | ||||
| if (visual == 0 && desiredDepth >= 24) | if (visual == 0 && desiredDepth >= 24) | ||||
| @@ -459,7 +459,7 @@ public: | |||||
| ScopedXLock xlock; | ScopedXLock xlock; | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| usingXShm = false; | usingXShm = false; | ||||
| if ((imageDepth > 16) && XSHMHelpers::isShmAvailable()) | if ((imageDepth > 16) && XSHMHelpers::isShmAvailable()) | ||||
| @@ -504,12 +504,12 @@ public: | |||||
| } | } | ||||
| if (! usingXShm) | if (! usingXShm) | ||||
| #endif | |||||
| #endif | |||||
| { | { | ||||
| imageDataAllocated.allocate (lineStride * h, format_ == Image::ARGB && clearImage); | imageDataAllocated.allocate (lineStride * h, format_ == Image::ARGB && clearImage); | ||||
| imageData = imageDataAllocated; | imageData = imageDataAllocated; | ||||
| xImage = (XImage*) juce_calloc (sizeof (XImage)); | |||||
| xImage = (XImage*) ::calloc (1, sizeof (XImage)); | |||||
| xImage->width = w; | xImage->width = w; | ||||
| xImage->height = h; | xImage->height = h; | ||||
| @@ -555,7 +555,7 @@ public: | |||||
| if (gc != None) | if (gc != None) | ||||
| XFreeGC (display, gc); | XFreeGC (display, gc); | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| if (usingXShm) | if (usingXShm) | ||||
| { | { | ||||
| XShmDetach (display, &segmentInfo); | XShmDetach (display, &segmentInfo); | ||||
| @@ -567,7 +567,7 @@ public: | |||||
| shmctl (segmentInfo.shmid, IPC_RMID, 0); | shmctl (segmentInfo.shmid, IPC_RMID, 0); | ||||
| } | } | ||||
| else | else | ||||
| #endif | |||||
| #endif | |||||
| { | { | ||||
| xImage->data = nullptr; | xImage->data = nullptr; | ||||
| XDestroyImage (xImage); | XDestroyImage (xImage); | ||||
| @@ -1091,9 +1091,9 @@ public: | |||||
| void toBehind (ComponentPeer* other) | void toBehind (ComponentPeer* other) | ||||
| { | { | ||||
| LinuxComponentPeer* const otherPeer = dynamic_cast <LinuxComponentPeer*> (other); | LinuxComponentPeer* const otherPeer = dynamic_cast <LinuxComponentPeer*> (other); | ||||
| jassert (otherPeer != 0); // wrong type of window? | |||||
| jassert (otherPeer != nullptr); // wrong type of window? | |||||
| if (otherPeer != 0) | |||||
| if (otherPeer != nullptr) | |||||
| { | { | ||||
| setMinimised (false); | setMinimised (false); | ||||
| @@ -1733,7 +1733,7 @@ private: | |||||
| : peer (peer_), | : peer (peer_), | ||||
| lastTimeImageUsed (0) | lastTimeImageUsed (0) | ||||
| { | { | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| shmCompletedDrawing = true; | shmCompletedDrawing = true; | ||||
| useARGBImagesForRendering = XSHMHelpers::isShmAvailable(); | useARGBImagesForRendering = XSHMHelpers::isShmAvailable(); | ||||
| @@ -1750,15 +1750,15 @@ private: | |||||
| useARGBImagesForRendering = (testImage->bits_per_pixel == 32); | useARGBImagesForRendering = (testImage->bits_per_pixel == 32); | ||||
| XDestroyImage (testImage); | XDestroyImage (testImage); | ||||
| } | } | ||||
| #endif | |||||
| #endif | |||||
| } | } | ||||
| void timerCallback() | void timerCallback() | ||||
| { | { | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| if (! shmCompletedDrawing) | if (! shmCompletedDrawing) | ||||
| return; | return; | ||||
| #endif | |||||
| #endif | |||||
| if (! regionsNeedingRepaint.isEmpty()) | if (! regionsNeedingRepaint.isEmpty()) | ||||
| { | { | ||||
| stopTimer(); | stopTimer(); | ||||
| @@ -1781,13 +1781,13 @@ private: | |||||
| void performAnyPendingRepaintsNow() | void performAnyPendingRepaintsNow() | ||||
| { | { | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| if (! shmCompletedDrawing) | if (! shmCompletedDrawing) | ||||
| { | { | ||||
| startTimer (repaintTimerPeriod); | startTimer (repaintTimerPeriod); | ||||
| return; | return; | ||||
| } | } | ||||
| #endif | |||||
| #endif | |||||
| peer->clearMaskedRegion(); | peer->clearMaskedRegion(); | ||||
| @@ -1800,12 +1800,12 @@ private: | |||||
| if (image.isNull() || image.getWidth() < totalArea.getWidth() | if (image.isNull() || image.getWidth() < totalArea.getWidth() | ||||
| || image.getHeight() < totalArea.getHeight()) | || image.getHeight() < totalArea.getHeight()) | ||||
| { | { | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| image = Image (new XBitmapImage (useARGBImagesForRendering ? Image::ARGB | image = Image (new XBitmapImage (useARGBImagesForRendering ? Image::ARGB | ||||
| : Image::RGB, | : Image::RGB, | ||||
| #else | |||||
| #else | |||||
| image = Image (new XBitmapImage (Image::RGB, | image = Image (new XBitmapImage (Image::RGB, | ||||
| #endif | |||||
| #endif | |||||
| (totalArea.getWidth() + 31) & ~31, | (totalArea.getWidth() + 31) & ~31, | ||||
| (totalArea.getHeight() + 31) & ~31, | (totalArea.getHeight() + 31) & ~31, | ||||
| false, peer->depth, peer->visual)); | false, peer->depth, peer->visual)); | ||||
| @@ -1832,9 +1832,9 @@ private: | |||||
| for (RectangleList::Iterator i (originalRepaintRegion); i.next();) | for (RectangleList::Iterator i (originalRepaintRegion); i.next();) | ||||
| { | { | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| shmCompletedDrawing = false; | shmCompletedDrawing = false; | ||||
| #endif | |||||
| #endif | |||||
| const Rectangle<int>& r = *i.getRectangle(); | const Rectangle<int>& r = *i.getRectangle(); | ||||
| static_cast<XBitmapImage*> (image.getSharedImage()) | static_cast<XBitmapImage*> (image.getSharedImage()) | ||||
| @@ -1848,9 +1848,9 @@ private: | |||||
| startTimer (repaintTimerPeriod); | startTimer (repaintTimerPeriod); | ||||
| } | } | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| void notifyPaintCompleted() { shmCompletedDrawing = true; } | void notifyPaintCompleted() { shmCompletedDrawing = true; } | ||||
| #endif | |||||
| #endif | |||||
| private: | private: | ||||
| enum { repaintTimerPeriod = 1000 / 100 }; | enum { repaintTimerPeriod = 1000 / 100 }; | ||||
| @@ -1860,9 +1860,9 @@ private: | |||||
| uint32 lastTimeImageUsed; | uint32 lastTimeImageUsed; | ||||
| RectangleList regionsNeedingRepaint; | RectangleList regionsNeedingRepaint; | ||||
| #if JUCE_USE_XSHM | |||||
| #if JUCE_USE_XSHM | |||||
| bool useARGBImagesForRendering, shmCompletedDrawing; | bool useARGBImagesForRendering, shmCompletedDrawing; | ||||
| #endif | |||||
| #endif | |||||
| JUCE_DECLARE_NON_COPYABLE (LinuxRepaintManager); | JUCE_DECLARE_NON_COPYABLE (LinuxRepaintManager); | ||||
| }; | }; | ||||
| @@ -1901,9 +1901,9 @@ private: | |||||
| { | { | ||||
| int keyMods = 0; | int keyMods = 0; | ||||
| if (status & ShiftMask) keyMods |= ModifierKeys::shiftModifier; | |||||
| if (status & ControlMask) keyMods |= ModifierKeys::ctrlModifier; | |||||
| if (status & Keys::AltMask) keyMods |= ModifierKeys::altModifier; | |||||
| if ((status & ShiftMask) != 0) keyMods |= ModifierKeys::shiftModifier; | |||||
| if ((status & ControlMask) != 0) keyMods |= ModifierKeys::ctrlModifier; | |||||
| if ((status & Keys::AltMask) != 0) keyMods |= ModifierKeys::altModifier; | |||||
| currentModifiers = currentModifiers.withOnlyMouseButtons().withFlags (keyMods); | currentModifiers = currentModifiers.withOnlyMouseButtons().withFlags (keyMods); | ||||
| @@ -257,23 +257,6 @@ void MessageManager::broadcastMessage (const String& value) | |||||
| //============================================================================== | //============================================================================== | ||||
| void MessageManager::doPlatformSpecificInitialisation() | void MessageManager::doPlatformSpecificInitialisation() | ||||
| { | { | ||||
| #if JUCE_DEBUG | |||||
| try // This section is just a safety-net for catching builds without RTTI enabled.. | |||||
| { | |||||
| MemoryOutputStream mo; | |||||
| OutputStream* o = &mo; | |||||
| // Got an exception here? Then TURN ON RTTI in your compiler settings!! | |||||
| o = dynamic_cast <MemoryOutputStream*> (o); | |||||
| jassert (o != nullptr); | |||||
| } | |||||
| catch (...) | |||||
| { | |||||
| // Ended up here? If so, TURN ON RTTI in your compiler settings!! | |||||
| jassertfalse; | |||||
| } | |||||
| #endif | |||||
| OleInitialize (0); | OleInitialize (0); | ||||
| // this name has to be different for each app/dll instance because otherwise | // this name has to be different for each app/dll instance because otherwise | ||||
| @@ -39,8 +39,16 @@ | |||||
| #define WIN32_LEAN_AND_MEAN 1 | #define WIN32_LEAN_AND_MEAN 1 | ||||
| #if JUCE_MSVC | #if JUCE_MSVC | ||||
| #pragma warning (push) | |||||
| #pragma warning (disable : 4100 4201 4514 4312 4995) | |||||
| #ifndef _CPPRTTI | |||||
| #error "You're compiling without RTTI enabled! This is needed for a lot of JUCE classes, please update your compiler settings!" | |||||
| #endif | |||||
| #ifndef _CPPUNWIND | |||||
| #error "You're compiling without exceptions enabled! This is needed for a lot of JUCE classes, please update your compiler settings!" | |||||
| #endif | |||||
| #pragma warning (push) | |||||
| #pragma warning (disable : 4100 4201 4514 4312 4995) | |||||
| #endif | #endif | ||||
| #define _WIN32_WINNT 0x0500 | #define _WIN32_WINNT 0x0500 | ||||