From: Matthew Leibowitz Date: Thu, 11 May 2017 03:11:48 +0000 (+0200) Subject: updated the structs and added tests for future breaks X-Git-Tag: accepted/tizen/5.0/unified/20181102.025319~44^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5800bfd98b997bfea5f437250d604082a0575174;p=platform%2Fupstream%2FlibSkiaSharp.git updated the structs and added tests for future breaks --- diff --git a/gn/core.gni b/gn/core.gni index dc66738..434f11f 100644 --- a/gn/core.gni +++ b/gn/core.gni @@ -63,6 +63,7 @@ skia_core_sources = [ "$_src/c/sk_svg.cpp", "$_src/c/sk_types_priv.h", "$_src/c/gr_context.cpp", + "$_src/c/sk_structs.cpp", "$_src/core/Sk4px.h", "$_src/core/SkAAClip.cpp", diff --git a/include/c/sk_types.h b/include/c/sk_types.h index 1f9ff5a..0097d9d 100644 --- a/include/c/sk_types.h +++ b/include/c/sk_types.h @@ -644,6 +644,22 @@ typedef struct { typedef struct gr_context_t gr_context_t; +typedef enum { + NONE_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS = 0, + DASHLINE_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS = 1 << 0, + STENCIL_AND_COVER_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS = 1 << 1, + MSAA_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS = 1 << 2, + AA_HAIRLINE_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS = 1 << 3, + AA_CONVEX_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS = 1 << 4, + AA_LINEARIZING_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS = 1 << 5, + PLS_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS = 1 << 6, + DISTANCE_FIELD_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS = 1 << 7, + TESSELLATING_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS = 1 << 8, + DEFAULT_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS = 1 << 9, + + ALL_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS = DEFAULT_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS | (DEFAULT_GR_CONTEXT_OPTIONS_GPU_PATH_RENDERERS - 1) +} gr_contextoptions_gpupathrenderers_t; + typedef struct { bool fSuppressPrints; int fMaxTextureSizeOverride; @@ -652,12 +668,17 @@ typedef struct { int fBufferMapThreshold; bool fUseDrawInsteadOfPartialRenderTargetWrite; bool fImmediateMode; - bool fClipBatchToBounds; - bool fDrawBatchBounds; - int fMaxBatchLookback; - int fMaxBatchLookahead; + bool fClipDrawOpsToBounds; + int fMaxOpCombineLookback; + int fMaxOpCombineLookahead; bool fUseShaderSwizzling; bool fDoManualMipmapping; + bool fEnableInstancedRendering; + bool fAllowPathMaskCaching; + bool fRequireDecodeDisableForSRGB; + bool fDisableGpuYUVConversion; + bool fSuppressPathRendering; + gr_contextoptions_gpupathrenderers_t fGpuPathRenderers; } gr_context_options_t; typedef enum { diff --git a/src/c/sk_enums.cpp b/src/c/sk_enums.cpp index 49a95fb..5bd416d 100644 --- a/src/c/sk_enums.cpp +++ b/src/c/sk_enums.cpp @@ -10,6 +10,10 @@ #include "SkBitmapScaler.h" #include "SkBlurMaskFilter.h" +#if SK_SUPPORT_GPU +#include "GrContextOptions.h" +#endif + #if __cplusplus >= 199711L #define STRINGIFY(x) #x @@ -264,35 +268,6 @@ static_assert ((int)SkCanvas::PointMode::kPolygon_PointMode == (int)POLYGON_SK // 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)); - -// 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::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)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)); @@ -367,4 +342,51 @@ static_assert ((int)SkCanvas::VertexMode::kTriangleFan_VertexMode == (int)TR 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)); +#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::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)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::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::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 diff --git a/src/c/sk_structs.cpp b/src/c/sk_structs.cpp new file mode 100644 index 0000000..ca6ac4b --- /dev/null +++ b/src/c/sk_structs.cpp @@ -0,0 +1,62 @@ +/* + * Copyright 2017 Xamarin Inc. + * + * 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 "SkImageInfo.h" +#include "SkSurfaceProps.h" +#include "SkPoint.h" +#include "SkRect.h" +#include "SkPoint3.h" +#include "SkSize.h" +#include "SkPaint.h" +#include "SkCodec.h" +#include "SkMask.h" +#include "SkCanvas.h" +#include "SkTime.h" +#include "SkDocument.h" +#include "SkEncodedInfo.h" + +#if SK_SUPPORT_GPU +#include "GrTypes.h" +#include "GrContextOptions.h" +#endif + +#if __cplusplus >= 199711L + +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) +#define ASSERT_MSG(SK, C) "ABI changed, you must update the C structure for " TOSTRING(#SK) " to " TOSTRING(#C) "." + +// custom mappings: +// - sk_imageinfo_t +// - sk_surfaceprops_t +// - sk_matrix_t +// - sk_document_pdf_metadata_t + +static_assert (sizeof (sk_ipoint_t) == sizeof (SkIPoint), ASSERT_MSG(SkIPoint, sk_ipoint_t)); +static_assert (sizeof (sk_point_t) == sizeof (SkPoint), ASSERT_MSG(SkPoint, sk_point_t)); +static_assert (sizeof (sk_irect_t) == sizeof (SkIRect), ASSERT_MSG(SkIRect, sk_irect_t)); +static_assert (sizeof (sk_rect_t) == sizeof (SkRect), ASSERT_MSG(SkRect, sk_rect_t)); +static_assert (sizeof (sk_isize_t) == sizeof (SkISize), ASSERT_MSG(SkISize, sk_isize_t)); +static_assert (sizeof (sk_size_t) == sizeof (SkSize), ASSERT_MSG(SkSize, sk_size_t)); +static_assert (sizeof (sk_point3_t) == sizeof (SkPoint3), ASSERT_MSG(SkPoint3, sk_point3_t)); +static_assert (sizeof (sk_fontmetrics_t) == sizeof (SkPaint::FontMetrics), ASSERT_MSG(SkPaint::FontMetrics, sk_fontmetrics_t)); +static_assert (sizeof (sk_codec_options_t) == sizeof (SkCodec::Options), ASSERT_MSG(SkCodec::Options, sk_codec_options_t)); +static_assert (sizeof (sk_mask_t) == sizeof (SkMask), ASSERT_MSG(SkMask, sk_mask_t)); +static_assert (sizeof (sk_lattice_t) == sizeof (SkCanvas::Lattice), ASSERT_MSG(SkCanvas::Lattice, sk_lattice_t)); +static_assert (sizeof (sk_time_datetime_t) == sizeof (SkTime::DateTime), ASSERT_MSG(SkTime::DateTime, sk_time_datetime_t)); +static_assert (sizeof (sk_encodedinfo_t) == sizeof (SkEncodedInfo), ASSERT_MSG(SkEncodedInfo, sk_encodedinfo_t)); +static_assert (sizeof (sk_codec_frameinfo_t) == sizeof (SkCodec::FrameInfo), ASSERT_MSG(SkCodec::FrameInfo, sk_codec_frameinfo_t)); + +#if SK_SUPPORT_GPU +static_assert (sizeof (gr_backend_rendertarget_desc_t) == sizeof (GrBackendRenderTargetDesc), ASSERT_MSG(GrBackendRenderTargetDesc, gr_backend_rendertarget_desc_t)); +static_assert (sizeof (gr_backend_texture_desc_t) == sizeof (GrBackendTextureDesc), ASSERT_MSG(GrBackendTextureDesc, gr_backend_texture_desc_t)); +static_assert (sizeof (gr_context_options_t) == sizeof (GrContextOptions), ASSERT_MSG(GrContextOptions, gr_context_options_t)); +#endif + +#endif