diff --git a/content/canvas/src/WebGLTexelConversions.h b/content/canvas/src/WebGLTexelConversions.h index 6b224ad53972..56a9254f446d 100644 --- a/content/canvas/src/WebGLTexelConversions.h +++ b/content/canvas/src/WebGLTexelConversions.h @@ -34,14 +34,7 @@ #include "WebGLTypes.h" #include - -#if defined _MSC_VER -#define FORCE_INLINE __forceinline -#elif defined __GNUC__ -#define FORCE_INLINE __attribute__((always_inline)) inline -#else -#define FORCE_INLINE inline -#endif +#include "mozilla/Attributes.h" namespace mozilla { @@ -142,7 +135,7 @@ inline size_t TexelBytesForFormat(WebGLTexelFormat format) { } } -FORCE_INLINE bool HasAlpha(WebGLTexelFormat format) { +MOZ_ALWAYS_INLINE bool HasAlpha(WebGLTexelFormat format) { return format == WebGLTexelFormat::A8 || format == WebGLTexelFormat::A32F || format == WebGLTexelFormat::RA8 || @@ -154,7 +147,7 @@ FORCE_INLINE bool HasAlpha(WebGLTexelFormat format) { format == WebGLTexelFormat::RGBA5551; } -FORCE_INLINE bool HasColor(WebGLTexelFormat format) { +MOZ_ALWAYS_INLINE bool HasColor(WebGLTexelFormat format) { return format == WebGLTexelFormat::R8 || format == WebGLTexelFormat::R32F || format == WebGLTexelFormat::RA8 || @@ -180,14 +173,14 @@ FORCE_INLINE bool HasColor(WebGLTexelFormat format) { // Pixel unpacking routines. template -FORCE_INLINE void +MOZ_ALWAYS_INLINE void unpack(const SrcType* __restrict src, DstType* __restrict dst) { MOZ_ASSERT(false, "Unimplemented texture format conversion"); } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = src[0]; @@ -196,7 +189,7 @@ unpack(const uint8_t* __restrict src, dst[3] = src[3]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = src[0]; @@ -205,7 +198,7 @@ unpack(const uint8_t* __restrict src, dst[3] = 0xFF; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = src[2]; @@ -214,7 +207,7 @@ unpack(const uint8_t* __restrict src, dst[3] = src[3]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = src[2]; @@ -223,7 +216,7 @@ unpack(const uint8_t* __restrict src, dst[3] = 0xFF; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const uint16_t* __restrict src, uint8_t* __restrict dst) { uint16_t packedValue = src[0]; @@ -236,7 +229,7 @@ unpack(const uint16_t* __restrict dst[3] = (packedValue & 0x1) ? 0xFF : 0; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const uint16_t* __restrict src, uint8_t* __restrict dst) { uint16_t packedValue = src[0]; @@ -250,7 +243,7 @@ unpack(const uint16_t* __restrict dst[3] = (a << 4) | a; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const uint16_t* __restrict src, uint8_t* __restrict dst) { uint16_t packedValue = src[0]; @@ -263,7 +256,7 @@ unpack(const uint16_t* __restrict s dst[3] = 0xFF; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = src[0]; @@ -272,7 +265,7 @@ unpack(const uint8_t* __restrict src, ui dst[3] = 0xFF; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = src[0]; @@ -281,7 +274,7 @@ unpack(const uint8_t* __restrict src, u dst[3] = src[1]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = 0; @@ -290,7 +283,7 @@ unpack(const uint8_t* __restrict src, ui dst[3] = src[0]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const float* __restrict src, float* __restrict dst) { dst[0] = src[0]; @@ -299,7 +292,7 @@ unpack(const float* __restrict src, flo dst[3] = src[3]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const float* __restrict src, float* __restrict dst) { dst[0] = src[0]; @@ -308,7 +301,7 @@ unpack(const float* __restrict src, floa dst[3] = 1.0f; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const float* __restrict src, float* __restrict dst) { dst[0] = src[0]; @@ -317,7 +310,7 @@ unpack(const float* __restrict src, float* dst[3] = 1.0f; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const float* __restrict src, float* __restrict dst) { dst[0] = src[0]; @@ -326,7 +319,7 @@ unpack(const float* __restrict src, float dst[3] = src[1]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void unpack(const float* __restrict src, float* __restrict dst) { dst[0] = 0; @@ -343,38 +336,38 @@ template -FORCE_INLINE void +MOZ_ALWAYS_INLINE void pack(const SrcType* __restrict src, DstType* __restrict dst) { MOZ_ASSERT(false, "Unimplemented texture format conversion"); } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = src[3]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = src[3]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = src[3]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = src[0]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { float scaleFactor = src[3] / 255.0f; @@ -382,7 +375,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { float scaleFactor = src[3] ? 255.0f / src[3] : 1.0f; @@ -390,14 +383,14 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = src[0]; dst[1] = src[3]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { float scaleFactor = src[3] / 255.0f; @@ -407,7 +400,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { float scaleFactor = src[3] ? 255.0f / src[3] : 1.0f; @@ -416,7 +409,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = src[0]; @@ -424,7 +417,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { float scaleFactor = src[3] / 255.0f; @@ -436,7 +429,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { float scaleFactor = src[3] ? 255.0f / src[3] : 1.0f; @@ -448,7 +441,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = src[0]; @@ -457,7 +450,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { float scaleFactor = src[3] / 255.0f; @@ -471,7 +464,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint8_t* __restrict dst) { float scaleFactor = src[3] ? 255.0f / src[3] : 1.0f; @@ -484,7 +477,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint16_t* __restrict dst) { *dst = ( ((src[0] & 0xF0) << 8) @@ -493,7 +486,7 @@ pack> 4) ); } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint16_t* __restrict dst) { float scaleFactor = src[3] / 255.0f; @@ -507,7 +500,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint16_t* __restrict dst) { float scaleFactor = src[3] ? 255.0f / src[3] : 1.0f; @@ -520,7 +513,7 @@ pack> 4)); } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint16_t* __restrict dst) { *dst = ( ((src[0] & 0xF8) << 8) @@ -529,7 +522,7 @@ pack> 7)); } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint16_t* __restrict dst) { float scaleFactor = src[3] / 255.0f; @@ -543,7 +536,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint16_t* __restrict dst) { float scaleFactor = src[3] ? 255.0f / src[3] : 1.0f; @@ -556,7 +549,7 @@ pack> 7)); } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint16_t* __restrict dst) { *dst = ( ((src[0] & 0xF8) << 8) @@ -564,7 +557,7 @@ pack> 3)); } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint16_t* __restrict dst) { float scaleFactor = src[3] / 255.0f; @@ -577,7 +570,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const uint8_t* __restrict src, uint16_t* __restrict dst) { float scaleFactor = src[3] ? 255.0f / src[3] : 1.0f; @@ -589,7 +582,7 @@ pack> 3)); } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const float* __restrict src, float* __restrict dst) { dst[0] = src[0]; @@ -597,7 +590,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const float* __restrict src, float* __restrict dst) { float scaleFactor = src[3]; @@ -606,7 +599,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const float* __restrict src, float* __restrict dst) { dst[0] = src[0]; @@ -615,7 +608,7 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const float* __restrict src, float* __restrict dst) { float scaleFactor = src[3]; @@ -625,39 +618,39 @@ pack FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const float* __restrict src, float* __restrict dst) { dst[0] = src[3]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const float* __restrict src, float* __restrict dst) { dst[0] = src[3]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const float* __restrict src, float* __restrict dst) { dst[0] = src[0]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const float* __restrict src, float* __restrict dst) { float scaleFactor = src[3]; dst[0] = src[0] * scaleFactor; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const float* __restrict src, float* __restrict dst) { dst[0] = src[0]; dst[1] = src[3]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void pack(const float* __restrict src, float* __restrict dst) { float scaleFactor = src[3]; @@ -667,13 +660,13 @@ pack FORCE_INLINE void +template MOZ_ALWAYS_INLINE void convertType(const SrcType* __restrict src, DstType* __restrict dst) { MOZ_ASSERT(false, "Unimplemented texture format conversion"); } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void convertType(const uint8_t* __restrict src, uint8_t* __restrict dst) { dst[0] = src[0]; @@ -682,7 +675,7 @@ convertType(const uint8_t* __restrict src, uint8_t* __restrict dst[3] = src[3]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void convertType(const float* __restrict src, float* __restrict dst) { dst[0] = src[0]; @@ -691,7 +684,7 @@ convertType(const float* __restrict src, float* __restrict dst) dst[3] = src[3]; } -template<> FORCE_INLINE void +template<> MOZ_ALWAYS_INLINE void convertType(const uint8_t* __restrict src, float* __restrict dst) { const float scaleFactor = 1.f / 255.0f; @@ -701,8 +694,6 @@ convertType(const uint8_t* __restrict src, float* __restrict dst dst[3] = src[3] * scaleFactor; } -#undef FORCE_INLINE - } // end namespace WebGLTexelConversions } // end namespace mozilla