mirror of
https://github.com/schnitzeltony/meta-musicians.git
synced 2026-01-30 01:28:40 +01:00
distrho-ports: fix build with gcc9
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
This commit is contained in:
@@ -12,6 +12,7 @@ SRC_URI = " \
|
||||
file://0002-Refine-Plugin-do-not-include-xmmintrin.h.patch \
|
||||
file://0003-Fix-build-with-musl-by-removing-unused-SystemStats-g.patch \
|
||||
file://0004-Further-musl-fix-by-removal-of-unused-function.patch \
|
||||
file://0005-Fix-build-with-gcc9.patch \
|
||||
\
|
||||
http://linuxsynths.com/ObxdPatchesDemos/ObxdPatchesBrian-01.tar.gz;name=linuxsynths-obxd-patches1;subdir=linuxsynths-obxd-patches \
|
||||
\
|
||||
|
||||
@@ -0,0 +1,163 @@
|
||||
From cee14bbe5a46de8cf0941b10686e84c30f7eaf76 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
|
||||
Date: Thu, 1 Aug 2019 22:29:06 +0200
|
||||
Subject: [PATCH] Fix build with gcc9
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Ported from [1]
|
||||
|
||||
[1] https://github.com/WeAreROLI/JUCE/commit/4e0adb2af8b424c43d22bd431011c9a6c57d36b6
|
||||
|
||||
Upstream-Status: Submitted [1]
|
||||
|
||||
[2] https://github.com/DISTRHO/DISTRHO-Ports/pull/42
|
||||
|
||||
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
|
||||
---
|
||||
.../juce_graphics/colour/juce_PixelFormats.h | 33 +++-----------
|
||||
.../native/juce_RenderingHelpers.h | 44 +------------------
|
||||
2 files changed, 8 insertions(+), 69 deletions(-)
|
||||
|
||||
diff --git a/libs/juce/source/modules/juce_graphics/colour/juce_PixelFormats.h b/libs/juce/source/modules/juce_graphics/colour/juce_PixelFormats.h
|
||||
index cb0867cf..dea97a6b 100644
|
||||
--- a/libs/juce/source/modules/juce_graphics/colour/juce_PixelFormats.h
|
||||
+++ b/libs/juce/source/modules/juce_graphics/colour/juce_PixelFormats.h
|
||||
@@ -105,22 +105,9 @@ public:
|
||||
|
||||
//==============================================================================
|
||||
forcedinline uint8 getAlpha() const noexcept { return components.a; }
|
||||
- forcedinline uint8 getRed() const noexcept { return components.r; }
|
||||
+ forcedinline uint8 getRed() const noexcept { return components.r; }
|
||||
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
|
||||
+ forcedinline uint8 getBlue() const noexcept { return components.b; }
|
||||
|
||||
//==============================================================================
|
||||
/** Copies another pixel colour over this one.
|
||||
@@ -340,9 +327,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
|
||||
@@ -425,13 +409,9 @@ public:
|
||||
|
||||
//==============================================================================
|
||||
forcedinline uint8 getAlpha() const noexcept { return 0xff; }
|
||||
- forcedinline uint8 getRed() const noexcept { return r; }
|
||||
+ forcedinline uint8 getRed() const noexcept { return r; }
|
||||
forcedinline uint8 getGreen() const noexcept { return g; }
|
||||
- forcedinline uint8 getBlue() const noexcept { return b; }
|
||||
-
|
||||
- forcedinline uint8& getRed() noexcept { return r; }
|
||||
- forcedinline uint8& getGreen() noexcept { return g; }
|
||||
- forcedinline uint8& getBlue() noexcept { return b; }
|
||||
+ forcedinline uint8 getBlue() const noexcept { return b; }
|
||||
|
||||
//==============================================================================
|
||||
/** Copies another pixel colour over this one.
|
||||
@@ -646,11 +626,10 @@ public:
|
||||
|
||||
//==============================================================================
|
||||
forcedinline uint8 getAlpha() const noexcept { return a; }
|
||||
- forcedinline uint8& getAlpha() noexcept { return a; }
|
||||
|
||||
- forcedinline uint8 getRed() const noexcept { return 0; }
|
||||
+ forcedinline uint8 getRed() const noexcept { return 0; }
|
||||
forcedinline uint8 getGreen() const noexcept { return 0; }
|
||||
- forcedinline uint8 getBlue() const noexcept { return 0; }
|
||||
+ forcedinline uint8 getBlue() const noexcept { return 0; }
|
||||
|
||||
//==============================================================================
|
||||
/** Copies another pixel colour over this one.
|
||||
diff --git a/libs/juce/source/modules/juce_graphics/native/juce_RenderingHelpers.h b/libs/juce/source/modules/juce_graphics/native/juce_RenderingHelpers.h
|
||||
index e552758b..6dd943fb 100644
|
||||
--- a/libs/juce/source/modules/juce_graphics/native/juce_RenderingHelpers.h
|
||||
+++ b/libs/juce/source/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
|
||||
{
|
||||
@@ -644,7 +640,6 @@ namespace EdgeTableFillers
|
||||
const Image::BitmapData& destData;
|
||||
PixelType* linePixels;
|
||||
PixelARGB sourceColour;
|
||||
- PixelRGB filler [4];
|
||||
bool areRGBComponentsEqual;
|
||||
|
||||
forcedinline PixelType* getPixel (const int x) const noexcept
|
||||
@@ -659,43 +654,8 @@ namespace EdgeTableFillers
|
||||
|
||||
forcedinline void replaceLine (PixelRGB* dest, const 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)
|
||||
- {
|
||||
- const int* const intFiller = reinterpret_cast<const int*> (filler);
|
||||
-
|
||||
- while (width > 8 && (((pointer_sized_int) dest) & 7) != 0)
|
||||
- {
|
||||
- dest->set (colour);
|
||||
- ++dest;
|
||||
- --width;
|
||||
- }
|
||||
-
|
||||
- while (width > 4)
|
||||
- {
|
||||
- int* 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))
|
||||
--
|
||||
2.21.0
|
||||
|
||||
Reference in New Issue
Block a user