# Include this gypi to include all public header files that use
# the SK_API defines.
#
# The list is computed by running 'egrep -lr "SK_API" include' in the root dir 
# of the project.
#
{
  'variables': {
    'header_filenames': [
      'pdf/SkPDFDevice.h',
      'pdf/SkPDFDocument.h',
      'gpu/SkGpuDevice.h',
      'gpu/SkGrPixelRef.h',
      'effects/SkMorphologyImageFilter.h',
      'effects/Sk2DPathEffect.h',
      'effects/SkXfermodeImageFilter.h',
      'effects/SkArithmeticMode.h',
      'effects/SkMergeImageFilter.h',
      'effects/SkPerlinNoiseShader.h',
      'effects/SkLerpXfermode.h',
      'effects/SkRectShaderImageFilter.h',
      'effects/SkMagnifierImageFilter.h',
      'effects/SkBicubicImageFilter.h',
      'effects/SkPorterDuff.h',
      'effects/SkBlurImageFilter.h',
      'effects/SkKernel33MaskFilter.h',
      'effects/SkTableMaskFilter.h',
      'effects/SkAvoidXfermode.h',
      'effects/SkBitmapSource.h',
      'effects/SkCornerPathEffect.h',
      'effects/SkTransparentShader.h',
      'effects/SkStippleMaskFilter.h',
      'effects/SkPaintFlagsDrawFilter.h',
      'effects/SkOffsetImageFilter.h',
      'effects/SkDiscretePathEffect.h',
      'effects/SkTableColorFilter.h',
      'effects/SkGradientShader.h',
      'effects/SkEmbossMaskFilter.h',
      'effects/SkComposeImageFilter.h',
      'effects/SkTestImageFilters.h',
      'effects/SkLayerRasterizer.h',
      'effects/SkDashPathEffect.h',
      'effects/Sk1DPathEffect.h',
      'effects/SkBlurMaskFilter.h',
      'effects/SkDisplacementMapEffect.h',
      'effects/SkPixelXorXfermode.h',
      'effects/SkColorMatrixFilter.h',
      'effects/SkColorMatrix.h',
      'effects/SkBlurDrawLooper.h',
      'effects/SkColorFilterImageFilter.h',
      'effects/SkLayerDrawLooper.h',
      'effects/SkLightingImageFilter.h',
      'effects/SkDropShadowImageFilter.h',
      'effects/SkMatrixConvolutionImageFilter.h',
      'utils/SkPictureUtils.h',
      'utils/SkMatrix44.h',
      'utils/SkProxyCanvas.h',
      'utils/SkNWayCanvas.h',
      'utils/SkPathUtils.h',
      'utils/SkDeferredCanvas.h',
      'utils/SkNullCanvas.h',
      'utils/mac/SkCGUtils.h',
      'device/xps/SkXPSDevice.h',
      'ports/SkTypeface_win.h',
      'ports/SkFontConfigInterface.h',
      'ports/SkTypeface_mac.h',
      'ports/SkTypeface_android.h',
      'ports/SkFontStyle.h',
      'ports/SkFontMgr.h',
      'core/SkColor.h',
      'core/SkFontHost.h',
      'core/SkMetaData.h',
      'core/SkRRect.h',
      'core/SkMatrix.h',
      'core/SkDataTable.h',
      'core/SkTypeface.h',
      'core/SkDrawFilter.h',
      'core/SkRasterizer.h',
      'core/SkColorPriv.h',
      'core/SkPaint.h',
      'core/SkBitmap.h',
      'core/SkFloatBits.h',
      'core/SkDeque.h',
      'core/Sk64.h',
      'core/SkComposeShader.h',
      'core/SkImage.h',
      'core/SkTileGridPicture.h',
      'core/SkGraphics.h',
      'core/SkCanvas.h',
      'core/SkPicture.h',
      'core/SkClipStack.h',
      'core/SkXfermode.h',
      'core/SkColorFilter.h',
      'core/SkRegion.h',
      'core/SkRefCnt.h',
      'core/SkStream.h',
      'core/SkGeometry.h',
      'core/SkPathMeasure.h',
      'core/SkMaskFilter.h',
      'core/SkTDArray.h',
      'core/SkAnnotation.h',
      'core/SkDrawLooper.h',
      'core/SkThread_platform.h',
      'core/SkTemplates.h',
      'core/SkWeakRefCnt.h',
      'core/SkTypes.h',
      'core/SkData.h',
      'core/SkPoint.h',
      'core/SkColorShader.h',
      'core/SkUnPreMultiply.h',
      'core/SkDevice.h',
      'core/SkImageFilter.h',
      'core/SkPreConfig.h',
      'core/SkImageFilterUtils.h',
      'core/SkPathEffect.h',
      'core/SkString.h',
      'core/SkPixelRef.h',
      'core/SkEmptyShader.h',
      'core/SkSurface.h',
      'core/SkShader.h',
      'core/SkPath.h',
      'core/SkFlattenable.h',
      'core/SkRect.h',
      'pathops/SkPathOps.h',
    ],
  },
}

# Local Variables:
# tab-width:2
# indent-tabs-mode:nil
# End:
# vim: set expandtab tabstop=2 shiftwidth=2:
