author | Wolfgang Rosenauer <wr@rosenauer.org> |
Tue, 19 Nov 2019 22:54:22 +0100 | |
changeset 1113 | 8e9195853a32 |
parent 1101 | a4709640638e |
child 1119 | 4c5d44d40a03 |
permissions | -rw-r--r-- |
1101
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1 |
# HG changeset patch |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
2 |
# Parent 051b75a600dfbf7503c3485cebfd34d4eb29be96 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
3 |
Taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1504834 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
4 |
|
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
5 |
diff -r 051b75a600df gfx/2d/DrawTargetSkia.cpp |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
6 |
--- a/gfx/2d/DrawTargetSkia.cpp Fri Jul 05 12:42:44 2019 +0200 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
7 |
+++ b/gfx/2d/DrawTargetSkia.cpp Mon Jul 08 10:59:30 2019 +0200 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
8 |
@@ -138,8 +138,7 @@ |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
9 |
return surfaceBounds.Intersect(bounds); |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
10 |
} |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
11 |
|
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
12 |
-static const int kARGBAlphaOffset = |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
13 |
- SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
14 |
+static const int kARGBAlphaOffset = 0; // Skia is always BGRA SurfaceFormat::A8R8G8B8_UINT32 == SurfaceFormat::B8G8R8A8 ? 3 : 0; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
15 |
|
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
16 |
static bool VerifyRGBXFormat(uint8_t* aData, const IntSize& aSize, |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
17 |
const int32_t aStride, SurfaceFormat aFormat) { |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
18 |
diff -r 051b75a600df gfx/2d/Types.h |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
19 |
--- a/gfx/2d/Types.h Fri Jul 05 12:42:44 2019 +0200 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
20 |
+++ b/gfx/2d/Types.h Mon Jul 08 10:59:30 2019 +0200 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
21 |
@@ -85,15 +85,8 @@ |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
22 |
// The following values are endian-independent synonyms. The _UINT32 suffix |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
23 |
// indicates that the name reflects the layout when viewed as a uint32_t |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
24 |
// value. |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
25 |
-#if MOZ_LITTLE_ENDIAN |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
26 |
A8R8G8B8_UINT32 = B8G8R8A8, // 0xAARRGGBB |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
27 |
X8R8G8B8_UINT32 = B8G8R8X8 // 0x00RRGGBB |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
28 |
-#elif MOZ_BIG_ENDIAN |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
29 |
- A8R8G8B8_UINT32 = A8R8G8B8, // 0xAARRGGBB |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
30 |
- X8R8G8B8_UINT32 = X8R8G8B8 // 0x00RRGGBB |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
31 |
-#else |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
32 |
-# error "bad endianness" |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
33 |
-#endif |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
34 |
}; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
35 |
|
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
36 |
static inline int BytesPerPixel(SurfaceFormat aFormat) { |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
37 |
diff -r 051b75a600df gfx/skia/skia/third_party/skcms/skcms.cc |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
38 |
--- a/gfx/skia/skia/third_party/skcms/skcms.cc Fri Jul 05 12:42:44 2019 +0200 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
39 |
+++ b/gfx/skia/skia/third_party/skcms/skcms.cc Mon Jul 08 10:59:30 2019 +0200 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
40 |
@@ -17,6 +17,8 @@ |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
41 |
#include <arm_neon.h> |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
42 |
#elif defined(__SSE__) |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
43 |
#include <immintrin.h> |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
44 |
+#else |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
45 |
+ #define SKCMS_PORTABLE |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
46 |
#endif |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
47 |
|
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
48 |
// sizeof(x) will return size_t, which is 32-bit on some machines and 64-bit on others. |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
49 |
@@ -124,20 +126,28 @@ |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
50 |
static uint16_t read_big_u16(const uint8_t* ptr) { |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
51 |
uint16_t be; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
52 |
memcpy(&be, ptr, sizeof(be)); |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
53 |
-#if defined(_MSC_VER) |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
54 |
+#if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
55 |
+ return be; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
56 |
+#else |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
57 |
+ #if defined(_MSC_VER) |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
58 |
return _byteswap_ushort(be); |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
59 |
-#else |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
60 |
+ #else |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
61 |
return __builtin_bswap16(be); |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
62 |
+ #endif |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
63 |
#endif |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
64 |
} |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
65 |
|
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
66 |
static uint32_t read_big_u32(const uint8_t* ptr) { |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
67 |
uint32_t be; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
68 |
memcpy(&be, ptr, sizeof(be)); |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
69 |
-#if defined(_MSC_VER) |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
70 |
+#if __BYTE_ORDER == __ORDER_BIG_ENDIAN__ |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
71 |
+ return be; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
72 |
+#else |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
73 |
+ #if defined(_MSC_VER) |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
74 |
return _byteswap_ulong(be); |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
75 |
-#else |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
76 |
+ #else |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
77 |
return __builtin_bswap32(be); |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
78 |
+ #endif |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
79 |
#endif |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
80 |
} |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
81 |