/*
- * 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"
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_named_t
-static_assert ((int)SkColorSpace::Named::kSRGB_Named == (int)SRGB_SK_COLORSPACE_NAMED, ASSERT_MSG(SkColorSpace::Named, sk_colorspace_named_t));
-static_assert ((int)SkColorSpace::Named::kAdobeRGB_Named == (int)ADOBE_RGB_SK_COLORSPACE_NAMED, ASSERT_MSG(SkColorSpace::Named, sk_colorspace_named_t));
-static_assert ((int)SkColorSpace::Named::kSRGBLinear_Named == (int)SRGB_LINEAR_SK_COLORSPACE_NAMED, ASSERT_MSG(SkColorSpace::Named, sk_colorspace_named_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)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_vertex_mode_t
-static_assert ((int)SkCanvas::VertexMode::kTriangles_VertexMode == (int)TRIANGLES_SK_VERTEX_MODE, ASSERT_MSG(SkCanvas::VertexMode, sk_vertex_mode_t));
-static_assert ((int)SkCanvas::VertexMode::kTriangleStrip_VertexMode == (int)TRIANGLE_STRIP_SK_VERTEX_MODE, ASSERT_MSG(SkCanvas::VertexMode, sk_vertex_mode_t));
-static_assert ((int)SkCanvas::VertexMode::kTriangleFan_VertexMode == (int)TRIANGLE_FAN_SK_VERTEX_MODE, ASSERT_MSG(SkCanvas::VertexMode, sk_vertex_mode_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)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)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::kETC1_GrPixelConfig == (int)ETC1_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)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::kPLS == (int)PLS_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS, ASSERT_MSG(GrContextOptions::GpuPathRenderers, gr_contextoptions_gpupathrenderers_t));
-static_assert ((int)GrContextOptions::GpuPathRenderers::kDistanceField == (int)DISTANCE_FIELD_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));