# HG changeset patch # Parent b7eb1ce0237d6125b75bc8ff1cb3afc328d6e78c # User Steve Singer # Parent d7af74fb513bcca581012f17ea248b1692db5d97 Bug 1005535 - Get skia GPU building on big endian. diff --git a/configure.in b/configure.in --- a/configure.in +++ b/configure.in @@ -8198,21 +8198,21 @@ dnl Skia dnl ======================================================== if test "$MOZ_ENABLE_SKIA"; then AC_DEFINE(MOZ_ENABLE_SKIA) AC_DEFINE(USE_SKIA) if test "${MOZ_WIDGET_TOOLKIT}" = "android" -o x"$MOZ_WIDGET_TOOLKIT" = x"gonk"; then AC_DEFINE(SK_BUILD_FOR_ANDROID_NDK) fi - if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then + #if test "${CPU_ARCH}" != "ppc" -a "${CPU_ARCH}" != "ppc64" -a "${CPU_ARCH}" != "sparc" -a -z "$MOZ_DISABLE_SKIA_GPU" ; then MOZ_ENABLE_SKIA_GPU=1 AC_DEFINE(USE_SKIA_GPU) AC_SUBST(MOZ_ENABLE_SKIA_GPU) - fi + #fi fi AC_SUBST(MOZ_ENABLE_SKIA) dnl ======================================================== dnl Check for nss-shared-helper dnl ======================================================== PKG_CHECK_MODULES(NSSHELPER, nss-shared-helper, diff --git a/gfx/skia/trunk/include/config/SkUserConfig.h b/gfx/skia/trunk/include/config/SkUserConfig.h --- a/gfx/skia/trunk/include/config/SkUserConfig.h +++ b/gfx/skia/trunk/include/config/SkUserConfig.h @@ -192,16 +192,17 @@ #if defined(SK_CPU_ARM32) || defined(SK_CPU_ARM64) # define SK_BARRIERS_PLATFORM_H "skia/SkBarriers_arm.h" #else # define SK_BARRIERS_PLATFORM_H "skia/SkBarriers_x86.h" #endif // On all platforms we have this byte order + #define SK_A32_SHIFT 24 #define SK_R32_SHIFT 16 #define SK_G32_SHIFT 8 #define SK_B32_SHIFT 0 #define SK_ALLOW_STATIC_GLOBAL_INITIALIZERS 0 #define SK_SUPPORT_LEGACY_GETDEVICE diff --git a/gfx/skia/trunk/include/core/SkColorPriv.h b/gfx/skia/trunk/include/core/SkColorPriv.h --- a/gfx/skia/trunk/include/core/SkColorPriv.h +++ b/gfx/skia/trunk/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/trunk/include/core/SkImageInfo.h b/gfx/skia/trunk/include/core/SkImageInfo.h --- a/gfx/skia/trunk/include/core/SkImageInfo.h +++ b/gfx/skia/trunk/include/core/SkImageInfo.h @@ -83,19 +83,20 @@ enum SkColorType { kLastEnum_SkColorType = kIndex_8_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 + #ifdef SK_SUPPORT_LEGACY_N32_NAME kPMColor_SkColorType = kN32_SkColorType #endif }; static int SkColorTypeBytesPerPixel(SkColorType ct) { static const uint8_t gSize[] = { 0, // Unknown diff --git a/gfx/skia/trunk/include/gpu/GrTypes.h b/gfx/skia/trunk/include/gpu/GrTypes.h --- a/gfx/skia/trunk/include/gpu/GrTypes.h +++ b/gfx/skia/trunk/include/gpu/GrTypes.h @@ -304,25 +304,23 @@ enum GrPixelConfig { * Byte order is r, g, b, a. This color format is 32 bits per channel */ kRGBA_float_GrPixelConfig, kLast_GrPixelConfig = kRGBA_float_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: case kLATC_GrPixelConfig: