Bug 688333 - Initial import of Skia source code
authorMatt Woodrow <mwoodrow@mozilla.com>
Fri, 28 Oct 2011 20:05:31 +1300
changeset 80001 99297e426f81730dda7dbdbf298081c0c79016fd
parent 80000 656a231abf2335fd3aa479509ae3a3653fcc66b3
child 80002 ebed635187a21fd23b64af387b314ac7ba2c6620
push idunknown
push userunknown
push dateunknown
bugs688333
milestone10.0a1
Bug 688333 - Initial import of Skia source code
gfx/skia/LICENSE
gfx/skia/README
gfx/skia/include/animator/SkAnimator.h
gfx/skia/include/animator/SkAnimatorView.h
gfx/skia/include/config/SkUserConfig.h
gfx/skia/include/config/sk_stdint.h
gfx/skia/include/core/Sk64.h
gfx/skia/include/core/SkAdvancedTypefaceMetrics.h
gfx/skia/include/core/SkAutoKern.h
gfx/skia/include/core/SkBitmap.h
gfx/skia/include/core/SkBlitRow.h
gfx/skia/include/core/SkBlitter.h
gfx/skia/include/core/SkBounder.h
gfx/skia/include/core/SkBuffer.h
gfx/skia/include/core/SkCanvas.h
gfx/skia/include/core/SkChunkAlloc.h
gfx/skia/include/core/SkClampRange.h
gfx/skia/include/core/SkClipStack.h
gfx/skia/include/core/SkColor.h
gfx/skia/include/core/SkColorFilter.h
gfx/skia/include/core/SkColorPriv.h
gfx/skia/include/core/SkColorShader.h
gfx/skia/include/core/SkComposeShader.h
gfx/skia/include/core/SkData.h
gfx/skia/include/core/SkDeque.h
gfx/skia/include/core/SkDescriptor.h
gfx/skia/include/core/SkDevice.h
gfx/skia/include/core/SkDither.h
gfx/skia/include/core/SkDraw.h
gfx/skia/include/core/SkDrawFilter.h
gfx/skia/include/core/SkDrawLooper.h
gfx/skia/include/core/SkEdgeClipper.h
gfx/skia/include/core/SkEmptyShader.h
gfx/skia/include/core/SkEndian.h
gfx/skia/include/core/SkFDot6.h
gfx/skia/include/core/SkFixed.h
gfx/skia/include/core/SkFlate.h
gfx/skia/include/core/SkFlattenable.h
gfx/skia/include/core/SkFloatBits.h
gfx/skia/include/core/SkFloatingPoint.h
gfx/skia/include/core/SkFontHost.h
gfx/skia/include/core/SkGeometry.h
gfx/skia/include/core/SkGlobals.h
gfx/skia/include/core/SkGraphics.h
gfx/skia/include/core/SkImageFilter.h
gfx/skia/include/core/SkLineClipper.h
gfx/skia/include/core/SkMMapStream.h
gfx/skia/include/core/SkMallocPixelRef.h
gfx/skia/include/core/SkMask.h
gfx/skia/include/core/SkMaskFilter.h
gfx/skia/include/core/SkMath.h
gfx/skia/include/core/SkMatrix.h
gfx/skia/include/core/SkMetaData.h
gfx/skia/include/core/SkOSFile.h
gfx/skia/include/core/SkPackBits.h
gfx/skia/include/core/SkPaint.h
gfx/skia/include/core/SkPath.h
gfx/skia/include/core/SkPathEffect.h
gfx/skia/include/core/SkPathMeasure.h
gfx/skia/include/core/SkPerspIter.h
gfx/skia/include/core/SkPicture.h
gfx/skia/include/core/SkPixelRef.h
gfx/skia/include/core/SkPoint.h
gfx/skia/include/core/SkPostConfig.h
gfx/skia/include/core/SkPreConfig.h
gfx/skia/include/core/SkPtrRecorder.h
gfx/skia/include/core/SkRandom.h
gfx/skia/include/core/SkRasterizer.h
gfx/skia/include/core/SkReader32.h
gfx/skia/include/core/SkRect.h
gfx/skia/include/core/SkRefCnt.h
gfx/skia/include/core/SkRefDict.h
gfx/skia/include/core/SkRegion.h
gfx/skia/include/core/SkRelay.h
gfx/skia/include/core/SkScalar.h
gfx/skia/include/core/SkScalarCompare.h
gfx/skia/include/core/SkScalerContext.h
gfx/skia/include/core/SkScan.h
gfx/skia/include/core/SkShader.h
gfx/skia/include/core/SkShape.h
gfx/skia/include/core/SkSize.h
gfx/skia/include/core/SkStream.h
gfx/skia/include/core/SkString.h
gfx/skia/include/core/SkStroke.h
gfx/skia/include/core/SkTArray.h
gfx/skia/include/core/SkTDArray.h
gfx/skia/include/core/SkTDStack.h
gfx/skia/include/core/SkTDict.h
gfx/skia/include/core/SkTLazy.h
gfx/skia/include/core/SkTRegistry.h
gfx/skia/include/core/SkTScopedPtr.h
gfx/skia/include/core/SkTSearch.h
gfx/skia/include/core/SkTemplates.h
gfx/skia/include/core/SkThread.h
gfx/skia/include/core/SkThread_platform.h
gfx/skia/include/core/SkTime.h
gfx/skia/include/core/SkTrace.h
gfx/skia/include/core/SkTypeface.h
gfx/skia/include/core/SkTypes.h
gfx/skia/include/core/SkUnPreMultiply.h
gfx/skia/include/core/SkUnitMapper.h
gfx/skia/include/core/SkUtils.h
gfx/skia/include/core/SkWriter32.h
gfx/skia/include/core/SkXfermode.h
gfx/skia/include/effects/Sk1DPathEffect.h
gfx/skia/include/effects/Sk2DPathEffect.h
gfx/skia/include/effects/SkAvoidXfermode.h
gfx/skia/include/effects/SkBlurDrawLooper.h
gfx/skia/include/effects/SkBlurMaskFilter.h
gfx/skia/include/effects/SkColorMatrix.h
gfx/skia/include/effects/SkColorMatrixFilter.h
gfx/skia/include/effects/SkCornerPathEffect.h
gfx/skia/include/effects/SkDashPathEffect.h
gfx/skia/include/effects/SkDiscretePathEffect.h
gfx/skia/include/effects/SkDrawExtraPathEffect.h
gfx/skia/include/effects/SkEmbossMaskFilter.h
gfx/skia/include/effects/SkGradientShader.h
gfx/skia/include/effects/SkGroupShape.h
gfx/skia/include/effects/SkKernel33MaskFilter.h
gfx/skia/include/effects/SkLayerDrawLooper.h
gfx/skia/include/effects/SkLayerRasterizer.h
gfx/skia/include/effects/SkPaintFlagsDrawFilter.h
gfx/skia/include/effects/SkPixelXorXfermode.h
gfx/skia/include/effects/SkPorterDuff.h
gfx/skia/include/effects/SkRectShape.h
gfx/skia/include/effects/SkTableMaskFilter.h
gfx/skia/include/effects/SkTransparentShader.h
gfx/skia/include/gpu/GrClip.h
gfx/skia/include/gpu/GrClipIterator.h
gfx/skia/include/gpu/GrColor.h
gfx/skia/include/gpu/GrConfig.h
gfx/skia/include/gpu/GrContext.h
gfx/skia/include/gpu/GrFontScaler.h
gfx/skia/include/gpu/GrGLConfig.h
gfx/skia/include/gpu/GrGLConfig_chrome.h
gfx/skia/include/gpu/GrGLDefines.h
gfx/skia/include/gpu/GrGLInterface.h
gfx/skia/include/gpu/GrGlyph.h
gfx/skia/include/gpu/GrInstanceCounter.h
gfx/skia/include/gpu/GrKey.h
gfx/skia/include/gpu/GrMatrix.h
gfx/skia/include/gpu/GrNoncopyable.h
gfx/skia/include/gpu/GrPaint.h
gfx/skia/include/gpu/GrPath.h
gfx/skia/include/gpu/GrPoint.h
gfx/skia/include/gpu/GrRect.h
gfx/skia/include/gpu/GrRefCnt.h
gfx/skia/include/gpu/GrRenderTarget.h
gfx/skia/include/gpu/GrResource.h
gfx/skia/include/gpu/GrSamplerState.h
gfx/skia/include/gpu/GrScalar.h
gfx/skia/include/gpu/GrTemplates.h
gfx/skia/include/gpu/GrTextContext.h
gfx/skia/include/gpu/GrTexture.h
gfx/skia/include/gpu/GrTypes.h
gfx/skia/include/gpu/GrUserConfig.h
gfx/skia/include/gpu/SkGLContext.h
gfx/skia/include/gpu/SkGpuCanvas.h
gfx/skia/include/gpu/SkGpuDevice.h
gfx/skia/include/gpu/SkGr.h
gfx/skia/include/gpu/SkGrTexturePixelRef.h
gfx/skia/include/gpu/SkMesaGLContext.h
gfx/skia/include/gpu/SkNativeGLContext.h
gfx/skia/include/gpu/SkNullGLContext.h
gfx/skia/include/images/SkFlipPixelRef.h
gfx/skia/include/images/SkImageDecoder.h
gfx/skia/include/images/SkImageEncoder.h
gfx/skia/include/images/SkImageRef.h
gfx/skia/include/images/SkImageRef_GlobalPool.h
gfx/skia/include/images/SkJpegUtility.h
gfx/skia/include/images/SkMovie.h
gfx/skia/include/images/SkPageFlipper.h
gfx/skia/include/pdf/SkBitSet.h
gfx/skia/include/pdf/SkPDFCatalog.h
gfx/skia/include/pdf/SkPDFDevice.h
gfx/skia/include/pdf/SkPDFDocument.h
gfx/skia/include/pdf/SkPDFFont.h
gfx/skia/include/pdf/SkPDFFormXObject.h
gfx/skia/include/pdf/SkPDFGraphicState.h
gfx/skia/include/pdf/SkPDFImage.h
gfx/skia/include/pdf/SkPDFPage.h
gfx/skia/include/pdf/SkPDFShader.h
gfx/skia/include/pdf/SkPDFStream.h
gfx/skia/include/pdf/SkPDFTypes.h
gfx/skia/include/pdf/SkPDFUtils.h
gfx/skia/include/pipe/SkGPipe.h
gfx/skia/include/ports/SkHarfBuzzFont.h
gfx/skia/include/ports/SkStream_Win.h
gfx/skia/include/ports/SkTypeface_mac.h
gfx/skia/include/ports/SkTypeface_win.h
gfx/skia/include/svg/SkSVGAttribute.h
gfx/skia/include/svg/SkSVGBase.h
gfx/skia/include/svg/SkSVGPaintState.h
gfx/skia/include/svg/SkSVGParser.h
gfx/skia/include/svg/SkSVGTypes.h
gfx/skia/include/text/SkTextLayout.h
gfx/skia/include/utils/SkBoundaryPatch.h
gfx/skia/include/utils/SkCamera.h
gfx/skia/include/utils/SkCubicInterval.h
gfx/skia/include/utils/SkCullPoints.h
gfx/skia/include/utils/SkDumpCanvas.h
gfx/skia/include/utils/SkGLCanvas.h
gfx/skia/include/utils/SkInterpolator.h
gfx/skia/include/utils/SkLayer.h
gfx/skia/include/utils/SkMatrix44.h
gfx/skia/include/utils/SkMeshUtils.h
gfx/skia/include/utils/SkNWayCanvas.h
gfx/skia/include/utils/SkNinePatch.h
gfx/skia/include/utils/SkParse.h
gfx/skia/include/utils/SkParsePaint.h
gfx/skia/include/utils/SkParsePath.h
gfx/skia/include/utils/SkProxyCanvas.h
gfx/skia/include/utils/SkSfntUtils.h
gfx/skia/include/utils/SkTextBox.h
gfx/skia/include/utils/SkUnitMappers.h
gfx/skia/include/utils/android/AndroidKeyToSkKey.h
gfx/skia/include/utils/mac/SkCGUtils.h
gfx/skia/include/utils/unix/XkeysToSkKeys.h
gfx/skia/include/utils/unix/keysym2ucs.h
gfx/skia/include/utils/win/SkAutoCoInitialize.h
gfx/skia/include/utils/win/SkHRESULT.h
gfx/skia/include/utils/win/SkIStream.h
gfx/skia/include/utils/win/SkTScopedComPtr.h
gfx/skia/include/views/SkApplication.h
gfx/skia/include/views/SkBGViewArtist.h
gfx/skia/include/views/SkBorderView.h
gfx/skia/include/views/SkEvent.h
gfx/skia/include/views/SkEventSink.h
gfx/skia/include/views/SkImageView.h
gfx/skia/include/views/SkKey.h
gfx/skia/include/views/SkOSMenu.h
gfx/skia/include/views/SkOSWindow_Android.h
gfx/skia/include/views/SkOSWindow_Mac.h
gfx/skia/include/views/SkOSWindow_SDL.h
gfx/skia/include/views/SkOSWindow_Unix.h
gfx/skia/include/views/SkOSWindow_Win.h
gfx/skia/include/views/SkOSWindow_iOS.h
gfx/skia/include/views/SkOSWindow_wxwidgets.h
gfx/skia/include/views/SkProgressBarView.h
gfx/skia/include/views/SkScrollBarView.h
gfx/skia/include/views/SkStackViewLayout.h
gfx/skia/include/views/SkSystemEventTypes.h
gfx/skia/include/views/SkTouchGesture.h
gfx/skia/include/views/SkView.h
gfx/skia/include/views/SkViewInflate.h
gfx/skia/include/views/SkWidget.h
gfx/skia/include/views/SkWidgetViews.h
gfx/skia/include/views/SkWindow.h
gfx/skia/include/xml/SkBML_WXMLParser.h
gfx/skia/include/xml/SkBML_XMLParser.h
gfx/skia/include/xml/SkDOM.h
gfx/skia/include/xml/SkJS.h
gfx/skia/include/xml/SkXMLParser.h
gfx/skia/include/xml/SkXMLWriter.h
gfx/skia/src/animator/SkAnimate.h
gfx/skia/src/animator/SkAnimate3DSchema.xsd
gfx/skia/src/animator/SkAnimate3DSchema.xsx
gfx/skia/src/animator/SkAnimateActive.cpp
gfx/skia/src/animator/SkAnimateActive.h
gfx/skia/src/animator/SkAnimateBase.cpp
gfx/skia/src/animator/SkAnimateBase.h
gfx/skia/src/animator/SkAnimateField.cpp
gfx/skia/src/animator/SkAnimateMaker.cpp
gfx/skia/src/animator/SkAnimateMaker.h
gfx/skia/src/animator/SkAnimateProperties.h
gfx/skia/src/animator/SkAnimateSchema.xsd
gfx/skia/src/animator/SkAnimateSchema.xsx
gfx/skia/src/animator/SkAnimateSet.cpp
gfx/skia/src/animator/SkAnimateSet.h
gfx/skia/src/animator/SkAnimator.cpp
gfx/skia/src/animator/SkAnimatorScript.cpp
gfx/skia/src/animator/SkAnimatorScript.h
gfx/skia/src/animator/SkAnimatorScript2.cpp
gfx/skia/src/animator/SkAnimatorScript2.h
gfx/skia/src/animator/SkBase64.cpp
gfx/skia/src/animator/SkBase64.h
gfx/skia/src/animator/SkBoundable.cpp
gfx/skia/src/animator/SkBoundable.h
gfx/skia/src/animator/SkBuildCondensedInfo.cpp
gfx/skia/src/animator/SkCondensedDebug.cpp
gfx/skia/src/animator/SkCondensedRelease.cpp
gfx/skia/src/animator/SkDisplayAdd.cpp
gfx/skia/src/animator/SkDisplayAdd.h
gfx/skia/src/animator/SkDisplayApply.cpp
gfx/skia/src/animator/SkDisplayApply.h
gfx/skia/src/animator/SkDisplayBounds.cpp
gfx/skia/src/animator/SkDisplayBounds.h
gfx/skia/src/animator/SkDisplayEvent.cpp
gfx/skia/src/animator/SkDisplayEvent.h
gfx/skia/src/animator/SkDisplayEvents.cpp
gfx/skia/src/animator/SkDisplayEvents.h
gfx/skia/src/animator/SkDisplayInclude.cpp
gfx/skia/src/animator/SkDisplayInclude.h
gfx/skia/src/animator/SkDisplayInput.cpp
gfx/skia/src/animator/SkDisplayInput.h
gfx/skia/src/animator/SkDisplayList.cpp
gfx/skia/src/animator/SkDisplayList.h
gfx/skia/src/animator/SkDisplayMath.cpp
gfx/skia/src/animator/SkDisplayMath.h
gfx/skia/src/animator/SkDisplayMovie.cpp
gfx/skia/src/animator/SkDisplayMovie.h
gfx/skia/src/animator/SkDisplayNumber.cpp
gfx/skia/src/animator/SkDisplayNumber.h
gfx/skia/src/animator/SkDisplayPost.cpp
gfx/skia/src/animator/SkDisplayPost.h
gfx/skia/src/animator/SkDisplayRandom.cpp
gfx/skia/src/animator/SkDisplayRandom.h
gfx/skia/src/animator/SkDisplayScreenplay.cpp
gfx/skia/src/animator/SkDisplayScreenplay.h
gfx/skia/src/animator/SkDisplayType.cpp
gfx/skia/src/animator/SkDisplayType.h
gfx/skia/src/animator/SkDisplayTypes.cpp
gfx/skia/src/animator/SkDisplayTypes.h
gfx/skia/src/animator/SkDisplayXMLParser.cpp
gfx/skia/src/animator/SkDisplayXMLParser.h
gfx/skia/src/animator/SkDisplayable.cpp
gfx/skia/src/animator/SkDisplayable.h
gfx/skia/src/animator/SkDraw3D.cpp
gfx/skia/src/animator/SkDraw3D.h
gfx/skia/src/animator/SkDrawBitmap.cpp
gfx/skia/src/animator/SkDrawBitmap.h
gfx/skia/src/animator/SkDrawBlur.cpp
gfx/skia/src/animator/SkDrawBlur.h
gfx/skia/src/animator/SkDrawClip.cpp
gfx/skia/src/animator/SkDrawClip.h
gfx/skia/src/animator/SkDrawColor.cpp
gfx/skia/src/animator/SkDrawColor.h
gfx/skia/src/animator/SkDrawDash.cpp
gfx/skia/src/animator/SkDrawDash.h
gfx/skia/src/animator/SkDrawDiscrete.cpp
gfx/skia/src/animator/SkDrawDiscrete.h
gfx/skia/src/animator/SkDrawEmboss.cpp
gfx/skia/src/animator/SkDrawEmboss.h
gfx/skia/src/animator/SkDrawExtraPathEffect.cpp
gfx/skia/src/animator/SkDrawFull.cpp
gfx/skia/src/animator/SkDrawFull.h
gfx/skia/src/animator/SkDrawGradient.cpp
gfx/skia/src/animator/SkDrawGradient.h
gfx/skia/src/animator/SkDrawGroup.cpp
gfx/skia/src/animator/SkDrawGroup.h
gfx/skia/src/animator/SkDrawLine.cpp
gfx/skia/src/animator/SkDrawLine.h
gfx/skia/src/animator/SkDrawMatrix.cpp
gfx/skia/src/animator/SkDrawMatrix.h
gfx/skia/src/animator/SkDrawOval.cpp
gfx/skia/src/animator/SkDrawOval.h
gfx/skia/src/animator/SkDrawPaint.cpp
gfx/skia/src/animator/SkDrawPaint.h
gfx/skia/src/animator/SkDrawPath.cpp
gfx/skia/src/animator/SkDrawPath.h
gfx/skia/src/animator/SkDrawPoint.cpp
gfx/skia/src/animator/SkDrawPoint.h
gfx/skia/src/animator/SkDrawRectangle.cpp
gfx/skia/src/animator/SkDrawRectangle.h
gfx/skia/src/animator/SkDrawSaveLayer.cpp
gfx/skia/src/animator/SkDrawSaveLayer.h
gfx/skia/src/animator/SkDrawShader.cpp
gfx/skia/src/animator/SkDrawShader.h
gfx/skia/src/animator/SkDrawText.cpp
gfx/skia/src/animator/SkDrawText.h
gfx/skia/src/animator/SkDrawTextBox.cpp
gfx/skia/src/animator/SkDrawTextBox.h
gfx/skia/src/animator/SkDrawTo.cpp
gfx/skia/src/animator/SkDrawTo.h
gfx/skia/src/animator/SkDrawTransparentShader.cpp
gfx/skia/src/animator/SkDrawTransparentShader.h
gfx/skia/src/animator/SkDrawable.cpp
gfx/skia/src/animator/SkDrawable.h
gfx/skia/src/animator/SkDump.cpp
gfx/skia/src/animator/SkDump.h
gfx/skia/src/animator/SkExtraPathEffects.xsd
gfx/skia/src/animator/SkExtras.h
gfx/skia/src/animator/SkGetCondensedInfo.cpp
gfx/skia/src/animator/SkHitClear.cpp
gfx/skia/src/animator/SkHitClear.h
gfx/skia/src/animator/SkHitTest.cpp
gfx/skia/src/animator/SkHitTest.h
gfx/skia/src/animator/SkIntArray.h
gfx/skia/src/animator/SkMatrixParts.cpp
gfx/skia/src/animator/SkMatrixParts.h
gfx/skia/src/animator/SkMemberInfo.cpp
gfx/skia/src/animator/SkMemberInfo.h
gfx/skia/src/animator/SkOpArray.cpp
gfx/skia/src/animator/SkOpArray.h
gfx/skia/src/animator/SkOperand.h
gfx/skia/src/animator/SkOperand2.h
gfx/skia/src/animator/SkOperandInterpolator.h
gfx/skia/src/animator/SkOperandIterpolator.cpp
gfx/skia/src/animator/SkPaintParts.cpp
gfx/skia/src/animator/SkPaintParts.h
gfx/skia/src/animator/SkParseSVGPath.cpp
gfx/skia/src/animator/SkPathParts.cpp
gfx/skia/src/animator/SkPathParts.h
gfx/skia/src/animator/SkPostParts.cpp
gfx/skia/src/animator/SkPostParts.h
gfx/skia/src/animator/SkScript.cpp
gfx/skia/src/animator/SkScript.h
gfx/skia/src/animator/SkScript2.h
gfx/skia/src/animator/SkScriptCallBack.h
gfx/skia/src/animator/SkScriptDecompile.cpp
gfx/skia/src/animator/SkScriptRuntime.cpp
gfx/skia/src/animator/SkScriptRuntime.h
gfx/skia/src/animator/SkScriptTokenizer.cpp
gfx/skia/src/animator/SkSnapshot.cpp
gfx/skia/src/animator/SkSnapshot.h
gfx/skia/src/animator/SkTDArray_Experimental.h
gfx/skia/src/animator/SkTextOnPath.cpp
gfx/skia/src/animator/SkTextOnPath.h
gfx/skia/src/animator/SkTextToPath.cpp
gfx/skia/src/animator/SkTextToPath.h
gfx/skia/src/animator/SkTime.cpp
gfx/skia/src/animator/SkTypedArray.cpp
gfx/skia/src/animator/SkTypedArray.h
gfx/skia/src/animator/SkXMLAnimatorWriter.cpp
gfx/skia/src/animator/SkXMLAnimatorWriter.h
gfx/skia/src/core/ARGB32_Clamp_Bilinear_BitmapShader.h
gfx/skia/src/core/Sk64.cpp
gfx/skia/src/core/SkAAClip.cpp
gfx/skia/src/core/SkAAClip.h
gfx/skia/src/core/SkAdvancedTypefaceMetrics.cpp
gfx/skia/src/core/SkAlphaRuns.cpp
gfx/skia/src/core/SkAntiRun.h
gfx/skia/src/core/SkBitmap.cpp
gfx/skia/src/core/SkBitmapProcShader.cpp
gfx/skia/src/core/SkBitmapProcShader.h
gfx/skia/src/core/SkBitmapProcState.cpp
gfx/skia/src/core/SkBitmapProcState.h
gfx/skia/src/core/SkBitmapProcState_filter.h
gfx/skia/src/core/SkBitmapProcState_matrix.h
gfx/skia/src/core/SkBitmapProcState_matrixProcs.cpp
gfx/skia/src/core/SkBitmapProcState_matrix_clamp.h
gfx/skia/src/core/SkBitmapProcState_matrix_repeat.h
gfx/skia/src/core/SkBitmapProcState_sample.h
gfx/skia/src/core/SkBitmapProcState_shaderproc.h
gfx/skia/src/core/SkBitmapSampler.cpp
gfx/skia/src/core/SkBitmapSampler.h
gfx/skia/src/core/SkBitmapSamplerTemplate.h
gfx/skia/src/core/SkBitmapShader16BilerpTemplate.h
gfx/skia/src/core/SkBitmapShaderTemplate.h
gfx/skia/src/core/SkBitmap_scroll.cpp
gfx/skia/src/core/SkBlitBWMaskTemplate.h
gfx/skia/src/core/SkBlitMask.h
gfx/skia/src/core/SkBlitMask_D32.cpp
gfx/skia/src/core/SkBlitRow_D16.cpp
gfx/skia/src/core/SkBlitRow_D32.cpp
gfx/skia/src/core/SkBlitRow_D4444.cpp
gfx/skia/src/core/SkBlitter.cpp
gfx/skia/src/core/SkBlitter_4444.cpp
gfx/skia/src/core/SkBlitter_A1.cpp
gfx/skia/src/core/SkBlitter_A8.cpp
gfx/skia/src/core/SkBlitter_ARGB32.cpp
gfx/skia/src/core/SkBlitter_RGB16.cpp
gfx/skia/src/core/SkBlitter_Sprite.cpp
gfx/skia/src/core/SkBuffer.cpp
gfx/skia/src/core/SkCanvas.cpp
gfx/skia/src/core/SkChunkAlloc.cpp
gfx/skia/src/core/SkClampRange.cpp
gfx/skia/src/core/SkClipStack.cpp
gfx/skia/src/core/SkColor.cpp
gfx/skia/src/core/SkColorFilter.cpp
gfx/skia/src/core/SkColorTable.cpp
gfx/skia/src/core/SkComposeShader.cpp
gfx/skia/src/core/SkConcaveToTriangles.cpp
gfx/skia/src/core/SkConcaveToTriangles.h
gfx/skia/src/core/SkCordic.cpp
gfx/skia/src/core/SkCordic.h
gfx/skia/src/core/SkCoreBlitters.h
gfx/skia/src/core/SkCubicClipper.cpp
gfx/skia/src/core/SkCubicClipper.h
gfx/skia/src/core/SkData.cpp
gfx/skia/src/core/SkDebug.cpp
gfx/skia/src/core/SkDeque.cpp
gfx/skia/src/core/SkDevice.cpp
gfx/skia/src/core/SkDither.cpp
gfx/skia/src/core/SkDraw.cpp
gfx/skia/src/core/SkDrawProcs.h
gfx/skia/src/core/SkDrawing.cpp
gfx/skia/src/core/SkEdge.cpp
gfx/skia/src/core/SkEdge.h
gfx/skia/src/core/SkEdgeBuilder.cpp
gfx/skia/src/core/SkEdgeBuilder.h
gfx/skia/src/core/SkEdgeClipper.cpp
gfx/skia/src/core/SkFP.h
gfx/skia/src/core/SkFilterProc.cpp
gfx/skia/src/core/SkFilterProc.h
gfx/skia/src/core/SkFlate.cpp
gfx/skia/src/core/SkFlattenable.cpp
gfx/skia/src/core/SkFloat.cpp
gfx/skia/src/core/SkFloat.h
gfx/skia/src/core/SkFloatBits.cpp
gfx/skia/src/core/SkFontHost.cpp
gfx/skia/src/core/SkGeometry.cpp
gfx/skia/src/core/SkGlobals.cpp
gfx/skia/src/core/SkGlyphCache.cpp
gfx/skia/src/core/SkGlyphCache.h
gfx/skia/src/core/SkGraphics.cpp
gfx/skia/src/core/SkLineClipper.cpp
gfx/skia/src/core/SkMMapStream.cpp
gfx/skia/src/core/SkMallocPixelRef.cpp
gfx/skia/src/core/SkMask.cpp
gfx/skia/src/core/SkMaskFilter.cpp
gfx/skia/src/core/SkMath.cpp
gfx/skia/src/core/SkMatrix.cpp
gfx/skia/src/core/SkMemory_stdlib.cpp
gfx/skia/src/core/SkMetaData.cpp
gfx/skia/src/core/SkPackBits.cpp
gfx/skia/src/core/SkPaint.cpp
gfx/skia/src/core/SkPath.cpp
gfx/skia/src/core/SkPathEffect.cpp
gfx/skia/src/core/SkPathHeap.cpp
gfx/skia/src/core/SkPathHeap.h
gfx/skia/src/core/SkPathMeasure.cpp
gfx/skia/src/core/SkPicture.cpp
gfx/skia/src/core/SkPictureFlat.cpp
gfx/skia/src/core/SkPictureFlat.h
gfx/skia/src/core/SkPicturePlayback.cpp
gfx/skia/src/core/SkPicturePlayback.h
gfx/skia/src/core/SkPictureRecord.cpp
gfx/skia/src/core/SkPictureRecord.h
gfx/skia/src/core/SkPixelRef.cpp
gfx/skia/src/core/SkPoint.cpp
gfx/skia/src/core/SkProcSpriteBlitter.cpp
gfx/skia/src/core/SkPtrRecorder.cpp
gfx/skia/src/core/SkQuadClipper.cpp
gfx/skia/src/core/SkQuadClipper.h
gfx/skia/src/core/SkRasterClip.cpp
gfx/skia/src/core/SkRasterClip.h
gfx/skia/src/core/SkRasterizer.cpp
gfx/skia/src/core/SkRect.cpp
gfx/skia/src/core/SkRefDict.cpp
gfx/skia/src/core/SkRegion.cpp
gfx/skia/src/core/SkRegionPriv.h
gfx/skia/src/core/SkRegion_path.cpp
gfx/skia/src/core/SkRegion_rects.cpp
gfx/skia/src/core/SkScalar.cpp
gfx/skia/src/core/SkScalerContext.cpp
gfx/skia/src/core/SkScan.cpp
gfx/skia/src/core/SkScanPriv.h
gfx/skia/src/core/SkScan_AntiPath.cpp
gfx/skia/src/core/SkScan_Antihair.cpp
gfx/skia/src/core/SkScan_Hairline.cpp
gfx/skia/src/core/SkScan_Path.cpp
gfx/skia/src/core/SkShader.cpp
gfx/skia/src/core/SkShape.cpp
gfx/skia/src/core/SkSinTable.h
gfx/skia/src/core/SkSpriteBlitter.h
gfx/skia/src/core/SkSpriteBlitterTemplate.h
gfx/skia/src/core/SkSpriteBlitter_ARGB32.cpp
gfx/skia/src/core/SkSpriteBlitter_RGB16.cpp
gfx/skia/src/core/SkStream.cpp
gfx/skia/src/core/SkString.cpp
gfx/skia/src/core/SkStroke.cpp
gfx/skia/src/core/SkStrokerPriv.cpp
gfx/skia/src/core/SkStrokerPriv.h
gfx/skia/src/core/SkTSearch.cpp
gfx/skia/src/core/SkTSort.h
gfx/skia/src/core/SkTemplatesPriv.h
gfx/skia/src/core/SkTextFormatParams.h
gfx/skia/src/core/SkTypeface.cpp
gfx/skia/src/core/SkTypefaceCache.cpp
gfx/skia/src/core/SkTypefaceCache.h
gfx/skia/src/core/SkUnPreMultiply.cpp
gfx/skia/src/core/SkUtils.cpp
gfx/skia/src/core/SkWriter32.cpp
gfx/skia/src/core/SkXfermode.cpp
gfx/skia/src/effects/Sk1DPathEffect.cpp
gfx/skia/src/effects/Sk2DPathEffect.cpp
gfx/skia/src/effects/SkAvoidXfermode.cpp
gfx/skia/src/effects/SkBitmapCache.cpp
gfx/skia/src/effects/SkBitmapCache.h
gfx/skia/src/effects/SkBlurDrawLooper.cpp
gfx/skia/src/effects/SkBlurMask.cpp
gfx/skia/src/effects/SkBlurMask.h
gfx/skia/src/effects/SkBlurMaskFilter.cpp
gfx/skia/src/effects/SkColorFilters.cpp
gfx/skia/src/effects/SkColorMatrixFilter.cpp
gfx/skia/src/effects/SkCornerPathEffect.cpp
gfx/skia/src/effects/SkDashPathEffect.cpp
gfx/skia/src/effects/SkDiscretePathEffect.cpp
gfx/skia/src/effects/SkEmbossMask.cpp
gfx/skia/src/effects/SkEmbossMask.h
gfx/skia/src/effects/SkEmbossMaskFilter.cpp
gfx/skia/src/effects/SkEmbossMask_Table.h
gfx/skia/src/effects/SkGradientShader.cpp
gfx/skia/src/effects/SkGroupShape.cpp
gfx/skia/src/effects/SkKernel33MaskFilter.cpp
gfx/skia/src/effects/SkLayerDrawLooper.cpp
gfx/skia/src/effects/SkLayerRasterizer.cpp
gfx/skia/src/effects/SkPaintFlagsDrawFilter.cpp
gfx/skia/src/effects/SkPixelXorXfermode.cpp
gfx/skia/src/effects/SkPorterDuff.cpp
gfx/skia/src/effects/SkRadialGradient_Table.h
gfx/skia/src/effects/SkRectShape.cpp
gfx/skia/src/effects/SkTableMaskFilter.cpp
gfx/skia/src/effects/SkTransparentShader.cpp
gfx/skia/src/gpu/FlingState.cpp
gfx/skia/src/gpu/GrAAHairLinePathRenderer.cpp
gfx/skia/src/gpu/GrAAHairLinePathRenderer.h
gfx/skia/src/gpu/GrAddPathRenderers_aahairline.cpp
gfx/skia/src/gpu/GrAddPathRenderers_none.cpp
gfx/skia/src/gpu/GrAddPathRenderers_tesselated.cpp
gfx/skia/src/gpu/GrAllocPool.cpp
gfx/skia/src/gpu/GrAllocPool.h
gfx/skia/src/gpu/GrAllocator.h
gfx/skia/src/gpu/GrAtlas.cpp
gfx/skia/src/gpu/GrAtlas.h
gfx/skia/src/gpu/GrBinHashKey.h
gfx/skia/src/gpu/GrBufferAllocPool.cpp
gfx/skia/src/gpu/GrBufferAllocPool.h
gfx/skia/src/gpu/GrClip.cpp
gfx/skia/src/gpu/GrContext.cpp
gfx/skia/src/gpu/GrDefaultPathRenderer.cpp
gfx/skia/src/gpu/GrDefaultPathRenderer.h
gfx/skia/src/gpu/GrDrawState.h
gfx/skia/src/gpu/GrDrawTarget.cpp
gfx/skia/src/gpu/GrDrawTarget.h
gfx/skia/src/gpu/GrGLCreateNativeInterface_none.cpp
gfx/skia/src/gpu/GrGLCreateNullInterface.cpp
gfx/skia/src/gpu/GrGLDefaultInterface_native.cpp
gfx/skia/src/gpu/GrGLDefaultInterface_none.cpp
gfx/skia/src/gpu/GrGLIRect.h
gfx/skia/src/gpu/GrGLIndexBuffer.cpp
gfx/skia/src/gpu/GrGLIndexBuffer.h
gfx/skia/src/gpu/GrGLInterface.cpp
gfx/skia/src/gpu/GrGLProgram.cpp
gfx/skia/src/gpu/GrGLProgram.h
gfx/skia/src/gpu/GrGLRenderTarget.cpp
gfx/skia/src/gpu/GrGLRenderTarget.h
gfx/skia/src/gpu/GrGLShaderVar.h
gfx/skia/src/gpu/GrGLStencilBuffer.cpp
gfx/skia/src/gpu/GrGLStencilBuffer.h
gfx/skia/src/gpu/GrGLTexture.cpp
gfx/skia/src/gpu/GrGLTexture.h
gfx/skia/src/gpu/GrGLUtil.cpp
gfx/skia/src/gpu/GrGLVertexBuffer.cpp
gfx/skia/src/gpu/GrGLVertexBuffer.h
gfx/skia/src/gpu/GrGeometryBuffer.h
gfx/skia/src/gpu/GrGpu.cpp
gfx/skia/src/gpu/GrGpu.h
gfx/skia/src/gpu/GrGpuFactory.cpp
gfx/skia/src/gpu/GrGpuGL.cpp
gfx/skia/src/gpu/GrGpuGL.h
gfx/skia/src/gpu/GrGpuGLFixed.cpp
gfx/skia/src/gpu/GrGpuGLFixed.h
gfx/skia/src/gpu/GrGpuGLShaders.cpp
gfx/skia/src/gpu/GrGpuGLShaders.h
gfx/skia/src/gpu/GrGpuVertex.h
gfx/skia/src/gpu/GrInOrderDrawBuffer.cpp
gfx/skia/src/gpu/GrInOrderDrawBuffer.h
gfx/skia/src/gpu/GrIndexBuffer.h
gfx/skia/src/gpu/GrMatrix.cpp
gfx/skia/src/gpu/GrMemory.cpp
gfx/skia/src/gpu/GrPathRenderer.cpp
gfx/skia/src/gpu/GrPathRenderer.h
gfx/skia/src/gpu/GrPathRendererChain.cpp
gfx/skia/src/gpu/GrPathRendererChain.h
gfx/skia/src/gpu/GrPathUtils.cpp
gfx/skia/src/gpu/GrPathUtils.h
gfx/skia/src/gpu/GrPlotMgr.h
gfx/skia/src/gpu/GrPrintf_printf.cpp
gfx/skia/src/gpu/GrPrintf_skia.cpp
gfx/skia/src/gpu/GrRandom.h
gfx/skia/src/gpu/GrRectanizer.cpp
gfx/skia/src/gpu/GrRectanizer.h
gfx/skia/src/gpu/GrRectanizer_fifo.cpp
gfx/skia/src/gpu/GrRedBlackTree.h
gfx/skia/src/gpu/GrRenderTarget.cpp
gfx/skia/src/gpu/GrResource.cpp
gfx/skia/src/gpu/GrResourceCache.cpp
gfx/skia/src/gpu/GrResourceCache.h
gfx/skia/src/gpu/GrStencil.cpp
gfx/skia/src/gpu/GrStencil.h
gfx/skia/src/gpu/GrStencilBuffer.cpp
gfx/skia/src/gpu/GrStencilBuffer.h
gfx/skia/src/gpu/GrStringBuilder.h
gfx/skia/src/gpu/GrTBSearch.h
gfx/skia/src/gpu/GrTDArray.h
gfx/skia/src/gpu/GrTHashCache.h
gfx/skia/src/gpu/GrTLList.h
gfx/skia/src/gpu/GrTesselatedPathRenderer.cpp
gfx/skia/src/gpu/GrTesselatedPathRenderer.h
gfx/skia/src/gpu/GrTextContext.cpp
gfx/skia/src/gpu/GrTextStrike.cpp
gfx/skia/src/gpu/GrTextStrike.h
gfx/skia/src/gpu/GrTextStrike_impl.h
gfx/skia/src/gpu/GrTexture.cpp
gfx/skia/src/gpu/GrVertexBuffer.h
gfx/skia/src/gpu/SkGLContext.cpp
gfx/skia/src/gpu/SkGpuCanvas.cpp
gfx/skia/src/gpu/SkGpuDevice.cpp
gfx/skia/src/gpu/SkGr.cpp
gfx/skia/src/gpu/SkGrFontScaler.cpp
gfx/skia/src/gpu/SkGrTexturePixelRef.cpp
gfx/skia/src/gpu/SkNullGLContext.cpp
gfx/skia/src/gpu/app-android.cpp
gfx/skia/src/gpu/gr_hello_world.cpp
gfx/skia/src/gpu/gr_unittests.cpp
gfx/skia/src/images/SkBitmap_RLEPixels.h
gfx/skia/src/images/SkCreateRLEPixelRef.cpp
gfx/skia/src/images/SkFDStream.cpp
gfx/skia/src/images/SkFlipPixelRef.cpp
gfx/skia/src/images/SkImageDecoder.cpp
gfx/skia/src/images/SkImageDecoder_Factory.cpp
gfx/skia/src/images/SkImageDecoder_libbmp.cpp
gfx/skia/src/images/SkImageDecoder_libgif.cpp
gfx/skia/src/images/SkImageDecoder_libico.cpp
gfx/skia/src/images/SkImageDecoder_libjpeg.cpp
gfx/skia/src/images/SkImageDecoder_libpng.cpp
gfx/skia/src/images/SkImageDecoder_wbmp.cpp
gfx/skia/src/images/SkImageEncoder.cpp
gfx/skia/src/images/SkImageEncoder_Factory.cpp
gfx/skia/src/images/SkImageRef.cpp
gfx/skia/src/images/SkImageRefPool.cpp
gfx/skia/src/images/SkImageRefPool.h
gfx/skia/src/images/SkImageRef_GlobalPool.cpp
gfx/skia/src/images/SkJpegUtility.cpp
gfx/skia/src/images/SkMovie.cpp
gfx/skia/src/images/SkMovie_gif.cpp
gfx/skia/src/images/SkPageFlipper.cpp
gfx/skia/src/images/SkScaledBitmapSampler.cpp
gfx/skia/src/images/SkScaledBitmapSampler.h
gfx/skia/src/images/bmpdecoderhelper.cpp
gfx/skia/src/images/bmpdecoderhelper.h
gfx/skia/src/opts/SkBitmapProcState_opts_SSE2.cpp
gfx/skia/src/opts/SkBitmapProcState_opts_SSE2.h
gfx/skia/src/opts/SkBitmapProcState_opts_arm.cpp
gfx/skia/src/opts/SkBitmapProcState_opts_none.cpp
gfx/skia/src/opts/SkBlitRow_opts_SSE2.cpp
gfx/skia/src/opts/SkBlitRow_opts_SSE2.h
gfx/skia/src/opts/SkBlitRow_opts_arm.cpp
gfx/skia/src/opts/SkBlitRow_opts_none.cpp
gfx/skia/src/opts/SkUtils_opts_SSE2.cpp
gfx/skia/src/opts/SkUtils_opts_SSE2.h
gfx/skia/src/opts/SkUtils_opts_none.cpp
gfx/skia/src/opts/memset.arm.S
gfx/skia/src/opts/memset16_neon.S
gfx/skia/src/opts/memset32_neon.S
gfx/skia/src/opts/opts_check_SSE2.cpp
gfx/skia/src/opts/opts_check_arm.cpp
gfx/skia/src/pdf/SkBitSet.cpp
gfx/skia/src/pdf/SkPDFCatalog.cpp
gfx/skia/src/pdf/SkPDFDevice.cpp
gfx/skia/src/pdf/SkPDFDocument.cpp
gfx/skia/src/pdf/SkPDFFont.cpp
gfx/skia/src/pdf/SkPDFFontImpl.h
gfx/skia/src/pdf/SkPDFFormXObject.cpp
gfx/skia/src/pdf/SkPDFGraphicState.cpp
gfx/skia/src/pdf/SkPDFImage.cpp
gfx/skia/src/pdf/SkPDFPage.cpp
gfx/skia/src/pdf/SkPDFShader.cpp
gfx/skia/src/pdf/SkPDFStream.cpp
gfx/skia/src/pdf/SkPDFTypes.cpp
gfx/skia/src/pdf/SkPDFUtils.cpp
gfx/skia/src/pipe/SkGPipePriv.h
gfx/skia/src/pipe/SkGPipeRead.cpp
gfx/skia/src/pipe/SkGPipeWrite.cpp
gfx/skia/src/ports/SkDebug_android.cpp
gfx/skia/src/ports/SkDebug_brew.cpp
gfx/skia/src/ports/SkDebug_stdio.cpp
gfx/skia/src/ports/SkDebug_win.cpp
gfx/skia/src/ports/SkFontHost_FONTPATH.cpp
gfx/skia/src/ports/SkFontHost_FreeType.cpp
gfx/skia/src/ports/SkFontHost_android.cpp
gfx/skia/src/ports/SkFontHost_ascender.cpp
gfx/skia/src/ports/SkFontHost_fontconfig.cpp
gfx/skia/src/ports/SkFontHost_gamma.cpp
gfx/skia/src/ports/SkFontHost_gamma_none.cpp
gfx/skia/src/ports/SkFontHost_linux.cpp
gfx/skia/src/ports/SkFontHost_mac.cpp
gfx/skia/src/ports/SkFontHost_mac_atsui.cpp
gfx/skia/src/ports/SkFontHost_mac_coretext.cpp
gfx/skia/src/ports/SkFontHost_none.cpp
gfx/skia/src/ports/SkFontHost_simple.cpp
gfx/skia/src/ports/SkFontHost_tables.cpp
gfx/skia/src/ports/SkFontHost_win.cpp
gfx/skia/src/ports/SkGlobals_global.cpp
gfx/skia/src/ports/SkHarfBuzzFont.cpp
gfx/skia/src/ports/SkImageDecoder_CG.cpp
gfx/skia/src/ports/SkImageDecoder_WIC.cpp
gfx/skia/src/ports/SkImageDecoder_empty.cpp
gfx/skia/src/ports/SkImageRef_ashmem.cpp
gfx/skia/src/ports/SkImageRef_ashmem.h
gfx/skia/src/ports/SkMemory_brew.cpp
gfx/skia/src/ports/SkMemory_malloc.cpp
gfx/skia/src/ports/SkOSEvent_android.cpp
gfx/skia/src/ports/SkOSEvent_dummy.cpp
gfx/skia/src/ports/SkOSFile_brew.cpp
gfx/skia/src/ports/SkOSFile_stdio.cpp
gfx/skia/src/ports/SkThread_none.cpp
gfx/skia/src/ports/SkThread_pthread.cpp
gfx/skia/src/ports/SkThread_win.cpp
gfx/skia/src/ports/SkTime_Unix.cpp
gfx/skia/src/ports/SkTime_win.cpp
gfx/skia/src/ports/SkXMLParser_empty.cpp
gfx/skia/src/ports/SkXMLParser_expat.cpp
gfx/skia/src/ports/SkXMLParser_tinyxml.cpp
gfx/skia/src/ports/SkXMLPullParser_expat.cpp
gfx/skia/src/ports/sk_predefined_gamma.h
gfx/skia/src/svg/SkSVG.cpp
gfx/skia/src/svg/SkSVGCircle.cpp
gfx/skia/src/svg/SkSVGCircle.h
gfx/skia/src/svg/SkSVGClipPath.cpp
gfx/skia/src/svg/SkSVGClipPath.h
gfx/skia/src/svg/SkSVGDefs.cpp
gfx/skia/src/svg/SkSVGDefs.h
gfx/skia/src/svg/SkSVGElements.cpp
gfx/skia/src/svg/SkSVGElements.h
gfx/skia/src/svg/SkSVGEllipse.cpp
gfx/skia/src/svg/SkSVGEllipse.h
gfx/skia/src/svg/SkSVGFeColorMatrix.cpp
gfx/skia/src/svg/SkSVGFeColorMatrix.h
gfx/skia/src/svg/SkSVGFilter.cpp
gfx/skia/src/svg/SkSVGFilter.h
gfx/skia/src/svg/SkSVGG.cpp
gfx/skia/src/svg/SkSVGG.h
gfx/skia/src/svg/SkSVGGradient.cpp
gfx/skia/src/svg/SkSVGGradient.h
gfx/skia/src/svg/SkSVGGroup.cpp
gfx/skia/src/svg/SkSVGGroup.h
gfx/skia/src/svg/SkSVGImage.cpp
gfx/skia/src/svg/SkSVGImage.h
gfx/skia/src/svg/SkSVGLine.cpp
gfx/skia/src/svg/SkSVGLine.h
gfx/skia/src/svg/SkSVGLinearGradient.cpp
gfx/skia/src/svg/SkSVGLinearGradient.h
gfx/skia/src/svg/SkSVGMask.cpp
gfx/skia/src/svg/SkSVGMask.h
gfx/skia/src/svg/SkSVGMetadata.cpp
gfx/skia/src/svg/SkSVGMetadata.h
gfx/skia/src/svg/SkSVGPaintState.cpp
gfx/skia/src/svg/SkSVGParser.cpp
gfx/skia/src/svg/SkSVGPath.cpp
gfx/skia/src/svg/SkSVGPath.h
gfx/skia/src/svg/SkSVGPolygon.cpp
gfx/skia/src/svg/SkSVGPolygon.h
gfx/skia/src/svg/SkSVGPolyline.cpp
gfx/skia/src/svg/SkSVGPolyline.h
gfx/skia/src/svg/SkSVGRadialGradient.cpp
gfx/skia/src/svg/SkSVGRadialGradient.h
gfx/skia/src/svg/SkSVGRect.cpp
gfx/skia/src/svg/SkSVGRect.h
gfx/skia/src/svg/SkSVGSVG.cpp
gfx/skia/src/svg/SkSVGSVG.h
gfx/skia/src/svg/SkSVGStop.cpp
gfx/skia/src/svg/SkSVGStop.h
gfx/skia/src/svg/SkSVGSymbol.cpp
gfx/skia/src/svg/SkSVGSymbol.h
gfx/skia/src/svg/SkSVGText.cpp
gfx/skia/src/svg/SkSVGText.h
gfx/skia/src/svg/SkSVGUse.cpp
gfx/skia/src/svg/SkSVGUse.h
gfx/skia/src/text/SkTextLayout.cpp
gfx/skia/src/utils/SDL/SkOSWindow_SDL.cpp
gfx/skia/src/utils/SkBoundaryPatch.cpp
gfx/skia/src/utils/SkCamera.cpp
gfx/skia/src/utils/SkColorMatrix.cpp
gfx/skia/src/utils/SkCubicInterval.cpp
gfx/skia/src/utils/SkCullPoints.cpp
gfx/skia/src/utils/SkDebugTrace.h
gfx/skia/src/utils/SkDumpCanvas.cpp
gfx/skia/src/utils/SkInterpolator.cpp
gfx/skia/src/utils/SkLayer.cpp
gfx/skia/src/utils/SkMatrix44.cpp
gfx/skia/src/utils/SkMeshUtils.cpp
gfx/skia/src/utils/SkNWayCanvas.cpp
gfx/skia/src/utils/SkNinePatch.cpp
gfx/skia/src/utils/SkOSFile.cpp
gfx/skia/src/utils/SkParse.cpp
gfx/skia/src/utils/SkParseColor.cpp
gfx/skia/src/utils/SkParsePath.cpp
gfx/skia/src/utils/SkProxyCanvas.cpp
gfx/skia/src/utils/SkSfntUtils.cpp
gfx/skia/src/utils/SkUnitMappers.cpp
gfx/skia/src/utils/mac/SampleApp-Info.plist
gfx/skia/src/utils/mac/SampleApp.xib
gfx/skia/src/utils/mac/SampleAppDelegate.h
gfx/skia/src/utils/mac/SampleAppDelegate.mm
gfx/skia/src/utils/mac/SkBitmap_Mac.cpp
gfx/skia/src/utils/mac/SkCreateCGImageRef.cpp
gfx/skia/src/utils/mac/SkEventNotifier.h
gfx/skia/src/utils/mac/SkEventNotifier.mm
gfx/skia/src/utils/mac/SkNSView.h
gfx/skia/src/utils/mac/SkNSView.mm
gfx/skia/src/utils/mac/SkOSWindow_Mac.cpp
gfx/skia/src/utils/mac/SkOSWindow_Mac.mm
gfx/skia/src/utils/mac/SkOptionsTableView.h
gfx/skia/src/utils/mac/SkOptionsTableView.mm
gfx/skia/src/utils/mac/SkSampleNSView.h
gfx/skia/src/utils/mac/SkSampleNSView.mm
gfx/skia/src/utils/mac/SkTextFieldCell.h
gfx/skia/src/utils/mac/skia_mac.mm
gfx/skia/src/utils/unix/SkOSWindow_Unix.cpp
gfx/skia/src/utils/unix/keysym2ucs.c
gfx/skia/src/utils/win/SkAutoCoInitialize.cpp
gfx/skia/src/utils/win/SkHRESULT.cpp
gfx/skia/src/utils/win/SkIStream.cpp
gfx/skia/src/utils/win/SkOSWindow_Win.cpp
gfx/skia/src/utils/win/skia_win.cpp
gfx/skia/src/views/SkBGViewArtist.cpp
gfx/skia/src/views/SkBorderView.cpp
gfx/skia/src/views/SkEvent.cpp
gfx/skia/src/views/SkEventSink.cpp
gfx/skia/src/views/SkImageView.cpp
gfx/skia/src/views/SkListView.cpp
gfx/skia/src/views/SkListWidget.cpp
gfx/skia/src/views/SkOSMenu.cpp
gfx/skia/src/views/SkParsePaint.cpp
gfx/skia/src/views/SkProgressBarView.cpp
gfx/skia/src/views/SkProgressView.cpp
gfx/skia/src/views/SkScrollBarView.cpp
gfx/skia/src/views/SkStackViewLayout.cpp
gfx/skia/src/views/SkStaticTextView.cpp
gfx/skia/src/views/SkTagList.cpp
gfx/skia/src/views/SkTagList.h
gfx/skia/src/views/SkTextBox.cpp
gfx/skia/src/views/SkTouchGesture.cpp
gfx/skia/src/views/SkView.cpp
gfx/skia/src/views/SkViewInflate.cpp
gfx/skia/src/views/SkViewPriv.cpp
gfx/skia/src/views/SkViewPriv.h
gfx/skia/src/views/SkWidget.cpp
gfx/skia/src/views/SkWidgetViews.cpp
gfx/skia/src/views/SkWidgets.cpp
gfx/skia/src/views/SkWindow.cpp
gfx/skia/src/views/views_files.mk
gfx/skia/src/xml/SkBML_Verbs.h
gfx/skia/src/xml/SkBML_XMLParser.cpp
gfx/skia/src/xml/SkDOM.cpp
gfx/skia/src/xml/SkJS.cpp
gfx/skia/src/xml/SkJSDisplayable.cpp
gfx/skia/src/xml/SkXMLParser.cpp
gfx/skia/src/xml/SkXMLPullParser.cpp
gfx/skia/src/xml/SkXMLWriter.cpp
gfx/skia/src/xml/xml_files.mk
gfx/skia/third_party/glu/LICENSE.txt
gfx/skia/third_party/glu/README.skia
gfx/skia/third_party/glu/gluos.h
gfx/skia/third_party/glu/libtess/GNUmakefile
gfx/skia/third_party/glu/libtess/Imakefile
gfx/skia/third_party/glu/libtess/README
gfx/skia/third_party/glu/libtess/alg-outline
gfx/skia/third_party/glu/libtess/dict-list.h
gfx/skia/third_party/glu/libtess/dict.c
gfx/skia/third_party/glu/libtess/dict.h
gfx/skia/third_party/glu/libtess/geom.c
gfx/skia/third_party/glu/libtess/geom.h
gfx/skia/third_party/glu/libtess/memalloc.c
gfx/skia/third_party/glu/libtess/memalloc.h
gfx/skia/third_party/glu/libtess/mesh.c
gfx/skia/third_party/glu/libtess/mesh.h
gfx/skia/third_party/glu/libtess/normal.c
gfx/skia/third_party/glu/libtess/normal.h
gfx/skia/third_party/glu/libtess/priorityq-heap.c
gfx/skia/third_party/glu/libtess/priorityq-heap.h
gfx/skia/third_party/glu/libtess/priorityq-sort.h
gfx/skia/third_party/glu/libtess/priorityq.c
gfx/skia/third_party/glu/libtess/priorityq.h
gfx/skia/third_party/glu/libtess/render.c
gfx/skia/third_party/glu/libtess/render.h
gfx/skia/third_party/glu/libtess/sweep.c
gfx/skia/third_party/glu/libtess/sweep.h
gfx/skia/third_party/glu/libtess/tess.c
gfx/skia/third_party/glu/libtess/tess.h
gfx/skia/third_party/glu/libtess/tessmono.c
gfx/skia/third_party/glu/libtess/tessmono.h
gfx/skia/third_party/glu/sk_glu.h
new file mode 100644
--- /dev/null
+++ b/gfx/skia/LICENSE
@@ -0,0 +1,27 @@
+// Copyright (c) 2011 Google Inc. All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//    * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//    * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//    * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
new file mode 100644
--- /dev/null
+++ b/gfx/skia/README
@@ -0,0 +1,3 @@
+Skia is a complete 2D graphic library for drawing Text, Geometries, and Images.
+
+See full details, and build instructions, at http://code.google.com/p/skia/wiki/DocRoot
new file mode 100644
--- /dev/null
+++ b/gfx/skia/include/animator/SkAnimator.h
@@ -0,0 +1,501 @@
+
+/*
+ * Copyright 2006 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SkAnimator_DEFINED
+#define SkAnimator_DEFINED
+
+#include "SkScalar.h"
+#include "SkKey.h"
+#include "SkEventSink.h"
+
+class SkAnimateMaker;
+class SkCanvas;
+class SkDisplayable;
+class SkEvent;
+class SkExtras;
+struct SkMemberInfo;
+class SkPaint;
+struct SkRect;
+class SkStream;
+class SkTypedArray;
+class SkXMLParserError;
+class SkDOM;
+struct SkDOMNode;
+
+/** SkElementType is the type of element: a rectangle, a color, an animator, and so on.
+    This enum is incomplete and will be fleshed out in a future release */
+enum SkElementType {
+    kElementDummyType
+};
+/** SkFieldType is the type of field: a scalar, a string, an integer, a boolean, and so on.
+    This enum is incomplete and will be fleshed out in a future release */
+enum SkFieldType {
+    kFieldDummyType
+};
+
+/** \class SkAnimator
+
+    The SkAnimator class decodes an XML stream into a display list. The
+    display list can be drawn statically as a picture, or can drawn 
+    different elements at different times to form a moving animation.
+
+    SkAnimator does not read the system time on its own; it relies on the
+    caller to pass the current time. The caller can pause, speed up, or
+    reverse the animation by varying the time passed in.
+
+    The XML describing the display list must conform to the schema 
+    described by SkAnimateSchema.xsd. 
+
+    The XML must contain an <event> element to draw. Usually, it contains
+    an <event kind="onload" /> block to add some drawing elements to the
+    display list when the document is first decoded.
+
+    Here's an "Hello World" XML sample:
+
+    <screenplay>
+        <event kind="onload" >
+            <text text="Hello World" y="20" />
+        </event>
+    </screenplay>
+
+    To read and draw this sample:
+
+        // choose one of these two
+        SkAnimator animator; // declare an animator instance on the stack
+    //  SkAnimator* animator = new SkAnimator() // or one could instantiate the class
+
+        // choose one of these three
+        animator.decodeMemory(buffer, size); // to read from RAM
+        animator.decodeStream(stream); // to read from a user-defined stream (e.g., a zip file)
+        animator.decodeURI(filename); // to read from a web location, or from a local text file
+
+        // to draw to the current window:
+        SkCanvas canvas(getBitmap()); // create a canvas
+        animator.draw(canvas, &paint, 0); // draw the scene
+*/
+class SkAnimator : public SkEventSink {
+public:
+    SkAnimator();
+    virtual ~SkAnimator();
+
+    /** Add a drawable extension to the graphics engine. Experimental. 
+        @param extras A derived class that implements methods that identify and instantiate the class
+    */
+    void addExtras(SkExtras* extras);
+
+    /** Read in XML from a stream, and append it to the current
+        animator. Returns false if an error was encountered.
+        Error diagnostics are stored in fErrorCode and fLineNumber.
+        @param stream  The stream to append.
+        @return true if the XML was parsed successfully.
+    */
+    bool appendStream(SkStream* stream);
+
+    /** Read in XML from memory. Returns true if the file can be 
+        read without error. Returns false if an error was encountered.
+        Error diagnostics are stored in fErrorCode and fLineNumber.
+        @param buffer  The XML text as UTF-8 characters.
+        @param size  The XML text length in bytes.
+        @return true if the XML was parsed successfully.
+    */
+    bool decodeMemory(const void* buffer, size_t size);
+
+    /** Read in XML from a stream. Returns true if the file can be 
+        read without error. Returns false if an error was encountered.
+        Error diagnostics are stored in fErrorCode and fLineNumber.
+        @param stream  The stream containg the XML text as UTF-8 characters.
+        @return true if the XML was parsed successfully.
+    */
+    virtual bool decodeStream(SkStream* stream);
+
+    /** Parse the DOM tree starting at the specified node. Returns true if it can be 
+        parsed without error. Returns false if an error was encountered.
+        Error diagnostics are stored in fErrorCode and fLineNumber.
+        @return true if the DOM was parsed successfully.
+    */
+    virtual bool decodeDOM(const SkDOM&, const SkDOMNode*);
+
+    /** Read in XML from a URI. Returns true if the file can be 
+        read without error. Returns false if an error was encountered.
+        Error diagnostics are stored in fErrorCode and fLineNumber.
+        @param uri The complete url path to be read (either ftp, http or https).
+        @return true if the XML was parsed successfully.
+    */
+    bool decodeURI(const char uri[]);
+
+    /** Pass a char event, usually a keyboard symbol, to the animator.
+        This triggers events of the form <event kind="keyChar" key="... />
+        @param ch  The character to match against <event> element "key" 
+            attributes.
+        @return true if the event was dispatched successfully.
+    */
+    bool doCharEvent(SkUnichar ch);
+
+    /** Experimental:
+        Pass a mouse click event along with the mouse coordinates to 
+        the animator. This triggers events of the form <event kind="mouseDown" ... />
+        and other mouse events.
+        @param state The mouse state, described by SkView::Click::State : values are
+        down == 0, moved == 1, up == 2
+        @param x    The x-position of the mouse
+        @param y The y-position of the mouse
+        @return true if the event was dispatched successfully.
+    */
+    bool doClickEvent(int state, SkScalar x, SkScalar y);
+
+    /** Pass a meta-key event, such as an arrow , to the animator.
+        This triggers events of the form <event kind="keyPress" code="... />
+        @param code  The key to match against <event> element "code" 
+            attributes.
+        @return true if the event was dispatched successfully.
+    */
+    bool doKeyEvent(SkKey code);
+    bool doKeyUpEvent(SkKey code);
+    
+    /** Send an event to the animator. The animator's clock is set 
+        relative to the current time.
+        @return true if the event was dispatched successfully.
+    */
+    bool doUserEvent(const SkEvent& evt);
+
+    /** The possible results from the draw function. 
+    */
+    enum DifferenceType {
+        kNotDifferent,
+        kDifferent,
+        kPartiallyDifferent
+    };
+    /** Draws one frame of the animation. The first call to draw always 
+        draws the initial frame of the animation. Subsequent calls draw 
+        the offset into the animation by 
+        subtracting the initial time from the current time.
+        @param canvas  The canvas to draw into.
+        @param paint     The paint to draw with.
+        @param time  The offset into the current animation.
+        @return kNotDifferent if there are no active animations; kDifferent if there are active animations; and
+        kPartiallyDifferent if the document contains an active <bounds> element that specifies a minimal 
+        redraw area.
+    */
+    DifferenceType draw(SkCanvas* canvas, SkPaint* paint, SkMSec time);
+
+    /** Draws one frame of the animation, using a new Paint each time.
+        The first call to draw always 
+        draws the initial frame of the animation. Subsequent calls draw 
+        the offset into the animation by 
+        subtracting the initial time from the current time.
+        @param canvas  The canvas to draw into.
+        @param time  The offset into the current animation.
+        @return kNotDifferent if there are no active animations; kDifferent if there are active animations; and
+        kPartiallyDifferent if the document contains an active <bounds> element that specifies a minimal 
+        redraw area.
+    */
+    DifferenceType draw(SkCanvas* canvas, SkMSec time);
+
+    /** Experimental:
+        Helper to choose whether to return a SkView::Click handler.
+        @param x ignored
+        @param y ignored
+        @return true if a mouseDown event handler is enabled.
+    */
+    bool findClickEvent(SkScalar x, SkScalar y); 
+
+
+    /** Get the nested animator associated with this element, if any.
+        Use this to access a movie's event sink, to send events to movies.
+        @param element the value returned by getElement
+        @return the internal animator.
+    */
+    const SkAnimator* getAnimator(const SkDisplayable* element) const;
+
+    /** Returns the scalar value of the specified element's attribute[index]
+        @param element the value returned by getElement
+        @param field the value returned by getField
+        @param index the array entry
+        @return the integer value to retrieve, or SK_NaN32 if unsuccessful
+    */
+    int32_t getArrayInt(const SkDisplayable* element, const SkMemberInfo* field, int index);
+
+    /** Returns the scalar value of the specified element's attribute[index]
+        @param elementID is the value of the id attribute in the XML of this element
+        @param fieldName specifies the name of the attribute  
+        @param index the array entry
+        @return the integer value to retrieve, or SK_NaN32 if unsuccessful
+    */
+    int32_t getArrayInt(const char* elementID, const char* fieldName, int index);
+
+    /** Returns the scalar value of the specified element's attribute[index]
+        @param element the value returned by getElement
+        @param field the value returned by getField
+        @param index the array entry
+        @return the scalar value to retrieve, or SK_ScalarNaN if unsuccessful
+    */
+    SkScalar getArrayScalar(const SkDisplayable* element, const SkMemberInfo* field, int index);
+
+    /** Returns the scalar value of the specified element's attribute[index]
+        @param elementID is the value of the id attribute in the XML of this element
+        @param fieldName specifies the name of the attribute  
+        @param index the array entry
+        @return the scalar value to retrieve, or SK_ScalarNaN if unsuccessful
+    */
+    SkScalar getArrayScalar(const char* elementID, const char* fieldName, int index);
+
+    /** Returns the string value of the specified element's attribute[index]
+        @param element is a value returned by getElement
+        @param field is a value returned by getField  
+        @param index the array entry
+        @return the string value to retrieve, or null if unsuccessful
+    */
+    const char* getArrayString(const SkDisplayable* element, const SkMemberInfo* field, int index);
+
+    /** Returns the string value of the specified element's attribute[index]
+        @param elementID is the value of the id attribute in the XML of this element
+        @param fieldName specifies the name of the attribute  
+        @param index the array entry
+        @return the string value to retrieve, or null if unsuccessful
+    */
+    const char* getArrayString(const char* elementID, const char* fieldName, int index);
+
+    /** Returns the XML element corresponding to the given ID.
+        @param elementID is the value of the id attribute in the XML of this element 
+        @return the element matching the ID, or null if the element can't be found
+    */
+    const SkDisplayable* getElement(const char* elementID);
+
+    /** Returns the element type corresponding to the XML element.
+        The element type matches the element name; for instance, <line> returns kElement_LineType
+        @param element is a value returned by getElement  
+        @return element type, or 0 if the element can't be found
+    */
+    SkElementType getElementType(const SkDisplayable* element);
+
+    /** Returns the element type corresponding to the given ID.
+        @param elementID is the value of the id attribute in the XML of this element 
+        @return element type, or 0 if the element can't be found
+    */
+    SkElementType getElementType(const char* elementID);
+
+    /** Returns the XML field of the named attribute in the XML element.
+        @param element is a value returned by getElement
+        @param fieldName is the attribute to return  
+        @return the attribute matching the fieldName, or null if the element can't be found
+    */
+    const SkMemberInfo* getField(const SkDisplayable* element, const char* fieldName);
+
+    /** Returns the XML field of the named attribute in the XML element matching the elementID.
+        @param elementID is the value of the id attribute in the XML of this element
+        @param fieldName is the attribute to return  
+        @return the attribute matching the fieldName, or null if the element can't be found
+    */
+    const SkMemberInfo* getField(const char* elementID, const char* fieldName);
+
+    /** Returns the value type coresponding to the element's attribute.
+        The value type matches the XML schema: and may be kField_BooleanType, kField_ScalarType, etc.
+        @param field is a value returned by getField  
+        @return the attribute type, or 0 if the element can't be found
+    */
+    SkFieldType getFieldType(const SkMemberInfo* field);
+
+    /** Returns the value type coresponding to the element's attribute.
+        @param elementID is the value of the id attribute in the XML of this element
+        @param fieldName specifies the name of the attribute  
+        @return the attribute type, or 0 if the element can't be found
+    */
+    SkFieldType getFieldType(const char* elementID, const char* fieldName);
+
+    /** Returns the recommended animation interval. Returns zero if no
+        interval is specified.
+    */
+    SkMSec getInterval();
+
+    /** Returns the partial rectangle to invalidate after drawing. Call after draw() returns
+    kIsPartiallyDifferent to do a mimimal inval(). */
+    void getInvalBounds(SkRect* inval); 
+
+    /** Returns the details of any error encountered while parsing the XML. 
+    */
+    const SkXMLParserError* getParserError();
+    
+    /** Returns the details of any error encountered while parsing the XML as string. 
+    */
+    const char* getParserErrorString();
+    
+    /** Returns the scalar value of the specified element's attribute
+        @param element is a value returned by getElement
+        @param field is a value returned by getField  
+        @return the integer value to retrieve, or SK_NaN32 if not found
+    */
+    int32_t getInt(const SkDisplayable* element, const SkMemberInfo* field);
+
+    /** Returns the scalar value of the specified element's attribute
+        @param elementID is the value of the id attribute in the XML of this element
+        @param fieldName specifies the name of the attribute  
+        @return the integer value to retrieve, or SK_NaN32 if not found
+    */
+    int32_t getInt(const char* elementID, const char* fieldName);
+
+    /** Returns the scalar value of the specified element's attribute
+        @param element is a value returned by getElement
+        @param field is a value returned by getField  
+        @return the scalar value to retrieve, or SK_ScalarNaN if not found
+    */
+    SkScalar getScalar(const SkDisplayable* element, const SkMemberInfo* field);
+
+    /** Returns the scalar value of the specified element's attribute
+        @param elementID is the value of the id attribute in the XML of this element
+        @param fieldName specifies the name of the attribute  
+        @return the scalar value to retrieve, or SK_ScalarNaN if not found
+    */
+    SkScalar getScalar(const char* elementID, const char* fieldName);
+
+    /** Returns the string value of the specified element's attribute
+        @param element is a value returned by getElement
+        @param field is a value returned by getField  
+        @return the string value to retrieve, or null if not found
+    */
+    const char* getString(const SkDisplayable* element, const SkMemberInfo* field);
+
+    /** Returns the string value of the specified element's attribute
+        @param elementID is the value of the id attribute in the XML of this element
+        @param fieldName specifies the name of the attribute  
+        @return the string value to retrieve, or null if not found
+    */
+    const char* getString(const char* elementID, const char* fieldName);
+
+    /** Gets the file default directory of the URL base path set explicitly or by reading the last URL. */
+    const char* getURIBase();
+
+    /** Resets the animator to a newly created state with no animation data. */
+    void initialize();
+
+    /** Experimental. Resets any active animations so that the next time passed is treated as 
+        time zero. */
+    void reset();
+    
+    /** Sets the scalar value of the specified element's attribute
+        @param elementID is the value of the id attribute in the XML of this element
+        @param fieldName specifies the name of the attribute  
+        @param array is the c-style array of integers
+        @param count is the length of the array
+        @return true if the value was set successfully
+    */
+    bool setArrayInt(const char* elementID, const char* fieldName, const int* array, int count);
+    
+    /** Sets the scalar value of the specified element's attribute
+        @param elementID is the value of the id attribute in the XML of this element
+        @param fieldName specifies the name of the attribute  
+        @param array is the c-style array of strings
+        @param count is the length of the array
+        @return true if the value was set successfully
+    */
+    bool setArrayString(const char* elementID, const char* fieldName, const char** array, int count);
+    
+    /** Sets the scalar value of the specified element's attribute
+        @param elementID is the value of the id attribute in the XML of this element
+        @param fieldName specifies the name of the attribute  
+        @param data the integer value to set
+        @return true if the value was set successfully
+    */
+    bool setInt(const char* elementID, const char* fieldName, int32_t data);
+
+    /** Sets the scalar value of the specified element's attribute
+        @param elementID is the value of the id attribute in the XML of this element
+        @param fieldName specifies the name of the attribute  
+        @param data the scalar value to set
+        @return true if the value was set successfully
+    */
+    bool setScalar(const char* elementID, const char* fieldName, SkScalar data);
+
+    /** Sets the string value of the specified element's attribute
+        @param elementID is the value of the id attribute in the XML of this element
+        @param fieldName specifies the name of the attribute  
+        @param data the string value to set
+        @return true if the value was set successfully
+    */
+    bool setString(const char* elementID, const char* fieldName, const char* data);
+
+    /** Sets the file default directory of the URL base path 
+        @param path the directory path 
+    */
+    void setURIBase(const char* path);
+
+    typedef void* Handler;
+    // This guy needs to be exported to java, so don't make it virtual
+    void setHostHandler(Handler handler) {
+        this->onSetHostHandler(handler);
+    }
+
+    /** \class Timeline
+    Returns current time to animator. To return a custom timeline, create a child
+    class and override the getMSecs method.
+    */
+    class Timeline {
+    public:
+        virtual ~Timeline() {}
+
+        /** Returns the current time in milliseconds */
+        virtual SkMSec getMSecs() const = 0;
+    };
+
+    /** Sets a user class to return the current time to the animator. 
+        Optional; if not called, the system clock will be used by calling SkTime::GetMSecs instead.
+        @param callBack the time function
+    */
+    void setTimeline(const Timeline& );
+
+    static void Init(bool runUnitTests);
+    static void Term();
+    
+    /** The event sink events generated by the animation are posted to. 
+        Screenplay also posts an inval event to this event sink after processing an
+        event to force a redraw.
+        @param target the event sink id
+    */
+    void setHostEventSinkID(SkEventSinkID hostID);
+    SkEventSinkID getHostEventSinkID() const;
+    
+    // helper
+    void setHostEventSink(SkEventSink* sink) {
+        this->setHostEventSinkID(sink ? sink->getSinkID() : 0);
+    }
+    
+    virtual void setJavaOwner(Handler owner);
+    
+#ifdef SK_DEBUG
+    virtual void eventDone(const SkEvent& evt);
+    virtual bool isTrackingEvents();
+    static bool NoLeaks();
+#endif  
+    
+protected:
+    virtual void onSetHostHandler(Handler handler);
+    virtual void onEventPost(SkEvent*, SkEventSinkID);
+    virtual void onEventPostTime(SkEvent*, SkEventSinkID, SkMSec time);
+
+private:
+// helper functions for setters
+    bool setArray(SkDisplayable* element, const SkMemberInfo* field, SkTypedArray array);
+    bool setArray(const char* elementID, const char* fieldName, SkTypedArray array);
+    bool setInt(SkDisplayable* element, const SkMemberInfo* field, int32_t data);
+    bool setScalar(SkDisplayable* element, const SkMemberInfo* field, SkScalar data);
+    bool setString(SkDisplayable* element, const SkMemberInfo* field, const char* data);
+    
+    virtual bool onEvent(const SkEvent&);
+    SkAnimateMaker* fMaker;
+    friend class SkAnimateMaker;
+    friend class SkAnimatorScript;
+    friend class SkAnimatorScript2;
+    friend class SkApply;
+    friend class SkDisplayMovie;
+    friend class SkDisplayType;
+    friend class SkPost;
+    friend class SkXMLAnimatorWriter;
+};
+
+#endif
+
new file mode 100644
--- /dev/null
+++ b/gfx/skia/include/animator/SkAnimatorView.h
@@ -0,0 +1,40 @@
+
+/*
+ * Copyright 2006 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SkAnimatorView_DEFINED
+#define SkAnimatorView_DEFINED
+
+#include "SkView.h"
+#include "SkAnimator.h"
+
+class SkAnimatorView : public SkView {
+public:
+            SkAnimatorView();
+    virtual ~SkAnimatorView();
+
+    SkAnimator* getAnimator() const { return fAnimator; }
+
+    bool    decodeFile(const char path[]);
+    bool    decodeMemory(const void* buffer, size_t size);
+    bool    decodeStream(SkStream* stream);
+
+protected:
+    // overrides
+    virtual bool onEvent(const SkEvent&);
+    virtual void onDraw(SkCanvas*);
+    virtual void onInflate(const SkDOM&, const SkDOM::Node*);
+
+private:
+    SkAnimator* fAnimator;
+
+    typedef SkView INHERITED;
+};
+
+#endif
+
new file mode 100644
--- /dev/null
+++ b/gfx/skia/include/config/SkUserConfig.h
@@ -0,0 +1,169 @@
+
+/*
+ * Copyright 2006 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SkUserConfig_DEFINED
+#define SkUserConfig_DEFINED
+
+/*  SkTypes.h, the root of the public header files, does the following trick:
+
+    #include "SkPreConfig.h"
+    #include "SkUserConfig.h"
+    #include "SkPostConfig.h"
+
+    SkPreConfig.h runs first, and it is responsible for initializing certain
+    skia defines.
+
+    SkPostConfig.h runs last, and its job is to just check that the final
+    defines are consistent (i.e. that we don't have mutually conflicting
+    defines).
+
+    SkUserConfig.h (this file) runs in the middle. It gets to change or augment
+    the list of flags initially set in preconfig, and then postconfig checks
+    that everything still makes sense.
+
+    Below are optional defines that add, subtract, or change default behavior
+    in Skia. Your port can locally edit this file to enable/disable flags as
+    you choose, or these can be delared on your command line (i.e. -Dfoo).
+
+    By default, this include file will always default to having all of the flags
+    commented out, so including it will have no effect.
+*/
+
+///////////////////////////////////////////////////////////////////////////////
+
+/*  Scalars (the fractional value type in skia) can be implemented either as
+    floats or 16.16 integers (fixed). Exactly one of these two symbols must be
+    defined.
+*/
+//#define SK_SCALAR_IS_FLOAT
+//#define SK_SCALAR_IS_FIXED
+
+
+/*  Somewhat independent of how SkScalar is implemented, Skia also wants to know
+    if it can use floats at all. Naturally, if SK_SCALAR_IS_FLOAT is defined,
+    SK_CAN_USE_FLOAT must be too; but if scalars are fixed, SK_CAN_USE_FLOAT
+    can go either way.
+ */
+//#define SK_CAN_USE_FLOAT
+
+/*  For some performance-critical scalar operations, skia will optionally work
+    around the standard float operators if it knows that the CPU does not have
+    native support for floats. If your environment uses software floating point,
+    define this flag.
+ */
+//#define SK_SOFTWARE_FLOAT
+
+
+/*  Skia has lots of debug-only code. Often this is just null checks or other
+    parameter checking, but sometimes it can be quite intrusive (e.g. check that
+    each 32bit pixel is in premultiplied form). This code can be very useful
+    during development, but will slow things down in a shipping product.
+
+    By default, these mutually exclusive flags are defined in SkPreConfig.h,
+    based on the presence or absence of NDEBUG, but that decision can be changed
+    here.
+ */
+//#define SK_DEBUG
+//#define SK_RELEASE
+
+
+/*  If, in debugging mode, Skia needs to stop (presumably to invoke a debugger)
+    it will call SK_CRASH(). If this is not defined it, it is defined in
+    SkPostConfig.h to write to an illegal address
+ */
+//#define SK_CRASH() *(int *)(uintptr_t)0 = 0
+
+
+/*  preconfig will have attempted to determine the endianness of the system,
+    but you can change these mutually exclusive flags here.
+ */
+//#define SK_CPU_BENDIAN
+//#define SK_CPU_LENDIAN
+
+
+/*  Some compilers don't support long long for 64bit integers. If yours does
+    not, define this to the appropriate type.
+ */
+//#define SkLONGLONG int64_t
+
+
+/*  Some envorinments do not suport writable globals (eek!). If yours does not,
+    define this flag.
+ */
+//#define SK_USE_RUNTIME_GLOBALS
+
+
+/*  To write debug messages to a console, skia will call SkDebugf(...) following
+    printf conventions (e.g. const char* format, ...). If you want to redirect
+    this to something other than printf, define yours here
+ */
+//#define SkDebugf(...)  MyFunction(__VA_ARGS__)
+
+/* If defined, use CoreText instead of ATSUI on OS X.
+*/
+//#define SK_USE_MAC_CORE_TEXT
+
+
+/*  If zlib is available and you want to support the flate compression
+    algorithm (used in PDF generation), define SK_ZLIB_INCLUDE to be the
+    include path.
+ */
+//#define SK_ZLIB_INCLUDE <zlib.h>
+
+/*  Define this to allow PDF scalars above 32k.  The PDF/A spec doesn't allow
+    them, but modern PDF interpreters should handle them just fine.
+ */
+//#define SK_ALLOW_LARGE_PDF_SCALARS
+
+/*  Define this to provide font subsetter in PDF generation.
+ */
+//#define SK_SFNTLY_SUBSETTER "sfntly/subsetter/font_subsetter.h"
+
+/*  Define this to remove dimension checks on bitmaps. Not all blits will be
+    correct yet, so this is mostly for debugging the implementation.
+ */
+//#define SK_ALLOW_OVER_32K_BITMAPS
+
+/*  Define this to set the upper limit for text to support LCD. Values that
+    are very large increase the cost in the font cache and draw slower, without
+    improving readability. If this is undefined, Skia will use its default
+    value (e.g. 48)
+ */
+//#define SK_MAX_SIZE_FOR_LCDTEXT     48
+
+/*  If SK_DEBUG is defined, then you can optionally define SK_SUPPORT_UNITTEST
+    which will run additional self-tests at startup. These can take a long time,
+    so this flag is optional.
+ */
+#ifdef SK_DEBUG
+//#define SK_SUPPORT_UNITTEST
+#endif
+
+/* If your system embeds skia and has complex event logging, define this
+   symbol to name a file that maps the following macros to your system's
+   equivalents:
+       SK_TRACE_EVENT0(event)
+       SK_TRACE_EVENT1(event, name1, value1)
+       SK_TRACE_EVENT2(event, name1, value1, name2, value2)
+   src/utils/SkDebugTrace.h has a trivial implementation that writes to
+   the debug output stream. If SK_USER_TRACE_INCLUDE_FILE is not defined,
+   SkTrace.h will define the above three macros to do nothing.
+*/
+//#undef SK_USER_TRACE_INCLUDE_FILE
+
+/*  Change the ordering to work in X windows.
+ */
+#ifdef SK_SAMPLES_FOR_X
+        #define SK_R32_SHIFT    16
+        #define SK_G32_SHIFT    8
+        #define SK_B32_SHIFT    0
+        #define SK_A32_SHIFT    24
+#endif
+
+#endif
new file mode 100644
--- /dev/null
+++ b/gfx/skia/include/config/sk_stdint.h
@@ -0,0 +1,23 @@
+
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+#ifndef sk_stdint_DEFINED
+#define sk_stdint_DEFINED
+
+typedef signed char int8_t;
+typedef unsigned char uint8_t;
+typedef short int16_t;
+typedef unsigned short uint16_t;
+typedef int int32_t;
+typedef unsigned uint32_t;
+typedef long long int64_t;
+typedef unsigned long long uint64_t;
+
+typedef int64_t intmax_t;
+typedef uint64_t uintmax_t;
+
+#endif
new file mode 100644
--- /dev/null
+++ b/gfx/skia/include/core/Sk64.h
@@ -0,0 +1,231 @@
+
+/*
+ * Copyright 2006 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef Sk64_DEFINED
+#define Sk64_DEFINED
+
+#include "SkFixed.h"
+
+/** \class Sk64
+
+    Sk64 is a 64-bit math package that does not require long long support from the compiler.
+*/
+struct SK_API Sk64 {
+    int32_t  fHi;   //!< the high 32 bits of the number (including sign)
+    uint32_t fLo;   //!< the low 32 bits of the number
+
+    /** Returns non-zero if the Sk64 can be represented as a signed 32 bit integer
+    */
+    SkBool is32() const { return fHi == ((int32_t)fLo >> 31); }
+
+    /** Returns non-zero if the Sk64 cannot be represented as a signed 32 bit integer
+    */
+    SkBool is64() const { return fHi != ((int32_t)fLo >> 31); }
+
+    /** Returns non-zero if the Sk64 can be represented as a signed 48 bit integer. Used to know
+        if we can shift the value down by 16 to treat it as a SkFixed.
+    */
+    SkBool isFixed() const;
+
+    /** Return the signed 32 bit integer equivalent. Asserts that is32() returns non-zero.
+    */
+    int32_t get32() const { SkASSERT(this->is32()); return (int32_t)fLo; }
+
+    /** Return the number >> 16. Asserts that this does not loose any significant high bits.
+    */
+    SkFixed getFixed() const {
+        SkASSERT(this->isFixed());
+
+        uint32_t sum = fLo + (1 << 15);
+        int32_t  hi = fHi;
+        if (sum < fLo) {
+            hi += 1;
+        }
+        return (hi << 16) | (sum >> 16);
+    }
+
+    /** Return the number >> 30. Asserts that this does not loose any
+        significant high bits.
+    */
+    SkFract getFract() const;
+
+    /** Returns the square-root of the number as a signed 32 bit value. */
+    int32_t getSqrt() const;
+
+    /** Returns the number of leading zeros of the absolute value of this.
+        Will return in the range [0..64]
+    */
+    int getClzAbs() const;
+
+    /** Returns non-zero if the number is zero */
+    SkBool  isZero() const { return (fHi | fLo) == 0; }
+
+    /** Returns non-zero if the number is non-zero */
+    SkBool  nonZero() const { return fHi | fLo; }
+
+    /** Returns non-zero if the number is negative (number < 0) */
+    SkBool  isNeg() const { return (uint32_t)fHi >> 31; }
+
+    /** Returns non-zero if the number is positive (number > 0) */
+    SkBool  isPos() const { return ~(fHi >> 31) & (fHi | fLo); }
+
+    /** Returns -1,0,+1 based on the sign of the number */
+    int     getSign() const { return (fHi >> 31) | Sk32ToBool(fHi | fLo); }
+
+    /** Negate the number */
+    void    negate();
+
+    /** If the number < 0, negate the number
+    */
+    void    abs();
+
+    /** Returns the number of bits needed to shift the Sk64 to the right
+        in order to make it fit in a signed 32 bit integer.
+    */
+    int     shiftToMake32() const;
+
+    /** Set the number to zero */
+    void    setZero() { fHi = fLo = 0; }
+
+    /** Set the high and low 32 bit values of the number */
+    void    set(int32_t hi, uint32_t lo) { fHi = hi; fLo = lo; }
+
+    /** Set the number to the specified 32 bit integer */
+    void    set(int32_t a) { fHi = a >> 31; fLo = a; }
+
+    /** Set the number to the product of the two 32 bit integers */
+    void    setMul(int32_t a, int32_t b);
+
+    /** extract 32bits after shifting right by bitCount.
+        Note: itCount must be [0..63].
+        Asserts that no significant high bits were lost.
+    */
+    int32_t getShiftRight(unsigned bitCount) const;
+
+    /** Shift the number left by the specified number of bits.
+        @param bits How far to shift left, must be [0..63]
+    */
+    void    shiftLeft(unsigned bits);
+
+    /** Shift the number right by the specified number of bits.
+        @param bits How far to shift right, must be [0..63]. This
+        performs an arithmetic right-shift (sign extending).
+    */
+    void    shiftRight(unsigned bits);
+
+    /** Shift the number right by the specified number of bits, but
+        round the result.
+        @param bits How far to shift right, must be [0..63]. This
+        performs an arithmetic right-shift (sign extending).
+    */
+    void    roundRight(unsigned bits);
+
+    /** Add the specified 32 bit integer to the number */
+    void add(int32_t lo) {
+        int32_t  hi = lo >> 31; // 0 or -1
+        uint32_t sum = fLo + (uint32_t)lo;
+
+        fHi = fHi + hi + (sum < fLo);
+        fLo = sum;
+    }
+    
+    /** Add the specified Sk64 to the number */
+    void add(int32_t hi, uint32_t lo) {
+        uint32_t sum = fLo + lo;
+
+        fHi = fHi + hi + (sum < fLo);
+        fLo = sum;
+    }
+    
+    /** Add the specified Sk64 to the number */
+    void    add(const Sk64& other) { this->add(other.fHi, other.fLo); }
+    
+    /** Subtract the specified Sk64 from the number. (*this) = (*this) - num
+    */
+    void    sub(const Sk64& num);
+    
+    /** Subtract the number from the specified Sk64. (*this) = num - (*this)
+    */
+    void    rsub(const Sk64& num);
+    
+    /** Multiply the number by the specified 32 bit integer
+    */
+    void    mul(int32_t);
+
+    enum DivOptions {
+        kTrunc_DivOption,   //!< truncate the result when calling div()
+        kRound_DivOption    //!< round the result when calling div()
+    };
+    
+    /** Divide the number by the specified 32 bit integer, using the specified
+        divide option (either truncate or round).
+    */
+    void    div(int32_t, DivOptions);
+
+    /** return (this + other >> 16) as a 32bit result */
+    SkFixed addGetFixed(const Sk64& other) const {
+        return this->addGetFixed(other.fHi, other.fLo);
+    }
+
+    /** return (this + Sk64(hi, lo) >> 16) as a 32bit result */
+    SkFixed addGetFixed(int32_t hi, uint32_t lo) const {
+#ifdef SK_DEBUG
+        Sk64    tmp(*this);
+        tmp.add(hi, lo);
+#endif
+
+        uint32_t sum = fLo + lo;
+        hi += fHi + (sum < fLo);
+        lo = sum;
+
+        sum = lo + (1 << 15);
+        if (sum < lo)
+            hi += 1;
+
+        hi = (hi << 16) | (sum >> 16);
+        SkASSERT(hi == tmp.getFixed());
+        return hi;
+    }
+
+    /** Return the result of dividing the number by denom, treating the answer
+        as a SkFixed. (*this) << 16 / denom. It is an error for denom to be 0.
+    */
+    SkFixed getFixedDiv(const Sk64& denom) const;
+
+    friend bool operator==(const Sk64& a, const Sk64& b) {
+        return a.fHi == b.fHi && a.fLo == b.fLo;
+    }
+
+    friend bool operator!=(const Sk64& a, const Sk64& b) {
+        return a.fHi != b.fHi || a.fLo != b.fLo;
+    }
+    
+    friend bool operator<(const Sk64& a, const Sk64& b) {
+        return a.fHi < b.fHi || (a.fHi == b.fHi && a.fLo < b.fLo);
+    }
+    
+    friend bool operator<=(const Sk64& a, const Sk64& b) {
+        return a.fHi < b.fHi || (a.fHi == b.fHi && a.fLo <= b.fLo);
+    }
+    
+    friend bool operator>(const Sk64& a, const Sk64& b) {
+        return a.fHi > b.fHi || (a.fHi == b.fHi && a.fLo > b.fLo);
+    }
+    
+    friend bool operator>=(const Sk64& a, const Sk64& b) {
+        return a.fHi > b.fHi || (a.fHi == b.fHi && a.fLo >= b.fLo);
+    }
+
+#ifdef SkLONGLONG
+    SkLONGLONG getLongLong() const;
+#endif
+};
+
+#endif
+
new file mode 100755
--- /dev/null
+++ b/gfx/skia/include/core/SkAdvancedTypefaceMetrics.h
@@ -0,0 +1,154 @@
+
+/*
+ * Copyright 2011 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SkAdvancedTypefaceMetrics_DEFINED
+#define SkAdvancedTypefaceMetrics_DEFINED
+
+#include "SkRect.h"
+#include "SkRefCnt.h"
+#include "SkString.h"
+#include "SkTDArray.h"
+#include "SkTemplates.h"
+#include "SkTScopedPtr.h"
+
+/** \class SkAdvancedTypefaceMetrics
+
+    The SkAdvancedTypefaceMetrics class is used by the PDF backend to correctly
+    embed typefaces.  This class is filled in with information about a given
+    typeface by the SkFontHost class.
+*/
+
+class SkAdvancedTypefaceMetrics : public SkRefCnt {
+public:
+    SkString fFontName;
+
+    enum FontType {
+        kType1_Font,
+        kType1CID_Font,
+        kCFF_Font,
+        kTrueType_Font,
+        kOther_Font,
+        kNotEmbeddable_Font,
+    };
+    // The type of the underlying font program.  This field determines which
+    // of the following fields are valid.  If it is kOther_Font or
+    // kNotEmbeddable_Font, the per glyph information will never be populated.
+    FontType fType;
+
+    // fMultiMaster may be true for Type1_Font or CFF_Font.
+    bool fMultiMaster;
+    uint16_t fLastGlyphID; // The last valid glyph ID in the font.
+    uint16_t fEmSize;  // The size of the em box (defines font units).
+
+    // These enum values match the values used in the PDF file format.
+    enum StyleFlags {
+        kFixedPitch_Style  = 0x00001,
+        kSerif_Style       = 0x00002,
+        kSymbolic_Style    = 0x00004,
+        kScript_Style      = 0x00008,
+        kNonsymbolic_Style = 0x00020,
+        kItalic_Style      = 0x00040,
+        kAllCaps_Style     = 0x10000,
+        kSmallCaps_Style   = 0x20000,
+        kForceBold_Style   = 0x40000,
+    };
+    uint16_t fStyle;        // Font style characteristics.
+    int16_t fItalicAngle;   // Counterclockwise degrees from vertical of the
+                            // dominant vertical stroke for an Italic face.
+    // The following fields are all in font units.
+    int16_t fAscent;       // Max height above baseline, not including accents.
+    int16_t fDescent;      // Max depth below baseline (negative).
+    int16_t fStemV;        // Thickness of dominant vertical stem.
+    int16_t fCapHeight;    // Height (from baseline) of top of flat capitals.
+
+    SkIRect fBBox;  // The bounding box of all glyphs (in font units).
+
+    // The type of advance data wanted.
+    enum PerGlyphInfo {
+      kNo_PerGlyphInfo         = 0x0, // Don't populate any per glyph info.
+      kHAdvance_PerGlyphInfo   = 0x1, // Populate horizontal advance data.
+      kVAdvance_PerGlyphInfo   = 0x2, // Populate vertical advance data.
+      kGlyphNames_PerGlyphInfo = 0x4, // Populate glyph names (Type 1 only).
+      kToUnicode_PerGlyphInfo  = 0x8, // Populate ToUnicode table, ignored
+                                      // for Type 1 fonts
+    };
+
+    template <typename Data>
+    struct AdvanceMetric {
+        enum MetricType {
+            kDefault,  // Default advance: fAdvance.count = 1
+            kRange,    // Advances for a range: fAdvance.count = fEndID-fStartID
+            kRun,      // fStartID-fEndID have same advance: fAdvance.count = 1
+        };
+        MetricType fType;
+        uint16_t fStartId;
+        uint16_t fEndId;
+        SkTDArray<Data> fAdvance;
+        SkTScopedPtr<AdvanceMetric<Data> > fNext;
+    };
+
+    struct VerticalMetric {
+        int16_t fVerticalAdvance;
+        int16_t fOriginXDisp;  // Horiz. displacement of the secondary origin.
+        int16_t fOriginYDisp;  // Vert. displacement of the secondary origin.
+    };
+    typedef AdvanceMetric<int16_t> WidthRange;
+    typedef AdvanceMetric<VerticalMetric> VerticalAdvanceRange;
+
+    // This is indexed by glyph id.
+    SkTScopedPtr<WidthRange> fGlyphWidths;
+    // Only used for Vertical CID fonts.
+    SkTScopedPtr<VerticalAdvanceRange> fVerticalMetrics;
+
+    // The names of each glyph, only populated for postscript fonts.
+    SkTScopedPtr<SkAutoTArray<SkString> > fGlyphNames;
+
+    // The mapping from glyph to Unicode, only populated if
+    // kToUnicode_PerGlyphInfo is passed to GetAdvancedTypefaceMetrics.
+    SkTDArray<SkUnichar> fGlyphToUnicode;
+};
+
+namespace skia_advanced_typeface_metrics_utils {
+
+template <typename Data>
+void resetRange(SkAdvancedTypefaceMetrics::AdvanceMetric<Data>* range,
+                       int startId);
+
+template <typename Data>
+SkAdvancedTypefaceMetrics::AdvanceMetric<Data>* appendRange(
+        SkTScopedPtr<SkAdvancedTypefaceMetrics::AdvanceMetric<Data> >* nextSlot,
+        int startId);
+
+template <typename Data>
+void finishRange(
+        SkAdvancedTypefaceMetrics::AdvanceMetric<Data>* range,
+        int endId,
+        typename SkAdvancedTypefaceMetrics::AdvanceMetric<Data>::MetricType
+                type);
+
+/** Retrieve advance data for glyphs. Used by the PDF backend. It calls
+    underlying platform dependent API getAdvance to acquire the data.
+    @param num_glyphs    Total number of glyphs in the given font.
+    @param glyphIDs      For per-glyph info, specify subset of the font by
+                         giving glyph ids.  Each integer represents a glyph
+                         id.  Passing NULL means all glyphs in the font.
+    @param glyphIDsCount Number of elements in subsetGlyphIds. Ignored if
+                         glyphIDs is NULL.
+*/
+template <typename Data, typename FontHandle>
+SkAdvancedTypefaceMetrics::AdvanceMetric<Data>* getAdvanceData(
+        FontHandle fontHandle,
+        int num_glyphs,
+        const uint32_t* glyphIDs,
+        uint32_t glyphIDsCount,
+        bool (*getAdvance)(FontHandle fontHandle, int gId, Data* data));
+
+} // namespace skia_advanced_typeface_metrics_utils
+
+#endif
new file mode 100644
--- /dev/null
+++ b/gfx/skia/include/core/SkAutoKern.h
@@ -0,0 +1,54 @@
+
+/*
+ * Copyright 2006 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SkAutoKern_DEFINED
+#define SkAutoKern_DEFINED
+
+#include "SkScalerContext.h"
+
+#define SkAutoKern_AdjustF(prev, next)    (((next) - (prev) + 32) >> 6 << 16)
+#define SkAutoKern_AdjustS(prev, next)    SkIntToScalar(((next) - (prev) + 32) >> 6)
+
+/* this is a helper class to perform auto-kerning
+ * the adjust() method returns a SkFixed corresponding
+ * to a +1/0/-1 pixel adjustment
+ */
+
+class SkAutoKern {
+public:
+    SkAutoKern() : fPrevRsbDelta(0) {}
+
+    SkFixed  adjust(const SkGlyph&  glyph) 
+    {
+//        if (SkAbs32(glyph.fLsbDelta) > 47 || SkAbs32(glyph.fRsbDelta) > 47)
+//            printf("------- %d> L %d R %d\n", glyph.f_GlyphID, glyph.fLsbDelta, glyph.fRsbDelta);
+
+#if 0
+        int  distort = fPrevRsbDelta - glyph.fLsbDelta;
+
+        fPrevRsbDelta = glyph.fRsbDelta;
+
+        if (distort >= 32)
+            return -SK_Fixed1;
+        else if (distort < -32)
+            return +SK_Fixed1;
+        else
+            return 0;
+#else
+        SkFixed adjust = SkAutoKern_AdjustF(fPrevRsbDelta, glyph.fLsbDelta);
+        fPrevRsbDelta = glyph.fRsbDelta;
+        return adjust;
+#endif
+    }
+private:
+    int   fPrevRsbDelta;
+};
+
+#endif
+
new file mode 100644
--- /dev/null
+++ b/gfx/skia/include/core/SkBitmap.h
@@ -0,0 +1,828 @@
+
+/*
+ * Copyright 2006 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+
+#ifndef SkBitmap_DEFINED
+#define SkBitmap_DEFINED
+
+#include "Sk64.h"
+#include "SkColor.h"
+#include "SkPoint.h"
+#include "SkRefCnt.h"
+
+struct SkIRect;
+class SkColorTable;
+class SkPaint;
+class SkPixelRef;
+class SkRegion;
+class SkFlattenableReadBuffer;
+class SkFlattenableWriteBuffer;
+
+// This is an opaque class, not interpreted by skia
+class SkGpuTexture;
+
+/** \class SkBitmap
+
+    The SkBitmap class specifies a raster bitmap. A bitmap has an integer width
+    and height, and a format (config), and a pointer to the actual pixels.
+    Bitmaps can be drawn into a SkCanvas, but they are also used to specify the
+    target of a SkCanvas' drawing operations.
+    A const SkBitmap exposes getAddr(), which lets a caller write its pixels;
+    the constness is considered to apply to the bitmap's configuration, not
+    its contents.
+*/
+class SK_API SkBitmap {
+public:
+    class Allocator;
+
+    enum Config {
+        kNo_Config,         //!< bitmap has not been configured
+        /**
+         *  1-bit per pixel, (0 is transparent, 1 is opaque)
+         *  Valid as a destination (target of a canvas), but not valid as a src.
+         *  i.e. you can draw into a 1-bit bitmap, but you cannot draw from one.
+         */
+        kA1_Config,
+        kA8_Config,         //!< 8-bits per pixel, with only alpha specified (0 is transparent, 0xFF is opaque)
+        kIndex8_Config,     //!< 8-bits per pixel, using SkColorTable to specify the colors
+        kRGB_565_Config,    //!< 16-bits per pixel, (see SkColorPriv.h for packing)
+        kARGB_4444_Config,  //!< 16-bits per pixel, (see SkColorPriv.h for packing)
+        kARGB_8888_Config,  //!< 32-bits per pixel, (see SkColorPriv.h for packing)
+        /**
+         *  Custom compressed format, not supported on all platforms.
+         *  Cannot be used as a destination (target of a canvas).
+         *  i.e. you may be able to draw from one, but you cannot draw into one.
+         */
+        kRLE_Index8_Config,
+
+        kConfigCount
+    };
+
+    /** Default construct creates a bitmap with zero width and height, and no pixels.
+        Its config is set to kNo_Config.
+    */
+    SkBitmap();
+    /** Constructor initializes the new bitmap by copying the src bitmap. All fields are copied,
+        but ownership of the pixels remains with the src bitmap.
+    */
+    SkBitmap(const SkBitmap& src);
+    /** Decrements our (shared) pixel ownership if needed.
+    */
+    ~SkBitmap();
+
+    /** Copies the src bitmap into this bitmap. Ownership of the src bitmap's pixels remains
+        with the src bitmap.
+    */
+    SkBitmap& operator=(const SkBitmap& src);
+    /** Swap the fields of the two bitmaps. This routine is guaranteed to never fail or throw.
+    */
+    //  This method is not exported to java.
+    void swap(SkBitmap& other);
+
+    /** Return true iff the bitmap has empty dimensions.
+    */
+    bool empty() const { return 0 == fWidth || 0 == fHeight; }
+
+    /** Return true iff the bitmap has no pixels nor a pixelref. Note: this can
+        return true even if the dimensions of the bitmap are > 0 (see empty()).
+    */
+    bool isNull() const { return NULL == fPixels && NULL == fPixelRef; }
+
+    /** Return the config for the bitmap.
+    */
+    Config  config() const { return (Config)fConfig; }
+    /** DEPRECATED, use config()
+    */
+    Config  getConfig() const { return this->config(); }
+    /** Return the bitmap's width, in pixels.
+    */
+    int width() const { return fWidth; }
+    /** Return the bitmap's height, in pixels.