mozilla-bmo1005535.patch
author Wolfgang Rosenauer <wr@rosenauer.org>
Tue, 27 Mar 2018 08:29:31 +0200
branchfirefox59
changeset 1040 246b98b59979
parent 1039 b8f1c62354df
permissions -rw-r--r--
added i586 patches

# HG changeset patch
# Parent 376f185a0a757fe128be665adbb705f4a56461bc
# User Steve Singer <steve@ssinger.info>
# Parent  371f01835b6fe4cb6b7095a6c29f7bb54f6d6257
Bug 1005535 - Get skia GPU building on big endian.

diff --git a/gfx/skia/skia/include/core/SkColorPriv.h b/gfx/skia/skia/include/core/SkColorPriv.h
--- a/gfx/skia/skia/include/core/SkColorPriv.h
+++ b/gfx/skia/skia/include/core/SkColorPriv.h
@@ -27,37 +27,27 @@
  *  For easier compatibility with Skia's GPU backend, we further restrict these
  *  to either (in memory-byte-order) RGBA or BGRA. Note that this "order" does
  *  not directly correspond to the same shift-order, since we have to take endianess
  *  into account.
  *
  *  Here we enforce this constraint.
  */
 
-#ifdef SK_CPU_BENDIAN
-    #define SK_RGBA_R32_SHIFT   24
-    #define SK_RGBA_G32_SHIFT   16
-    #define SK_RGBA_B32_SHIFT   8
-    #define SK_RGBA_A32_SHIFT   0
 
-    #define SK_BGRA_B32_SHIFT   24
-    #define SK_BGRA_G32_SHIFT   16
-    #define SK_BGRA_R32_SHIFT   8
-    #define SK_BGRA_A32_SHIFT   0
-#else
     #define SK_RGBA_R32_SHIFT   0
     #define SK_RGBA_G32_SHIFT   8
     #define SK_RGBA_B32_SHIFT   16
     #define SK_RGBA_A32_SHIFT   24
 
     #define SK_BGRA_B32_SHIFT   0
     #define SK_BGRA_G32_SHIFT   8
     #define SK_BGRA_R32_SHIFT   16
     #define SK_BGRA_A32_SHIFT   24
-#endif
+
 
 #if defined(SK_PMCOLOR_IS_RGBA) && defined(SK_PMCOLOR_IS_BGRA)
     #error "can't define PMCOLOR to be RGBA and BGRA"
 #endif
 
 #define LOCAL_PMCOLOR_SHIFTS_EQUIVALENT_TO_RGBA  \
     (SK_A32_SHIFT == SK_RGBA_A32_SHIFT &&    \
      SK_R32_SHIFT == SK_RGBA_R32_SHIFT &&    \
diff --git a/gfx/skia/skia/include/core/SkImageInfo.h b/gfx/skia/skia/include/core/SkImageInfo.h
--- a/gfx/skia/skia/include/core/SkImageInfo.h
+++ b/gfx/skia/skia/include/core/SkImageInfo.h
@@ -78,17 +78,17 @@ enum SkColorType {
 
     kLastEnum_SkColorType = kRGBA_F16_SkColorType,
 
 #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
     kN32_SkColorType = kBGRA_8888_SkColorType,
 #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
     kN32_SkColorType = kRGBA_8888_SkColorType,
 #else
-    #error "SK_*32_SHFIT values must correspond to BGRA or RGBA byte order"
+    kN32_SkColorType = kBGRA_8888_SkColorType
 #endif
 };
 
 static int SkColorTypeBytesPerPixel(SkColorType ct) {
     static const uint8_t gSize[] = {
         0,  // Unknown
         1,  // Alpha_8
         2,  // RGB_565
diff --git a/gfx/skia/skia/include/gpu/GrColor.h b/gfx/skia/skia/include/gpu/GrColor.h
--- a/gfx/skia/skia/include/gpu/GrColor.h
+++ b/gfx/skia/skia/include/gpu/GrColor.h
@@ -69,17 +69,17 @@ static inline GrColor GrColorPackA4(unsi
 #define GrColorUnpackG(color)   (((color) >> GrColor_SHIFT_G) & 0xFF)
 #define GrColorUnpackB(color)   (((color) >> GrColor_SHIFT_B) & 0xFF)
 #define GrColorUnpackA(color)   (((color) >> GrColor_SHIFT_A) & 0xFF)
 
 /**
  *  Since premultiplied means that alpha >= color, we construct a color with
  *  each component==255 and alpha == 0 to be "illegal"
  */
-#define GrColor_ILLEGAL     (~(0xFF << GrColor_SHIFT_A))
+#define GrColor_ILLEGAL     ((uint32_t)(~(0xFF << GrColor_SHIFT_A)))
 
 #define GrColor_WHITE 0xFFFFFFFF
 #define GrColor_TRANSPARENT_BLACK 0x0
 
 /**
  * Assert in debug builds that a GrColor is premultiplied.
  */
 static inline void GrColorIsPMAssert(GrColor SkDEBUGCODE(c)) {
diff --git a/gfx/skia/skia/include/gpu/GrTypes.h b/gfx/skia/skia/include/gpu/GrTypes.h
--- a/gfx/skia/skia/include/gpu/GrTypes.h
+++ b/gfx/skia/skia/include/gpu/GrTypes.h
@@ -321,25 +321,23 @@ enum GrPixelConfig {
     */
     kRGBA_half_GrPixelConfig,
 
     kLast_GrPixelConfig = kRGBA_half_GrPixelConfig
 };
 static const int kGrPixelConfigCnt = kLast_GrPixelConfig + 1;
 
 // Aliases for pixel configs that match skia's byte order.
-#ifndef SK_CPU_LENDIAN
-    #error "Skia gpu currently assumes little endian"
-#endif
+
 #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
     static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig;
 #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
     static const GrPixelConfig kSkia8888_GrPixelConfig = kRGBA_8888_GrPixelConfig;
 #else
-    #error "SK_*32_SHIFT values must correspond to GL_BGRA or GL_RGBA format."
+    static const GrPixelConfig kSkia8888_GrPixelConfig = kBGRA_8888_GrPixelConfig;
 #endif
 
 // Returns true if the pixel config is a GPU-specific compressed format
 // representation.
 static inline bool GrPixelConfigIsCompressed(GrPixelConfig config) {
     switch (config) {
         case kETC1_GrPixelConfig:
             return true;