diff options
author | Christopher Arndt | 2020-04-04 21:46:55 +0200 |
---|---|---|
committer | Christopher Arndt | 2020-04-04 21:46:55 +0200 |
commit | 229c6230585a0ad4e5ea2c1fcbcf80c9b88f96d8 (patch) | |
tree | 245661b26011e8cdb47698744409b98385c66102 /juce-pixel.patch | |
parent | 319d20767790fbcf96aa0ec143228814534fc468 (diff) | |
download | aur-229c6230585a0ad4e5ea2c1fcbcf80c9b88f96d8.tar.gz |
Fix compile error with recent GCC; get version number from VERSION_TF4 file
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
Diffstat (limited to 'juce-pixel.patch')
-rw-r--r-- | juce-pixel.patch | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/juce-pixel.patch b/juce-pixel.patch new file mode 100644 index 000000000000..feff831a6bdf --- /dev/null +++ b/juce-pixel.patch @@ -0,0 +1,108 @@ +diff --git a/src/tunefish4/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h b/src/tunefish4/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h +index f2d8407..ca0ea53 100644 +--- a/src/tunefish4/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h ++++ b/src/tunefish4/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h +@@ -111,19 +111,6 @@ public: + forcedinline uint8 getGreen() const noexcept { return components.g; } + forcedinline uint8 getBlue() const noexcept { return components.b; } + +- #if JUCE_GCC +- // NB these are here as a workaround because GCC refuses to bind to packed values. +- forcedinline uint8& getAlpha() noexcept { return comps [indexA]; } +- forcedinline uint8& getRed() noexcept { return comps [indexR]; } +- forcedinline uint8& getGreen() noexcept { return comps [indexG]; } +- forcedinline uint8& getBlue() noexcept { return comps [indexB]; } +- #else +- forcedinline uint8& getAlpha() noexcept { return components.a; } +- forcedinline uint8& getRed() noexcept { return components.r; } +- forcedinline uint8& getGreen() noexcept { return components.g; } +- forcedinline uint8& getBlue() noexcept { return components.b; } +- #endif +- + //============================================================================== + /** Copies another pixel colour over this one. + +@@ -342,9 +329,6 @@ private: + { + uint32 internal; + Components components; +- #if JUCE_GCC +- uint8 comps[4]; // helper struct needed because gcc does not allow references to packed union members +- #endif + }; + } + #ifndef DOXYGEN +diff --git a/src/tunefish4/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h b/src/tunefish4/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h +index 18ed1c6..e06a799 100644 +--- a/src/tunefish4/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h ++++ b/src/tunefish4/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h +@@ -585,10 +585,6 @@ namespace EdgeTableFillers + { + areRGBComponentsEqual = sourceColour.getRed() == sourceColour.getGreen() + && sourceColour.getGreen() == sourceColour.getBlue(); +- filler[0].set (sourceColour); +- filler[1].set (sourceColour); +- filler[2].set (sourceColour); +- filler[3].set (sourceColour); + } + else + { +@@ -675,7 +671,6 @@ namespace EdgeTableFillers + const Image::BitmapData& destData; + PixelType* linePixels; + PixelARGB sourceColour; +- PixelRGB filler[4]; + bool areRGBComponentsEqual; + + forcedinline PixelType* getPixel (int x) const noexcept +@@ -690,47 +685,10 @@ namespace EdgeTableFillers + + forcedinline void replaceLine (PixelRGB* dest, PixelARGB colour, int width) const noexcept + { +- if (destData.pixelStride == sizeof (*dest)) +- { +- if (areRGBComponentsEqual) // if all the component values are the same, we can cheat.. +- { +- memset (dest, colour.getRed(), (size_t) width * 3); +- } +- else +- { +- if (width >> 5) +- { +- auto intFiller = reinterpret_cast<const int*> (filler); +- +- while (width > 8 && (((pointer_sized_int) dest) & 7) != 0) +- { +- dest->set (colour); +- ++dest; +- --width; +- } +- +- while (width > 4) +- { +- auto d = reinterpret_cast<int*> (dest); +- *d++ = intFiller[0]; +- *d++ = intFiller[1]; +- *d++ = intFiller[2]; +- dest = reinterpret_cast<PixelRGB*> (d); +- width -= 4; +- } +- } +- +- while (--width >= 0) +- { +- dest->set (colour); +- ++dest; +- } +- } +- } ++ if ((size_t) destData.pixelStride == sizeof (*dest) && areRGBComponentsEqual) ++ memset ((void*) dest, colour.getRed(), (size_t) width * 3); // if all the component values are the same, we can cheat.. + else +- { +- JUCE_PERFORM_PIXEL_OP_LOOP (set (colour)) +- } ++ JUCE_PERFORM_PIXEL_OP_LOOP (set (colour)); + } + + forcedinline void replaceLine (PixelAlpha* dest, const PixelARGB colour, int width) const noexcept |