Merge branch 'xamarin-svg-canvas' into xamarin-mobile-bindings
authorMatthew Leibowitz <mattleibow@live.com>
Mon, 16 Jan 2017 12:08:07 +0000 (14:08 +0200)
committerMatthew Leibowitz <mattleibow@live.com>
Mon, 16 Jan 2017 12:56:02 +0000 (14:56 +0200)
# Conflicts:
# gyp/core.gyp
# gyp/core.gypi
# include/c/sk_types.h
# src/c/sk_types_priv.h

1  2 
gn/core.gni
gyp/core.gyp
include/c/sk_types.h
src/c/sk_svg.cpp
src/c/sk_types_priv.h

diff --cc gn/core.gni
index 6fa96ff,0000000..c84af72
mode 100644,000000..100644
--- /dev/null
@@@ -1,578 -1,0 +1,582 @@@
 +# Copyright 2016 Google Inc.
 +#
 +# Use of this source code is governed by a BSD-style license that can be
 +# found in the LICENSE file.
 +
 +# Things are easiest for everyone if these source paths are absolute.
 +_src = get_path_info("../src", "abspath")
 +_include = get_path_info("../include", "abspath")
 +
 +skia_core_sources = [
 +  "$_include/c/sk_bitmap.h",
 +  "$_include/c/sk_canvas.h",
 +  "$_include/c/sk_codec.h",
 +  "$_include/c/sk_colorfilter.h",
 +  "$_include/c/sk_colortable.h",
 +  "$_include/c/sk_data.h",
 +  "$_include/c/sk_document.h",
 +  "$_include/c/sk_image.h",
 +  "$_include/c/sk_imagefilter.h",
 +  "$_include/c/sk_maskfilter.h",
 +  "$_include/c/sk_matrix.h",
 +  "$_include/c/sk_paint.h",
 +  "$_include/c/sk_path.h",
 +  "$_include/c/sk_patheffect.h",
 +  "$_include/c/sk_picture.h",
 +  "$_include/c/sk_pixmap.h",
 +  "$_include/c/sk_region.h",
 +  "$_include/c/sk_shader.h",
 +  "$_include/c/sk_stream.h",
 +  "$_include/c/sk_string.h",
 +  "$_include/c/sk_surface.h",
 +  "$_include/c/sk_typeface.h",
 +  "$_include/c/sk_types.h",
++  "$_include/c/sk_xml.h",
++  "$_include/c/sk_svg.h",
 +  "$_include/c/gr_context.h",
 +  "$_src/c/sk_bitmap.cpp",
 +  "$_src/c/sk_canvas.cpp",
 +  "$_src/c/sk_codec.cpp",
 +  "$_src/c/sk_colorfilter.cpp",
 +  "$_src/c/sk_colortable.cpp",
 +  "$_src/c/sk_data.cpp",
 +  "$_src/c/sk_document.cpp",
 +  "$_src/c/sk_enums.cpp",
 +  "$_src/c/sk_image.cpp",
 +  "$_src/c/sk_imagefilter.cpp",
 +  "$_src/c/sk_maskfilter.cpp",
 +  "$_src/c/sk_matrix.cpp",
 +  "$_src/c/sk_paint.cpp",
 +  "$_src/c/sk_path.cpp",
 +  "$_src/c/sk_patheffect.cpp",
 +  "$_src/c/sk_picture.cpp",
 +  "$_src/c/sk_pixmap.cpp",
 +  "$_src/c/sk_region.cpp",
 +  "$_src/c/sk_shader.cpp",
 +  "$_src/c/sk_stream.cpp",
 +  "$_src/c/sk_string.cpp",
 +  "$_src/c/sk_surface.cpp",
 +  "$_src/c/sk_typeface.cpp",
++  "$_src/c/sk_xml.cpp",
++  "$_src/c/sk_svg.cpp",
 +  "$_src/c/sk_types_priv.h",
 +  "$_src/c/gr_context.cpp",
 +
 +  "$_src/core/Sk4px.h",
 +  "$_src/core/SkAAClip.cpp",
 +  "$_src/core/SkAnnotation.cpp",
 +  "$_src/core/SkAdvancedTypefaceMetrics.h",
 +  "$_src/core/SkAlphaRuns.cpp",
 +  "$_src/core/SkAntiRun.h",
 +  "$_src/core/SkATrace.cpp",
 +  "$_src/core/SkATrace.h",
 +  "$_src/core/SkAutoKern.h",
 +  "$_src/core/SkAutoPixmapStorage.h",
 +  "$_src/core/SkAutoPixmapStorage.cpp",
 +  "$_src/core/SkBBHFactory.cpp",
 +  "$_src/core/SkBBoxHierarchy.h",
 +  "$_src/core/SkBigPicture.cpp",
 +  "$_src/core/SkBitmap.cpp",
 +  "$_src/core/SkBitmapCache.cpp",
 +  "$_src/core/SkBitmapController.cpp",
 +  "$_src/core/SkBitmapDevice.cpp",
 +  "$_src/core/SkBitmapFilter.h",
 +  "$_src/core/SkBitmapProcShader.cpp",
 +  "$_src/core/SkBitmapProcShader.h",
 +  "$_src/core/SkBitmapProcState.cpp",
 +  "$_src/core/SkBitmapProcState.h",
 +  "$_src/core/SkBitmapProcState_filter.h",
 +  "$_src/core/SkBitmapProcState_matrix.h",
 +  "$_src/core/SkBitmapProcState_matrix_template.h",
 +  "$_src/core/SkBitmapProcState_matrixProcs.cpp",
 +  "$_src/core/SkBitmapProcState_procs.h",
 +  "$_src/core/SkBitmapProcState_sample.h",
 +  "$_src/core/SkBitmapProcState_shaderproc.h",
 +  "$_src/core/SkBitmapProcState_utils.h",
 +  "$_src/core/SkBitmapProvider.cpp",
 +  "$_src/core/SkBitmapProvider.h",
 +  "$_src/core/SkBitmapScaler.h",
 +  "$_src/core/SkBitmapScaler.cpp",
 +  "$_src/core/SkBlitBWMaskTemplate.h",
 +  "$_src/core/SkBlitMask.h",
 +  "$_src/core/SkBlitMask_D32.cpp",
 +  "$_src/core/SkBlitRow_D16.cpp",
 +  "$_src/core/SkBlitRow_D32.cpp",
 +  "$_src/core/SkBlitter.h",
 +  "$_src/core/SkBlitter.cpp",
 +  "$_src/core/SkBlitter_A8.cpp",
 +  "$_src/core/SkBlitter_ARGB32.cpp",
 +  "$_src/core/SkBlitter_PM4f.cpp",
 +  "$_src/core/SkBlitter_RGB16.cpp",
 +  "$_src/core/SkBlitter_Sprite.cpp",
 +  "$_src/core/SkBlurImageFilter.cpp",
 +  "$_src/core/SkBuffer.cpp",
 +  "$_src/core/SkCachedData.cpp",
 +  "$_src/core/SkCanvas.cpp",
 +  "$_src/core/SkCanvasPriv.h",
 +  "$_src/core/SkChunkAlloc.cpp",
 +  "$_src/core/SkClipStack.cpp",
 +  "$_src/core/SkColor.cpp",
 +  "$_src/core/SkColorFilter.cpp",
 +  "$_src/core/SkColorFilterShader.cpp",
 +  "$_src/core/SkColorLookUpTable.cpp",
 +  "$_src/core/SkColorLookUpTable.h",
 +  "$_src/core/SkColorMatrixFilterRowMajor255.cpp",
 +  "$_src/core/SkColorMatrixFilterRowMajor255.h",
 +  "$_src/core/SkColorShader.cpp",
 +  "$_src/core/SkColorShader.h",
 +  "$_src/core/SkColorSpace.cpp",
 +  "$_src/core/SkColorSpace_A2B.cpp",
 +  "$_src/core/SkColorSpace_A2B.h",
 +  "$_src/core/SkColorSpace_XYZ.cpp",
 +  "$_src/core/SkColorSpace_XYZ.h",
 +  "$_src/core/SkColorSpace_ICC.cpp",
 +  "$_src/core/SkColorSpaceXform.cpp",
 +  "$_src/core/SkColorSpaceXform_A2B.cpp",
 +  "$_src/core/SkColorSpaceXform_A2B.h",
 +  "$_src/core/SkColorTable.cpp",
 +  "$_src/core/SkComposeShader.cpp",
 +  "$_src/core/SkConfig8888.cpp",
 +  "$_src/core/SkConfig8888.h",
 +  "$_src/core/SkConvolver.cpp",
 +  "$_src/core/SkConvolver.h",
 +  "$_src/core/SkCoreBlitters.h",
 +  "$_src/core/SkCpu.cpp",
 +  "$_src/core/SkCpu.h",
 +  "$_src/core/SkCubicClipper.cpp",
 +  "$_src/core/SkCubicClipper.h",
 +  "$_src/core/SkData.cpp",
 +  "$_src/core/SkDataTable.cpp",
 +  "$_src/core/SkDebug.cpp",
 +  "$_src/core/SkDeque.cpp",
 +  "$_src/core/SkDescriptor.h",
 +  "$_src/core/SkDevice.cpp",
 +  "$_src/core/SkDeviceLooper.cpp",
 +  "$_src/core/SkDeviceProfile.cpp",
 +  "$_src/core/SkDiscardableMemory.h",
 +  "$_src/lazy/SkDiscardableMemoryPool.cpp",
 +  "$_src/core/SkDistanceFieldGen.cpp",
 +  "$_src/core/SkDistanceFieldGen.h",
 +  "$_src/core/SkDither.cpp",
 +  "$_src/core/SkDither.h",
 +  "$_src/core/SkDocument.cpp",
 +  "$_src/core/SkDraw.cpp",
 +  "$_src/core/SkDrawable.cpp",
 +  "$_src/core/SkDrawLooper.cpp",
 +  "$_src/core/SkDrawProcs.h",
 +  "$_src/core/SkEdgeBuilder.cpp",
 +  "$_src/core/SkEdgeBuilder.h",
 +  "$_src/core/SkEdgeClipper.cpp",
 +  "$_src/core/SkEdgeClipper.h",
 +  "$_src/core/SkEmptyShader.h",
 +  "$_src/core/SkEndian.h",
 +  "$_src/core/SkAnalyticEdge.cpp",
 +  "$_src/core/SkAAAConstants.h",
 +  "$_src/core/SkEdge.cpp",
 +  "$_src/core/SkEdge.h",
 +  "$_src/core/SkFDot6.h",
 +  "$_src/core/SkFilterProc.cpp",
 +  "$_src/core/SkFilterProc.h",
 +  "$_src/core/SkFindAndPlaceGlyph.h",
 +  "$_src/core/SkFixedAlloc.cpp",
 +  "$_src/core/SkFixedAlloc.h",
 +  "$_src/core/SkFlattenable.cpp",
 +  "$_src/core/SkFlattenableSerialization.cpp",
 +  "$_src/core/SkFont.cpp",
 +  "$_src/core/SkFontLCDConfig.cpp",
 +  "$_src/core/SkFontMgr.cpp",
 +  "$_src/core/SkFontStyle.cpp",
 +  "$_src/core/SkFontDescriptor.cpp",
 +  "$_src/core/SkFontDescriptor.h",
 +  "$_src/core/SkFontStream.cpp",
 +  "$_src/core/SkFontStream.h",
 +  "$_src/core/SkFuzzLogging.h",
 +  "$_src/core/SkGeometry.cpp",
 +  "$_src/core/SkGeometry.h",
 +  "$_src/core/SkGlobalInitialization_core.cpp",
 +  "$_src/core/SkGlyph.h",
 +  "$_src/core/SkGlyphCache.cpp",
 +  "$_src/core/SkGlyphCache.h",
 +  "$_src/core/SkGlyphCache_Globals.h",
 +  "$_src/core/SkGpuBlurUtils.h",
 +  "$_src/core/SkGpuBlurUtils.cpp",
 +  "$_src/core/SkGraphics.cpp",
 +  "$_src/core/SkHalf.cpp",
 +  "$_src/core/SkHalf.h",
 +  "$_src/core/SkImageFilter.cpp",
 +  "$_src/core/SkImageFilterCache.cpp",
 +  "$_src/core/SkImageFilterCache.h",
 +  "$_src/core/SkImageInfo.cpp",
 +  "$_src/core/SkImageCacherator.h",
 +  "$_src/core/SkImageCacherator.cpp",
 +  "$_src/core/SkImageGenerator.cpp",
 +  "$_src/core/SkLightingShader.h",
 +  "$_src/core/SkLightingShader.cpp",
 +  "$_src/core/SkLights.cpp",
 +  "$_src/core/SkLinearBitmapPipeline.cpp",
 +  "$_src/core/SkLinearBitmapPipeline.h",
 +  "$_src/core/SkLinearBitmapPipeline_core.h",
 +  "$_src/core/SkLinearBitmapPipeline_matrix.h",
 +  "$_src/core/SkLinearBitmapPipeline_tile.h",
 +  "$_src/core/SkLinearBitmapPipeline_sample.h",
 +  "$_src/core/SkLineClipper.cpp",
 +  "$_src/core/SkLiteDL.cpp",
 +  "$_src/core/SkLiteRecorder.cpp",
 +  "$_src/core/SkLocalMatrixImageFilter.cpp",
 +  "$_src/core/SkLocalMatrixImageFilter.h",
 +  "$_src/core/SkLocalMatrixShader.cpp",
 +  "$_src/core/SkMD5.cpp",
 +  "$_src/core/SkMD5.h",
 +  "$_src/core/SkMallocPixelRef.cpp",
 +  "$_src/core/SkMask.cpp",
 +  "$_src/core/SkMaskCache.cpp",
 +  "$_src/core/SkMaskFilter.cpp",
 +  "$_src/core/SkMaskGamma.cpp",
 +  "$_src/core/SkMaskGamma.h",
 +  "$_src/core/SkMath.cpp",
 +  "$_src/core/SkMathPriv.h",
 +  "$_src/core/SkMatrix.cpp",
 +  "$_src/core/SkMatrix44.cpp",
 +  "$_src/core/SkMatrixImageFilter.cpp",
 +  "$_src/core/SkMatrixImageFilter.h",
 +  "$_src/core/SkMatrixUtils.h",
 +  "$_src/core/SkMessageBus.h",
 +  "$_src/core/SkMetaData.cpp",
 +  "$_src/core/SkMipMap.cpp",
 +  "$_src/core/SkMipMap.h",
 +  "$_src/core/SkMiniRecorder.cpp",
 +  "$_src/core/SkModeColorFilter.cpp",
 +  "$_src/core/SkMultiPictureDraw.cpp",
 +  "$_src/core/SkNextID.h",
 +  "$_src/core/SkLatticeIter.cpp",
 +  "$_src/core/SkLatticeIter.h",
 +  "$_src/core/SkNormalBevelSource.cpp",
 +  "$_src/core/SkNormalBevelSource.h",
 +  "$_src/core/SkNormalMapSource.cpp",
 +  "$_src/core/SkNormalMapSource.h",
 +  "$_src/core/SkNormalFlatSource.cpp",
 +  "$_src/core/SkNormalFlatSource.h",
 +  "$_src/core/SkNormalSource.cpp",
 +  "$_src/core/SkNormalSource.h",
 +  "$_src/core/SkNormalSourcePriv.h",
 +  "$_src/core/SkNx.h",
 +  "$_src/core/SkOpts.cpp",
 +  "$_src/core/SkOpts.h",
 +  "$_src/core/SkOrderedReadBuffer.h",
 +  "$_src/core/SkPaint.cpp",
 +  "$_src/core/SkPaintDefaults.h",
 +  "$_src/core/SkPaintPriv.cpp",
 +  "$_src/core/SkPaintPriv.h",
 +  "$_src/core/SkPath.cpp",
 +  "$_src/core/SkPathEffect.cpp",
 +  "$_src/core/SkPathMeasure.cpp",
 +  "$_src/core/SkPathPriv.h",
 +  "$_src/core/SkPathRef.cpp",
 +  "$_src/core/SkPerspIter.h",
 +  "$_src/core/SkPicture.cpp",
 +  "$_src/core/SkPictureAnalyzer.cpp",
 +  "$_src/core/SkPictureCommon.h",
 +  "$_src/core/SkPictureContentInfo.cpp",
 +  "$_src/core/SkPictureContentInfo.h",
 +  "$_src/core/SkPictureData.cpp",
 +  "$_src/core/SkPictureData.h",
 +  "$_src/core/SkPictureFlat.cpp",
 +  "$_src/core/SkPictureFlat.h",
 +  "$_src/core/SkPictureImageGenerator.cpp",
 +  "$_src/core/SkPicturePlayback.cpp",
 +  "$_src/core/SkPicturePlayback.h",
 +  "$_src/core/SkPictureRecord.cpp",
 +  "$_src/core/SkPictureRecord.h",
 +  "$_src/core/SkPictureRecorder.cpp",
 +  "$_src/core/SkPictureShader.cpp",
 +  "$_src/core/SkPictureShader.h",
 +  "$_src/core/SkPixelRef.cpp",
 +  "$_src/core/SkPixmap.cpp",
 +  "$_src/core/SkPoint.cpp",
 +  "$_src/core/SkPoint3.cpp",
 +  "$_src/core/SkPtrRecorder.cpp",
 +  "$_src/core/SkQuadClipper.cpp",
 +  "$_src/core/SkQuadClipper.h",
 +  "$_src/core/SkRadialShadowMapShader.cpp",
 +  "$_src/core/SkRadialShadowMapShader.h",
 +  "$_src/core/SkRasterClip.cpp",
 +  "$_src/core/SkRasterPipeline.cpp",
 +  "$_src/core/SkRasterPipelineBlitter.cpp",
 +  "$_src/core/SkRasterizer.cpp",
 +  "$_src/core/SkReadBuffer.h",
 +  "$_src/core/SkReadBuffer.cpp",
 +  "$_src/core/SkReader32.h",
 +  "$_src/core/SkRecord.cpp",
 +  "$_src/core/SkRecords.cpp",
 +  "$_src/core/SkRecordDraw.cpp",
 +  "$_src/core/SkRecordOpts.cpp",
 +  "$_src/core/SkRecordOpts.h",
 +  "$_src/core/SkRecordPattern.h",
 +  "$_src/core/SkRecordedDrawable.cpp",
 +  "$_src/core/SkRecorder.cpp",
 +  "$_src/core/SkRect.cpp",
 +  "$_src/core/SkRefDict.cpp",
 +  "$_src/core/SkRegion.cpp",
 +  "$_src/core/SkRegionPriv.h",
 +  "$_src/core/SkRegion_path.cpp",
 +  "$_src/core/SkResourceCache.cpp",
 +  "$_src/core/SkRRect.cpp",
 +  "$_src/core/SkRTree.h",
 +  "$_src/core/SkRTree.cpp",
 +  "$_src/core/SkRWBuffer.cpp",
 +  "$_src/core/SkScalar.cpp",
 +  "$_src/core/SkScalerContext.cpp",
 +  "$_src/core/SkScalerContext.h",
 +  "$_src/core/SkScan.cpp",
 +  "$_src/core/SkScan.h",
 +  "$_src/core/SkScanPriv.h",
 +  "$_src/core/SkScan_AAAPath.cpp",
 +  "$_src/core/SkScan_AntiPath.cpp",
 +  "$_src/core/SkScan_Antihair.cpp",
 +  "$_src/core/SkScan_Hairline.cpp",
 +  "$_src/core/SkScan_Path.cpp",
 +  "$_src/core/SkSemaphore.cpp",
 +  "$_src/core/SkShader.cpp",
 +  "$_src/core/SkSharedMutex.cpp",
 +  "$_src/core/SkSharedMutex.h",
 +  "$_src/core/SkSinglyLinkedList.h",
 +  "$_src/core/SkSmallAllocator.h",
 +  "$_src/core/SkSpanProcs.cpp",
 +  "$_src/core/SkSpecialImage.cpp",
 +  "$_src/core/SkSpecialImage.h",
 +  "$_src/core/SkSpecialSurface.cpp",
 +  "$_src/core/SkSpecialSurface.h",
 +  "$_src/core/SkSpinlock.cpp",
 +  "$_src/core/SkSpriteBlitter_ARGB32.cpp",
 +  "$_src/core/SkSpriteBlitter_RGB16.cpp",
 +  "$_src/core/SkSpriteBlitter.h",
 +  "$_src/core/SkSpriteBlitterTemplate.h",
 +  "$_src/core/SkSpriteBlitter4f.cpp",
 +  "$_src/core/SkStream.cpp",
 +  "$_src/core/SkStreamPriv.h",
 +  "$_src/core/SkString.cpp",
 +  "$_src/core/SkStringUtils.cpp",
 +  "$_src/core/SkStroke.h",
 +  "$_src/core/SkStroke.cpp",
 +  "$_src/core/SkStrokeRec.cpp",
 +  "$_src/core/SkStrokerPriv.cpp",
 +  "$_src/core/SkStrokerPriv.h",
 +  "$_src/core/SkSurfacePriv.h",
 +  "$_src/core/SkSwizzle.cpp",
 +  "$_src/core/SkSRGB.cpp",
 +  "$_src/core/SkTaskGroup.cpp",
 +  "$_src/core/SkTaskGroup.h",
 +  "$_src/core/SkTDPQueue.h",
 +  "$_src/core/SkTDynamicHash.h",
 +  "$_src/core/SkTInternalLList.h",
 +  "$_src/core/SkTextBlob.cpp",
 +  "$_src/core/SkTextFormatParams.h",
 +  "$_src/core/SkTextMapStateProc.h",
 +  "$_src/core/SkTextToPathIter.h",
 +  "$_src/core/SkTime.cpp",
 +  "$_src/core/SkTDPQueue.h",
 +  "$_src/core/SkThreadID.cpp",
 +  "$_src/core/SkTLList.h",
 +  "$_src/core/SkTLS.cpp",
 +  "$_src/core/SkTMultiMap.h",
 +  "$_src/core/SkTraceEvent.h",
 +  "$_src/core/SkTraceEventCommon.h",
 +  "$_src/core/SkTSearch.cpp",
 +  "$_src/core/SkTSort.h",
 +  "$_src/core/SkTTopoSort.h",
 +  "$_src/core/SkTypeface.cpp",
 +  "$_src/core/SkTypefaceCache.cpp",
 +  "$_src/core/SkTypefaceCache.h",
 +  "$_src/core/SkTypefacePriv.h",
 +  "$_src/core/SkUnPreMultiply.cpp",
 +  "$_src/core/SkUtils.cpp",
 +  "$_src/core/SkUtils.h",
 +  "$_src/core/SkValidatingReadBuffer.cpp",
 +  "$_src/core/SkValidatingReadBuffer.h",
 +  "$_src/core/SkValidationUtils.h",
 +  "$_src/core/SkVarAlloc.cpp",
 +  "$_src/core/SkVertState.cpp",
 +  "$_src/core/SkWriteBuffer.cpp",
 +  "$_src/core/SkWriter32.cpp",
 +  "$_src/core/SkXfermode.cpp",
 +  "$_src/core/SkXfermode4f.cpp",
 +  "$_src/core/SkXfermodeF16.cpp",
 +  "$_src/core/SkXfermode_proccoeff.h",
 +  "$_src/core/SkXfermodeInterpretation.cpp",
 +  "$_src/core/SkXfermodeInterpretation.h",
 +  "$_src/core/SkYUVPlanesCache.cpp",
 +  "$_src/core/SkYUVPlanesCache.h",
 +  "$_src/core/SkShadowShader.cpp",
 +  "$_src/core/SkShadowShader.h",
 +
 +  "$_src/image/SkImage.cpp",
 +  "$_src/image/SkImage_Generator.cpp",
 +
 +  #        "$_src/image/SkImage_Gpu.cpp",
 +  "$_src/image/SkImage_Raster.cpp",
 +  "$_src/image/SkImageShader.cpp",
 +  "$_src/image/SkImageShader.h",
 +  "$_src/image/SkSurface.cpp",
 +  "$_src/image/SkSurface_Base.h",
 +
 +  #        "$_src/image/SkSurface_Gpu.cpp",
 +  "$_src/image/SkSurface_Raster.cpp",
 +
 +  "$_src/pipe/SkPipeCanvas.cpp",
 +  "$_src/pipe/SkPipeReader.cpp",
 +
 +  "$_include/core/SkBBHFactory.h",
 +  "$_include/core/SkBitmap.h",
 +  "$_include/core/SkBitmapDevice.h",
 +  "$_include/core/SkBlitRow.h",
 +  "$_include/core/SkCanvas.h",
 +  "$_include/core/SkClipStack.h",
 +  "$_include/core/SkColor.h",
 +  "$_include/core/SkColorFilter.h",
 +  "$_include/core/SkColorPriv.h",
 +  "$_include/core/SkData.h",
 +  "$_include/core/SkDeque.h",
 +  "$_include/core/SkDevice.h",
 +  "$_include/core/SkDraw.h",
 +  "$_include/core/SkDrawable.h",
 +  "$_include/core/SkDrawFilter.h",
 +  "$_include/core/SkDrawLooper.h",
 +  "$_include/core/SkFlattenable.h",
 +  "$_include/core/SkFlattenableSerialization.h",
 +  "$_include/core/SkFontLCDConfig.h",
 +  "$_include/core/SkFontStyle.h",
 +  "$_include/core/SkGraphics.h",
 +  "$_include/core/SkImage.h",
 +  "$_include/core/SkImageEncoder.h",
 +  "$_include/core/SkImageFilter.h",
 +  "$_include/core/SkImageInfo.h",
 +  "$_include/core/SkLights.h",
 +  "$_include/core/SkMallocPixelRef.h",
 +  "$_include/core/SkMask.h",
 +  "$_include/core/SkMaskFilter.h",
 +  "$_include/core/SkMath.h",
 +  "$_include/core/SkMatrix.h",
 +  "$_include/core/SkMatrix44.h",
 +  "$_include/core/SkMetaData.h",
 +  "$_include/core/SkMultiPictureDraw.h",
 +  "$_include/core/SkOSFile.h",
 +  "$_include/core/SkPaint.h",
 +  "$_include/core/SkPath.h",
 +  "$_include/core/SkPathEffect.h",
 +  "$_include/core/SkPathMeasure.h",
 +  "$_include/core/SkPathRef.h",
 +  "$_include/core/SkPicture.h",
 +  "$_include/core/SkPictureAnalyzer.h",
 +  "$_include/core/SkPictureRecorder.h",
 +  "$_include/core/SkPixelRef.h",
 +  "$_include/core/SkPoint.h",
 +  "$_include/core/SkPoint3.h",
 +  "$_include/core/SkPreConfig.h",
 +  "$_include/core/SkRasterizer.h",
 +  "$_include/core/SkRect.h",
 +  "$_include/core/SkRefCnt.h",
 +  "$_include/core/SkRegion.h",
 +  "$_include/core/SkRRect.h",
 +  "$_include/core/SkScalar.h",
 +  "$_include/core/SkShader.h",
 +  "$_include/core/SkStream.h",
 +  "$_include/core/SkString.h",
 +  "$_include/core/SkStrokeRec.h",
 +  "$_include/core/SkSurface.h",
 +  "$_include/core/SkSwizzle.h",
 +  "$_include/core/SkTRegistry.h",
 +  "$_include/core/SkTextBlob.h",
 +  "$_include/core/SkTime.h",
 +  "$_include/core/SkTLazy.h",
 +  "$_include/core/SkTypeface.h",
 +  "$_include/core/SkTypes.h",
 +  "$_include/core/SkUnPreMultiply.h",
 +  "$_include/core/SkWriter32.h",
 +
 +  # private
 +  "$_include/private/SkAtomics.h",
 +  "$_include/private/SkChecksum.h",
 +  "$_include/private/SkChunkAlloc.h",
 +  "$_include/private/SkFixed.h",
 +  "$_include/private/SkFloatBits.h",
 +  "$_include/private/SkFloatingPoint.h",
 +  "$_include/private/SkMiniRecorder.h",
 +  "$_include/private/SkMutex.h",
 +  "$_include/private/SkOnce.h",
 +  "$_include/private/SkRecords.h",
 +  "$_include/private/SkSemaphore.h",
 +  "$_include/private/SkShadowParams.h",
 +  "$_include/private/SkSpinlock.h",
 +  "$_include/private/SkTemplates.h",
 +  "$_include/private/SkTArray.h",
 +  "$_include/private/SkTDArray.h",
 +  "$_include/private/SkTFitsIn.h",
 +  "$_include/private/SkTHash.h",
 +  "$_include/private/SkThreadID.h",
 +  "$_include/private/SkTDict.h",
 +  "$_include/private/SkTSearch.h",
 +  "$_include/private/SkTLogic.h",
 +  "$_include/private/SkWeakRefCnt.h",
 +
 +  # Path ops
 +  "$_include/pathops/SkPathOps.h",
 +
 +  "$_src/pathops/SkAddIntersections.cpp",
 +  "$_src/pathops/SkDConicLineIntersection.cpp",
 +  "$_src/pathops/SkDCubicLineIntersection.cpp",
 +  "$_src/pathops/SkDCubicToQuads.cpp",
 +  "$_src/pathops/SkDLineIntersection.cpp",
 +  "$_src/pathops/SkDQuadLineIntersection.cpp",
 +  "$_src/pathops/SkIntersections.cpp",
 +  "$_src/pathops/SkOpAngle.cpp",
 +  "$_src/pathops/SkOpBuilder.cpp",
 +  "$_src/pathops/SkOpCoincidence.cpp",
 +  "$_src/pathops/SkOpContour.cpp",
 +  "$_src/pathops/SkOpCubicHull.cpp",
 +  "$_src/pathops/SkOpEdgeBuilder.cpp",
 +  "$_src/pathops/SkOpSegment.cpp",
 +  "$_src/pathops/SkOpSpan.cpp",
 +  "$_src/pathops/SkPathOpsCommon.cpp",
 +  "$_src/pathops/SkPathOpsConic.cpp",
 +  "$_src/pathops/SkPathOpsCubic.cpp",
 +  "$_src/pathops/SkPathOpsCurve.cpp",
 +  "$_src/pathops/SkPathOpsDebug.cpp",
 +  "$_src/pathops/SkPathOpsLine.cpp",
 +  "$_src/pathops/SkPathOpsOp.cpp",
 +  "$_src/pathops/SkPathOpsPoint.cpp",
 +  "$_src/pathops/SkPathOpsQuad.cpp",
 +  "$_src/pathops/SkPathOpsRect.cpp",
 +  "$_src/pathops/SkPathOpsSimplify.cpp",
 +  "$_src/pathops/SkPathOpsTSect.cpp",
 +  "$_src/pathops/SkPathOpsTightBounds.cpp",
 +  "$_src/pathops/SkPathOpsTypes.cpp",
 +  "$_src/pathops/SkPathOpsWinding.cpp",
 +  "$_src/pathops/SkPathWriter.cpp",
 +  "$_src/pathops/SkReduceOrder.cpp",
 +
 +  "$_src/pathops/SkAddIntersections.h",
 +  "$_src/pathops/SkIntersectionHelper.h",
 +  "$_src/pathops/SkIntersections.h",
 +  "$_src/pathops/SkLineParameters.h",
 +  "$_src/pathops/SkOpAngle.h",
 +  "$_src/pathops/SkOpCoincidence.h",
 +  "$_src/pathops/SkOpContour.h",
 +  "$_src/pathops/SkOpEdgeBuilder.h",
 +  "$_src/pathops/SkOpSegment.h",
 +  "$_src/pathops/SkOpSpan.h",
 +  "$_src/pathops/SkOpTAllocator.h",
 +  "$_src/pathops/SkPathOpsBounds.h",
 +  "$_src/pathops/SkPathOpsCommon.h",
 +  "$_src/pathops/SkPathOpsConic.h",
 +  "$_src/pathops/SkPathOpsCubic.h",
 +  "$_src/pathops/SkPathOpsCurve.h",
 +  "$_src/pathops/SkPathOpsDebug.h",
 +  "$_src/pathops/SkPathOpsLine.h",
 +  "$_src/pathops/SkPathOpsPoint.h",
 +  "$_src/pathops/SkPathOpsQuad.h",
 +  "$_src/pathops/SkPathOpsRect.h",
 +  "$_src/pathops/SkPathOpsTSect.h",
 +  "$_src/pathops/SkPathOpsTypes.h",
 +  "$_src/pathops/SkPathWriter.h",
 +  "$_src/pathops/SkReduceOrder.h",
 +]
diff --cc gyp/core.gyp
@@@ -23,7 -27,8 +23,9 @@@
          '../include/private',
          '../include/utils',
          '../include/images',
 +        '../include/gpu',
+         '../include/xml',
+         '../include/svg',
          '../src/core',
          '../src/sfnt',
          '../src/image',
@@@ -545,181 -519,11 +545,186 @@@ typedef struct sk_colortable_t sk_color
  
  typedef struct sk_pixelref_factory_t sk_pixelref_factory_t;
  
 +typedef enum {
 +    BOX_SK_BITMAP_SCALER_RESIZE_METHOD,
 +    TRIANGLE_SK_BITMAP_SCALER_RESIZE_METHOD,
 +    LANCZOS3_SK_BITMAP_SCALER_RESIZE_METHOD,
 +    HAMMING_SK_BITMAP_SCALER_RESIZE_METHOD,
 +    MITCHELL_SK_BITMAP_SCALER_RESIZE_METHOD,
 +} sk_bitmapscaler_resizemethod_t;
 +
 +typedef enum {
 +    TOP_LEFT_GR_SURFACE_ORIGIN = 1,
 +    BOTTOM_LEFT_GR_SURFACE_ORIGIN,
 +} gr_surfaceorigin_t;
 +
 +typedef enum {
 +    UNKNOWN_GR_PIXEL_CONFIG,
 +    ALPHA_8_GR_PIXEL_CONFIG,
 +    INDEX_8_GR_PIXEL_CONFIG,
 +    RGB_565_GR_PIXEL_CONFIG,
 +    RGBA_4444_GR_PIXEL_CONFIG,
 +    RGBA_8888_GR_PIXEL_CONFIG,
 +    BGRA_8888_GR_PIXEL_CONFIG,
 +    SRGBA_8888_GR_PIXEL_CONFIG,
 +    SBGRA_8888_GR_PIXEL_CONFIG,
 +    RGBA_8888_SINT_GR_PIXEL_CONFIG,
 +    ETC1_GR_PIXEL_CONFIG,
 +    LATC_GR_PIXEL_CONFIG,
 +    R11_EAC_GR_PIXEL_CONFIG,
 +    ASTC_12X12_GR_PIXEL_CONFIG,
 +    RGBA_FLOAT_GR_PIXEL_CONFIG,
 +    ALPHA_HALF_GR_PIXEL_CONFIG,
 +    RGBA_HALF_GR_PIXEL_CONFIG,
 +} gr_pixelconfig_t;
 +
 +typedef enum {
 +    NONE_GR_CONTEXT_FLUSHBITS = 0,
 +    DISCARD_GR_CONTEXT_FLUSHBITS = 0x2,
 +} gr_context_flushbits_t;
 +
 +typedef intptr_t gr_backendobject_t;
 +
 +typedef struct {
 +    int fWidth;
 +    int fHeight;
 +    gr_pixelconfig_t fConfig;
 +    gr_surfaceorigin_t fOrigin;
 +    int fSampleCnt;
 +    int fStencilBits;
 +    gr_backendobject_t fRenderTargetHandle;
 +} gr_backend_rendertarget_desc_t;
 +
 +typedef enum {
 +    NONE_GR_BACKEND_TEXTURE_FLAGS = 0,
 +    RENDER_TARGET_GR_BACKEND_TEXTURE_FLAGS = 1,
 +} gr_backendtexture_flags_t;
 +
 +typedef struct {
 +    gr_backendtexture_flags_t fFlags;
 +    gr_surfaceorigin_t fOrigin;
 +    int fWidth;
 +    int fHeight;
 +    gr_pixelconfig_t fConfig;
 +    int fSampleCnt;
 +    gr_backendobject_t fTextureHandle;
 +} gr_backend_texture_desc_t;
 +
 +typedef struct gr_context_t gr_context_t;
 +
 +typedef struct {
 +    bool fSuppressPrints;
 +    int  fMaxTextureSizeOverride;
 +    int  fMaxTileSizeOverride;
 +    bool fSuppressDualSourceBlending;
 +    int  fBufferMapThreshold;
 +    bool fUseDrawInsteadOfPartialRenderTargetWrite;
 +    bool fImmediateMode;
 +    bool fClipBatchToBounds;
 +    bool fDrawBatchBounds;
 +    int fMaxBatchLookback;
 +    int fMaxBatchLookahead;
 +    bool fUseShaderSwizzling;
 +    bool fDoManualMipmapping;
 +} gr_context_options_t;
 +
 +typedef enum {
 +    OPENGL_GR_BACKEND,
 +    VULKAN_GR_BACKEND,
 +} gr_backend_t;
 +
 +typedef intptr_t gr_backendcontext_t;
 +
 +typedef struct gr_glinterface_t gr_glinterface_t;
 +
 +typedef void (*gr_gl_func_ptr)();
 +typedef gr_gl_func_ptr (*gr_gl_get_proc)(void* ctx, const char* name);
 +
 +typedef enum {
 +    DIFFERENCE_SK_PATHOP,
 +    INTERSECT_SK_PATHOP,
 +    UNION_SK_PATHOP,
 +    XOR_SK_PATHOP,
 +    REVERSE_DIFFERENCE_SK_PATHOP,
 +} sk_pathop_t;
 +
 +typedef struct sk_opbuilder_t sk_opbuilder_t;
 +
 +typedef enum {
 +    UNKNOWN_SK_PATH_CONVEXITY,
 +    CONVEX_SK_PATH_CONVEXITY,
 +    CONCAVE_SK_PATH_CONVEXITY,
 +} sk_path_convexity_t;
 +
 +typedef enum {
 +    DEFAULT_SK_LATTICE_FLAGS,
 +    TRANSPARENT_SK_LATTICE_FLAGS = 1 << 0,
 +} sk_lattice_flags_t;
 +
 +typedef struct {
 +    const int* fXDivs;
 +    const int* fYDivs;
 +    const sk_lattice_flags_t* fFlags;
 +    int fXCount;
 +    int fYCount;
 +    const sk_irect_t* fBounds;
 +} sk_lattice_t;
 +
 +typedef struct sk_pathmeasure_t sk_pathmeasure_t;
 +
 +typedef enum {
 +    GET_POSITION_SK_PATHMEASURE_MATRIXFLAGS = 0x01,
 +    GET_TANGENT_SK_PATHMEASURE_MATRIXFLAGS = 0x02,
 +    GET_POS_AND_TAN_SK_PATHMEASURE_MATRIXFLAGS = GET_POSITION_SK_PATHMEASURE_MATRIXFLAGS | GET_TANGENT_SK_PATHMEASURE_MATRIXFLAGS,
 +} sk_pathmeasure_matrixflags_t;
 +
 +typedef void (*sk_bitmap_release_proc)(void* addr, void* context);
 +
 +typedef enum {
 +    NONE_SK_SHADOWMASKFILTER_SHADOWFLAGS = 0x00,
 +    TRANSPARENT_OCCLUDER_SK_SHADOWMASKFILTER_SHADOWFLAGS = 0x01,
 +    LARGER_UMBRA_SK_SHADOWMASKFILTER_SHADOWFLAGS = 0x02,
 +    GAUSSIAN_EDGE_SK_SHADOWMASKFILTER_SHADOWFLAGS = 0x04,
 +    ALL_SK_SHADOWMASKFILTER_SHADOWFLAGS = 0x07
 +} sk_shadowmaskfilter_shadowflags_t;
 +
 +typedef enum {
 +    OPAQUE_SK_ENCODEDINFO_ALPHA,
 +    UNPREMUL_SK_ENCODEDINFO_ALPHA,
 +    BINARY_SK_ENCODEDINFO_ALPHA,
 +} sk_encodedinfo_alpha_t;
 +
 +typedef enum {
 +    GRAY_SK_ENCODEDINFO_COLOR,
 +    GRAY_ALPHA_SK_ENCODEDINFO_COLOR,
 +    PALETTE_SK_ENCODEDINFO_COLOR,
 +    RGB_SK_ENCODEDINFO_COLOR,
 +    RGBA_SK_ENCODEDINFO_COLOR,
 +    BGR_SK_ENCODEDINFO_COLOR,
 +    BGRX_SK_ENCODEDINFO_COLOR,
 +    BGRA_SK_ENCODEDINFO_COLOR,
 +    YUV_SK_ENCODEDINFO_COLOR,
 +    YUVA_SK_ENCODEDINFO_COLOR,
 +    INVERTED_CMYK_SK_ENCODEDINFO_COLOR,
 +    YCCK_SK_ENCODEDINFO_COLOR,
 +} sk_encodedinfo_color_t;
 +
 +typedef struct {
 +    sk_encodedinfo_color_t fColor;
 +    sk_encodedinfo_alpha_t fAlpha;
 +    uint8_t fBitsPerComponent;
 +} sk_encodedinfo_t;
 +
 +typedef struct {
 +    size_t fRequiredFrame;
 +    size_t fDuration;
 +} sk_codec_frameinfo_t;
 +
+ typedef struct sk_xmlstreamwriter_t sk_xmlstreamwriter_t;
+ typedef struct sk_xmlwriter_t sk_xmlwriter_t;
+ typedef struct sk_svgcanvas_t sk_svgcanvas_t;
  SK_C_PLUS_PLUS_END_GUARD
  
  #endif
index 0000000,408c4e0..fe41dfa
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,19 +1,19 @@@
 -    return ToCanvas(SkSVGCanvas::Create(AsRect(*bounds), AsXMLWriter(writer)));
+ /*
+  * Copyright 2016 Xamarin Inc.
+  *
+  * Use of this source code is governed by a BSD-style license that can be
+  * found in the LICENSE file.
+  */
+ #include "SkSVGCanvas.h"
+ #include "sk_svg.h"
+ #include "sk_types_priv.h"
+ //////////////////////////////////////////////////////////////////////////////////////////////////
+ sk_canvas_t* sk_svgcanvas_create(const sk_rect_t* bounds, sk_xmlwriter_t* writer)
+ {
++    return ToCanvas(SkSVGCanvas::Make(AsRect(*bounds), AsXMLWriter(writer)).release());
+ }
  #include "SkMatrixConvolutionImageFilter.h"
  #include "Sk1DPathEffect.h"
  #include "SkFontStyle.h"
+ #include "SkXMLWriter.h"
 +#include "GrContext.h"
 +#include "SkPathOps.h"
 +#include "SkRegion.h"
 +#include "SkTypeface.h"
 +#include "SkEncodedInfo.h"
 +#include "gl/GrGLInterface.h"
  
  #include "sk_path.h"
  #include "sk_paint.h"
@@@ -500,106 -441,38 +501,138 @@@ static inline const sk_pixelref_factory
      return reinterpret_cast<const sk_pixelref_factory_t*>(p);
  }
  
 +static inline sk_surface_t* ToSurface(SkSurface* p) {
 +    return reinterpret_cast<sk_surface_t*>(p);
 +}
 +
 +static inline SkSurface* AsSurface(sk_surface_t* p) {
 +    return reinterpret_cast<SkSurface*>(p);
 +}
 +
 +static inline gr_context_t* ToGrContext(GrContext* p) {
 +    return reinterpret_cast<gr_context_t*>(p);
 +}
 +
 +static inline GrContext* AsGrContext(gr_context_t* p) {
 +    return reinterpret_cast<GrContext*>(p);
 +}
 +static inline const GrContextOptions& AsGrContextOptions(const gr_context_options_t& p) {
 +    return reinterpret_cast<const GrContextOptions&>(p);
 +}
 +
 +static inline const GrBackendRenderTargetDesc& AsGrBackendRenderTargetDesc(const gr_backend_rendertarget_desc_t& p) {
 +    return reinterpret_cast<const GrBackendRenderTargetDesc&>(p);
 +}
 +
 +static inline const GrBackendTextureDesc& AsGrBackendTextureDesc(const gr_backend_texture_desc_t& p) {
 +    return reinterpret_cast<const GrBackendTextureDesc&>(p);
 +}
 +
 +
 +static inline gr_glinterface_t* ToGrGLInterface(GrGLInterface* p) {
 +    return reinterpret_cast<gr_glinterface_t*>(p);
 +}
 +
 +static inline GrGLInterface* AsGrGLInterface(gr_glinterface_t* p) {
 +    return reinterpret_cast<GrGLInterface*>(p);
 +}
 +
 +static inline const gr_glinterface_t* ToGrGLInterface(const GrGLInterface* p) {
 +    return reinterpret_cast<const gr_glinterface_t*>(p);
 +}
 +
 +static inline const GrGLInterface* AsGrGLInterface(const gr_glinterface_t* p) {
 +    return reinterpret_cast<const GrGLInterface*>(p);
 +}
 +
 +static inline sk_opbuilder_t* ToOpBuilder(SkOpBuilder* p) {
 +    return reinterpret_cast<sk_opbuilder_t*>(p);
 +}
 +
 +static inline SkOpBuilder* AsOpBuilder(sk_opbuilder_t* p) {
 +    return reinterpret_cast<SkOpBuilder*>(p);
 +}
 +
 +static inline const SkCanvas::Lattice& AsLattice(const sk_lattice_t& p) {
 +    return reinterpret_cast<const SkCanvas::Lattice&>(p);
 +}
 +
 +static inline sk_pathmeasure_t* ToPathMeasure(SkPathMeasure* p) {
 +    return reinterpret_cast<sk_pathmeasure_t*>(p);
 +}
 +
 +static inline SkPathMeasure* AsPathMeasure(sk_pathmeasure_t* p) {
 +    return reinterpret_cast<SkPathMeasure*>(p);
 +}
 +
 +static inline sk_encodedinfo_t* ToEncodedInfo(SkEncodedInfo *p) {
 +    return reinterpret_cast<sk_encodedinfo_t*>(p);
 +}
 +
 +static inline sk_encodedinfo_t& ToEncodedInfo(SkEncodedInfo &p) {
 +    return reinterpret_cast<sk_encodedinfo_t&>(p);
 +}
 +
 +static inline const sk_encodedinfo_t* ToEncodedInfo(const SkEncodedInfo *p) {
 +    return reinterpret_cast<const sk_encodedinfo_t*>(p);
 +}
 +
 +static inline const sk_encodedinfo_t& ToEncodedInfo(const SkEncodedInfo &p) {
 +    return reinterpret_cast<const sk_encodedinfo_t&>(p);
 +}
 +
 +static inline SkCodec::FrameInfo* AsFrameInfo(sk_codec_frameinfo_t *p) {
 +    return reinterpret_cast<SkCodec::FrameInfo*>(p);
 +}
 +
 +static inline sk_codec_frameinfo_t* ToFrameInfo(SkCodec::FrameInfo *p) {
 +    return reinterpret_cast<sk_codec_frameinfo_t*>(p);
 +}
 +
 +static inline sk_codec_frameinfo_t& ToFrameInfo(SkCodec::FrameInfo &p) {
 +    return reinterpret_cast<sk_codec_frameinfo_t&>(p);
 +}
 +
 +static inline const sk_codec_frameinfo_t* ToFrameInfo(const SkCodec::FrameInfo *p) {
 +    return reinterpret_cast<const sk_codec_frameinfo_t*>(p);
 +}
 +
 +static inline const sk_codec_frameinfo_t& ToFrameInfo(const SkCodec::FrameInfo &p) {
 +    return reinterpret_cast<const sk_codec_frameinfo_t&>(p);
 +}
 +
+ static inline const SkXMLStreamWriter* AsXMLStreamWriter(const sk_xmlstreamwriter_t* p) {
+     return reinterpret_cast<const SkXMLStreamWriter*>(p);
+ }
+ static inline SkXMLStreamWriter* AsXMLStreamWriter(sk_xmlstreamwriter_t* p) {
+     return reinterpret_cast<SkXMLStreamWriter*>(p);
+ }
+ static inline sk_xmlstreamwriter_t* ToXMLStreamWriter(SkXMLStreamWriter* p) {
+     return reinterpret_cast<sk_xmlstreamwriter_t*>(p);
+ }
+ static inline const sk_xmlstreamwriter_t* ToXMLStreamWriter(const SkXMLStreamWriter* p) {
+     return reinterpret_cast<const sk_xmlstreamwriter_t*>(p);
+ }
+ static inline const SkXMLWriter* AsXMLWriter(const sk_xmlwriter_t* p) {
+     return reinterpret_cast<const SkXMLWriter*>(p);
+ }
+ static inline SkXMLWriter* AsXMLWriter(sk_xmlwriter_t* p) {
+     return reinterpret_cast<SkXMLWriter*>(p);
+ }
+ static inline sk_xmlwriter_t* ToXMLWriter(SkXMLWriter* p) {
+     return reinterpret_cast<sk_xmlwriter_t*>(p);
+ }
+ static inline const sk_xmlwriter_t* ToXMLWriter(const SkXMLWriter* p) {
+     return reinterpret_cast<const sk_xmlwriter_t*>(p);
+ }
  static inline void from_c(const sk_matrix_t* cmatrix, SkMatrix* matrix) {
      matrix->setAll(
          cmatrix->mat[0], cmatrix->mat[1], cmatrix->mat[2],