/*
- * Copyright 2016 Xamarin Inc.
+ * Copyright 2014 Google Inc.
+ * Copyright 2015 Xamarin Inc.
+ * Copyright 2017 Microsoft Corporation. All rights reserved.
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
#include "sk_types_priv.h"
+#include "SkMatrix44.h"
+#include "SkBitmapScaler.h"
+#include "SkBlurMaskFilter.h"
+#include "SkPngEncoder.h"
+#include "SkJpegEncoder.h"
+#include "SkWebpEncoder.h"
+#include "SkTypeface.h"
+#include "SkDropShadowImageFilter.h"
+#include "SkDisplacementMapEffect.h"
+#include "SkShader.h"
+#include "SkMatrixConvolutionImageFilter.h"
+#include "SkPathMeasure.h"
+#include "SkVertices.h"
+#include "SkImage.h"
+#include "SkPathOps.h"
+#include "SkRegion.h"
+#include "Sk1DPathEffect.h"
+#include "SkHighContrastFilter.h"
+
+#if SK_SUPPORT_GPU
+#include "GrTypes.h"
+#include "GrContextOptions.h"
+#endif
+
#if __cplusplus >= 199711L
#define STRINGIFY(x) #x
static_assert ((int)SkPath::FillType::kInverseWinding_FillType == (int)INVERSE_WINDING_SK_PATH_FILLTYPE, ASSERT_MSG(SkPath::FillType, sk_path_filltype_t));
static_assert ((int)SkPath::FillType::kInverseEvenOdd_FillType == (int)INVERSE_EVENODD_SK_PATH_FILLTYPE, ASSERT_MSG(SkPath::FillType, sk_path_filltype_t));
+// sk_path_segment_mask_t
+static_assert ((int)SkPath::SegmentMask::kLine_SegmentMask == (int)LINE_SK_PATH_SEGMENT_MASK, ASSERT_MSG(SkPath::SegmentMask, sk_path_segment_mask_t));
+static_assert ((int)SkPath::SegmentMask::kQuad_SegmentMask == (int)QUAD_SK_PATH_SEGMENT_MASK, ASSERT_MSG(SkPath::SegmentMask, sk_path_segment_mask_t));
+static_assert ((int)SkPath::SegmentMask::kConic_SegmentMask == (int)CONIC_SK_PATH_SEGMENT_MASK, ASSERT_MSG(SkPath::SegmentMask, sk_path_segment_mask_t));
+static_assert ((int)SkPath::SegmentMask::kCubic_SegmentMask == (int)CUBIC_SK_PATH_SEGMENT_MASK, ASSERT_MSG(SkPath::SegmentMask, sk_path_segment_mask_t));
+
// sk_text_align_t
static_assert ((int)SkPaint::Align::kLeft_Align == (int)LEFT_SK_TEXT_ALIGN, ASSERT_MSG(SkPaint::Align, sk_text_align_t));
static_assert ((int)SkPaint::Align::kCenter_Align == (int)CENTER_SK_TEXT_ALIGN, ASSERT_MSG(SkPaint::Align, sk_text_align_t));
static_assert ((int)SkMatrixConvolutionImageFilter::TileMode::kRepeat_TileMode == (int)REPEAT_SK_MATRIX_CONVOLUTION_TILEMODE, ASSERT_MSG(SkMatrixConvolutionImageFilter::TileMode, sk_matrix_convolution_tilemode_t));
static_assert ((int)SkMatrixConvolutionImageFilter::TileMode::kClampToBlack_TileMode == (int)CLAMP_TO_BLACK_SK_MATRIX_CONVOLUTION_TILEMODE, ASSERT_MSG(SkMatrixConvolutionImageFilter::TileMode, sk_matrix_convolution_tilemode_t));
-// sk_image_encoder_t
-static_assert ((int)SkImageEncoder::Type::kUnknown_Type == (int)UNKNOWN_SK_IMAGE_ENCODER_TYPE, ASSERT_MSG(SkImageEncoder::Type, sk_image_encoder_t));
-static_assert ((int)SkImageEncoder::Type::kBMP_Type == (int)BMP_SK_IMAGE_ENCODER_TYPE, ASSERT_MSG(SkImageEncoder::Type, sk_image_encoder_t));
-static_assert ((int)SkImageEncoder::Type::kGIF_Type == (int)GIF_SK_IMAGE_ENCODER_TYPE, ASSERT_MSG(SkImageEncoder::Type, sk_image_encoder_t));
-static_assert ((int)SkImageEncoder::Type::kICO_Type == (int)ICO_SK_IMAGE_ENCODER_TYPE, ASSERT_MSG(SkImageEncoder::Type, sk_image_encoder_t));
-static_assert ((int)SkImageEncoder::Type::kJPEG_Type == (int)JPEG_SK_IMAGE_ENCODER_TYPE, ASSERT_MSG(SkImageEncoder::Type, sk_image_encoder_t));
-static_assert ((int)SkImageEncoder::Type::kPNG_Type == (int)PNG_SK_IMAGE_ENCODER_TYPE, ASSERT_MSG(SkImageEncoder::Type, sk_image_encoder_t));
-static_assert ((int)SkImageEncoder::Type::kWBMP_Type == (int)WBMP_SK_IMAGE_ENCODER_TYPE, ASSERT_MSG(SkImageEncoder::Type, sk_image_encoder_t));
-static_assert ((int)SkImageEncoder::Type::kWEBP_Type == (int)WEBP_SK_IMAGE_ENCODER_TYPE, ASSERT_MSG(SkImageEncoder::Type, sk_image_encoder_t));
-static_assert ((int)SkImageEncoder::Type::kKTX_Type == (int)KTX_SK_IMAGE_ENCODER_TYPE, ASSERT_MSG(SkImageEncoder::Type, sk_image_encoder_t));
-
-// sk_xfermode_mode_t
-static_assert ((int)SkXfermode::Mode::kClear_Mode == (int)CLEAR_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kSrc_Mode == (int)SRC_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kDst_Mode == (int)DST_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kSrcOver_Mode == (int)SRCOVER_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kDstOver_Mode == (int)DSTOVER_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kSrcIn_Mode == (int)SRCIN_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kDstIn_Mode == (int)DSTIN_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kSrcOut_Mode == (int)SRCOUT_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kDstOut_Mode == (int)DSTOUT_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kSrcATop_Mode == (int)SRCATOP_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kDstATop_Mode == (int)DSTATOP_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kXor_Mode == (int)XOR_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kPlus_Mode == (int)PLUS_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kModulate_Mode == (int)MODULATE_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kScreen_Mode == (int)SCREEN_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kOverlay_Mode == (int)OVERLAY_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kDarken_Mode == (int)DARKEN_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kLighten_Mode == (int)LIGHTEN_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kColorDodge_Mode == (int)COLORDODGE_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kColorBurn_Mode == (int)COLORBURN_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kHardLight_Mode == (int)HARDLIGHT_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kSoftLight_Mode == (int)SOFTLIGHT_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kDifference_Mode == (int)DIFFERENCE_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kExclusion_Mode == (int)EXCLUSION_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kMultiply_Mode == (int)MULTIPLY_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kHue_Mode == (int)HUE_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kSaturation_Mode == (int)SATURATION_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kColor_Mode == (int)COLOR_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-static_assert ((int)SkXfermode::Mode::kLuminosity_Mode == (int)LUMINOSITY_SK_XFERMODE_MODE, ASSERT_MSG(SkXfermode::Mode, sk_xfermode_mode_t));
-
// sk_blendmode_t
static_assert ((int)SkBlendMode::kClear == (int)CLEAR_SK_BLENDMODE, ASSERT_MSG(SkBlendMode, sk_blendmode_t));
static_assert ((int)SkBlendMode::kSrc == (int)SRC_SK_BLENDMODE, ASSERT_MSG(SkBlendMode, sk_blendmode_t));
static_assert ((int)SkBlurStyle::kOuter_SkBlurStyle == (int)OUTER_SK_BLUR_STYLE, ASSERT_MSG(SkBlurStyle, sk_blurstyle_t));
static_assert ((int)SkBlurStyle::kInner_SkBlurStyle == (int)INNER_SK_BLUR_STYLE, ASSERT_MSG(SkBlurStyle, sk_blurstyle_t));
+// sk_blurmaskfilter_blurflags_t
+static_assert ((int)SkBlurMaskFilter::BlurFlags::kNone_BlurFlag == (int)NONE_SK_BLUR_MASK_FILTER_BLUR_FLAGS, ASSERT_MSG(SkBlurMaskFilter::BlurFlags, sk_blurmaskfilter_blurflags_t));
+static_assert ((int)SkBlurMaskFilter::BlurFlags::kIgnoreTransform_BlurFlag == (int)IGNORE_TRANSFORM_SK_BLUR_MASK_FILTER_BLUR_FLAGS, ASSERT_MSG(SkBlurMaskFilter::BlurFlags, sk_blurmaskfilter_blurflags_t));
+static_assert ((int)SkBlurMaskFilter::BlurFlags::kHighQuality_BlurFlag == (int)HIGHT_QUALITY_SK_BLUR_MASK_FILTER_BLUR_FLAGS, ASSERT_MSG(SkBlurMaskFilter::BlurFlags, sk_blurmaskfilter_blurflags_t));
+static_assert ((int)SkBlurMaskFilter::BlurFlags::kAll_BlurFlag == (int)ALL_SK_BLUR_MASK_FILTER_BLUR_FLAGS, ASSERT_MSG(SkBlurMaskFilter::BlurFlags, sk_blurmaskfilter_blurflags_t));
+
// sk_stroke_cap_t
static_assert ((int)SkPaint::Cap::kButt_Cap == (int)BUTT_SK_STROKE_CAP, ASSERT_MSG(SkPaint::Cap, sk_stroke_cap_t));
static_assert ((int)SkPaint::Cap::kRound_Cap == (int)ROUND_SK_STROKE_CAP, ASSERT_MSG(SkPaint::Cap, sk_stroke_cap_t));
static_assert ((int)SkRegion::Op::kReplace_Op == (int)REPLACE_SK_REGION_OP, ASSERT_MSG(SkRegion::Op, sk_region_op_t));
// sk_clipop_t
-static_assert ((int)SkClipOp::kDifference_SkClipOp == (int)DIFFERENCE_SK_CLIPOP, ASSERT_MSG(SkClipOp, sk_clipop_t));
-static_assert ((int)SkClipOp::kIntersect_SkClipOp == (int)INTERSECT_SK_CLIPOP, ASSERT_MSG(SkClipOp, sk_clipop_t));
-
-// sk_encoded_format_t
-static_assert ((int)SkEncodedFormat::kUnknown_SkEncodedFormat == (int)UNKNOWN_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedFormat, sk_encoded_format_t));
-static_assert ((int)SkEncodedFormat::kBMP_SkEncodedFormat == (int)BMP_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedFormat, sk_encoded_format_t));
-static_assert ((int)SkEncodedFormat::kGIF_SkEncodedFormat == (int)GIF_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedFormat, sk_encoded_format_t));
-static_assert ((int)SkEncodedFormat::kICO_SkEncodedFormat == (int)ICO_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedFormat, sk_encoded_format_t));
-static_assert ((int)SkEncodedFormat::kJPEG_SkEncodedFormat == (int)JPEG_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedFormat, sk_encoded_format_t));
-static_assert ((int)SkEncodedFormat::kPNG_SkEncodedFormat == (int)PNG_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedFormat, sk_encoded_format_t));
-static_assert ((int)SkEncodedFormat::kWBMP_SkEncodedFormat == (int)WBMP_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedFormat, sk_encoded_format_t));
-static_assert ((int)SkEncodedFormat::kWEBP_SkEncodedFormat == (int)WEBP_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedFormat, sk_encoded_format_t));
-static_assert ((int)SkEncodedFormat::kPKM_SkEncodedFormat == (int)PKM_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedFormat, sk_encoded_format_t));
-static_assert ((int)SkEncodedFormat::kKTX_SkEncodedFormat == (int)KTX_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedFormat, sk_encoded_format_t));
-static_assert ((int)SkEncodedFormat::kASTC_SkEncodedFormat == (int)ASTC_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedFormat, sk_encoded_format_t));
-static_assert ((int)SkEncodedFormat::kDNG_SkEncodedFormat == (int)DNG_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedFormat, sk_encoded_format_t));
+static_assert ((int)SkClipOp::kDifference == (int)DIFFERENCE_SK_CLIPOP, ASSERT_MSG(SkClipOp, sk_clipop_t));
+static_assert ((int)SkClipOp::kIntersect == (int)INTERSECT_SK_CLIPOP, ASSERT_MSG(SkClipOp, sk_clipop_t));
+
+// sk_encoded_image_format_t
+static_assert ((int)SkEncodedImageFormat::kBMP == (int)BMP_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedImageFormat, sk_encoded_image_format_t));
+static_assert ((int)SkEncodedImageFormat::kGIF == (int)GIF_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedImageFormat, sk_encoded_image_format_t));
+static_assert ((int)SkEncodedImageFormat::kICO == (int)ICO_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedImageFormat, sk_encoded_image_format_t));
+static_assert ((int)SkEncodedImageFormat::kJPEG == (int)JPEG_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedImageFormat, sk_encoded_image_format_t));
+static_assert ((int)SkEncodedImageFormat::kPNG == (int)PNG_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedImageFormat, sk_encoded_image_format_t));
+static_assert ((int)SkEncodedImageFormat::kWBMP == (int)WBMP_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedImageFormat, sk_encoded_image_format_t));
+static_assert ((int)SkEncodedImageFormat::kWEBP == (int)WEBP_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedImageFormat, sk_encoded_image_format_t));
+static_assert ((int)SkEncodedImageFormat::kPKM == (int)PKM_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedImageFormat, sk_encoded_image_format_t));
+static_assert ((int)SkEncodedImageFormat::kKTX == (int)KTX_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedImageFormat, sk_encoded_image_format_t));
+static_assert ((int)SkEncodedImageFormat::kASTC == (int)ASTC_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedImageFormat, sk_encoded_image_format_t));
+static_assert ((int)SkEncodedImageFormat::kDNG == (int)DNG_SK_ENCODED_FORMAT, ASSERT_MSG(SkEncodedImageFormat, sk_encoded_image_format_t));
// sk_codec_origin_t
static_assert ((int)SkCodec::Origin::kTopLeft_Origin == (int)TOP_LEFT_SK_CODEC_ORIGIN, ASSERT_MSG(SkCodec::Origin, sk_codec_origin_t));
static_assert ((int)SkCodec::ZeroInitialized::kYes_ZeroInitialized == (int)YES_SK_CODEC_ZERO_INITIALIZED, ASSERT_MSG(SkCodec::ZeroInitialized, sk_codec_zero_initialized_t));
static_assert ((int)SkCodec::ZeroInitialized::kNo_ZeroInitialized == (int)NO_SK_CODEC_ZERO_INITIALIZED, ASSERT_MSG(SkCodec::ZeroInitialized, sk_codec_zero_initialized_t));
+// sk_codec_scanline_order_t
+static_assert ((int)SkCodec::SkScanlineOrder::kTopDown_SkScanlineOrder == (int)TOP_DOWN_SK_CODEC_SCANLINE_ORDER, ASSERT_MSG(SkCodec::SkScanlineOrder, sk_codec_scanline_order_t));
+static_assert ((int)SkCodec::SkScanlineOrder::kBottomUp_SkScanlineOrder == (int)BOTTOM_UP_SK_CODEC_SCANLINE_ORDER, ASSERT_MSG(SkCodec::SkScanlineOrder, sk_codec_scanline_order_t));
+
// sk_path_effect_1d_style_t
static_assert ((int)SkPath1DPathEffect::Style::kTranslate_Style == (int)TRANSLATE_SK_PATH_EFFECT_1D_STYLE, ASSERT_MSG(SkPath1DPathEffect::Style, sk_path_effect_1d_style_t));
static_assert ((int)SkPath1DPathEffect::Style::kRotate_Style == (int)ROTATE_SK_PATH_EFFECT_1D_STYLE, ASSERT_MSG(SkPath1DPathEffect::Style, sk_path_effect_1d_style_t));
static_assert ((int)SkCanvas::PointMode::kPolygon_PointMode == (int)POLYGON_SK_POINT_MODE, ASSERT_MSG(SkCanvas::PointMode, sk_point_mode_t));
// sk_surfaceprops_flags_t
-static_assert ((int)SkSurfaceProps::Flags::kUseDeviceIndependentFonts_Flag == (int)USE_DEVICE_INDEPENDENT_FONTS_GR_SURFACE_PROPS_FLAGS, ASSERT_MSG(SkSurfaceProps::Flags, sk_surfaceprops_flags_t));
-
-// gr_surfaceorigin_t
-static_assert ((int)GrSurfaceOrigin::kBottomLeft_GrSurfaceOrigin == (int)BOTTOM_LEFT_GR_SURFACE_ORIGIN, ASSERT_MSG(GrSurfaceOrigin, gr_surfaceorigin_t));
-static_assert ((int)GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin == (int)TOP_LEFT_GR_SURFACE_ORIGIN, ASSERT_MSG(GrSurfaceOrigin, gr_surfaceorigin_t));
+static_assert ((int)SkSurfaceProps::Flags::kUseDeviceIndependentFonts_Flag == (int)USE_DEVICE_INDEPENDENT_FONTS_SK_SURFACE_PROPS_FLAGS, ASSERT_MSG(SkSurfaceProps::Flags, sk_surfaceprops_flags_t));
-// gr_pixelconfig_t
-static_assert ((int)GrPixelConfig::kUnknown_GrPixelConfig == (int)UNKNOWN_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kAlpha_8_GrPixelConfig == (int)ALPHA_8_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kIndex_8_GrPixelConfig == (int)INDEX_8_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kRGB_565_GrPixelConfig == (int)RGB_565_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kRGBA_4444_GrPixelConfig == (int)RGBA_4444_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kRGBA_8888_GrPixelConfig == (int)RGBA_8888_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kBGRA_8888_GrPixelConfig == (int)BGRA_8888_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kSRGBA_8888_GrPixelConfig == (int)SRGBA_8888_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kSBGRA_8888_GrPixelConfig == (int)SBGRA_8888_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kETC1_GrPixelConfig == (int)ETC1_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kLATC_GrPixelConfig == (int)LATC_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kR11_EAC_GrPixelConfig == (int)R11_EAC_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kASTC_12x12_GrPixelConfig == (int)ASTC_12X12_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kRGBA_float_GrPixelConfig == (int)RGBA_FLOAT_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kAlpha_half_GrPixelConfig == (int)ALPHA_HALF_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-static_assert ((int)GrPixelConfig::kRGBA_half_GrPixelConfig == (int)RGBA_HALF_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
-
-// gr_backendtexture_flags_t
-static_assert ((int)GrBackendTextureFlags::kNone_GrBackendTextureFlag == (int)NONE_GR_BACKEND_TEXTURE_FLAGS, ASSERT_MSG(GrBackendTextureFlags, gr_backendtexture_flags_t));
-static_assert ((int)GrBackendTextureFlags::kRenderTarget_GrBackendTextureFlag == (int)RENDER_TARGET_GR_BACKEND_TEXTURE_FLAGS, ASSERT_MSG(GrBackendTextureFlags, gr_backendtexture_flags_t));
-
-// gr_backend_t
-static_assert ((int)GrBackend::kOpenGL_GrBackend == (int)OPENGL_GR_BACKEND, ASSERT_MSG(GrBackend, gr_backend_t));
-static_assert ((int)GrBackend::kVulkan_GrBackend == (int)VULKAN_GR_BACKEND, ASSERT_MSG(GrBackend, gr_backend_t));
+// sk_bitmapscaler_resizemethod_t
+static_assert ((int)SkBitmapScaler::ResizeMethod::RESIZE_BOX == (int)BOX_SK_BITMAP_SCALER_RESIZE_METHOD, ASSERT_MSG(SkBitmapScaler::ResizeMethod, sk_bitmapscaler_resizemethod_t));
+static_assert ((int)SkBitmapScaler::ResizeMethod::RESIZE_TRIANGLE == (int)TRIANGLE_SK_BITMAP_SCALER_RESIZE_METHOD, ASSERT_MSG(SkBitmapScaler::ResizeMethod, sk_bitmapscaler_resizemethod_t));
+static_assert ((int)SkBitmapScaler::ResizeMethod::RESIZE_LANCZOS3 == (int)LANCZOS3_SK_BITMAP_SCALER_RESIZE_METHOD, ASSERT_MSG(SkBitmapScaler::ResizeMethod, sk_bitmapscaler_resizemethod_t));
+static_assert ((int)SkBitmapScaler::ResizeMethod::RESIZE_HAMMING == (int)HAMMING_SK_BITMAP_SCALER_RESIZE_METHOD, ASSERT_MSG(SkBitmapScaler::ResizeMethod, sk_bitmapscaler_resizemethod_t));
+static_assert ((int)SkBitmapScaler::ResizeMethod::RESIZE_MITCHELL == (int)MITCHELL_SK_BITMAP_SCALER_RESIZE_METHOD, ASSERT_MSG(SkBitmapScaler::ResizeMethod, sk_bitmapscaler_resizemethod_t));
// SkBudgeted
static_assert ((bool)SkBudgeted::kNo == (bool)false, ASSERT_MSG(SkBudgeted, bool));
static_assert ((int)SkPath::Convexity::kConvex_Convexity == (int)CONVEX_SK_PATH_CONVEXITY, ASSERT_MSG(SkPath::Convexity, sk_path_convexity_t));
static_assert ((int)SkPath::Convexity::kConcave_Convexity == (int)CONCAVE_SK_PATH_CONVEXITY, ASSERT_MSG(SkPath::Convexity, sk_path_convexity_t));
-// gr_backendtexture_flags_t
+// sk_lattice_flags_t
static_assert ((int)0 == (int)DEFAULT_SK_LATTICE_FLAGS, ASSERT_MSG(SkCanvas::Lattice::Flags, sk_lattice_flags_t));
static_assert ((int)SkCanvas::Lattice::Flags::kTransparent_Flags == (int)TRANSPARENT_SK_LATTICE_FLAGS, ASSERT_MSG(SkCanvas::Lattice::Flags, sk_lattice_flags_t));
static_assert ((int)SkPathMeasure::MatrixFlags::kGetTangent_MatrixFlag == (int)GET_TANGENT_SK_PATHMEASURE_MATRIXFLAGS, ASSERT_MSG(SkPathMeasure::MatrixFlags, sk_pathmeasure_matrixflags_t));
static_assert ((int)SkPathMeasure::MatrixFlags::kGetPosAndTan_MatrixFlag == (int)GET_POS_AND_TAN_SK_PATHMEASURE_MATRIXFLAGS, ASSERT_MSG(SkPathMeasure::MatrixFlags, sk_pathmeasure_matrixflags_t));
+// sk_encodedinfo_alpha_t
+static_assert ((int)SkEncodedInfo::Alpha::kOpaque_Alpha == (int)OPAQUE_SK_ENCODEDINFO_ALPHA, ASSERT_MSG(SkEncodedInfo::Alpha, sk_encodedinfo_alpha_t));
+static_assert ((int)SkEncodedInfo::Alpha::kUnpremul_Alpha == (int)UNPREMUL_SK_ENCODEDINFO_ALPHA, ASSERT_MSG(SkEncodedInfo::Alpha, sk_encodedinfo_alpha_t));
+static_assert ((int)SkEncodedInfo::Alpha::kBinary_Alpha == (int)BINARY_SK_ENCODEDINFO_ALPHA, ASSERT_MSG(SkEncodedInfo::Alpha, sk_encodedinfo_alpha_t));
+
+// sk_encodedinfo_color_t
+static_assert ((int)SkEncodedInfo::Color::kGray_Color == (int)GRAY_SK_ENCODEDINFO_COLOR, ASSERT_MSG(SkEncodedInfo::Color, sk_encodedinfo_color_t));
+static_assert ((int)SkEncodedInfo::Color::kGrayAlpha_Color == (int)GRAY_ALPHA_SK_ENCODEDINFO_COLOR, ASSERT_MSG(SkEncodedInfo::Color, sk_encodedinfo_color_t));
+static_assert ((int)SkEncodedInfo::Color::kPalette_Color == (int)PALETTE_SK_ENCODEDINFO_COLOR, ASSERT_MSG(SkEncodedInfo::Color, sk_encodedinfo_color_t));
+static_assert ((int)SkEncodedInfo::Color::kRGB_Color == (int)RGB_SK_ENCODEDINFO_COLOR, ASSERT_MSG(SkEncodedInfo::Color, sk_encodedinfo_color_t));
+static_assert ((int)SkEncodedInfo::Color::kRGBA_Color == (int)RGBA_SK_ENCODEDINFO_COLOR, ASSERT_MSG(SkEncodedInfo::Color, sk_encodedinfo_color_t));
+static_assert ((int)SkEncodedInfo::Color::kBGR_Color == (int)BGR_SK_ENCODEDINFO_COLOR, ASSERT_MSG(SkEncodedInfo::Color, sk_encodedinfo_color_t));
+static_assert ((int)SkEncodedInfo::Color::kBGRX_Color == (int)BGRX_SK_ENCODEDINFO_COLOR, ASSERT_MSG(SkEncodedInfo::Color, sk_encodedinfo_color_t));
+static_assert ((int)SkEncodedInfo::Color::kBGRA_Color == (int)BGRA_SK_ENCODEDINFO_COLOR, ASSERT_MSG(SkEncodedInfo::Color, sk_encodedinfo_color_t));
+static_assert ((int)SkEncodedInfo::Color::kYUV_Color == (int)YUV_SK_ENCODEDINFO_COLOR, ASSERT_MSG(SkEncodedInfo::Color, sk_encodedinfo_color_t));
+static_assert ((int)SkEncodedInfo::Color::kYUVA_Color == (int)YUVA_SK_ENCODEDINFO_COLOR, ASSERT_MSG(SkEncodedInfo::Color, sk_encodedinfo_color_t));
+static_assert ((int)SkEncodedInfo::Color::kInvertedCMYK_Color == (int)INVERTED_CMYK_SK_ENCODEDINFO_COLOR, ASSERT_MSG(SkEncodedInfo::Color, sk_encodedinfo_color_t));
+static_assert ((int)SkEncodedInfo::Color::kYCCK_Color == (int)YCCK_SK_ENCODEDINFO_COLOR, ASSERT_MSG(SkEncodedInfo::Color, sk_encodedinfo_color_t));
+
+// sk_colorspace_gamut_t
+static_assert ((int)SkColorSpace::Gamut::kSRGB_Gamut == (int)SRGB_SK_COLORSPACE_GAMUT, ASSERT_MSG(SkColorSpace::Gamut, sk_colorspace_gamut_t));
+static_assert ((int)SkColorSpace::Gamut::kAdobeRGB_Gamut == (int)ADOBE_RGB_SK_COLORSPACE_GAMUT, ASSERT_MSG(SkColorSpace::Gamut, sk_colorspace_gamut_t));
+static_assert ((int)SkColorSpace::Gamut::kDCIP3_D65_Gamut == (int)DCIP3_D65_SK_COLORSPACE_GAMUT, ASSERT_MSG(SkColorSpace::Gamut, sk_colorspace_gamut_t));
+static_assert ((int)SkColorSpace::Gamut::kRec2020_Gamut == (int)REC2020_SK_COLORSPACE_GAMUT, ASSERT_MSG(SkColorSpace::Gamut, sk_colorspace_gamut_t));
+
+// sk_mask_format_t
+static_assert ((int)SkMask::Format::kBW_Format == (int)BW_SK_MASK_FORMAT, ASSERT_MSG(SkMask::Format, sk_mask_format_t));
+static_assert ((int)SkMask::Format::kA8_Format == (int)A8_SK_MASK_FORMAT, ASSERT_MSG(SkMask::Format, sk_mask_format_t));
+static_assert ((int)SkMask::Format::k3D_Format == (int)THREE_D_SK_MASK_FORMAT, ASSERT_MSG(SkMask::Format, sk_mask_format_t));
+static_assert ((int)SkMask::Format::kARGB32_Format == (int)ARGB32_SK_MASK_FORMAT, ASSERT_MSG(SkMask::Format, sk_mask_format_t));
+static_assert ((int)SkMask::Format::kLCD16_Format == (int)LCD16_SK_MASK_FORMAT, ASSERT_MSG(SkMask::Format, sk_mask_format_t));
+
+// sk_matrix44_type_mask_t
+static_assert ((int)SkMatrix44::TypeMask::kIdentity_Mask == (int)IDENTITY_SK_MATRIX44_TYPE_MASK, ASSERT_MSG(SkMatrix44::TypeMask, sk_matrix44_type_mask_t));
+static_assert ((int)SkMatrix44::TypeMask::kTranslate_Mask == (int)TRANSLATE_SK_MATRIX44_TYPE_MASK, ASSERT_MSG(SkMatrix44::TypeMask, sk_matrix44_type_mask_t));
+static_assert ((int)SkMatrix44::TypeMask::kScale_Mask == (int)SCALE_SK_MATRIX44_TYPE_MASK, ASSERT_MSG(SkMatrix44::TypeMask, sk_matrix44_type_mask_t));
+static_assert ((int)SkMatrix44::TypeMask::kAffine_Mask == (int)AFFINE_SK_MATRIX44_TYPE_MASK, ASSERT_MSG(SkMatrix44::TypeMask, sk_matrix44_type_mask_t));
+static_assert ((int)SkMatrix44::TypeMask::kPerspective_Mask == (int)PERSPECTIVE_SK_MATRIX44_TYPE_MASK, ASSERT_MSG(SkMatrix44::TypeMask, sk_matrix44_type_mask_t));
+
+// sk_vertices_vertex_mode_t
+static_assert ((int)SkVertices::VertexMode::kTriangles_VertexMode == (int)TRIANGLES_SK_VERTICES_VERTEX_MODE, ASSERT_MSG(SkVertices::VertexMode, sk_vertices_vertex_mode_t));
+static_assert ((int)SkVertices::VertexMode::kTriangleStrip_VertexMode == (int)TRIANGLE_STRIP_SK_VERTICES_VERTEX_MODE, ASSERT_MSG(SkVertices::VertexMode, sk_vertices_vertex_mode_t));
+static_assert ((int)SkVertices::VertexMode::kTriangleFan_VertexMode == (int)TRIANGLE_FAN_SK_VERTICES_VERTEX_MODE, ASSERT_MSG(SkVertices::VertexMode, sk_vertices_vertex_mode_t));
+
+// sk_image_caching_hint_t
+static_assert ((int)SkImage::CachingHint::kAllow_CachingHint == (int)ALLOW_SK_IMAGE_CACHING_HINT, ASSERT_MSG(SkImage::CachingHint, sk_image_caching_hint_t));
+static_assert ((int)SkImage::CachingHint::kDisallow_CachingHint == (int)DISALLOW_SK_IMAGE_CACHING_HINT, ASSERT_MSG(SkImage::CachingHint, sk_image_caching_hint_t));
+
+// sk_colorspace_render_target_gamma_t
+static_assert ((int)SkColorSpace::RenderTargetGamma::kLinear_RenderTargetGamma == (int)LINEAR_SK_COLORSPACE_RENDER_TARGET_GAMMA, ASSERT_MSG(SkColorSpace::RenderTargetGamma, sk_colorspace_render_target_gamma_t));
+static_assert ((int)SkColorSpace::RenderTargetGamma::kSRGB_RenderTargetGamma == (int)SRGB_SK_COLORSPACE_RENDER_TARGET_GAMMA, ASSERT_MSG(SkColorSpace::RenderTargetGamma, sk_colorspace_render_target_gamma_t));
+
+// sk_highcontrastconfig_invertstyle_t
+static_assert ((int)SkHighContrastConfig::InvertStyle::kNoInvert == (int)NO_INVERT_SK_HIGH_CONTRAST_CONFIG_INVERT_STYLE, ASSERT_MSG(SkHighContrastConfig::InvertStyle, sk_highcontrastconfig_invertstyle_t));
+static_assert ((int)SkHighContrastConfig::InvertStyle::kInvertBrightness == (int)INVERT_BRIGHTNESS_SK_HIGH_CONTRAST_CONFIG_INVERT_STYLE, ASSERT_MSG(SkHighContrastConfig::InvertStyle, sk_highcontrastconfig_invertstyle_t));
+static_assert ((int)SkHighContrastConfig::InvertStyle::kInvertLightness == (int)INVERT_LIGHTNESS_SK_HIGH_CONTRAST_CONFIG_INVERT_STYLE, ASSERT_MSG(SkHighContrastConfig::InvertStyle, sk_highcontrastconfig_invertstyle_t));
+
+// sk_bitmap_allocflags_t
+static_assert ((int)SkBitmap::AllocFlags::kZeroPixels_AllocFlag == (int)ZERO_PIXELS_SK_BITMAP_ALLOC_FLAGS, ASSERT_MSG(SkBitmap::AllocFlags, sk_bitmap_allocflags_t));
+
+// sk_pngencoder_filterflags_t
+static_assert ((int)SkPngEncoder::FilterFlag::kZero == (int)ZERO_SK_PNGENCODER_FILTER_FLAGS, ASSERT_MSG(SkPngEncoder::FilterFlag, sk_pngencoder_filterflags_t));
+static_assert ((int)SkPngEncoder::FilterFlag::kNone == (int)NONE_SK_PNGENCODER_FILTER_FLAGS, ASSERT_MSG(SkPngEncoder::FilterFlag, sk_pngencoder_filterflags_t));
+static_assert ((int)SkPngEncoder::FilterFlag::kSub == (int)SUB_SK_PNGENCODER_FILTER_FLAGS, ASSERT_MSG(SkPngEncoder::FilterFlag, sk_pngencoder_filterflags_t));
+static_assert ((int)SkPngEncoder::FilterFlag::kUp == (int)UP_SK_PNGENCODER_FILTER_FLAGS, ASSERT_MSG(SkPngEncoder::FilterFlag, sk_pngencoder_filterflags_t));
+static_assert ((int)SkPngEncoder::FilterFlag::kAvg == (int)AVG_SK_PNGENCODER_FILTER_FLAGS, ASSERT_MSG(SkPngEncoder::FilterFlag, sk_pngencoder_filterflags_t));
+static_assert ((int)SkPngEncoder::FilterFlag::kPaeth == (int)PAETH_SK_PNGENCODER_FILTER_FLAGS, ASSERT_MSG(SkPngEncoder::FilterFlag, sk_pngencoder_filterflags_t));
+static_assert ((int)SkPngEncoder::FilterFlag::kAll == (int)ALL_SK_PNGENCODER_FILTER_FLAGS, ASSERT_MSG(SkPngEncoder::FilterFlag, sk_pngencoder_filterflags_t));
+
+// sk_jpegencoder_downsample_t
+static_assert ((int)SkJpegEncoder::Downsample::k420 == (int)DOWNSAMPLE_420_SK_JPEGENCODER_DOWNSAMPLE, ASSERT_MSG(SkJpegEncoder::Downsample, sk_jpegencoder_downsample_t));
+static_assert ((int)SkJpegEncoder::Downsample::k422 == (int)DOWNSAMPLE_422_SK_JPEGENCODER_DOWNSAMPLE, ASSERT_MSG(SkJpegEncoder::Downsample, sk_jpegencoder_downsample_t));
+static_assert ((int)SkJpegEncoder::Downsample::k444 == (int)DOWNSAMPLE_444_SK_JPEGENCODER_DOWNSAMPLE, ASSERT_MSG(SkJpegEncoder::Downsample, sk_jpegencoder_downsample_t));
+
+// sk_jpegencoder_alphaoption_t
+static_assert ((int)SkJpegEncoder::AlphaOption::kIgnore == (int)IGNORE_SK_JPEGENCODER_ALPHA_OPTION, ASSERT_MSG(SkJpegEncoder::AlphaOption, sk_jpegencoder_alphaoption_t));
+static_assert ((int)SkJpegEncoder::AlphaOption::kBlendOnBlack == (int)BLEND_ON_BLACK_SK_JPEGENCODER_ALPHA_OPTION, ASSERT_MSG(SkJpegEncoder::AlphaOption, sk_jpegencoder_alphaoption_t));
+
+// sk_webpencoder_compression_t
+static_assert ((int)SkWebpEncoder::Compression::kLossy == (int)LOSSY_SK_WEBPENCODER_COMPTRESSION, ASSERT_MSG(SkWebpEncoder::Compression, sk_webpencoder_compression_t));
+static_assert ((int)SkWebpEncoder::Compression::kLossless == (int)LOSSLESS_SK_WEBPENCODER_COMPTRESSION, ASSERT_MSG(SkWebpEncoder::Compression, sk_webpencoder_compression_t));
+
+// sk_rrect_type_t
+static_assert ((int)SkRRect::Type::kEmpty_Type == (int)EMPTY_SK_RRECT_TYPE, ASSERT_MSG(SkRRect::Type, sk_rrect_type_t));
+static_assert ((int)SkRRect::Type::kRect_Type == (int)RECT_SK_RRECT_TYPE, ASSERT_MSG(SkRRect::Type, sk_rrect_type_t));
+static_assert ((int)SkRRect::Type::kOval_Type == (int)OVAL_SK_RRECT_TYPE, ASSERT_MSG(SkRRect::Type, sk_rrect_type_t));
+static_assert ((int)SkRRect::Type::kSimple_Type == (int)SIMPLE_SK_RRECT_TYPE, ASSERT_MSG(SkRRect::Type, sk_rrect_type_t));
+static_assert ((int)SkRRect::Type::kNinePatch_Type == (int)NINE_PATCH_SK_RRECT_TYPE, ASSERT_MSG(SkRRect::Type, sk_rrect_type_t));
+static_assert ((int)SkRRect::Type::kComplex_Type == (int)COMPLEX_SK_RRECT_TYPE, ASSERT_MSG(SkRRect::Type, sk_rrect_type_t));
+
+// sk_rrect_corner_t
+static_assert ((int)SkRRect::Corner::kUpperLeft_Corner == (int)UPPER_LEFT_SK_RRECT_CORNER, ASSERT_MSG(SkRRect::Corner, sk_rrect_corner_t));
+static_assert ((int)SkRRect::Corner::kUpperRight_Corner == (int)UPPER_RIGHT_SK_RRECT_CORNER, ASSERT_MSG(SkRRect::Corner, sk_rrect_corner_t));
+static_assert ((int)SkRRect::Corner::kLowerRight_Corner == (int)LOWER_RIGHT_SK_RRECT_CORNER, ASSERT_MSG(SkRRect::Corner, sk_rrect_corner_t));
+static_assert ((int)SkRRect::Corner::kLowerLeft_Corner == (int)LOWER_LEFT_SK_RRECT_CORNER, ASSERT_MSG(SkRRect::Corner, sk_rrect_corner_t));
+
+#if SK_SUPPORT_GPU
+
+// gr_surfaceorigin_t
+static_assert ((int)GrSurfaceOrigin::kBottomLeft_GrSurfaceOrigin == (int)BOTTOM_LEFT_GR_SURFACE_ORIGIN, ASSERT_MSG(GrSurfaceOrigin, gr_surfaceorigin_t));
+static_assert ((int)GrSurfaceOrigin::kTopLeft_GrSurfaceOrigin == (int)TOP_LEFT_GR_SURFACE_ORIGIN, ASSERT_MSG(GrSurfaceOrigin, gr_surfaceorigin_t));
+
+// gr_pixelconfig_t
+static_assert ((int)GrPixelConfig::kUnknown_GrPixelConfig == (int)UNKNOWN_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
+static_assert ((int)GrPixelConfig::kAlpha_8_GrPixelConfig == (int)ALPHA_8_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
+static_assert ((int)GrPixelConfig::kGray_8_GrPixelConfig == (int)GRAY_8_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
+static_assert ((int)GrPixelConfig::kRGB_565_GrPixelConfig == (int)RGB_565_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
+static_assert ((int)GrPixelConfig::kRGBA_4444_GrPixelConfig == (int)RGBA_4444_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
+static_assert ((int)GrPixelConfig::kRGBA_8888_GrPixelConfig == (int)RGBA_8888_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
+static_assert ((int)GrPixelConfig::kBGRA_8888_GrPixelConfig == (int)BGRA_8888_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
+static_assert ((int)GrPixelConfig::kSRGBA_8888_GrPixelConfig == (int)SRGBA_8888_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
+static_assert ((int)GrPixelConfig::kSBGRA_8888_GrPixelConfig == (int)SBGRA_8888_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
+static_assert ((int)GrPixelConfig::kRGBA_8888_sint_GrPixelConfig == (int)RGBA_8888_SINT_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
+static_assert ((int)GrPixelConfig::kRGBA_float_GrPixelConfig == (int)RGBA_FLOAT_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
+static_assert ((int)GrPixelConfig::kRG_float_GrPixelConfig == (int)RG_FLOAT_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
+static_assert ((int)GrPixelConfig::kAlpha_half_GrPixelConfig == (int)ALPHA_HALF_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
+static_assert ((int)GrPixelConfig::kRGBA_half_GrPixelConfig == (int)RGBA_HALF_GR_PIXEL_CONFIG, ASSERT_MSG(GrPixelConfig, gr_pixelconfig_t));
+
+// gr_backendtexture_flags_t
+static_assert ((int)GrBackendTextureFlags::kNone_GrBackendTextureFlag == (int)NONE_GR_BACKEND_TEXTURE_FLAGS, ASSERT_MSG(GrBackendTextureFlags, gr_backendtexture_flags_t));
+static_assert ((int)GrBackendTextureFlags::kRenderTarget_GrBackendTextureFlag == (int)RENDER_TARGET_GR_BACKEND_TEXTURE_FLAGS, ASSERT_MSG(GrBackendTextureFlags, gr_backendtexture_flags_t));
+
+// gr_backend_t
+static_assert ((int)GrBackend::kOpenGL_GrBackend == (int)OPENGL_GR_BACKEND, ASSERT_MSG(GrBackend, gr_backend_t));
+static_assert ((int)GrBackend::kVulkan_GrBackend == (int)VULKAN_GR_BACKEND, ASSERT_MSG(GrBackend, gr_backend_t));
+
+// gr_contextoptions_gpupathrenderers_t
+static_assert ((int)GrContextOptions::GpuPathRenderers::kNone == (int)NONE_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS, ASSERT_MSG(GrContextOptions::GpuPathRenderers, gr_contextoptions_gpupathrenderers_t));
+static_assert ((int)GrContextOptions::GpuPathRenderers::kDashLine == (int)DASHLINE_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS, ASSERT_MSG(GrContextOptions::GpuPathRenderers, gr_contextoptions_gpupathrenderers_t));
+static_assert ((int)GrContextOptions::GpuPathRenderers::kStencilAndCover == (int)STENCIL_AND_COVER_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS, ASSERT_MSG(GrContextOptions::GpuPathRenderers, gr_contextoptions_gpupathrenderers_t));
+static_assert ((int)GrContextOptions::GpuPathRenderers::kMSAA == (int)MSAA_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS, ASSERT_MSG(GrContextOptions::GpuPathRenderers, gr_contextoptions_gpupathrenderers_t));
+static_assert ((int)GrContextOptions::GpuPathRenderers::kAAHairline == (int)AA_HAIRLINE_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS, ASSERT_MSG(GrContextOptions::GpuPathRenderers, gr_contextoptions_gpupathrenderers_t));
+static_assert ((int)GrContextOptions::GpuPathRenderers::kAAConvex == (int)AA_CONVEX_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS, ASSERT_MSG(GrContextOptions::GpuPathRenderers, gr_contextoptions_gpupathrenderers_t));
+static_assert ((int)GrContextOptions::GpuPathRenderers::kAALinearizing == (int)AA_LINEARIZING_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS, ASSERT_MSG(GrContextOptions::GpuPathRenderers, gr_contextoptions_gpupathrenderers_t));
+static_assert ((int)GrContextOptions::GpuPathRenderers::kSmall == (int)SMALL_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS, ASSERT_MSG(GrContextOptions::GpuPathRenderers, gr_contextoptions_gpupathrenderers_t));
+static_assert ((int)GrContextOptions::GpuPathRenderers::kTessellating == (int)TESSELLATING_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS, ASSERT_MSG(GrContextOptions::GpuPathRenderers, gr_contextoptions_gpupathrenderers_t));
+static_assert ((int)GrContextOptions::GpuPathRenderers::kDefault == (int)DEFAULT_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS, ASSERT_MSG(GrContextOptions::GpuPathRenderers, gr_contextoptions_gpupathrenderers_t));
+static_assert ((int)GrContextOptions::GpuPathRenderers::kAll == (int)ALL_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS, ASSERT_MSG(GrContextOptions::GpuPathRenderers, gr_contextoptions_gpupathrenderers_t));
+
+#endif
+
#endif