aboutsummaryrefslogtreecommitdiffstats
path: root/emulators/ppsspp
diff options
context:
space:
mode:
authorjbeich <jbeich@FreeBSD.org>2015-06-01 22:22:11 +0800
committerjbeich <jbeich@FreeBSD.org>2015-06-01 22:22:11 +0800
commit5ef11fd83ee762e1cbe1ae423974162fe0d5d62c (patch)
treecebd6c23428de0463a2cb9639937f2edf92fc3d7 /emulators/ppsspp
parent7ee4716dba54911af1199c5ad8bfdd816d5f317e (diff)
downloadfreebsd-ports-gnome-5ef11fd83ee762e1cbe1ae423974162fe0d5d62c.tar.gz
freebsd-ports-gnome-5ef11fd83ee762e1cbe1ae423974162fe0d5d62c.tar.zst
freebsd-ports-gnome-5ef11fd83ee762e1cbe1ae423974162fe0d5d62c.zip
emulators/ppsspp{,-devel}: unbreak build with gcc5 (for dragonfly)
ext/xbrz/xbrz.cpp:619:28: sorry, unimplemented: non-trivial designated initializers not supported const bool doLineBlend = [&]() -> bool ^ Submitted by: @Bigpet via hrydgard/ppsspp#7717
Diffstat (limited to 'emulators/ppsspp')
-rw-r--r--emulators/ppsspp/Makefile2
-rw-r--r--emulators/ppsspp/files/patch-ext_xbrz_xbrz.cpp37
2 files changed, 38 insertions, 1 deletions
diff --git a/emulators/ppsspp/Makefile b/emulators/ppsspp/Makefile
index cb25b0725991..0182e8582bf4 100644
--- a/emulators/ppsspp/Makefile
+++ b/emulators/ppsspp/Makefile
@@ -3,7 +3,7 @@
PORTNAME= ppsspp
DISTVERSIONPREFIX= v
DISTVERSION?= 1.0.1
-PORTREVISION?= 2
+PORTREVISION?= 3
CATEGORIES= emulators
PATCH_SITES= https://projects.archlinux.org/svntogit/community.git/plain/trunk/
diff --git a/emulators/ppsspp/files/patch-ext_xbrz_xbrz.cpp b/emulators/ppsspp/files/patch-ext_xbrz_xbrz.cpp
new file mode 100644
index 000000000000..43a966516177
--- /dev/null
+++ b/emulators/ppsspp/files/patch-ext_xbrz_xbrz.cpp
@@ -0,0 +1,37 @@
+--- ext/xbrz/xbrz.cpp.orig 2015-02-26 20:05:06 UTC
++++ ext/xbrz/xbrz.cpp
+@@ -616,23 +616,21 @@ void scalePixel(const Kernel_3x3& ker,
+ auto eq = [&](uint32_t col1, uint32_t col2) { return ColorDistance::dist(col1, col2, cfg.luminanceWeight_) < cfg.equalColorTolerance_; };
+ auto dist = [&](uint32_t col1, uint32_t col2) { return ColorDistance::dist(col1, col2, cfg.luminanceWeight_); };
+
+- const bool doLineBlend = [&]() -> bool
+- {
++ bool doLineBlend;
++
+ if (getBottomR(blend) >= BLEND_DOMINANT)
+- return true;
++ doLineBlend = true;
+
+ //make sure there is no second blending in an adjacent rotation for this pixel: handles insular pixels, mario eyes
+- if (getTopR(blend) != BLEND_NONE && !eq(e, g)) //but support double-blending for 90° corners
+- return false;
+- if (getBottomL(blend) != BLEND_NONE && !eq(e, c))
+- return false;
+-
++ else if (getTopR(blend) != BLEND_NONE && !eq(e, g)) //but support double-blending for 90° corners
++ doLineBlend = false;
++ else if (getBottomL(blend) != BLEND_NONE && !eq(e, c))
++ doLineBlend = false;
+ //no full blending for L-shapes; blend corner only (handles "mario mushroom eyes")
+- if (eq(g, h) && eq(h , i) && eq(i, f) && eq(f, c) && !eq(e, i))
+- return false;
+-
+- return true;
+- }();
++ else if (eq(g, h) && eq(h, i) && eq(i, f) && eq(f, c) && !eq(e, i))
++ doLineBlend = false;
++ else
++ doLineBlend = true;
+
+ const uint32_t px = dist(e, f) <= dist(e, h) ? f : h; //choose most similar color
+