aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--bench/AAClipBench.cpp20
-rw-r--r--bench/BenchGpuTimer_gl.cpp6
-rw-r--r--bench/BenchSysTimer_mach.cpp6
-rw-r--r--bench/BenchSysTimer_windows.cpp4
-rw-r--r--bench/BenchTimer.h2
-rw-r--r--bench/BitmapBench.cpp32
-rw-r--r--bench/BlurBench.cpp6
-rw-r--r--bench/DashBench.cpp22
-rw-r--r--bench/DecodeBench.cpp2
-rw-r--r--bench/DeferredCanvasBench.cpp2
-rw-r--r--bench/GrMemoryPoolBench.cpp2
-rw-r--r--bench/GradientBench.cpp10
-rw-r--r--bench/InterpBench.cpp26
-rw-r--r--bench/MathBench.cpp46
-rw-r--r--bench/MatrixBench.cpp28
-rw-r--r--bench/MemoryBench.cpp8
-rw-r--r--bench/MorphologyBench.cpp10
-rw-r--r--bench/PathBench.cpp10
-rw-r--r--bench/PathIterBench.cpp4
-rw-r--r--bench/RectBench.cpp18
-rw-r--r--bench/RegionBench.cpp2
-rw-r--r--bench/RepeatTileBench.cpp8
-rw-r--r--bench/ShaderMaskBench.cpp4
-rw-r--r--bench/SkBenchmark.h6
-rw-r--r--bench/VertBench.cpp4
-rw-r--r--bench/benchmain.cpp30
-rw-r--r--debugger/QT/qrc_SkIcons.cpp8
-rw-r--r--forth/Forth.cpp10
-rw-r--r--forth/ForthTests.cpp6
-rw-r--r--forth/SampleForth.cpp32
-rw-r--r--forth/StdWords.cpp4
-rw-r--r--include/animator/SkAnimator.h130
-rw-r--r--include/config/SkUserConfig.h2
-rw-r--r--include/core/Sk64.h20
-rw-r--r--include/core/SkAnnotation.h2
-rw-r--r--include/core/SkBitmap.h10
-rw-r--r--include/core/SkBounder.h4
-rw-r--r--include/core/SkChecksum.h12
-rw-r--r--include/core/SkChunkAlloc.h6
-rw-r--r--include/core/SkClipStack.h38
-rw-r--r--include/core/SkColorFilter.h2
-rw-r--r--include/core/SkColorPriv.h36
-rw-r--r--include/core/SkComposeShader.h2
-rw-r--r--include/core/SkData.h10
-rw-r--r--include/core/SkDataSet.h2
-rw-r--r--include/core/SkDeque.h14
-rw-r--r--include/core/SkDevice.h8
-rw-r--r--include/core/SkDither.h22
-rw-r--r--include/core/SkDrawFilter.h2
-rw-r--r--include/core/SkDrawLooper.h2
-rw-r--r--include/core/SkFlate.h6
-rw-r--r--include/core/SkFlattenable.h8
-rw-r--r--include/core/SkGraphics.h12
-rw-r--r--include/core/SkImage.h8
-rw-r--r--include/core/SkImageFilter.h4
-rw-r--r--include/core/SkInstCnt.h2
-rw-r--r--include/core/SkLineClipper.h4
-rw-r--r--include/core/SkMMapStream.h4
-rw-r--r--include/core/SkMallocPixelRef.h2
-rw-r--r--include/core/SkMask.h2
-rw-r--r--include/core/SkMatrix.h32
-rw-r--r--include/core/SkOSFile.h2
-rw-r--r--include/core/SkPaint.h22
-rw-r--r--include/core/SkPath.h52
-rw-r--r--include/core/SkPathEffect.h6
-rw-r--r--include/core/SkPathMeasure.h4
-rw-r--r--include/core/SkPicture.h14
-rw-r--r--include/core/SkPixelRef.h2
-rw-r--r--include/core/SkPoint.h10
-rw-r--r--include/core/SkPreConfig.h2
-rw-r--r--include/core/SkReader32.h18
-rw-r--r--include/core/SkRect.h56
-rw-r--r--include/core/SkRegion.h28
-rw-r--r--include/core/SkShader.h2
-rw-r--r--include/core/SkSize.h16
-rw-r--r--include/core/SkStream.h16
-rw-r--r--include/core/SkSurface.h4
-rw-r--r--include/core/SkTArray.h6
-rw-r--r--include/core/SkTDArray.h6
-rw-r--r--include/core/SkTDLinkedList.h6
-rw-r--r--include/core/SkTLazy.h4
-rw-r--r--include/core/SkTSearch.h2
-rw-r--r--include/core/SkTemplates.h12
-rw-r--r--include/core/SkThread.h4
-rw-r--r--include/core/SkTypeface.h10
-rw-r--r--include/core/SkTypes.h2
-rw-r--r--include/core/SkUnPreMultiply.h14
-rw-r--r--include/core/SkUnitMapper.h2
-rw-r--r--include/core/SkWriter32.h26
-rw-r--r--include/core/SkXfermode.h8
-rw-r--r--include/effects/Sk1DPathEffect.h6
-rw-r--r--include/effects/Sk2DPathEffect.h2
-rw-r--r--include/effects/SkBlurDrawLooper.h10
-rw-r--r--include/effects/SkBlurMaskFilter.h2
-rwxr-xr-xinclude/effects/SkColorFilterImageFilter.h8
-rw-r--r--include/effects/SkColorMatrix.h2
-rw-r--r--include/effects/SkCornerPathEffect.h2
-rw-r--r--include/effects/SkDashPathEffect.h4
-rw-r--r--include/effects/SkDiscretePathEffect.h2
-rw-r--r--include/effects/SkEmbossMaskFilter.h2
-rw-r--r--include/effects/SkGradientShader.h4
-rw-r--r--include/effects/SkKernel33MaskFilter.h12
-rw-r--r--include/effects/SkLayerDrawLooper.h14
-rw-r--r--include/effects/SkLayerRasterizer.h12
-rw-r--r--include/effects/SkPaintFlagsDrawFilter.h4
-rw-r--r--include/effects/SkPorterDuff.h6
-rw-r--r--include/effects/SkTableColorFilter.h2
-rw-r--r--include/effects/SkTableMaskFilter.h6
-rwxr-xr-xinclude/effects/SkTestImageFilters.h28
-rw-r--r--include/effects/SkTransparentShader.h2
-rw-r--r--include/gpu/GrAARectRenderer.h2
-rw-r--r--include/gpu/GrCacheID.h18
-rw-r--r--include/gpu/GrClipData.h10
-rw-r--r--include/gpu/GrConfig.h2
-rw-r--r--include/gpu/GrContext.h24
-rw-r--r--include/gpu/GrContextFactory.h2
-rw-r--r--include/gpu/GrCustomStage.h4
-rw-r--r--include/gpu/GrGlyph.h14
-rw-r--r--include/gpu/GrPaint.h2
-rw-r--r--include/gpu/GrPoint.h2
-rw-r--r--include/gpu/GrRect.h4
-rw-r--r--include/gpu/GrRenderTarget.h8
-rw-r--r--include/gpu/GrSamplerState.h4
-rw-r--r--include/gpu/GrTexture.h26
-rw-r--r--include/gpu/GrTypes.h16
-rw-r--r--include/gpu/gl/GrGLConfig.h2
-rw-r--r--include/gpu/gl/GrGLFunctions.h4
-rw-r--r--include/gpu/gl/GrGLInterface.h8
-rw-r--r--include/gpu/gl/SkGLContext.h4
-rw-r--r--include/images/SkFlipPixelRef.h10
-rw-r--r--include/images/SkImageEncoder.h2
-rw-r--r--include/images/SkImageRef.h22
-rw-r--r--include/images/SkImageRef_GlobalPool.h14
-rw-r--r--include/images/SkMovie.h6
-rw-r--r--include/images/SkPageFlipper.h4
-rw-r--r--include/ports/SkHarfBuzzFont.h2
-rw-r--r--include/ports/SkStream_Win.h2
-rw-r--r--include/svg/SkSVGBase.h2
-rw-r--r--include/svg/SkSVGPaintState.h4
-rw-r--r--include/svg/SkSVGParser.h2
-rw-r--r--include/svg/SkSVGTypes.h2
-rw-r--r--include/text/SkTextLayout.h2
-rw-r--r--include/utils/SkBoundaryPatch.h4
-rw-r--r--include/utils/SkCamera.h8
-rw-r--r--include/utils/SkCullPoints.h10
-rw-r--r--include/utils/SkDeferredCanvas.h8
-rw-r--r--include/utils/SkDumpCanvas.h2
-rw-r--r--include/utils/SkJSON.h50
-rw-r--r--include/utils/SkMeshUtils.h2
-rw-r--r--include/utils/SkNinePatch.h2
-rwxr-xr-xinclude/utils/ios/SkStream_NSData.h2
-rw-r--r--include/utils/win/SkIStream.h12
-rw-r--r--include/utils/win/SkTScopedComPtr.h4
-rw-r--r--include/views/SkEvent.h6
-rw-r--r--include/views/SkKey.h6
-rw-r--r--include/views/SkOSMenu.h76
-rw-r--r--include/views/SkOSWindow_Mac.h4
-rw-r--r--include/views/SkOSWindow_Win.h4
-rwxr-xr-xinclude/views/SkOSWindow_iOS.h4
-rw-r--r--include/views/SkOSWindow_wxwidgets.h10
-rw-r--r--include/views/SkStackViewLayout.h2
-rw-r--r--include/views/SkSystemEventTypes.h2
-rw-r--r--include/views/SkTouchGesture.h6
-rw-r--r--include/views/SkView.h24
-rw-r--r--include/views/SkViewInflate.h4
-rw-r--r--include/views/SkWindow.h4
-rw-r--r--include/views/animated/SkImageView.h8
-rw-r--r--include/views/animated/SkProgressBarView.h12
-rw-r--r--include/views/animated/SkScrollBarView.h8
-rw-r--r--include/views/animated/SkWidgetViews.h22
-rw-r--r--include/xml/SkBML_WXMLParser.h4
-rw-r--r--include/xml/SkDOM.h2
-rw-r--r--include/xml/SkXMLParser.h10
-rw-r--r--src/core/ARGB32_Clamp_Bilinear_BitmapShader.h8
-rw-r--r--src/core/SkAAClip.cpp80
-rw-r--r--src/core/SkAAClip.h6
-rw-r--r--src/core/SkAdvancedTypefaceMetrics.cpp8
-rw-r--r--src/core/SkAntiRun.h2
-rw-r--r--src/core/SkAutoKern.h2
-rw-r--r--src/core/SkBitmap.cpp14
-rw-r--r--src/core/SkBitmapHeap.cpp2
-rw-r--r--src/core/SkBitmapHeap.h4
-rw-r--r--src/core/SkBitmapProcState.cpp30
-rw-r--r--src/core/SkBitmapProcState.h16
-rw-r--r--src/core/SkBitmapProcState_filter.h24
-rw-r--r--src/core/SkBitmapProcState_matrix.h26
-rw-r--r--src/core/SkBitmapProcState_matrixProcs.cpp28
-rw-r--r--src/core/SkBitmapProcState_procs.h10
-rw-r--r--src/core/SkBitmapProcState_sample.h30
-rw-r--r--src/core/SkBitmapProcState_shaderproc.h2
-rw-r--r--src/core/SkBitmapSampler.cpp30
-rw-r--r--src/core/SkBitmapShader16BilerpTemplate.h6
-rw-r--r--src/core/SkBitmapShaderTemplate.h4
-rw-r--r--src/core/SkBitmap_scroll.cpp12
-rw-r--r--src/core/SkBlitBWMaskTemplate.h2
-rw-r--r--src/core/SkBlitMask.h14
-rw-r--r--src/core/SkBlitMask_D32.cpp74
-rw-r--r--src/core/SkBlitRow_D16.cpp30
-rw-r--r--src/core/SkBlitRow_D4444.cpp34
-rw-r--r--src/core/SkBlitter.cpp4
-rw-r--r--src/core/SkBlitter_ARGB32.cpp26
-rw-r--r--src/core/SkBlitter_RGB16.cpp70
-rw-r--r--src/core/SkBuffer.h6
-rw-r--r--src/core/SkCanvas.cpp20
-rw-r--r--src/core/SkChunkAlloc.cpp8
-rw-r--r--src/core/SkClipStack.cpp112
-rw-r--r--src/core/SkColor.cpp6
-rw-r--r--src/core/SkColorFilter.cpp2
-rw-r--r--src/core/SkCordic.cpp18
-rw-r--r--src/core/SkCordic.h2
-rw-r--r--src/core/SkData.cpp12
-rw-r--r--src/core/SkDeque.cpp4
-rw-r--r--src/core/SkDescriptor.h2
-rw-r--r--src/core/SkDevice.cpp8
-rw-r--r--src/core/SkDeviceProfile.cpp2
-rw-r--r--src/core/SkDither.cpp2
-rw-r--r--src/core/SkDraw.cpp42
-rw-r--r--src/core/SkDrawProcs.h6
-rw-r--r--src/core/SkEdge.cpp2
-rw-r--r--src/core/SkEdge.h14
-rw-r--r--src/core/SkEdgeBuilder.cpp4
-rw-r--r--src/core/SkEdgeBuilder.h10
-rw-r--r--src/core/SkEdgeClipper.cpp34
-rw-r--r--src/core/SkEdgeClipper.h4
-rw-r--r--src/core/SkFilterProc.cpp4
-rw-r--r--src/core/SkFilterProc.h8
-rw-r--r--src/core/SkFloat.cpp2
-rw-r--r--src/core/SkFloat.h4
-rw-r--r--src/core/SkFloatBits.cpp26
-rw-r--r--src/core/SkGeometry.cpp30
-rw-r--r--src/core/SkGlyphCache.cpp10
-rw-r--r--src/core/SkGraphics.cpp2
-rw-r--r--src/core/SkLineClipper.cpp14
-rw-r--r--src/core/SkMallocPixelRef.cpp2
-rw-r--r--src/core/SkMask.cpp2
-rw-r--r--src/core/SkMaskGamma.h2
-rw-r--r--src/core/SkMath.cpp18
-rw-r--r--src/core/SkMathPriv.h2
-rw-r--r--src/core/SkMatrix.cpp46
-rw-r--r--src/core/SkMemory_stdlib.cpp12
-rw-r--r--src/core/SkPackBits.cpp20
-rw-r--r--src/core/SkPaint.cpp34
-rw-r--r--src/core/SkPath.cpp56
-rw-r--r--src/core/SkPathHeap.cpp2
-rw-r--r--src/core/SkPathHeap.h6
-rw-r--r--src/core/SkPathMeasure.cpp4
-rw-r--r--src/core/SkPerspIter.h4
-rw-r--r--src/core/SkPictureFlat.cpp6
-rw-r--r--src/core/SkPictureFlat.h26
-rw-r--r--src/core/SkPicturePlayback.cpp16
-rw-r--r--src/core/SkPicturePlayback.h6
-rw-r--r--src/core/SkPictureRecord.cpp2
-rw-r--r--src/core/SkPixelRef.cpp2
-rw-r--r--src/core/SkPoint.cpp32
-rw-r--r--src/core/SkPtrRecorder.cpp4
-rw-r--r--src/core/SkPtrRecorder.h14
-rw-r--r--src/core/SkQuadClipper.cpp14
-rw-r--r--src/core/SkQuadClipper.h10
-rw-r--r--src/core/SkRasterClip.cpp16
-rw-r--r--src/core/SkRasterClip.h10
-rw-r--r--src/core/SkRasterizer.cpp10
-rw-r--r--src/core/SkRect.cpp4
-rw-r--r--src/core/SkRefDict.h2
-rw-r--r--src/core/SkRegion.cpp88
-rw-r--r--src/core/SkRegionPriv.h38
-rw-r--r--src/core/SkRegion_path.cpp24
-rw-r--r--src/core/SkRegion_rects.cpp32
-rw-r--r--src/core/SkScalerContext.cpp24
-rw-r--r--src/core/SkScalerContext.h26
-rw-r--r--src/core/SkScan.cpp14
-rw-r--r--src/core/SkScan.h2
-rw-r--r--src/core/SkScan_AntiPath.cpp10
-rw-r--r--src/core/SkScan_Antihair.cpp54
-rw-r--r--src/core/SkScan_Hairline.cpp6
-rw-r--r--src/core/SkScan_Path.cpp16
-rw-r--r--src/core/SkShader.cpp2
-rw-r--r--src/core/SkSpriteBlitter_RGB16.cpp24
-rw-r--r--src/core/SkStream.cpp26
-rw-r--r--src/core/SkStroke.cpp10
-rw-r--r--src/core/SkStrokerPriv.cpp4
-rwxr-xr-xsrc/core/SkTLS.cpp8
-rw-r--r--src/core/SkTLS.h6
-rwxr-xr-xsrc/core/SkTRefArray.h10
-rw-r--r--src/core/SkTSearch.cpp2
-rw-r--r--src/core/SkUnPreMultiply.cpp6
-rw-r--r--src/core/SkUtils.cpp20
-rw-r--r--src/core/SkUtilsArm.cpp2
-rw-r--r--src/core/SkWriter32.cpp20
-rw-r--r--src/effects/Sk1DPathEffect.cpp12
-rw-r--r--src/effects/SkBlurDrawLooper.cpp4
-rw-r--r--src/effects/SkBlurMask.cpp4
-rw-r--r--src/effects/SkBlurMaskFilter.cpp6
-rwxr-xr-xsrc/effects/SkColorFilterImageFilter.cpp2
-rw-r--r--src/effects/SkColorFilters.cpp18
-rw-r--r--src/effects/SkColorMatrix.cpp12
-rw-r--r--src/effects/SkCornerPathEffect.cpp2
-rw-r--r--src/effects/SkDashPathEffect.cpp14
-rw-r--r--src/effects/SkDiscretePathEffect.cpp2
-rw-r--r--src/effects/SkEmbossMaskFilter.cpp4
-rw-r--r--src/effects/SkEmbossMask_Table.h2046
-rw-r--r--src/effects/SkKernel33MaskFilter.cpp16
-rw-r--r--src/effects/SkLayerDrawLooper.cpp4
-rw-r--r--src/effects/SkLightingImageFilter.cpp4
-rw-r--r--src/effects/SkMorphologyImageFilter.cpp6
-rw-r--r--src/effects/SkTableColorFilter.cpp64
-rw-r--r--src/effects/SkTableMaskFilter.cpp6
-rwxr-xr-xsrc/effects/SkTestImageFilters.cpp18
-rw-r--r--src/effects/gradients/SkClampRange.cpp2
-rw-r--r--src/effects/gradients/SkGradientShader.cpp14
-rw-r--r--src/effects/gradients/SkGradientShaderPriv.h10
-rw-r--r--src/effects/gradients/SkLinearGradient.cpp8
-rw-r--r--src/effects/gradients/SkLinearGradient.h2
-rw-r--r--src/effects/gradients/SkRadialGradient.cpp4
-rw-r--r--src/effects/gradients/SkRadialGradient_Table.h254
-rw-r--r--src/effects/gradients/SkSweepGradient.cpp6
-rw-r--r--src/effects/gradients/SkTwoPointConicalGradient.cpp52
-rw-r--r--src/effects/gradients/SkTwoPointConicalGradient.h12
-rw-r--r--src/effects/gradients/SkTwoPointRadialGradient.cpp4
-rw-r--r--src/gpu/FlingState.cpp4
-rw-r--r--src/gpu/GrAAConvexPathRenderer.cpp10
-rw-r--r--src/gpu/GrAAHairLinePathRenderer.cpp12
-rw-r--r--src/gpu/GrAddPathRenderers_none.cpp2
-rw-r--r--src/gpu/GrAllocPool.cpp8
-rw-r--r--src/gpu/GrAllocPool.h2
-rw-r--r--src/gpu/GrBufferAllocPool.cpp6
-rw-r--r--src/gpu/GrBufferAllocPool.h2
-rw-r--r--src/gpu/GrCacheID.cpp4
-rw-r--r--src/gpu/GrClipData.cpp2
-rw-r--r--src/gpu/GrClipMaskManager.cpp92
-rw-r--r--src/gpu/GrContext.cpp58
-rw-r--r--src/gpu/GrDefaultPathRenderer.cpp8
-rw-r--r--src/gpu/GrInOrderDrawBuffer.cpp40
-rw-r--r--src/gpu/GrInOrderDrawBuffer.h12
-rw-r--r--src/gpu/GrRectanizer_fifo.cpp36
-rw-r--r--src/gpu/GrResourceCache.cpp10
-rw-r--r--src/gpu/GrResourceCache.h8
-rw-r--r--src/gpu/GrSWMaskHelper.cpp12
-rw-r--r--src/gpu/GrStencil.cpp2
-rw-r--r--src/gpu/SkGr.cpp16
-rw-r--r--src/gpu/android/SkNativeGLContext_android.cpp2
-rw-r--r--src/gpu/app-android.cpp8
-rw-r--r--src/gpu/effects/GrColorTableEffect.h2
-rw-r--r--src/gpu/effects/GrConvolutionEffect.cpp2
-rw-r--r--src/gpu/effects/GrConvolutionEffect.h2
-rw-r--r--src/gpu/effects/GrTextureStripAtlas.cpp16
-rw-r--r--src/gpu/effects/GrTextureStripAtlas.h32
-rw-r--r--src/gpu/gl/GrGLCaps.cpp10
-rw-r--r--src/gpu/gl/GrGLCaps.h6
-rw-r--r--src/gpu/gl/GrGLCreateNullInterface.cpp4
-rw-r--r--src/gpu/gl/GrGLIndexBuffer.cpp2
-rw-r--r--src/gpu/gl/GrGLInterface.cpp4
-rw-r--r--src/gpu/gl/GrGLPath.cpp4
-rw-r--r--src/gpu/gl/GrGLProgram.cpp14
-rw-r--r--src/gpu/gl/GrGLRenderTarget.h6
-rw-r--r--src/gpu/gl/GrGLSL.h2
-rw-r--r--src/gpu/gl/GrGLShaderVar.h6
-rw-r--r--src/gpu/gl/GrGLStencilBuffer.h4
-rw-r--r--src/gpu/gl/GrGLTexture.cpp2
-rw-r--r--src/gpu/gl/GrGLUtil.cpp4
-rw-r--r--src/gpu/gl/GrGLVertexBuffer.cpp4
-rw-r--r--src/gpu/gl/GrGpuGL.cpp46
-rw-r--r--src/gpu/gl/GrGpuGL_program.cpp18
-rw-r--r--src/gpu/gl/SkGLContext.cpp10
-rw-r--r--src/gpu/gl/angle/GrGLCreateANGLEInterface.cpp10
-rw-r--r--src/gpu/gl/debug/GrBufferObj.h6
-rw-r--r--src/gpu/gl/debug/GrDebugGL.cpp22
-rw-r--r--src/gpu/gl/debug/GrDebugGL.h4
-rw-r--r--src/gpu/gl/debug/GrFBBindableObj.h26
-rw-r--r--src/gpu/gl/debug/GrFakeRefObj.h18
-rw-r--r--src/gpu/gl/debug/GrGLCreateDebugInterface.cpp596
-rw-r--r--src/gpu/gl/debug/GrShaderObj.h2
-rw-r--r--src/gpu/gl/debug/GrTextureObj.h12
-rw-r--r--src/gpu/gl/debug/GrTextureUnitObj.cpp4
-rw-r--r--src/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp8
-rw-r--r--src/gpu/gl/mac/SkNativeGLContext_mac.cpp6
-rw-r--r--src/gpu/gl/mesa/SkMesaGLContext.cpp22
-rw-r--r--src/gpu/gl/unix/GrGLCreateNativeInterface_unix.cpp2
-rw-r--r--src/gpu/gl/unix/SkNativeGLContext_unix.cpp8
-rw-r--r--src/image/SkDataPixelRef.h10
-rw-r--r--src/image/SkImagePriv.cpp10
-rw-r--r--src/image/SkImage_Base.h2
-rw-r--r--src/image/SkImage_Codec.cpp12
-rw-r--r--src/image/SkImage_Gpu.cpp4
-rw-r--r--src/image/SkImage_Raster.cpp18
-rw-r--r--src/image/SkSurface_Base.h12
-rw-r--r--src/image/SkSurface_Gpu.cpp8
-rw-r--r--src/image/SkSurface_Picture.cpp6
-rw-r--r--src/image/SkSurface_Raster.cpp12
-rw-r--r--src/opts/SkBitmapProcState_filter_neon.h20
-rw-r--r--src/opts/SkBitmapProcState_matrixProcs_neon.cpp2
-rw-r--r--src/opts/SkBitmapProcState_matrix_clamp_neon.h282
-rw-r--r--src/opts/SkBitmapProcState_matrix_repeat_neon.h444
-rw-r--r--src/opts/SkBitmapProcState_opts_SSE2.cpp104
-rw-r--r--src/opts/SkBitmapProcState_opts_SSSE3.cpp28
-rw-r--r--src/opts/SkBitmapProcState_opts_arm.cpp14
-rw-r--r--src/opts/SkBlitRow_opts_SSE2.cpp24
-rw-r--r--src/opts/SkBlitRow_opts_arm_neon.cpp832
-rw-r--r--src/opts/SkUtils_opts_SSE2.cpp4
-rw-r--r--src/opts/SkUtils_opts_SSE2.h2
-rw-r--r--src/opts/opts_check_SSE2.cpp2
400 files changed, 4733 insertions, 4733 deletions
diff --git a/bench/AAClipBench.cpp b/bench/AAClipBench.cpp
index ce91b2cf91..f85af68395 100644
--- a/bench/AAClipBench.cpp
+++ b/bench/AAClipBench.cpp
@@ -28,7 +28,7 @@ class AAClipBench : public SkBenchmark {
};
public:
- AAClipBench(void* param, bool doPath, bool doAA)
+ AAClipBench(void* param, bool doPath, bool doAA)
: INHERITED(param)
, fDoPath(doPath)
, fDoAA(doAA) {
@@ -37,7 +37,7 @@ public:
doPath ? "path" : "rect",
doAA ? "AA" : "BW");
- fClipRect.set(SkFloatToScalar(10.5f), SkFloatToScalar(10.5f),
+ fClipRect.set(SkFloatToScalar(10.5f), SkFloatToScalar(10.5f),
SkFloatToScalar(50.5f), SkFloatToScalar(50.5f));
fClipPath.addRoundRect(fClipRect, SkIntToScalar(10), SkIntToScalar(10));
fDrawRect.set(SkIntToScalar(0), SkIntToScalar(0),
@@ -57,7 +57,7 @@ protected:
// jostle the clip regions each time to prevent caching
fClipRect.offset((i % 2) == 0 ? SkIntToScalar(10) : SkIntToScalar(-10), 0);
fClipPath.reset();
- fClipPath.addRoundRect(fClipRect,
+ fClipPath.addRoundRect(fClipRect,
SkIntToScalar(5), SkIntToScalar(5));
SkASSERT(fClipPath.isConvex());
@@ -103,14 +103,14 @@ class NestedAAClipBench : public SkBenchmark {
SkPoint fSizes[kNestingDepth+1];
public:
- NestedAAClipBench(void* param, bool doAA)
+ NestedAAClipBench(void* param, bool doAA)
: INHERITED(param)
, fDoAA(doAA) {
fName.printf("nested_aaclip_%s", doAA ? "AA" : "BW");
- fDrawRect = SkRect::MakeLTRB(0, 0,
- SkIntToScalar(kImageSize),
+ fDrawRect = SkRect::MakeLTRB(0, 0,
+ SkIntToScalar(kImageSize),
SkIntToScalar(kImageSize));
fSizes[0].set(SkIntToScalar(kImageSize), SkIntToScalar(kImageSize));
@@ -124,13 +124,13 @@ protected:
virtual const char* onGetName() { return fName.c_str(); }
- void recurse(SkCanvas* canvas,
+ void recurse(SkCanvas* canvas,
int depth,
const SkPoint& offset) {
canvas->save();
- SkRect temp = SkRect::MakeLTRB(0, 0,
+ SkRect temp = SkRect::MakeLTRB(0, 0,
fSizes[depth].fX, fSizes[depth].fY);
temp.offset(offset);
@@ -138,8 +138,8 @@ protected:
path.addRoundRect(temp, SkIntToScalar(3), SkIntToScalar(3));
SkASSERT(path.isConvex());
- canvas->clipPath(path,
- 0 == depth ? SkRegion::kReplace_Op :
+ canvas->clipPath(path,
+ 0 == depth ? SkRegion::kReplace_Op :
SkRegion::kIntersect_Op,
fDoAA);
diff --git a/bench/BenchGpuTimer_gl.cpp b/bench/BenchGpuTimer_gl.cpp
index 32909832f3..699f5e54cf 100644
--- a/bench/BenchGpuTimer_gl.cpp
+++ b/bench/BenchGpuTimer_gl.cpp
@@ -17,7 +17,7 @@ BenchGpuTimer::BenchGpuTimer(const SkGLContext* glctx) {
fSupported = GrGLGetVersion(glctx->gl()) > GR_GL_VER(3,3) ||
GrGLHasExtension(glctx->gl(), "GL_ARB_timer_query") ||
GrGLHasExtension(glctx->gl(), "GL_EXT_timer_query");
-
+
if (fSupported) {
SK_GL(*glctx, GenQueries(1, &fQuery));
}
@@ -48,7 +48,7 @@ double BenchGpuTimer::endGpu() {
fStarted = false;
fContext->makeCurrent();
SK_GL(*fContext, EndQuery(GR_GL_TIME_ELAPSED));
-
+
GrGLint available = 0;
while (!available) {
SK_GL(*fContext, GetQueryObjectiv(fQuery,
@@ -59,7 +59,7 @@ double BenchGpuTimer::endGpu() {
SK_GL(*fContext, GetQueryObjectui64v(fQuery,
GR_GL_QUERY_RESULT,
&totalGPUTimeElapsed));
-
+
return totalGPUTimeElapsed / 1000000.0;
} else {
return 0;
diff --git a/bench/BenchSysTimer_mach.cpp b/bench/BenchSysTimer_mach.cpp
index c837ca34a0..cf3f1c1f7d 100644
--- a/bench/BenchSysTimer_mach.cpp
+++ b/bench/BenchSysTimer_mach.cpp
@@ -17,7 +17,7 @@ static time_value_t macCpuTime() {
time_value_t none = {0, 0};
return none;
}
-
+
task_thread_times_info thread_info_data;
mach_msg_type_number_t thread_info_count = TASK_THREAD_TIMES_INFO_COUNT;
if (KERN_SUCCESS != task_info(task,
@@ -28,7 +28,7 @@ static time_value_t macCpuTime() {
time_value_t none = {0, 0};
return none;
}
-
+
time_value_add(&thread_info_data.user_time, &thread_info_data.system_time)
return thread_info_data.user_time;
}
@@ -63,7 +63,7 @@ double BenchSysTimer::endCpu() {
}
double BenchSysTimer::endWall() {
uint64_t end_wall = mach_absolute_time();
-
+
uint64_t elapsed = end_wall - this->fStartWall;
mach_timebase_info_data_t sTimebaseInfo;
if (KERN_SUCCESS != mach_timebase_info(&sTimebaseInfo)) {
diff --git a/bench/BenchSysTimer_windows.cpp b/bench/BenchSysTimer_windows.cpp
index 3635ec5470..1c4e4049c8 100644
--- a/bench/BenchSysTimer_windows.cpp
+++ b/bench/BenchSysTimer_windows.cpp
@@ -49,10 +49,10 @@ double BenchSysTimer::endWall() {
if (0 == ::QueryPerformanceCounter(&end_wall)) {
end_wall.QuadPart = 0;
}
-
+
LARGE_INTEGER ticks_elapsed;
ticks_elapsed.QuadPart = end_wall.QuadPart - this->fStartWall.QuadPart;
-
+
LARGE_INTEGER frequency;
if (0 == ::QueryPerformanceFrequency(&frequency)) {
return 0.0L;
diff --git a/bench/BenchTimer.h b/bench/BenchTimer.h
index a00707c9dc..70675ad17f 100644
--- a/bench/BenchTimer.h
+++ b/bench/BenchTimer.h
@@ -30,7 +30,7 @@ public:
double fCpu;
double fWall;
double fGpu;
-
+
private:
BenchSysTimer *fSysTimer;
#if SK_SUPPORT_GPU
diff --git a/bench/BitmapBench.cpp b/bench/BitmapBench.cpp
index 40a733d35a..5f06f884a8 100644
--- a/bench/BitmapBench.cpp
+++ b/bench/BitmapBench.cpp
@@ -31,7 +31,7 @@ static void drawIntoBitmap(const SkBitmap& bm) {
p.setColor(SK_ColorRED);
canvas.drawCircle(SkIntToScalar(w)/2, SkIntToScalar(h)/2,
SkIntToScalar(SkMin32(w, h))*3/8, p);
-
+
SkRect r;
r.set(0, 0, SkIntToScalar(w), SkIntToScalar(h));
p.setStyle(SkPaint::kStroke_Style);
@@ -52,7 +52,7 @@ static uint8_t compute666Index(SkPMColor c) {
int r = SkGetPackedR32(c);
int g = SkGetPackedG32(c);
int b = SkGetPackedB32(c);
-
+
return convByteTo6(r) * 36 + convByteTo6(g) * 6 + convByteTo6(b);
}
@@ -74,7 +74,7 @@ static void convertToIndex666(const SkBitmap& src, SkBitmap* dst) {
dst->setConfig(SkBitmap::kIndex8_Config, src.width(), src.height());
dst->allocPixels(ctable);
ctable->unref();
-
+
SkAutoLockPixels alps(src);
SkAutoLockPixels alpd(*dst);
@@ -88,12 +88,12 @@ static void convertToIndex666(const SkBitmap& src, SkBitmap* dst) {
}
/* Variants for bitmaps
-
+
- src depth (32 w+w/o alpha), 565, 4444, index, a8
- paint options: filtering, dither, alpha
- matrix options: translate, scale, rotate, persp
- tiling: none, repeat, mirror, clamp
-
+
*/
class BitmapBench : public SkBenchmark {
@@ -106,7 +106,7 @@ class BitmapBench : public SkBenchmark {
enum { N = SkBENCHLOOP(300) };
public:
BitmapBench(void* param, bool isOpaque, SkBitmap::Config c,
- bool forceUpdate = false, bool bitmapVolatile = false,
+ bool forceUpdate = false, bool bitmapVolatile = false,
int tx = -1, int ty = -1)
: INHERITED(param), fIsOpaque(isOpaque), fForceUpdate(forceUpdate), fTileX(tx), fTileY(ty) {
const int w = 128;
@@ -120,7 +120,7 @@ public:
}
bm.allocPixels();
bm.eraseColor(isOpaque ? SK_ColorBLACK : 0);
-
+
drawIntoBitmap(bm);
if (SkBitmap::kIndex8_Config == c) {
@@ -147,7 +147,7 @@ protected:
}
fName.appendf("_%s%s", gConfigName[fBitmap.config()],
fIsOpaque ? "" : "_A");
- if (fForceUpdate)
+ if (fForceUpdate)
fName.append("_update");
if (fBitmap.isVolatile())
fName.append("_volatile");
@@ -165,7 +165,7 @@ protected:
const SkBitmap& bitmap = fBitmap;
const SkScalar x0 = SkIntToScalar(-bitmap.width() / 2);
const SkScalar y0 = SkIntToScalar(-bitmap.height() / 2);
-
+
for (int i = 0; i < N; i++) {
SkScalar x = x0 + rand.nextUScalar1() * dim.fX;
SkScalar y = y0 + rand.nextUScalar1() * dim.fY;
@@ -192,7 +192,7 @@ class FilterBitmapBench : public BitmapBench {
enum { N = SkBENCHLOOP(300) };
public:
FilterBitmapBench(void* param, bool isOpaque, SkBitmap::Config c,
- bool forceUpdate = false, bool bitmapVolatile = false,
+ bool forceUpdate = false, bool bitmapVolatile = false,
int tx = -1, int ty = -1, bool addScale = false,
bool addRotate = false, bool addFilter = false)
: INHERITED(param, isOpaque, c, forceUpdate, bitmapVolatile, tx, ty)
@@ -203,11 +203,11 @@ public:
protected:
virtual const char* onGetName() {
fFullName.set(INHERITED::onGetName());
- if (fScale)
+ if (fScale)
fFullName.append("_scale");
- if (fRotate)
+ if (fRotate)
fFullName.append("_rotate");
- if (fFilter)
+ if (fFilter)
fFullName.append("_filter");
return fFullName.c_str();
@@ -218,7 +218,7 @@ protected:
if (fScale) {
const SkScalar x = SkIntToScalar(dim.fWidth) / 2;
const SkScalar y = SkIntToScalar(dim.fHeight) / 2;
-
+
canvas->translate(x, y);
// just enough so we can't take the sprite case
canvas->scale(SK_Scalar1 * 99/100, SK_Scalar1 * 99/100);
@@ -227,7 +227,7 @@ protected:
if (fRotate) {
const SkScalar x = SkIntToScalar(dim.fWidth) / 2;
const SkScalar y = SkIntToScalar(dim.fHeight) / 2;
-
+
canvas->translate(x, y);
canvas->rotate(SkIntToScalar(35));
canvas->translate(-x, -y);
@@ -251,7 +251,7 @@ static SkBenchmark* Fact6(void* p) { return new BitmapBench(p, true, SkBitmap::k
static SkBenchmark* Fact7(void* p) { return new BitmapBench(p, true, SkBitmap::kARGB_8888_Config, true, true); }
static SkBenchmark* Fact8(void* p) { return new BitmapBench(p, true, SkBitmap::kARGB_8888_Config, true, false); }
-// scale filter -> S32_opaque_D32_filter_DX_{SSE2,SSSE3} and Fact9 is also for S32_D16_filter_DX_SSE2
+// scale filter -> S32_opaque_D32_filter_DX_{SSE2,SSSE3} and Fact9 is also for S32_D16_filter_DX_SSE2
static SkBenchmark* Fact9(void* p) { return new FilterBitmapBench(p, false, SkBitmap::kARGB_8888_Config, false, false, -1, -1, true, false, true); }
static SkBenchmark* Fact10(void* p) { return new FilterBitmapBench(p, true, SkBitmap::kARGB_8888_Config, false, false, -1, -1, true, false, true); }
static SkBenchmark* Fact11(void* p) { return new FilterBitmapBench(p, true, SkBitmap::kARGB_8888_Config, true, true, -1, -1, true, false, true); }
diff --git a/bench/BlurBench.cpp b/bench/BlurBench.cpp
index de78fe1f9a..371e26db41 100644
--- a/bench/BlurBench.cpp
+++ b/bench/BlurBench.cpp
@@ -40,12 +40,12 @@ public:
fName.printf("blur_%d_%s", SkScalarRound(rad), name);
}
}
-
+
protected:
virtual const char* onGetName() {
return fName.c_str();
}
-
+
virtual void onDraw(SkCanvas* canvas) {
SkPaint paint;
this->setupPaint(&paint);
@@ -65,7 +65,7 @@ protected:
canvas->drawOval(r, paint);
}
}
-
+
private:
typedef SkBenchmark INHERITED;
};
diff --git a/bench/DashBench.cpp b/bench/DashBench.cpp
index 215581603e..a47aa71cd8 100644
--- a/bench/DashBench.cpp
+++ b/bench/DashBench.cpp
@@ -50,7 +50,7 @@ public:
fWidth = width;
fName.printf("dash_%d_%s", width, doClip ? "clipped" : "noclip");
fDoClip = doClip;
-
+
fPts[0].set(SkIntToScalar(10), SkIntToScalar(10));
fPts[1].set(SkIntToScalar(600), SkIntToScalar(10));
}
@@ -106,7 +106,7 @@ public:
: INHERITED(param, intervals, count, width) {
fName.append("_rect");
}
-
+
protected:
virtual void handlePath(SkCanvas* canvas, const SkPath& path,
const SkPaint& paint, int N) SK_OVERRIDE {
@@ -119,14 +119,14 @@ protected:
rect.fTop = pts[0].fY - paint.getStrokeWidth() / 2;
rect.fRight = rect.fLeft + SkIntToScalar(fWidth);
rect.fBottom = rect.fTop + paint.getStrokeWidth();
-
+
SkPaint p(paint);
p.setStyle(SkPaint::kFill_Style);
p.setPathEffect(NULL);
-
+
int count = SkScalarRoundToInt((pts[1].fX - pts[0].fX) / (2*fWidth));
SkScalar dx = SkIntToScalar(2 * fWidth);
-
+
for (int i = 0; i < N*10; ++i) {
SkRect r = rect;
for (int j = 0; j < count; ++j) {
@@ -136,7 +136,7 @@ protected:
}
}
}
-
+
private:
typedef DashBench INHERITED;
};
@@ -144,7 +144,7 @@ private:
static void make_unit_star(SkPath* path, int n) {
SkScalar rad = -SK_ScalarPI / 2;
const SkScalar drad = (n >> 1) * SK_ScalarPI * 2 / n;
-
+
path->moveTo(0, -SK_Scalar1);
for (int i = 1; i < n; i++) {
rad += drad;
@@ -191,7 +191,7 @@ public:
MakeDashBench(void* param, void (*proc)(SkPath*), const char name[]) : INHERITED(param) {
fName.printf("makedash_%s", name);
proc(&fPath);
-
+
SkScalar vals[] = { SkIntToScalar(4), SkIntToScalar(4) };
fPE.reset(new SkDashPathEffect(vals, 2, 0));
}
@@ -200,17 +200,17 @@ protected:
virtual const char* onGetName() SK_OVERRIDE {
return fName.c_str();
}
-
+
virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
SkPath dst;
for (int i = 0; i < N; ++i) {
SkStrokeRec rec(SkStrokeRec::kHairline_InitStyle);
-
+
fPE->filterPath(&dst, fPath, &rec);
dst.rewind();
}
}
-
+
private:
typedef SkBenchmark INHERITED;
};
diff --git a/bench/DecodeBench.cpp b/bench/DecodeBench.cpp
index 676169059f..c85b715edb 100644
--- a/bench/DecodeBench.cpp
+++ b/bench/DecodeBench.cpp
@@ -23,7 +23,7 @@ public:
DecodeBench(void* param, SkBitmap::Config c) : SkBenchmark(param) {
fFilename = this->findDefine("decode-filename");
fPrefConfig = c;
-
+
const char* fname = NULL;
if (fFilename) {
fname = strrchr(fFilename, '/');
diff --git a/bench/DeferredCanvasBench.cpp b/bench/DeferredCanvasBench.cpp
index 99c07bfe57..15902b9f58 100644
--- a/bench/DeferredCanvasBench.cpp
+++ b/bench/DeferredCanvasBench.cpp
@@ -95,7 +95,7 @@ protected:
canvas.clear(0x0);
canvas.setNotificationClient(NULL);
}
-
+
private:
typedef DeferredCanvasBench INHERITED;
SimpleNotificationClient fNotificationClient;
diff --git a/bench/GrMemoryPoolBench.cpp b/bench/GrMemoryPoolBench.cpp
index 98fd6e5bde..861a43e4fb 100644
--- a/bench/GrMemoryPoolBench.cpp
+++ b/bench/GrMemoryPoolBench.cpp
@@ -67,7 +67,7 @@ protected:
s = 0;
}
SkFixed del = r.nextSFixed1();
- if (count &&
+ if (count &&
(kMaxObjects == count || del < delThresh)) {
delete objects[count-1];
--count;
diff --git a/bench/GradientBench.cpp b/bench/GradientBench.cpp
index ac5bbc734a..d7ce74dc8e 100644
--- a/bench/GradientBench.cpp
+++ b/bench/GradientBench.cpp
@@ -180,7 +180,7 @@ public:
{ 0, 0 },
{ SkIntToScalar(W), SkIntToScalar(H) }
};
-
+
fCount = SkBENCHLOOP(N * gGrads[gradType].fRepeat);
fShader = gGrads[gradType].fMaker(pts, gGradData[0], tm, NULL, scale);
fGeomType = geomType;
@@ -223,16 +223,16 @@ private:
class Gradient2Bench : public SkBenchmark {
public:
Gradient2Bench(void* param) : INHERITED(param) {}
-
+
protected:
virtual const char* onGetName() {
return "gradient_create";
}
-
+
virtual void onDraw(SkCanvas* canvas) {
SkPaint paint;
this->setupPaint(&paint);
-
+
const SkRect r = { 0, 0, SkIntToScalar(4), SkIntToScalar(4) };
const SkPoint pts[] = {
{ 0, 0 },
@@ -252,7 +252,7 @@ protected:
canvas->drawRect(r, paint);
}
}
-
+
private:
typedef SkBenchmark INHERITED;
};
diff --git a/bench/InterpBench.cpp b/bench/InterpBench.cpp
index 85fada3f0e..f8f463b1b5 100644
--- a/bench/InterpBench.cpp
+++ b/bench/InterpBench.cpp
@@ -45,7 +45,7 @@ private:
class Fixed16D16Interp : public InterpBench {
public:
Fixed16D16Interp(void* param) : INHERITED(param, "16.16") {}
-
+
protected:
virtual void performTest(int16_t dst[], float fx, float dx, int count) SK_OVERRIDE {
SkFixed curr = SkFloatToFixed(fx);
@@ -64,27 +64,27 @@ private:
class Fixed32D32Interp : public InterpBench {
public:
Fixed32D32Interp(void* param) : INHERITED(param, "32.32") {}
-
+
protected:
virtual void performTest(int16_t dst[], float fx, float dx, int count) SK_OVERRIDE {
int64_t curr = (int64_t)(fx * 65536 * 655536);
int64_t step = (int64_t)(dx * 65536 * 655536);
SkFixed tmp;
for (int i = 0; i < count; i += 4) {
- tmp = (SkFixed)(curr >> 16);
- dst[i + 0] = TILE(tmp, count);
+ tmp = (SkFixed)(curr >> 16);
+ dst[i + 0] = TILE(tmp, count);
curr += step;
- tmp = (SkFixed)(curr >> 16);
- dst[i + 1] = TILE(tmp, count);
+ tmp = (SkFixed)(curr >> 16);
+ dst[i + 1] = TILE(tmp, count);
curr += step;
- tmp = (SkFixed)(curr >> 16);
- dst[i + 2] = TILE(tmp, count);
+ tmp = (SkFixed)(curr >> 16);
+ dst[i + 2] = TILE(tmp, count);
curr += step;
- tmp = (SkFixed)(curr >> 16);
- dst[i + 3] = TILE(tmp, count);
+ tmp = (SkFixed)(curr >> 16);
+ dst[i + 3] = TILE(tmp, count);
curr += step;
}
}
@@ -95,7 +95,7 @@ private:
class Fixed16D48Interp : public InterpBench {
public:
Fixed16D48Interp(void* param) : INHERITED(param, "16.48") {}
-
+
protected:
virtual void performTest(int16_t dst[], float fx, float dx, int count) SK_OVERRIDE {
int64_t curr = (int64_t)(fx * 65536 * 655536 * 65536);
@@ -115,7 +115,7 @@ private:
class FloatInterp : public InterpBench {
public:
FloatInterp(void* param) : INHERITED(param, "float") {}
-
+
protected:
virtual void performTest(int16_t dst[], float fx, float dx, int count) SK_OVERRIDE {
SkFixed tmp;
@@ -133,7 +133,7 @@ private:
class DoubleInterp : public InterpBench {
public:
DoubleInterp(void* param) : INHERITED(param, "double") {}
-
+
protected:
virtual void performTest(int16_t dst[], float fx, float dx, int count) SK_OVERRIDE {
double ffx = fx;
diff --git a/bench/MathBench.cpp b/bench/MathBench.cpp
index 21c113c0ca..414036b6ae 100644
--- a/bench/MathBench.cpp
+++ b/bench/MathBench.cpp
@@ -32,8 +32,8 @@ public:
}
}
- virtual void performTest(float* SK_RESTRICT dst,
- const float* SK_RESTRICT src,
+ virtual void performTest(float* SK_RESTRICT dst,
+ const float* SK_RESTRICT src,
int count) = 0;
protected:
@@ -59,11 +59,11 @@ public:
MathBenchU32(void* param, const char name[]) : INHERITED(param, name) {}
protected:
- virtual void performITest(uint32_t* SK_RESTRICT dst,
- const uint32_t* SK_RESTRICT src,
+ virtual void performITest(uint32_t* SK_RESTRICT dst,
+ const uint32_t* SK_RESTRICT src,
int count) = 0;
-
- virtual void performTest(float* SK_RESTRICT dst,
+
+ virtual void performTest(float* SK_RESTRICT dst,
const float* SK_RESTRICT src,
int count) SK_OVERRIDE {
uint32_t* d = SkTCast<uint32_t*>(dst);
@@ -80,8 +80,8 @@ class NoOpMathBench : public MathBench {
public:
NoOpMathBench(void* param) : INHERITED(param, "noOp") {}
protected:
- virtual void performTest(float* SK_RESTRICT dst,
- const float* SK_RESTRICT src,
+ virtual void performTest(float* SK_RESTRICT dst,
+ const float* SK_RESTRICT src,
int count) {
for (int i = 0; i < count; ++i) {
dst[i] = src[i] + 1;
@@ -95,8 +95,8 @@ class SlowISqrtMathBench : public MathBench {
public:
SlowISqrtMathBench(void* param) : INHERITED(param, "slowIsqrt") {}
protected:
- virtual void performTest(float* SK_RESTRICT dst,
- const float* SK_RESTRICT src,
+ virtual void performTest(float* SK_RESTRICT dst,
+ const float* SK_RESTRICT src,
int count) {
for (int i = 0; i < count; ++i) {
dst[i] = 1.0f / sk_float_sqrt(src[i]);
@@ -120,8 +120,8 @@ class FastISqrtMathBench : public MathBench {
public:
FastISqrtMathBench(void* param) : INHERITED(param, "fastIsqrt") {}
protected:
- virtual void performTest(float* SK_RESTRICT dst,
- const float* SK_RESTRICT src,
+ virtual void performTest(float* SK_RESTRICT dst,
+ const float* SK_RESTRICT src,
int count) {
for (int i = 0; i < count; ++i) {
dst[i] = SkFastInvSqrt(src[i]);
@@ -237,7 +237,7 @@ static bool isFinite(const SkRect& r) {
// x * 0 will be NaN iff x is infinity or NaN.
// a + b will be NaN iff either a or b is NaN.
float value = r.fLeft * 0 + r.fTop * 0 + r.fRight * 0 + r.fBottom * 0;
-
+
// value is either NaN or it is finite (zero).
// value==value will be true iff value is not NaN
return value == value;
@@ -291,7 +291,7 @@ protected:
}
}
}
-
+
SkPaint paint;
if (paint.getAlpha() == 0) {
SkDebugf("%d\n", counter);
@@ -301,7 +301,7 @@ protected:
virtual const char* onGetName() {
return fName;
}
-
+
private:
IsFiniteProc fProc;
const char* fName;
@@ -317,21 +317,21 @@ class FloorBench : public SkBenchmark {
float fData[ARRAY];
bool fFast;
public:
-
+
FloorBench(void* param, bool fast) : INHERITED(param), fFast(fast) {
SkRandom rand;
-
+
for (int i = 0; i < ARRAY; ++i) {
fData[i] = rand.nextSScalar1();
}
-
+
if (fast) {
fName = "floor_fast";
} else {
fName = "floor_std";
}
}
-
+
virtual void process(float) {}
protected:
@@ -339,7 +339,7 @@ protected:
SkRandom rand;
float accum = 0;
const float* data = fData;
-
+
if (fFast) {
for (int j = 0; j < LOOP; ++j) {
for (int i = 0; i < ARRAY; ++i) {
@@ -356,14 +356,14 @@ protected:
}
}
}
-
+
virtual const char* onGetName() {
return fName;
}
-
+
private:
const char* fName;
-
+
typedef SkBenchmark INHERITED;
};
diff --git a/bench/MatrixBench.cpp b/bench/MatrixBench.cpp
index b82d7fe1cb..d8e2137913 100644
--- a/bench/MatrixBench.cpp
+++ b/bench/MatrixBench.cpp
@@ -344,7 +344,7 @@ class ScaleTransDoubleMatrixBench : public MatrixBench {
class InvertMapRectMatrixBench : public MatrixBench {
public:
- InvertMapRectMatrixBench(void* param, const char* name, int flags)
+ InvertMapRectMatrixBench(void* param, const char* name, int flags)
: INHERITED(param, name)
, fFlags(flags) {
fMatrix.reset();
@@ -381,7 +381,7 @@ protected:
fMatrix.setPerspX(fMatrix.getPerspX());
}
SkMatrix inv;
- bool invertible =
+ bool invertible =
fMatrix.invert(&inv);
SkASSERT(invertible);
SkRect transformedRect;
@@ -406,37 +406,37 @@ static SkBenchmark* M2(void* p) { return new FloatConcatMatrixBench(p); }
static SkBenchmark* M3(void* p) { return new FloatDoubleConcatMatrixBench(p); }
static SkBenchmark* M4(void* p) { return new DoubleConcatMatrixBench(p); }
static SkBenchmark* M5(void* p) { return new GetTypeMatrixBench(p); }
-static SkBenchmark* M6(void* p) {
- return new InvertMapRectMatrixBench(p,
+static SkBenchmark* M6(void* p) {
+ return new InvertMapRectMatrixBench(p,
"invert_maprect_identity", 0);
}
-static SkBenchmark* M7(void* p) {
- return new InvertMapRectMatrixBench(p,
- "invert_maprect_rectstaysrect",
+static SkBenchmark* M7(void* p) {
+ return new InvertMapRectMatrixBench(p,
+ "invert_maprect_rectstaysrect",
InvertMapRectMatrixBench::kScale_Flag |
InvertMapRectMatrixBench::kTranslate_Flag);
}
static SkBenchmark* M8(void* p) {
- return new InvertMapRectMatrixBench(p,
- "invert_maprect_nonpersp",
+ return new InvertMapRectMatrixBench(p,
+ "invert_maprect_nonpersp",
InvertMapRectMatrixBench::kScale_Flag |
InvertMapRectMatrixBench::kRotate_Flag |
InvertMapRectMatrixBench::kTranslate_Flag);
}
-static SkBenchmark* M9(void* p) {
- return new InvertMapRectMatrixBench(p,
- "invert_maprect_persp",
+static SkBenchmark* M9(void* p) {
+ return new InvertMapRectMatrixBench(p,
+ "invert_maprect_persp",
InvertMapRectMatrixBench::kPerspective_Flag);
}
static SkBenchmark* M10(void* p) {
- return new InvertMapRectMatrixBench(p,
+ return new InvertMapRectMatrixBench(p,
"invert_maprect_typemask_rectstaysrect",
InvertMapRectMatrixBench::kUncachedTypeMask_Flag |
InvertMapRectMatrixBench::kScale_Flag |
InvertMapRectMatrixBench::kTranslate_Flag);
}
static SkBenchmark* M11(void* p) {
- return new InvertMapRectMatrixBench(p,
+ return new InvertMapRectMatrixBench(p,
"invert_maprect_typemask_nonpersp",
InvertMapRectMatrixBench::kUncachedTypeMask_Flag |
InvertMapRectMatrixBench::kScale_Flag |
diff --git a/bench/MemoryBench.cpp b/bench/MemoryBench.cpp
index 5fdb7f1d51..d8d60526e8 100644
--- a/bench/MemoryBench.cpp
+++ b/bench/MemoryBench.cpp
@@ -15,7 +15,7 @@
class ChunkAllocBench : public SkBenchmark {
SkString fName;
size_t fMinSize;
-
+
enum {
N = SkBENCHLOOP(1000)
};
@@ -24,12 +24,12 @@ public:
fMinSize = minSize;
fName.printf("chunkalloc_" SK_SIZE_T_SPECIFIER, minSize);
}
-
+
protected:
virtual const char* onGetName() SK_OVERRIDE {
return fName.c_str();
}
-
+
virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
size_t inc = fMinSize >> 4;
SkASSERT(inc > 0);
@@ -48,7 +48,7 @@ protected:
alloc.reset();
}
}
-
+
private:
typedef SkBenchmark INHERITED;
};
diff --git a/bench/MorphologyBench.cpp b/bench/MorphologyBench.cpp
index f41e79c24c..b6e9c92287 100644
--- a/bench/MorphologyBench.cpp
+++ b/bench/MorphologyBench.cpp
@@ -47,12 +47,12 @@ public:
fName.printf("morph_%d_%s", SkScalarRound(rad), name);
}
}
-
+
protected:
virtual const char* onGetName() {
return fName.c_str();
}
-
+
virtual void onDraw(SkCanvas* canvas) {
SkPaint paint;
this->setupPaint(&paint);
@@ -69,11 +69,11 @@ protected:
SkMorphologyImageFilter* mf = NULL;
switch (fStyle) {
case kDilate_MT:
- mf = new SkDilateImageFilter(SkScalarFloorToInt(fRadius),
+ mf = new SkDilateImageFilter(SkScalarFloorToInt(fRadius),
SkScalarFloorToInt(fRadius));
break;
case kErode_MT:
- mf = new SkErodeImageFilter(SkScalarFloorToInt(fRadius),
+ mf = new SkErodeImageFilter(SkScalarFloorToInt(fRadius),
SkScalarFloorToInt(fRadius));
break;
}
@@ -82,7 +82,7 @@ protected:
canvas->drawOval(r, paint);
}
}
-
+
private:
typedef SkBenchmark INHERITED;
};
diff --git a/bench/PathBench.cpp b/bench/PathBench.cpp
index 61014e832e..2e07f677be 100644
--- a/bench/PathBench.cpp
+++ b/bench/PathBench.cpp
@@ -82,7 +82,7 @@ private:
class TrianglePathBench : public PathBench {
public:
TrianglePathBench(void* param, Flags flags) : INHERITED(param, flags) {}
-
+
virtual void appendName(SkString* name) SK_OVERRIDE {
name->append("triangle");
}
@@ -102,7 +102,7 @@ private:
class RectPathBench : public PathBench {
public:
RectPathBench(void* param, Flags flags) : INHERITED(param, flags) {}
-
+
virtual void appendName(SkString* name) SK_OVERRIDE {
name->append("rect");
}
@@ -117,7 +117,7 @@ private:
class OvalPathBench : public PathBench {
public:
OvalPathBench(void* param, Flags flags) : INHERITED(param, flags) {}
-
+
virtual void appendName(SkString* name) SK_OVERRIDE {
name->append("oval");
}
@@ -147,7 +147,7 @@ private:
class SawToothPathBench : public PathBench {
public:
SawToothPathBench(void* param, Flags flags) : INHERITED(param, flags) {}
-
+
virtual void appendName(SkString* name) SK_OVERRIDE {
name->append("sawtooth");
}
@@ -659,7 +659,7 @@ protected:
temp.addOval(r, SkPath::kCCW_Direction);
temp.arcTo(r, 360, 0, true);
temp.close();
-
+
canvas->drawPath(temp, paint);
}
}
diff --git a/bench/PathIterBench.cpp b/bench/PathIterBench.cpp
index 8e4308ef13..189d1b5dce 100644
--- a/bench/PathIterBench.cpp
+++ b/bench/PathIterBench.cpp
@@ -69,7 +69,7 @@ protected:
SkPath::RawIter iter(fPath);
SkPath::Verb verb;
SkPoint pts[4];
-
+
while ((verb = iter.next(pts)) != SkPath::kDone_Verb);
}
} else {
@@ -77,7 +77,7 @@ protected:
SkPath::Iter iter(fPath, false);
SkPath::Verb verb;
SkPoint pts[4];
-
+
while ((verb = iter.next(pts)) != SkPath::kDone_Verb);
}
}
diff --git a/bench/RectBench.cpp b/bench/RectBench.cpp
index cef2e22d06..992b8f9858 100644
--- a/bench/RectBench.cpp
+++ b/bench/RectBench.cpp
@@ -143,7 +143,7 @@ public:
SkCanvas::PointMode fMode;
const char* fName;
- BlitMaskBench(void* param, SkCanvas::PointMode mode,
+ BlitMaskBench(void* param, SkCanvas::PointMode mode,
BlitMaskBench::kMaskType type, const char* name) :
RectBench(param, 2), fMode(mode), _type(type) {
fName = name;
@@ -177,17 +177,17 @@ protected:
paint.setShader(s)->unref();
}
for (size_t i = 0; i < sizes; i++) {
- switch (_type) {
- case kMaskOpaque:
- color = fColors[i];
- alpha = 0xFF;
+ switch (_type) {
+ case kMaskOpaque:
+ color = fColors[i];
+ alpha = 0xFF;
break;
- case kMaskBlack:
+ case kMaskBlack:
alpha = 0xFF;
color = 0xFF000000;
break;
case kMaskColor:
- color = fColors[i];
+ color = fColors[i];
alpha = rand.nextU() & 255;
break;
case KMaskShader:
@@ -202,8 +202,8 @@ protected:
}
virtual const char* onGetName() { return fName; }
private:
- typedef RectBench INHERITED;
- kMaskType _type;
+ typedef RectBench INHERITED;
+ kMaskType _type;
};
diff --git a/bench/RegionBench.cpp b/bench/RegionBench.cpp
index 5541a5c019..7b9e2d424a 100644
--- a/bench/RegionBench.cpp
+++ b/bench/RegionBench.cpp
@@ -75,7 +75,7 @@ public:
Proc fProc;
SkString fName;
int fLoopMul;
-
+
enum {
W = 1024,
H = 768,
diff --git a/bench/RepeatTileBench.cpp b/bench/RepeatTileBench.cpp
index 8470beddd2..da36205eaf 100644
--- a/bench/RepeatTileBench.cpp
+++ b/bench/RepeatTileBench.cpp
@@ -27,7 +27,7 @@ static void drawIntoBitmap(const SkBitmap& bm) {
p.setColor(SK_ColorRED);
canvas.drawCircle(SkIntToScalar(w)/2, SkIntToScalar(h)/2,
SkIntToScalar(SkMin32(w, h))*3/8, p);
-
+
SkRect r;
r.set(0, 0, SkIntToScalar(w), SkIntToScalar(h));
p.setStyle(SkPaint::kStroke_Style);
@@ -48,7 +48,7 @@ static uint8_t compute666Index(SkPMColor c) {
int r = SkGetPackedR32(c);
int g = SkGetPackedG32(c);
int b = SkGetPackedB32(c);
-
+
return convByteTo6(r) * 36 + convByteTo6(g) * 6 + convByteTo6(b);
}
@@ -70,7 +70,7 @@ static void convertToIndex666(const SkBitmap& src, SkBitmap* dst) {
dst->setConfig(SkBitmap::kIndex8_Config, src.width(), src.height());
dst->allocPixels(ctable);
ctable->unref();
-
+
SkAutoLockPixels alps(src);
SkAutoLockPixels alpd(*dst);
@@ -100,7 +100,7 @@ public:
}
bm.allocPixels();
bm.eraseColor(0);
-
+
drawIntoBitmap(bm);
if (SkBitmap::kIndex8_Config == c) {
diff --git a/bench/ShaderMaskBench.cpp b/bench/ShaderMaskBench.cpp
index 0a68b44303..ad27fcbb8b 100644
--- a/bench/ShaderMaskBench.cpp
+++ b/bench/ShaderMaskBench.cpp
@@ -70,14 +70,14 @@ protected:
const SkScalar x0 = SkIntToScalar(-10);
const SkScalar y0 = SkIntToScalar(-10);
-
+
paint.setTextSize(SkIntToScalar(12));
for (int i = 0; i < N; i++) {
SkScalar x = x0 + rand.nextUScalar1() * dim.fX;
SkScalar y = y0 + rand.nextUScalar1() * dim.fY;
canvas->drawText(fText.c_str(), fText.size(), x, y, paint);
}
-
+
paint.setTextSize(SkIntToScalar(48));
for (int i = 0; i < N/4; i++) {
SkScalar x = x0 + rand.nextUScalar1() * dim.fX;
diff --git a/bench/SkBenchmark.h b/bench/SkBenchmark.h
index 28314ea11b..a77cb8398b 100644
--- a/bench/SkBenchmark.h
+++ b/bench/SkBenchmark.h
@@ -55,15 +55,15 @@ public:
void setForceAlpha(int alpha) {
fForceAlpha = alpha;
}
-
+
void setForceAA(bool aa) {
fForceAA = aa;
}
-
+
void setForceFilter(bool filter) {
fForceFilter = filter;
}
-
+
void setDither(SkTriState::State state) {
fDither = state;
}
diff --git a/bench/VertBench.cpp b/bench/VertBench.cpp
index 98df44929e..e5053d9805 100644
--- a/bench/VertBench.cpp
+++ b/bench/VertBench.cpp
@@ -39,7 +39,7 @@ class VertBench : public SkBenchmark {
idx[0] = n; idx[1] = n + 1; idx[2] = rb + n + 1;
idx[3] = n; idx[4] = rb + n + 1; idx[5] = n + rb;
}
-
+
public:
VertBench(void* param) : INHERITED(param) {
const SkScalar dx = SkIntToScalar(W) / COL;
@@ -55,7 +55,7 @@ public:
pts->set(xx, yy);
pts += 1;
xx += dx;
-
+
if (x < COL && y < ROW) {
load_2_tris(idx, x, y, COL + 1);
for (int i = 0; i < 6; i++) {
diff --git a/bench/benchmain.cpp b/bench/benchmain.cpp
index 5865eca71b..dfd39fd5bd 100644
--- a/bench/benchmain.cpp
+++ b/bench/benchmain.cpp
@@ -105,7 +105,7 @@ static bool equal(const SkBitmap& bm1, const SkBitmap& bm2) {
bm1.config() != bm2.config()) {
return false;
}
-
+
size_t pixelBytes = bm1.width() * bm1.bytesPerPixel();
for (int y = 0; y < bm1.height(); y++) {
if (memcmp(bm1.getAddr(0, y), bm2.getAddr(0, y), pixelBytes)) {
@@ -122,7 +122,7 @@ public:
fBench = BenchRegistry::Head();
fParam = param;
}
-
+
SkBenchmark* next() {
if (fBench) {
BenchRegistry::Factory f = fBench->factory();
@@ -171,7 +171,7 @@ static void saveFile(const char name[], const char config[], const char dir[],
if (!bm.copyTo(&copy, SkBitmap::kARGB_8888_Config)) {
return;
}
-
+
if (bm.config() == SkBitmap::kA8_Config) {
// turn alpha into gray-scale
size_t size = copy.getSize() >> 2;
@@ -183,7 +183,7 @@ static void saveFile(const char name[], const char config[], const char dir[],
*p++ = c | (SK_A32_MASK << SK_A32_SHIFT);
}
}
-
+
SkString str;
make_filename(name, &str);
str.appendf("_%s.png", config);
@@ -195,11 +195,11 @@ static void saveFile(const char name[], const char config[], const char dir[],
static void performClip(SkCanvas* canvas, int w, int h) {
SkRect r;
-
+
r.set(SkIntToScalar(10), SkIntToScalar(10),
SkIntToScalar(w*2/3), SkIntToScalar(h*2/3));
canvas->clipRect(r, SkRegion::kIntersect_Op);
-
+
r.set(SkIntToScalar(w/3), SkIntToScalar(h/3),
SkIntToScalar(w-10), SkIntToScalar(h-10));
canvas->clipRect(r, SkRegion::kXOR_Op);
@@ -208,7 +208,7 @@ static void performClip(SkCanvas* canvas, int w, int h) {
static void performRotate(SkCanvas* canvas, int w, int h) {
const SkScalar x = SkIntToScalar(w) / 2;
const SkScalar y = SkIntToScalar(h) / 2;
-
+
canvas->translate(x, y);
canvas->rotate(SkIntToScalar(35));
canvas->translate(-x, -y);
@@ -217,7 +217,7 @@ static void performRotate(SkCanvas* canvas, int w, int h) {
static void performScale(SkCanvas* canvas, int w, int h) {
const SkScalar x = SkIntToScalar(w) / 2;
const SkScalar y = SkIntToScalar(h) / 2;
-
+
canvas->translate(x, y);
// just enough so we can't take the sprite case
canvas->scale(SK_Scalar1 * 99/100, SK_Scalar1 * 99/100);
@@ -314,7 +314,7 @@ static SkDevice* make_device(SkBitmap::Config config, const SkIPoint& size,
SkDevice* device = NULL;
SkBitmap bitmap;
bitmap.setConfig(config, size.fX, size.fY);
-
+
switch (backend) {
case kRaster_Backend:
bitmap.allocPixels();
@@ -475,7 +475,7 @@ int main (int argc, char * const argv[]) {
Backend backend = kRaster_Backend; // for warning
SkTDArray<int> configs;
bool userConfig = false;
-
+
char* const* stop = argv + argc;
for (++argv; argv < stop; ++argv) {
if (strcmp(*argv, "-o") == 0) {
@@ -692,7 +692,7 @@ int main (int argc, char * const argv[]) {
default: ditherName = "<invalid>"; break;
}
str.appendf(" dither=%s", ditherName);
-
+
if (hasStrokeWidth) {
str.appendf(" strokeWidth=%f", strokeWidth);
} else {
@@ -753,7 +753,7 @@ int main (int argc, char * const argv[]) {
if (dim.fX <= 0 || dim.fY <= 0) {
continue;
}
-
+
bench->setForceAlpha(forceAlpha);
bench->setForceAA(forceAA);
bench->setForceFilter(forceFilter);
@@ -761,19 +761,19 @@ int main (int argc, char * const argv[]) {
if (hasStrokeWidth) {
bench->setStrokeWidth(strokeWidth);
}
-
+
// only run benchmarks if their name contains matchStr
if (skip_name(fMatches, bench->getName())) {
continue;
}
-
+
{
SkString str;
str.printf("running bench [%d %d] %28s", dim.fX, dim.fY,
bench->getName());
logger.logProgress(str);
}
-
+
AutoPrePostDraw appd(bench);
for (int x = 0; x < configs.count(); ++x) {
diff --git a/debugger/QT/qrc_SkIcons.cpp b/debugger/QT/qrc_SkIcons.cpp
index ba3cf616a6..2e873b0f21 100644
--- a/debugger/QT/qrc_SkIcons.cpp
+++ b/debugger/QT/qrc_SkIcons.cpp
@@ -783,7 +783,7 @@ static const unsigned char qt_resource_data[] = {
0x96,0x1b,0xaa,0x3c,0xb0,0xd,0x98,0x7,0xfe,0x5a,0xe7,0x6c,0x6,0x68,0x3,0x5a,
0x81,0x65,0x60,0x1a,0x77,0xf9,0x37,0xea,0x7f,0x5e,0x7f,0x3,0x6e,0xb2,0xc3,0xf0,
0x1c,0xaa,0x77,0x3f,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
-
+
// /usr/local/google/home/chudy/Ico/pause.png
0x0,0x0,0x4,0x9d,
0x89,
@@ -933,7 +933,7 @@ static const unsigned char qt_resource_data[] = {
0xa0,0x17,0xb8,0xc5,0x2e,0xee,0x84,0xc9,0x6d,0x62,0xf,0xb6,0x24,0x7a,0xb,0xf0,
0xd8,0x1c,0x6c,0x6,0x3,0x76,0x71,0x2d,0xbf,0x6f,0xff,0x1,0x15,0x13,0xb7,0x7f,
0x67,0x24,0x89,0x36,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
-
+
// /usr/local/google/home/chudy/Ico/previous.png
0x0,0x0,0x3,0xaf,
0x89,
@@ -996,7 +996,7 @@ static const unsigned char qt_resource_data[] = {
0x2a,0x15,0xd6,0xc6,0x2f,0x71,0x6,0x9b,0x95,0x25,0x6b,0x29,0x37,0x99,0x4,0x36,
0x60,0xe1,0x6f,0x2d,0x17,0x60,0x55,0xab,0xfa,0x7,0x42,0xae,0x87,0xb8,0x50,0x72,
0xc9,0x52,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
-
+
};
static const unsigned char qt_resource_name[] = {
@@ -1076,7 +1076,7 @@ static const unsigned char qt_resource_name[] = {
0x8,0x37,0xcd,0x47,
0x0,0x70,
0x0,0x72,0x0,0x65,0x0,0x76,0x0,0x69,0x0,0x6f,0x0,0x75,0x0,0x73,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
-
+
};
static const unsigned char qt_resource_struct[] = {
diff --git a/forth/Forth.cpp b/forth/Forth.cpp
index be366fcf4e..be240e3285 100644
--- a/forth/Forth.cpp
+++ b/forth/Forth.cpp
@@ -101,12 +101,12 @@ void ForthWord::call(ForthCallBlock* block) {
/*
reading an initial 32bit value from the code stream:
-
+
xxxxxxxx xxxxxxxx xxxxxxxx xxxxxx00
-
+
Those last two bits are always 0 for a word, so we set those bits for other
opcodes
-
+
00 -- execute this word
01 -- push (value & ~3) on the data stack
10 -- push value >> 2 on the data stack (sign extended)
@@ -143,7 +143,7 @@ public:
static unsigned MakeCode(Code code) {
return (code << kCodeShift) | kCodeShift2_Bits;
}
-
+
void appendInt(int32_t);
void appendWord(ForthWord*);
void appendIF();
@@ -159,7 +159,7 @@ public:
this->done();
return fData.begin();
}
-
+
static void Exec(const intptr_t*, ForthEngine*);
private:
diff --git a/forth/ForthTests.cpp b/forth/ForthTests.cpp
index 7b9dd5b7fe..08ab7f30ba 100644
--- a/forth/ForthTests.cpp
+++ b/forth/ForthTests.cpp
@@ -16,7 +16,7 @@ public:
void reportFailure(const char expression[], const char file[], int line);
void reportFailure(const char msg[]);
};
-
+
typedef void (*ForthWordTestProc)(ForthWord*, ForthEngine*, Reporter*);
#define FORTH_ASSERT(reporter, expression) \
@@ -385,7 +385,7 @@ void Forth_test_stdwords(bool verbose) {
for (size_t i = 0; i < SK_ARRAY_COUNT(gRecs); i++) {
ForthEngine engine(NULL);
-
+
ForthWord* word = env.findWord(gRecs[i].fName);
if (NULL == word) {
SkString str;
@@ -398,7 +398,7 @@ void Forth_test_stdwords(bool verbose) {
gRecs[i].fProc(word, &engine, &reporter);
}
}
-
+
if (0 == reporter.fFailureCount) {
SkDebugf("--- success!\n");
} else {
diff --git a/forth/SampleForth.cpp b/forth/SampleForth.cpp
index df4110db6e..8fa6a4f7ea 100644
--- a/forth/SampleForth.cpp
+++ b/forth/SampleForth.cpp
@@ -36,9 +36,9 @@ public:
class SkForthCtx_FW : public ForthWord {
public:
SkForthCtx_FW() : fCtx(NULL) {}
-
+
void setCtx(SkForthCtx* ctx) { fCtx = ctx; }
-
+
SkCanvas* canvas() const { return &fCtx->fCanvas; }
SkPaint* paint() const { return &fCtx->fPaint; }
@@ -51,7 +51,7 @@ public:
virtual void exec(ForthEngine* fe) {
paint()->setColor(fe->pop());
}
-
+
static SkForthCtx_FW* New() { return new setColor_FW; }
};
@@ -60,7 +60,7 @@ public:
virtual void exec(ForthEngine* fe) {
paint()->setStyle((SkPaint::Style)fe->pop());
}
-
+
static SkForthCtx_FW* New() { return new setStyle_FW; }
};
@@ -69,7 +69,7 @@ public:
virtual void exec(ForthEngine* fe) {
paint()->setStrokeWidth(fe->fpop());
}
-
+
static SkForthCtx_FW* New() { return new setStrokeWidth_FW; }
};
@@ -80,7 +80,7 @@ public:
SkScalar dx = fe->fpop();
canvas()->translate(dx, dy);
}
-
+
static SkForthCtx_FW* New() { return new translate_FW; }
};
@@ -89,7 +89,7 @@ public:
virtual void exec(ForthEngine* fe) {
canvas()->drawColor(fe->pop());
}
-
+
static SkForthCtx_FW* New() { return new drawColor_FW; }
};
@@ -103,7 +103,7 @@ public:
r.fLeft = fe->fpop();
canvas()->drawRect(r, *paint());
}
-
+
static SkForthCtx_FW* New() { return new drawRect_FW; }
};
@@ -115,7 +115,7 @@ public:
SkScalar x = fe->fpop();
canvas()->drawCircle(x, y, radius, *paint());
}
-
+
static SkForthCtx_FW* New() { return new drawCircle_FW; }
};
@@ -129,7 +129,7 @@ public:
x0 = fe->fpop();
canvas()->drawLine(x0, y0, x1, y1, *paint());
}
-
+
static SkForthCtx_FW* New() { return new drawLine_FW; }
};
@@ -166,7 +166,7 @@ class ForthView : public SkView {
SkBitmap fBM;
SkForthCtx fContext;
public:
- ForthView() {
+ ForthView() {
Forth_test_stdwords(false);
load_words(&fEnv, &fContext);
@@ -194,7 +194,7 @@ public:
);
#endif
}
-
+
virtual ~ForthView() {
}
@@ -207,11 +207,11 @@ protected:
}
return this->INHERITED::onQuery(evt);
}
-
+
void drawBG(SkCanvas* canvas) {
canvas->drawColor(0xFFDDDDDD);
}
-
+
void test_onClick(ForthEnv* env) {
ForthWord* word = env->findWord("view.onClick");
if (word) {
@@ -229,7 +229,7 @@ protected:
SkDebugf("------ view.onClick not found\n");
}
}
-
+
virtual void onDraw(SkCanvas* canvas) {
drawBG(canvas);
canvas->drawBitmap(fBM, 0, 0, NULL);
@@ -238,7 +238,7 @@ protected:
virtual SkView::Click* onFindClickHandler(SkScalar x, SkScalar y) {
return fOnClickWord ? new Click(this) : NULL;
}
-
+
virtual bool onClick(Click* click) {
intptr_t idata[2] = {
f2i_bits(click->fCurr.fX), f2i_bits(click->fCurr.fY)
diff --git a/forth/StdWords.cpp b/forth/StdWords.cpp
index fe75342e2a..8a781f8d4f 100644
--- a/forth/StdWords.cpp
+++ b/forth/StdWords.cpp
@@ -408,7 +408,7 @@ void ForthParser::addStdWords() {
ADD_LITERAL_WORD("2DUP", dup2);
ADD_LITERAL_WORD("2OVER", over2);
ADD_LITERAL_WORD("2DROP", drop2);
-
+
ADD_LITERAL_WORD("+", add);
ADD_LITERAL_WORD("-", sub);
ADD_LITERAL_WORD("*", mul);
@@ -451,7 +451,7 @@ void ForthParser::addStdWords() {
ADD_LITERAL_WORD("0>", gt0);
ADD_LITERAL_WORD("0<=", le0);
ADD_LITERAL_WORD("0>=", ge0);
-
+
this->add("f=", 2, new feq_ForthWord);
this->add("f<>", 3, new fneq_ForthWord);
this->add("f<", 2, new flt_ForthWord);
diff --git a/include/animator/SkAnimator.h b/include/animator/SkAnimator.h
index e6c5583f27..924c595063 100644
--- a/include/animator/SkAnimator.h
+++ b/include/animator/SkAnimator.h
@@ -42,15 +42,15 @@ enum SkFieldType {
/** \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
+ 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 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
@@ -84,7 +84,7 @@ public:
SkAnimator();
virtual ~SkAnimator();
- /** Add a drawable extension to the graphics engine. Experimental.
+ /** 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);
@@ -97,7 +97,7 @@ public:
*/
bool appendStream(SkStream* stream);
- /** Read in XML from memory. Returns true if the file can be
+ /** 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.
@@ -106,7 +106,7 @@ public:
*/
bool decodeMemory(const void* buffer, size_t size);
- /** Read in XML from a stream. Returns true if the file can be
+ /** 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.
@@ -114,14 +114,14 @@ public:
*/
virtual bool decodeStream(SkStream* stream);
- /** Parse the DOM tree starting at the specified node. Returns true if it can be
+ /** 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 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).
@@ -131,14 +131,14 @@ public:
/** 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"
+ @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
+ 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
@@ -151,48 +151,48 @@ public:
/** 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"
+ @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
+
+ /** 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.
+ /** 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
+ /** 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
+ 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
+ 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
+ kPartiallyDifferent if the document contains an active <bounds> element that specifies a minimal
redraw area.
*/
DifferenceType draw(SkCanvas* canvas, SkMSec time);
@@ -203,7 +203,7 @@ public:
@param y ignored
@return true if a mouseDown event handler is enabled.
*/
- bool findClickEvent(SkScalar x, SkScalar y);
+ bool findClickEvent(SkScalar x, SkScalar y);
/** Get the nested animator associated with this element, if any.
@@ -223,7 +223,7 @@ public:
/** 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 fieldName specifies the name of the attribute
@param index the array entry
@return the integer value to retrieve, or SK_NaN32 if unsuccessful
*/
@@ -239,7 +239,7 @@ public:
/** 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 fieldName specifies the name of the attribute
@param index the array entry
@return the scalar value to retrieve, or SK_ScalarNaN if unsuccessful
*/
@@ -247,7 +247,7 @@ public:
/** 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 field is a value returned by getField
@param index the array entry
@return the string value to retrieve, or null if unsuccessful
*/
@@ -255,55 +255,55 @@ public:
/** 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 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
+ @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
+ @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
+ @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
+ @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
+ @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
+ @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
+ @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);
@@ -315,54 +315,54 @@ public:
/** Returns the partial rectangle to invalidate after drawing. Call after draw() returns
kIsPartiallyDifferent to do a mimimal inval(). */
- void getInvalBounds(SkRect* inval);
+ void getInvalBounds(SkRect* inval);
- /** Returns the details of any error encountered while parsing the XML.
+ /** 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.
+
+ /** 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
+ @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
+ @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
+ @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
+ @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
+ @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
+ @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);
@@ -373,31 +373,31 @@ public:
/** 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
+ /** 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 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 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 fieldName specifies the name of the attribute
@param data the integer value to set
@return true if the value was set successfully
*/
@@ -405,7 +405,7 @@ public:
/** 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 fieldName specifies the name of the attribute
@param data the scalar value to set
@return true if the value was set successfully
*/
@@ -413,14 +413,14 @@ public:
/** 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 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
+ /** Sets the file default directory of the URL base path
+ @param path the directory path
*/
void setURIBase(const char* path);
@@ -442,7 +442,7 @@ public:
virtual SkMSec getMSecs() const = 0;
};
- /** Sets a user class to return the current time to the animator.
+ /** 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
*/
@@ -450,28 +450,28 @@ public:
static void Init(bool runUnitTests);
static void Term();
-
- /** The event sink events generated by the animation are posted to.
+
+ /** 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
-
+#endif
+
protected:
virtual void onSetHostHandler(Handler handler);
virtual void onEventPost(SkEvent*, SkEventSinkID);
@@ -484,7 +484,7 @@ private:
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;
diff --git a/include/config/SkUserConfig.h b/include/config/SkUserConfig.h
index 2b77162de6..353272c8bc 100644
--- a/include/config/SkUserConfig.h
+++ b/include/config/SkUserConfig.h
@@ -67,7 +67,7 @@
/* To assist debugging, Skia provides an instance counting utility in
include/core/SkInstCount.h. This flag turns on and off that utility to
- allow instance count tracking in either debug or release builds. By
+ allow instance count tracking in either debug or release builds. By
default it is enabled in debug but disabled in release.
*/
//#define SK_ENABLE_INST_COUNT
diff --git a/include/core/Sk64.h b/include/core/Sk64.h
index b86e0be7d4..d232d82662 100644
--- a/include/core/Sk64.h
+++ b/include/core/Sk64.h
@@ -134,7 +134,7 @@ struct SK_API Sk64 {
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;
@@ -142,18 +142,18 @@ struct SK_API Sk64 {
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);
@@ -162,7 +162,7 @@ struct SK_API Sk64 {
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).
*/
@@ -205,19 +205,19 @@ struct SK_API Sk64 {
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);
}
diff --git a/include/core/SkAnnotation.h b/include/core/SkAnnotation.h
index 9cdb2d5ae9..e1ecf6caf1 100644
--- a/include/core/SkAnnotation.h
+++ b/include/core/SkAnnotation.h
@@ -48,7 +48,7 @@ protected:
private:
SkDataSet* fDataSet;
uint32_t fFlags;
-
+
void writeToStream(SkWStream*) const;
void readFromStream(SkStream*);
diff --git a/include/core/SkBitmap.h b/include/core/SkBitmap.h
index c2ef7b53d5..9c81e836f2 100644
--- a/include/core/SkBitmap.h
+++ b/include/core/SkBitmap.h
@@ -169,7 +169,7 @@ public:
/** Marks this bitmap as immutable, meaning that the contents of its
pixels will not change for the lifetime of the bitmap and of the
- underlying pixelref. This state can be set, but it cannot be
+ underlying pixelref. This state can be set, but it cannot be
cleared once it is set. This state propagates to all other bitmaps
that share the same pixelref.
*/
@@ -188,11 +188,11 @@ public:
*/
bool isVolatile() const;
- /** Specify whether this bitmap is volatile. Bitmaps are not volatile by
+ /** Specify whether this bitmap is volatile. Bitmaps are not volatile by
default. Temporary bitmaps that are discarded after use should be
marked as volatile. This provides a hint to the device that the bitmap
- should not be cached. Providing this hint when appropriate can
- improve performance by avoiding unnecessary overhead and resource
+ should not be cached. Providing this hint when appropriate can
+ improve performance by avoiding unnecessary overhead and resource
consumption on the device.
*/
void setIsVolatile(bool);
@@ -424,7 +424,7 @@ public:
* does not have any pixels (or has not be locked with lockPixels()).
*/
SkColor getColor(int x, int y) const;
-
+
/** Returns the address of the specified pixel. This performs a runtime
check to know the size of the pixels, and will return the same answer
as the corresponding size-specific method (e.g. getAddr16). Since the
diff --git a/include/core/SkBounder.h b/include/core/SkBounder.h
index 93d2e4f53b..1ede5481f5 100644
--- a/include/core/SkBounder.h
+++ b/include/core/SkBounder.h
@@ -30,10 +30,10 @@ class SkRegion;
class SkBounder : public SkRefCnt {
public:
SK_DECLARE_INST_COUNT(SkBounder)
-
+
SkBounder();
- /* Call to perform a clip test before calling onIRect.
+ /* Call to perform a clip test before calling onIRect.
Returns the result from onIRect.
*/
bool doIRect(const SkIRect&);
diff --git a/include/core/SkChecksum.h b/include/core/SkChecksum.h
index e66df54aaf..e5cc3d101f 100644
--- a/include/core/SkChecksum.h
+++ b/include/core/SkChecksum.h
@@ -21,11 +21,11 @@ private:
ROTL = sizeof(uintptr_t) * 8 - ROTR,
HALFBITS = sizeof(uintptr_t) * 4
};
-
+
static inline uintptr_t Mash(uintptr_t total, uintptr_t value) {
return ((total >> ROTR) | (total << ROTL)) ^ value;
}
-
+
public:
/**
* Compute a 32-bit checksum for a given data block
@@ -37,7 +37,7 @@ public:
*/
static uint32_t Compute(const uint32_t* data, size_t size) {
SkASSERT(SkIsAlign4(size));
-
+
/*
* We want to let the compiler use 32bit or 64bit addressing and math
* so we use uintptr_t as our magic type. This makes the code a little
@@ -46,7 +46,7 @@ public:
*/
uintptr_t result = 0;
const uintptr_t* ptr = reinterpret_cast<const uintptr_t*>(data);
-
+
/*
* count the number of quad element chunks. This takes into account
* if we're on a 32bit or 64bit arch, since we use sizeof(uintptr_t)
@@ -60,13 +60,13 @@ public:
result = Mash(result, *ptr++);
}
size &= ((sizeof(uintptr_t) << 2) - 1);
-
+
data = reinterpret_cast<const uint32_t*>(ptr);
const uint32_t* stop = data + (size >> 2);
while (data < stop) {
result = Mash(result, *data++);
}
-
+
/*
* smash us down to 32bits if we were 64. Note that when uintptr_t is
* 32bits, this code-path should go away, but I still got a warning
diff --git a/include/core/SkChunkAlloc.h b/include/core/SkChunkAlloc.h
index 102962b02a..1b52a35c16 100644
--- a/include/core/SkChunkAlloc.h
+++ b/include/core/SkChunkAlloc.h
@@ -27,12 +27,12 @@ public:
kReturnNil_AllocFailType,
kThrow_AllocFailType
};
-
+
void* alloc(size_t bytes, AllocFailType);
void* allocThrow(size_t bytes) {
return this->alloc(bytes, kThrow_AllocFailType);
}
-
+
/** Call this to unalloc the most-recently allocated ptr by alloc(). On
success, the number of bytes freed is returned, or 0 if the block could
not be unallocated. This is a hint to the underlying allocator that
@@ -40,7 +40,7 @@ public:
to ignore this call (and return 0).
*/
size_t unalloc(void* ptr);
-
+
size_t totalCapacity() const { return fTotalCapacity; }
int blockCount() const { return fBlockCount; }
diff --git a/include/core/SkClipStack.h b/include/core/SkClipStack.h
index c450fa83f4..2ab118d5a7 100644
--- a/include/core/SkClipStack.h
+++ b/include/core/SkClipStack.h
@@ -45,21 +45,21 @@ public:
// The bounding box contains all the pixels that cannot be written to.
// The real bound extends out to infinity and all the pixels outside
// of the bound can be written to. Note that some of the pixels inside
- // the bound may also be writeable but all pixels that cannot be
+ // the bound may also be writeable but all pixels that cannot be
// written to are guaranteed to be inside.
kInsideOut_BoundsType
};
/**
* getBounds places the current finite bound in its first parameter. In its
- * second, it indicates which kind of bound is being returned. If
+ * second, it indicates which kind of bound is being returned. If
* 'canvFiniteBound' is a normal bounding box then it encloses all writeable
- * pixels. If 'canvFiniteBound' is an inside out bounding box then it
+ * pixels. If 'canvFiniteBound' is an inside out bounding box then it
* encloses all the un-writeable pixels and the true/normal bound is the
* infinite plane. isIntersectionOfRects is an optional parameter
* that is true if 'canvFiniteBound' resulted from an intersection of rects.
*/
- void getBounds(SkRect* canvFiniteBound,
+ void getBounds(SkRect* canvFiniteBound,
BoundsType* boundType,
bool* isIntersectionOfRects = NULL) const;
@@ -74,7 +74,7 @@ public:
void clipEmpty();
/**
- * isWideOpen returns true if the clip state corresponds to the infinite
+ * isWideOpen returns true if the clip state corresponds to the infinite
* plane (i.e., draws are not limited at all)
*/
bool isWideOpen() const;
@@ -82,7 +82,7 @@ public:
/**
* Add a callback function that will be called whenever a clip state
* is no longer viable. This will occur whenever restore
- * is called or when a clipDevRect or clipDevPath call updates the
+ * is called or when a clipDevRect or clipDevPath call updates the
* clip within an existing save/restore state. Each clip state is
* represented by a unique generation ID.
*/
@@ -123,7 +123,7 @@ public:
Iter(const SkClipStack& stack, IterStart startLoc);
struct Clip {
- Clip() : fRect(NULL), fPath(NULL), fOp(SkRegion::kIntersect_Op),
+ Clip() : fRect(NULL), fPath(NULL), fOp(SkRegion::kIntersect_Op),
fDoAA(false) {}
friend bool operator==(const Clip& a, const Clip& b);
friend bool operator!=(const Clip& a, const Clip& b);
@@ -147,8 +147,8 @@ public:
const Clip* prev();
/**
- * Moves the iterator to the topmost clip with the specified RegionOp
- * and returns that clip. If no clip with that op is found,
+ * Moves the iterator to the topmost clip with the specified RegionOp
+ * and returns that clip. If no clip with that op is found,
* returns NULL.
*/
const Clip* skipToTopmost(SkRegion::Op op);
@@ -170,7 +170,7 @@ public:
const Clip* updateClip(const SkClipStack::Rec* rec);
};
- /**
+ /**
* The B2TIter iterates from the bottom of the stack to the top.
* It inherits privately from Iter to prevent access to reverse iteration.
*/
@@ -179,10 +179,10 @@ public:
B2TIter() {}
/**
- * Wrap Iter's 2 parameter ctor to force initialization to the
+ * Wrap Iter's 2 parameter ctor to force initialization to the
* beginning of the deque/bottom of the stack
*/
- B2TIter(const SkClipStack& stack)
+ B2TIter(const SkClipStack& stack)
: INHERITED(stack, kBottom_IterStart) {
}
@@ -190,7 +190,7 @@ public:
using Iter::next;
/**
- * Wrap Iter::reset to force initialization to the
+ * Wrap Iter::reset to force initialization to the
* beginning of the deque/bottom of the stack
*/
void reset(const SkClipStack& stack) {
@@ -203,15 +203,15 @@ public:
};
/**
- * GetConservativeBounds returns a conservative bound of the current clip.
- * Since this could be the infinite plane (if inverse fills were involved) the
- * maxWidth and maxHeight parameters can be used to limit the returned bound
+ * GetConservativeBounds returns a conservative bound of the current clip.
+ * Since this could be the infinite plane (if inverse fills were involved) the
+ * maxWidth and maxHeight parameters can be used to limit the returned bound
* to the expected drawing area. Similarly, the offsetX and offsetY parameters
- * allow the caller to offset the returned bound to account for translated
+ * allow the caller to offset the returned bound to account for translated
* drawing areas (i.e., those resulting from a saveLayer). For finite bounds,
- * the translation (+offsetX, +offsetY) is applied before the clamp to the
+ * the translation (+offsetX, +offsetY) is applied before the clamp to the
* maximum rectangle: [0,maxWidth) x [0,maxHeight).
- * isIntersectionOfRects is an optional parameter that is true when
+ * isIntersectionOfRects is an optional parameter that is true when
* 'devBounds' is the result of an intersection of rects. In this case
* 'devBounds' is the exact answer/clip.
*/
diff --git a/include/core/SkColorFilter.h b/include/core/SkColorFilter.h
index 4c5eee7c13..935b691160 100644
--- a/include/core/SkColorFilter.h
+++ b/include/core/SkColorFilter.h
@@ -112,7 +112,7 @@ public:
are ignored.
*/
static SkColorFilter* CreateLightingFilter(SkColor mul, SkColor add);
-
+
SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP()
protected:
SkColorFilter() {}
diff --git a/include/core/SkColorPriv.h b/include/core/SkColorPriv.h
index 073a4f58f8..a2e1bc5df6 100644
--- a/include/core/SkColorPriv.h
+++ b/include/core/SkColorPriv.h
@@ -67,7 +67,7 @@ static inline int SkAlphaBlend255(S16CPU src, S16CPU dst, U8CPU alpha) {
SkASSERT((int16_t)src == src);
SkASSERT((int16_t)dst == dst);
SkASSERT((uint8_t)alpha == alpha);
-
+
int prod = SkMulS16(src - dst, alpha) + 128;
prod = (prod + (prod >> 8)) >> 8;
return dst + prod;
@@ -242,7 +242,7 @@ static inline SkPMColor SkFourByteInterp256(SkPMColor src, SkPMColor dst,
unsigned r = SkAlphaBlend(SkGetPackedR32(src), SkGetPackedR32(dst), scale);
unsigned g = SkAlphaBlend(SkGetPackedG32(src), SkGetPackedG32(dst), scale);
unsigned b = SkAlphaBlend(SkGetPackedB32(src), SkGetPackedB32(dst), scale);
-
+
return SkPackARGB32(a, r, g, b);
}
@@ -754,32 +754,32 @@ static inline int SkBlend32(int src, int dst, int scale) {
}
static inline SkPMColor SkBlendLCD16(int srcA, int srcR, int srcG, int srcB,
- SkPMColor dst, uint16_t mask) {
+ SkPMColor dst, uint16_t mask) {
if (mask == 0) {
return dst;
}
-
+
/* We want all of these in 5bits, hence the shifts in case one of them
* (green) is 6bits.
*/
int maskR = SkGetPackedR16(mask) >> (SK_R16_BITS - 5);
int maskG = SkGetPackedG16(mask) >> (SK_G16_BITS - 5);
int maskB = SkGetPackedB16(mask) >> (SK_B16_BITS - 5);
-
+
// Now upscale them to 0..32, so we can use blend32
maskR = SkUpscale31To32(maskR);
maskG = SkUpscale31To32(maskG);
maskB = SkUpscale31To32(maskB);
-
+
// srcA has been upscaled to 256 before passed into this function
maskR = maskR * srcA >> 8;
maskG = maskG * srcA >> 8;
maskB = maskB * srcA >> 8;
-
+
int dstR = SkGetPackedR32(dst);
int dstG = SkGetPackedG32(dst);
int dstB = SkGetPackedB32(dst);
-
+
// LCD blitting is only supported if the dst is known/required
// to be opaque
return SkPackARGB32(0xFF,
@@ -790,7 +790,7 @@ static inline SkPMColor SkBlendLCD16(int srcA, int srcR, int srcG, int srcB,
static inline SkPMColor SkBlendLCD16Opaque(int srcR, int srcG, int srcB,
SkPMColor dst, uint16_t mask,
- SkPMColor opaqueDst) {
+ SkPMColor opaqueDst) {
if (mask == 0) {
return dst;
}
@@ -798,23 +798,23 @@ static inline SkPMColor SkBlendLCD16Opaque(int srcR, int srcG, int srcB,
if (0xFFFF == mask) {
return opaqueDst;
}
-
+
/* We want all of these in 5bits, hence the shifts in case one of them
* (green) is 6bits.
*/
int maskR = SkGetPackedR16(mask) >> (SK_R16_BITS - 5);
int maskG = SkGetPackedG16(mask) >> (SK_G16_BITS - 5);
int maskB = SkGetPackedB16(mask) >> (SK_B16_BITS - 5);
-
+
// Now upscale them to 0..32, so we can use blend32
maskR = SkUpscale31To32(maskR);
maskG = SkUpscale31To32(maskG);
maskB = SkUpscale31To32(maskB);
-
+
int dstR = SkGetPackedR32(dst);
int dstG = SkGetPackedG32(dst);
int dstB = SkGetPackedB32(dst);
-
+
// LCD blitting is only supported if the dst is known/required
// to be opaque
return SkPackARGB32(0xFF,
@@ -829,24 +829,24 @@ static inline void SkBlitLCD16Row(SkPMColor dst[], const uint16_t src[],
int srcR = SkColorGetR(color);
int srcG = SkColorGetG(color);
int srcB = SkColorGetB(color);
-
+
srcA = SkAlpha255To256(srcA);
-
+
for (int i = 0; i < width; i++) {
dst[i] = SkBlendLCD16(srcA, srcR, srcG, srcB, dst[i], src[i]);
}
}
static inline void SkBlitLCD16OpaqueRow(SkPMColor dst[], const uint16_t src[],
- SkColor color, int width,
+ SkColor color, int width,
SkPMColor opaqueDst) {
int srcR = SkColorGetR(color);
int srcG = SkColorGetG(color);
int srcB = SkColorGetB(color);
-
+
for (int i = 0; i < width; i++) {
dst[i] = SkBlendLCD16Opaque(srcR, srcG, srcB, dst[i], src[i],
- opaqueDst);
+ opaqueDst);
}
}
diff --git a/include/core/SkComposeShader.h b/include/core/SkComposeShader.h
index 77729d941d..a8a8e0bb60 100644
--- a/include/core/SkComposeShader.h
+++ b/include/core/SkComposeShader.h
@@ -33,7 +33,7 @@ public:
*/
SkComposeShader(SkShader* sA, SkShader* sB, SkXfermode* mode = NULL);
virtual ~SkComposeShader();
-
+
// override
virtual bool setContext(const SkBitmap& device, const SkPaint& paint, const SkMatrix& matrix);
virtual void shadeSpan(int x, int y, SkPMColor result[], int count);
diff --git a/include/core/SkData.h b/include/core/SkData.h
index e371931a3c..4db17a03b3 100644
--- a/include/core/SkData.h
+++ b/include/core/SkData.h
@@ -61,12 +61,12 @@ public:
* of scope, allowing for custom allocation/freeing of the data.
*/
typedef void (*ReleaseProc)(const void* ptr, size_t length, void* context);
-
+
/**
* Create a new dataref by copying the specified data
*/
static SkData* NewWithCopy(const void* data, size_t length);
-
+
/**
* Create a new dataref by copying the specified c-string
* (a null-terminated array of bytes). The returned SkData will have size()
@@ -74,7 +74,7 @@ public:
* as "".
*/
static SkData* NewWithCString(const char cstr[]);
-
+
/**
* Create a new dataref, taking the data ptr as is, and using the
* releaseproc to free it. The proc may be NULL.
@@ -118,10 +118,10 @@ private:
// This is here because SkAutoTUnref creates an internal helper class
// that derives from SkData (i.e., BlockRef) to prevent refs\unrefs.
- // This helper class generates a compiler warning on Windows since the
+ // This helper class generates a compiler warning on Windows since the
// SkData's destructor is private. This friending gives the helper class
// access to the destructor.
- friend class SkAutoTUnref<SkData>::BlockRef<SkData>;
+ friend class SkAutoTUnref<SkData>::BlockRef<SkData>;
typedef SkFlattenable INHERITED;
};
diff --git a/include/core/SkDataSet.h b/include/core/SkDataSet.h
index 734c3c32c2..2e5d96e68a 100644
--- a/include/core/SkDataSet.h
+++ b/include/core/SkDataSet.h
@@ -62,7 +62,7 @@ public:
SkASSERT(!this->done());
fPair += 1;
}
-
+
private:
const SkDataSet::Pair* fPair;
const SkDataSet::Pair* fStop;
diff --git a/include/core/SkDeque.h b/include/core/SkDeque.h
index d29f72a959..eef335d0e5 100644
--- a/include/core/SkDeque.h
+++ b/include/core/SkDeque.h
@@ -14,8 +14,8 @@
/*
* The deque class works by blindly creating memory space of a specified element
- * size. It manages the memory as a doubly linked list of blocks each of which
- * can contain multiple elements. Pushes and pops add/remove blocks from the
+ * size. It manages the memory as a doubly linked list of blocks each of which
+ * can contain multiple elements. Pushes and pops add/remove blocks from the
* beginning/end of the list as necessary while each block tracks the used
* portion of its memory.
* One behavior to be aware of is that the pops do not immediately remove an
@@ -85,22 +85,22 @@ public:
char* fPos;
size_t fElemSize;
};
-
+
// Inherit privately from Iter to prevent access to reverse iteration
class F2BIter : private Iter {
public:
F2BIter() {}
/**
- * Wrap Iter's 2 parameter ctor to force initialization to the
+ * Wrap Iter's 2 parameter ctor to force initialization to the
* beginning of the deque
*/
F2BIter(const SkDeque& d) : INHERITED(d, kFront_IterStart) {}
using Iter::next;
- /**
- * Wrap Iter::reset to force initialization to the beginning of the
+ /**
+ * Wrap Iter::reset to force initialization to the beginning of the
* deque
*/
void reset(const SkDeque& d) {
@@ -113,7 +113,7 @@ public:
private:
// allow unit test to call numBlocksAllocated
- friend class DequeUnitTestHelper;
+ friend class DequeUnitTestHelper;
void* fFront;
void* fBack;
diff --git a/include/core/SkDevice.h b/include/core/SkDevice.h
index 5cf5c502c5..326115ca31 100644
--- a/include/core/SkDevice.h
+++ b/include/core/SkDevice.h
@@ -138,10 +138,10 @@ public:
*/
const SkIPoint& getOrigin() const { return fOrigin; }
- /**
+ /**
* onAttachToCanvas is invoked whenever a device is installed in a canvas
* (i.e., setDevice, saveLayer (for the new device created by the save),
- * and SkCanvas' SkDevice & SkBitmap -taking ctors). It allows the
+ * and SkCanvas' SkDevice & SkBitmap -taking ctors). It allows the
* devices to prepare for drawing (e.g., locking their pixels, etc.)
*/
virtual void onAttachToCanvas(SkCanvas* canvas) {
@@ -154,7 +154,7 @@ public:
/**
* onDetachFromCanvas notifies a device that it will no longer be drawn to.
* It gives the device a chance to clean up (e.g., unlock its pixels). It
- * is invoked from setDevice (for the displaced device), restore and
+ * is invoked from setDevice (for the displaced device), restore and
* possibly from SkCanvas' dtor.
*/
virtual void onDetachFromCanvas() {
@@ -312,7 +312,7 @@ protected:
access the pixels directly. Note: only the pixels field should be
altered. The config/width/height/rowbytes must remain unchanged.
@param bitmap The device's bitmap
- @return Echo the bitmap parameter, or an alternate (shadow) bitmap
+ @return Echo the bitmap parameter, or an alternate (shadow) bitmap
maintained by the subclass.
*/
virtual const SkBitmap& onAccessBitmap(SkBitmap*);
diff --git a/include/core/SkDither.h b/include/core/SkDither.h
index 692c7e4850..d82b4167b5 100644
--- a/include/core/SkDither.h
+++ b/include/core/SkDither.h
@@ -71,7 +71,7 @@
static inline SkPMColor SkDitherARGB32For565(SkPMColor c, unsigned dither)
{
SkASSERT(dither <= SK_DitherValueMax565);
-
+
unsigned sa = SkGetPackedA32(c);
dither = SkAlphaMul(dither, SkAlpha255To256(sa));
@@ -81,21 +81,21 @@ static inline SkPMColor SkDitherARGB32For565(SkPMColor c, unsigned dither)
sr = SkDITHER_R32_FOR_565(sr, dither);
sg = SkDITHER_G32_FOR_565(sg, dither);
sb = SkDITHER_B32_FOR_565(sb, dither);
-
+
return SkPackARGB32(sa, sr, sg, sb);
}
static inline SkPMColor SkDitherRGB32For565(SkPMColor c, unsigned dither)
{
SkASSERT(dither <= SK_DitherValueMax565);
-
+
unsigned sr = SkGetPackedR32(c);
unsigned sg = SkGetPackedG32(c);
unsigned sb = SkGetPackedB32(c);
sr = SkDITHER_R32_FOR_565(sr, dither);
sg = SkDITHER_G32_FOR_565(sg, dither);
sb = SkDITHER_B32_FOR_565(sb, dither);
-
+
return SkPackARGB32(0xFF, sr, sg, sb);
}
@@ -112,29 +112,29 @@ static inline uint16_t SkDitherRGBTo565(U8CPU r, U8CPU g, U8CPU b,
static inline uint16_t SkDitherRGB32To565(SkPMColor c, unsigned dither)
{
SkASSERT(dither <= SK_DitherValueMax565);
-
+
unsigned sr = SkGetPackedR32(c);
unsigned sg = SkGetPackedG32(c);
unsigned sb = SkGetPackedB32(c);
sr = SkDITHER_R32To565(sr, dither);
sg = SkDITHER_G32To565(sg, dither);
sb = SkDITHER_B32To565(sb, dither);
-
+
return SkPackRGB16(sr, sg, sb);
}
static inline uint16_t SkDitherARGB32To565(U8CPU sa, SkPMColor c, unsigned dither)
{
- SkASSERT(dither <= SK_DitherValueMax565);
+ SkASSERT(dither <= SK_DitherValueMax565);
dither = SkAlphaMul(dither, SkAlpha255To256(sa));
-
+
unsigned sr = SkGetPackedR32(c);
unsigned sg = SkGetPackedG32(c);
unsigned sb = SkGetPackedB32(c);
sr = SkDITHER_R32To565(sr, dither);
sg = SkDITHER_G32To565(sg, dither);
sb = SkDITHER_B32To565(sb, dither);
-
+
return SkPackRGB16(sr, sg, sb);
}
@@ -149,7 +149,7 @@ static inline SkPMColor16 SkDitherARGB32To4444(U8CPU a, U8CPU r, U8CPU g,
r = SkDITHER_R32To4444(r, dither);
g = SkDITHER_G32To4444(g, dither);
b = SkDITHER_B32To4444(b, dither);
-
+
return SkPackARGB4444(a, r, g, b);
}
@@ -166,7 +166,7 @@ static inline SkPMColor16 SkDitherARGB32To4444(SkPMColor c, unsigned dither)
r = SkDITHER_R32To4444(r, dither);
g = SkDITHER_G32To4444(g, dither);
b = SkDITHER_B32To4444(b, dither);
-
+
return SkPackARGB4444(a, r, g, b);
}
diff --git a/include/core/SkDrawFilter.h b/include/core/SkDrawFilter.h
index 1e843ec35f..73b2ca58e0 100644
--- a/include/core/SkDrawFilter.h
+++ b/include/core/SkDrawFilter.h
@@ -24,7 +24,7 @@ class SkPaint;
class SkDrawFilter : public SkRefCnt {
public:
SK_DECLARE_INST_COUNT(SkDrawFilter)
-
+
enum Type {
kPaint_Type,
kPoint_Type,
diff --git a/include/core/SkDrawLooper.h b/include/core/SkDrawLooper.h
index f1fb5bdcb9..8a218c331d 100644
--- a/include/core/SkDrawLooper.h
+++ b/include/core/SkDrawLooper.h
@@ -47,7 +47,7 @@ public:
* init() was first called.
*/
virtual bool next(SkCanvas*, SkPaint* paint) = 0;
-
+
/**
* The fast bounds functions are used to enable the paint to be culled early
* in the drawing pipeline. If a subclass can support this feature it must
diff --git a/include/core/SkFlate.h b/include/core/SkFlate.h
index c111de0fd5..e4c1417d91 100644
--- a/include/core/SkFlate.h
+++ b/include/core/SkFlate.h
@@ -30,19 +30,19 @@ public:
* putting the result into dst. Returns false if an error occurs.
*/
static bool Deflate(SkStream* src, SkWStream* dst);
-
+
/**
* Use the flate compression algorithm to compress the data in src,
* putting the result into dst. Returns false if an error occurs.
*/
static bool Deflate(const void* src, size_t len, SkWStream* dst);
-
+
/**
* Use the flate compression algorithm to compress the data,
* putting the result into dst. Returns false if an error occurs.
*/
static bool Deflate(const SkData*, SkWStream* dst);
-
+
/** Use the flate compression algorithm to decompress the data in src,
putting the result into dst. Returns false if an error occurs.
*/
diff --git a/include/core/SkFlattenable.h b/include/core/SkFlattenable.h
index 9b38032f48..6df9f9b068 100644
--- a/include/core/SkFlattenable.h
+++ b/include/core/SkFlattenable.h
@@ -54,7 +54,7 @@ class SkFlattenableWriteBuffer;
}
/** \class SkFlattenable
-
+
SkFlattenable is the base class for objects that need to be flattened
into a data stream for either transport or as part of the key to the
font cache.
@@ -64,15 +64,15 @@ public:
SK_DECLARE_INST_COUNT(SkFlattenable)
typedef SkFlattenable* (*Factory)(SkFlattenableReadBuffer&);
-
+
SkFlattenable() {}
-
+
/** Implement this to return a factory function pointer that can be called
to recreate your class given a buffer (previously written to by your
override of flatten().
*/
virtual Factory getFactory() = 0;
-
+
static Factory NameToFactory(const char name[]);
static const char* FactoryToName(Factory);
static void Register(const char name[], Factory);
diff --git a/include/core/SkGraphics.h b/include/core/SkGraphics.h
index c7ee07f4ff..c9a0f532f6 100644
--- a/include/core/SkGraphics.h
+++ b/include/core/SkGraphics.h
@@ -16,7 +16,7 @@ class SK_API SkGraphics {
public:
/**
* Call this at process initialization time if your environment does not
- * permit static global initializers that execute code. Note that
+ * permit static global initializers that execute code. Note that
* Init() is not thread-safe.
*/
static void Init();
@@ -38,7 +38,7 @@ public:
* This max can be changed by calling SetFontCacheLimit().
*/
static size_t GetFontCacheLimit();
-
+
/**
* Specify the max number of bytes that should be used by the font cache.
* If the cache needs to allocate more, it will purge previous entries.
@@ -59,7 +59,7 @@ public:
* draws to be recreated, since they will no longer be in the cache.
*/
static void PurgeFontCache();
-
+
/**
* Applications with command line options may pass optional state, such
* as cache sizes, here, for instance:
@@ -69,7 +69,7 @@ public:
* This format is subject to change.
*/
static void SetFlags(const char* flags);
-
+
/**
* Return the max number of bytes that should be used by the thread-local
* font cache.
@@ -82,14 +82,14 @@ public:
* GetFontCacheLimit.
*/
static size_t GetTLSFontCacheLimit();
-
+
/**
* Specify the max number of bytes that should be used by the thread-local
* font cache. If this value is 0, then this thread will use the shared
* global font cache.
*/
static void SetTLSFontCacheLimit(size_t bytes);
-
+
private:
/** This is automatically called by SkGraphics::Init(), and must be
implemented by the host OS. This allows the host OS to register a callback
diff --git a/include/core/SkImage.h b/include/core/SkImage.h
index 89e3181d58..985a3bbbbb 100644
--- a/include/core/SkImage.h
+++ b/include/core/SkImage.h
@@ -45,16 +45,16 @@ public:
kRGBA_8888_ColorType,
kBGRA_8888_ColorType,
kPMColor_ColorType,
-
+
kLastEnum_ColorType = kPMColor_ColorType
};
-
+
enum AlphaType {
kIgnore_AlphaType,
kOpaque_AlphaType,
kPremul_AlphaType,
kUnpremul_AlphaType,
-
+
kLastEnum_AlphaType = kUnpremul_AlphaType
};
@@ -63,7 +63,7 @@ public:
int fHeight;
ColorType fColorType;
AlphaType fAlphaType;
-
+
};
static SkImage* NewRasterCopy(const Info&, SkColorSpace*, const void* pixels, size_t rowBytes);
diff --git a/include/core/SkImageFilter.h b/include/core/SkImageFilter.h
index e4705c464c..dd5aecde0f 100644
--- a/include/core/SkImageFilter.h
+++ b/include/core/SkImageFilter.h
@@ -66,7 +66,7 @@ public:
* The matrix is the current matrix on the canvas.
*
* Offset is the amount to translate the resulting image relative to the
- * src when it is drawn.
+ * src when it is drawn.
*
* If the result image cannot be created, return false, in which case both
* the result and offset parameters will be ignored by the caller.
@@ -84,7 +84,7 @@ public:
* Returns true if the filter can be expressed a single-pass
* GrCustomStage, used to process this filter on the GPU, or false if
* not.
- *
+ *
* If stage is non-NULL, a new GrCustomStage instance is stored
* in it. The caller assumes ownership of the stage, and it is up to the
* caller to unref it.
diff --git a/include/core/SkInstCnt.h b/include/core/SkInstCnt.h
index db6e273e9f..7ed866befc 100644
--- a/include/core/SkInstCnt.h
+++ b/include/core/SkInstCnt.h
@@ -10,7 +10,7 @@
#define SkInstCnt_DEFINED
/*
- * The instance counting system consists of three macros that create the
+ * The instance counting system consists of three macros that create the
* instance counting machinery. A class is added to the system by adding:
* SK_DECLARE_INST_COUNT at the top of its declaration for derived classes
* SK_DECLARE_INST_COUNT_ROOT at the top of its declaration for a root class
diff --git a/include/core/SkLineClipper.h b/include/core/SkLineClipper.h
index 2c75e5e2d5..5827dbe2ce 100644
--- a/include/core/SkLineClipper.h
+++ b/include/core/SkLineClipper.h
@@ -22,7 +22,7 @@ public:
lie completely above or below the clip. For portions to the left or
right, turn those into vertical line segments that are aligned to the
edge of the clip.
-
+
Return the number of line segments that result, and store the end-points
of those segments sequentially in lines as follows:
1st segment: lines[0]..lines[1]
@@ -35,7 +35,7 @@ public:
/* Intersect the line segment against the rect. If there is a non-empty
resulting segment, return true and set dst[] to that segment. If not,
return false and ignore dst[].
-
+
ClipLine is specialized for scan-conversion, as it adds vertical
segments on the sides to show where the line extended beyond the
left or right sides. IntersectLine does not.
diff --git a/include/core/SkMMapStream.h b/include/core/SkMMapStream.h
index 19ba634ccc..a3b35f2df8 100644
--- a/include/core/SkMMapStream.h
+++ b/include/core/SkMMapStream.h
@@ -21,9 +21,9 @@ public:
private:
void* fAddr;
size_t fSize;
-
+
void closeMMap();
-
+
typedef SkMemoryStream INHERITED;
};
diff --git a/include/core/SkMallocPixelRef.h b/include/core/SkMallocPixelRef.h
index 1bf1afc694..2241a513e7 100644
--- a/include/core/SkMallocPixelRef.h
+++ b/include/core/SkMallocPixelRef.h
@@ -23,7 +23,7 @@ public:
*/
SkMallocPixelRef(void* addr, size_t size, SkColorTable* ctable, bool ownPixels = true);
virtual ~SkMallocPixelRef();
-
+
//! Return the allocation size for the pixels
size_t getSize() const { return fSize; }
void* getAddr() const { return fStorage; }
diff --git a/include/core/SkMask.h b/include/core/SkMask.h
index 3f9a11449c..5dadb63d5b 100644
--- a/include/core/SkMask.h
+++ b/include/core/SkMask.h
@@ -136,7 +136,7 @@ public:
SkAutoMaskFreeImage(uint8_t* maskImage) {
fImage = maskImage;
}
-
+
~SkAutoMaskFreeImage() {
SkMask::FreeImage(fImage);
}
diff --git a/include/core/SkMatrix.h b/include/core/SkMatrix.h
index 6cf4d8f761..f2c6512c5c 100644
--- a/include/core/SkMatrix.h
+++ b/include/core/SkMatrix.h
@@ -44,9 +44,9 @@ public:
kPerspective_Mask = 0x08 //!< set if the matrix is in perspective
};
- /** Returns a bitfield describing the transformations the matrix may
+ /** Returns a bitfield describing the transformations the matrix may
perform. The bitfield is computed conservatively, so it may include
- false positives. For example, when kPerspective_Mask is true, all
+ false positives. For example, when kPerspective_Mask is true, all
other bits may be set to true even in the case of a pure perspective
transform.
*/
@@ -96,7 +96,7 @@ public:
kMPersp1,
kMPersp2
};
-
+
/** Affine arrays are in column major order
because that's how PDF and XPS like it.
*/
@@ -113,12 +113,12 @@ public:
SkASSERT((unsigned)index < 9);
return fMat[index];
}
-
+
SkScalar get(int index) const {
SkASSERT((unsigned)index < 9);
return fMat[index];
}
-
+
SkScalar getScaleX() const { return fMat[kMScaleX]; }
SkScalar getScaleY() const { return fMat[kMScaleY]; }
SkScalar getSkewY() const { return fMat[kMSkewY]; }
@@ -163,7 +163,7 @@ public:
fMat[kMPersp2] = persp2;
this->setTypeMask(kUnknown_Mask);
}
-
+
/** Set the matrix to identity
*/
void reset();
@@ -323,7 +323,7 @@ public:
@return true if the matrix can be represented by the rectangle mapping.
*/
bool setRectToRect(const SkRect& src, const SkRect& dst, ScaleToFit stf);
-
+
/** Set the matrix such that the specified src points would map to the
specified dst points. count must be within [0..4].
@param src The array of src points
@@ -375,7 +375,7 @@ public:
void mapPoints(SkPoint pts[], int count) const {
this->mapPoints(pts, pts, count);
}
-
+
/** Like mapPoints but with custom byte stride between the points. Stride
* should be a multiple of sizeof(SkScalar).
*/
@@ -461,7 +461,7 @@ public:
SkASSERT((mask & ~kAllMasks) == 0);
return gMapXYProcs[mask & kAllMasks];
}
-
+
MapXYProc getMapXYProc() const {
return GetMapXYProc(this->getType());
}
@@ -473,7 +473,7 @@ public:
SkASSERT((mask & ~kAllMasks) == 0);
return gMapPtsProcs[mask & kAllMasks];
}
-
+
MapPtsProc getMapPtsProc() const {
return GetMapPtsProc(this->getType());
}
@@ -515,7 +515,7 @@ public:
uint32_t writeToMemory(void* buffer) const;
// return the number of bytes read
uint32_t readFromMemory(const void* buffer);
-
+
void dump() const;
void toDumpString(SkString*) const;
@@ -551,7 +551,7 @@ private:
/** Set if the matrix will map a rectangle to another rectangle. This
can be true if the matrix is scale-only, or rotates a multiple of
90 degrees.
-
+
This bit will be set on identity matrices
*/
kRectStaysRect_Mask = 0x10,
@@ -617,7 +617,7 @@ private:
}
return ((fTypeMask & 0xF) == 0);
}
-
+
static bool Poly2Proc(const SkPoint[], SkMatrix*, const SkPoint& scale);
static bool Poly3Proc(const SkPoint[], SkMatrix*, const SkPoint& scale);
static bool Poly4Proc(const SkPoint[], SkMatrix*, const SkPoint& scale);
@@ -629,9 +629,9 @@ private:
static void Rot_xy(const SkMatrix&, SkScalar, SkScalar, SkPoint*);
static void RotTrans_xy(const SkMatrix&, SkScalar, SkScalar, SkPoint*);
static void Persp_xy(const SkMatrix&, SkScalar, SkScalar, SkPoint*);
-
+
static const MapXYProc gMapXYProcs[];
-
+
static void Identity_pts(const SkMatrix&, SkPoint[], const SkPoint[], int);
static void Trans_pts(const SkMatrix&, SkPoint dst[], const SkPoint[], int);
static void Scale_pts(const SkMatrix&, SkPoint dst[], const SkPoint[], int);
@@ -641,7 +641,7 @@ private:
static void RotTrans_pts(const SkMatrix&, SkPoint dst[], const SkPoint[],
int count);
static void Persp_pts(const SkMatrix&, SkPoint dst[], const SkPoint[], int);
-
+
static const MapPtsProc gMapPtsProcs[];
friend class SkPerspIter;
diff --git a/include/core/SkOSFile.h b/include/core/SkOSFile.h
index 9f01ead683..45d9d66270 100644
--- a/include/core/SkOSFile.h
+++ b/include/core/SkOSFile.h
@@ -7,7 +7,7 @@
*/
-//
+//
#ifndef SkOSFile_DEFINED
#define SkOSFile_DEFINED
diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h
index 0e68f03fcf..096344f6dd 100644
--- a/include/core/SkPaint.h
+++ b/include/core/SkPaint.h
@@ -208,7 +208,7 @@ public:
bool isVerticalText() const {
return SkToBool(this->getFlags() & kVerticalText_Flag);
}
-
+
/**
* Helper for setting or clearing the kVerticalText_Flag bit in
* setFlags(...).
@@ -583,7 +583,7 @@ public:
SkImageFilter* getImageFilter() const { return fImageFilter; }
SkImageFilter* setImageFilter(SkImageFilter*);
-
+
SkAnnotation* getAnnotation() const { return fAnnotation; }
SkAnnotation* setAnnotation(SkAnnotation*);
@@ -787,7 +787,7 @@ public:
/** Return the number of bytes of text that were measured. If
* isVerticalText() is true, then the vertical advances are used for
* the measurement.
- *
+ *
* @param text The text to be measured
* @param length Number of bytes of text to measure
* @param maxWidth Maximum width. Only the subset of text whose accumulated
@@ -826,7 +826,7 @@ public:
void getTextPath(const void* text, size_t length, SkScalar x, SkScalar y,
SkPath* path) const;
- void getPosTextPath(const void* text, size_t length,
+ void getPosTextPath(const void* text, size_t length,
const SkPoint pos[], SkPath* path) const;
#ifdef SK_BUILD_FOR_ANDROID
@@ -858,18 +858,18 @@ public:
}
return !this->getRasterizer();
}
-
+
/** Only call this if canComputeFastBounds() returned true. This takes a
raw rectangle (the raw bounds of a shape), and adjusts it for stylistic
effects in the paint (e.g. stroking). If needed, it uses the storage
rect parameter. It returns the adjusted bounds that can then be used
for quickReject tests.
-
+
The returned rect will either be orig or storage, thus the caller
should not rely on storage being set to the result, but should always
use the retured value. It is legal for orig and storage to be the same
rect.
-
+
e.g.
if (paint.canComputeFastBounds()) {
SkRect r, storage;
@@ -891,20 +891,20 @@ public:
return orig;
}
}
-
+
return this->doComputeFastBounds(orig, storage, style);
}
-
+
const SkRect& computeFastStrokeBounds(const SkRect& orig,
SkRect* storage) const {
return this->doComputeFastBounds(orig, storage, kStroke_Style);
}
-
+
// Take the style explicitly, so the caller can force us to be stroked
// without having to make a copy of the paint just to change that field.
const SkRect& doComputeFastBounds(const SkRect& orig, SkRect* storage,
Style) const;
-
+
private:
SkTypeface* fTypeface;
SkScalar fTextSize;
diff --git a/include/core/SkPath.h b/include/core/SkPath.h
index 4f0ee7de6f..6016895e94 100644
--- a/include/core/SkPath.h
+++ b/include/core/SkPath.h
@@ -181,7 +181,7 @@ public:
This does NOT change the fill-type setting nor isConvex
*/
void reset();
-
+
/** Similar to reset(), in that all lines and curves are removed from the
path. However, any internal storage for those lines/curves is retained,
making reuse of the path potentially faster.
@@ -246,7 +246,7 @@ public:
/** Returns true if the path specifies a rectangle. If so, and if rect is
not null, set rect to the bounds of the path. If the path does not
specify a rectangle, return false and ignore rect.
-
+
@param rect If not null, returns the bounds of the path if it specifies
a rectangle
@return true if the path specifies a rectangle
@@ -266,7 +266,7 @@ public:
SkPoint getPoint(int index) const;
/** Returns the number of points in the path. Up to max points are copied.
-
+
@param points If not null, receives up to max points
@param max The maximum number of points to copy into points
@return the actual number of points in the path
@@ -281,7 +281,7 @@ public:
/** Returns the number of verbs in the path. Up to max verbs are copied. The
verbs are copied as one byte per verb.
-
+
@param verbs If not null, receives up to max verbs
@param max The maximum number of verbs to copy into verbs
@return the actual number of verbs in the path
@@ -317,21 +317,21 @@ public:
/** Hint to the path to prepare for adding more points. This can allow the
path to more efficiently grow its storage.
-
+
@param extraPtCount The number of extra points the path should
preallocate for.
*/
void incReserve(unsigned extraPtCount);
/** Set the beginning of the next contour to the point (x,y).
-
+
@param x The x-coordinate of the start of a new contour
@param y The y-coordinate of the start of a new contour
*/
void moveTo(SkScalar x, SkScalar y);
/** Set the beginning of the next contour to the point
-
+
@param p The start of a new contour
*/
void moveTo(const SkPoint& p) {
@@ -341,7 +341,7 @@ public:
/** Set the beginning of the next contour relative to the last point on the
previous contour. If there is no previous contour, this is treated the
same as moveTo().
-
+
@param dx The amount to add to the x-coordinate of the end of the
previous contour, to specify the start of a new contour
@param dy The amount to add to the y-coordinate of the end of the
@@ -371,7 +371,7 @@ public:
/** Same as lineTo, but the coordinates are considered relative to the last
point on this contour. If there is no previous point, then a moveTo(0,0)
is inserted automatically.
-
+
@param dx The amount to add to the x-coordinate of the previous point
on this contour, to specify a line
@param dy The amount to add to the y-coordinate of the previous point
@@ -382,7 +382,7 @@ public:
/** Add a quadratic bezier from the last point, approaching control point
(x1,y1), and ending at (x2,y2). If no moveTo() call has been made for
this contour, the first point is automatically set to (0,0).
-
+
@param x1 The x-coordinate of the control point on a quadratic curve
@param y1 The y-coordinate of the control point on a quadratic curve
@param x2 The x-coordinate of the end point on a quadratic curve
@@ -393,7 +393,7 @@ public:
/** Add a quadratic bezier from the last point, approaching control point
p1, and ending at p2. If no moveTo() call has been made for this
contour, the first point is automatically set to (0,0).
-
+
@param p1 The control point on a quadratic curve
@param p2 The end point on a quadratic curve
*/
@@ -419,7 +419,7 @@ public:
/** Add a cubic bezier from the last point, approaching control points
(x1,y1) and (x2,y2), and ending at (x3,y3). If no moveTo() call has been
made for this contour, the first point is automatically set to (0,0).
-
+
@param x1 The x-coordinate of the 1st control point on a cubic curve
@param y1 The y-coordinate of the 1st control point on a cubic curve
@param x2 The x-coordinate of the 2nd control point on a cubic curve
@@ -433,7 +433,7 @@ public:
/** Add a cubic bezier from the last point, approaching control points p1
and p2, and ending at p3. If no moveTo() call has been made for this
contour, the first point is automatically set to (0,0).
-
+
@param p1 The 1st control point on a cubic curve
@param p2 The 2nd control point on a cubic curve
@param p3 The end point on a cubic curve
@@ -445,7 +445,7 @@ public:
/** Same as cubicTo, but the coordinates are considered relative to the
current point on this contour. If there is no previous point, then a
moveTo(0,0) is inserted automatically.
-
+
@param dx1 The amount to add to the x-coordinate of the last point on
this contour, to specify the 1st control point of a cubic curve
@param dy1 The amount to add to the y-coordinate of the last point on
@@ -467,7 +467,7 @@ public:
automatic lineTo() is added to connect the current contour to the start
of the arc. However, if the path is empty, then we call moveTo() with
the first point of the arc. The sweep angle is treated mod 360.
-
+
@param oval The bounding oval defining the shape and size of the arc
@param startAngle Starting angle (in degrees) where the arc begins
@param sweepAngle Sweep angle (in degrees) measured clockwise. This is
@@ -562,7 +562,7 @@ public:
Direction dir = kCW_Direction);
/** Add the specified arc to the path as a new contour.
-
+
@param oval The bounds of oval used to define the size of the arc
@param startAngle Starting angle (in degrees) where the arc begins
@param sweepAngle Sweep angle (in degrees) measured clockwise
@@ -627,17 +627,17 @@ public:
void reverseAddPath(const SkPath& src);
/** Offset the path by (dx,dy), returning true on success
-
- @param dx The amount in the X direction to offset the entire path
- @param dy The amount in the Y direction to offset the entire path
+
+ @param dx The amount in the X direction to offset the entire path
+ @param dy The amount in the Y direction to offset the entire path
@param dst The translated path is written here
*/
void offset(SkScalar dx, SkScalar dy, SkPath* dst) const;
/** Offset the path by (dx,dy), returning true on success
-
- @param dx The amount in the X direction to offset the entire path
- @param dy The amount in the Y direction to offset the entire path
+
+ @param dx The amount in the X direction to offset the entire path
+ @param dy The amount in the Y direction to offset the entire path
*/
void offset(SkScalar dx, SkScalar dy) {
this->offset(dx, dy, this);
@@ -645,7 +645,7 @@ public:
/** Transform the points in this path by matrix, and write the answer into
dst.
-
+
@param matrix The matrix to apply to the path
@param dst The transformed path is written here
*/
@@ -662,14 +662,14 @@ public:
/** Return the last point on the path. If no points have been added, (0,0)
is returned. If there are no points, this returns false, otherwise it
returns true.
-
+
@param lastPt The last point on the path is returned here
*/
bool getLastPt(SkPoint* lastPt) const;
/** Set the last point on the path. If no points have been added,
moveTo(x,y) is automatically called.
-
+
@param x The new x-coordinate for the last point
@param y The new y-coordinate for the last point
*/
@@ -780,7 +780,7 @@ public:
/** Return the next verb in this iteration of the path. When all
segments have been visited, return kDone_Verb.
-
+
@param pts The points representing the current verb and/or segment
This must not be NULL.
@return The verb for the current segment
diff --git a/include/core/SkPathEffect.h b/include/core/SkPathEffect.h
index accdc39f37..5d9b68af36 100644
--- a/include/core/SkPathEffect.h
+++ b/include/core/SkPathEffect.h
@@ -42,7 +42,7 @@ public:
bool isHairlineStyle() const {
return kHairline_Style == this->getStyle();
}
-
+
bool isFillStyle() const {
return kFill_Style == this->getStyle();
}
@@ -157,7 +157,7 @@ protected:
// these are visible to our subclasses
SkPathEffect* fPE0, *fPE1;
-
+
private:
typedef SkPathEffect INHERITED;
};
@@ -188,7 +188,7 @@ private:
// illegal
SkComposePathEffect(const SkComposePathEffect&);
SkComposePathEffect& operator=(const SkComposePathEffect&);
-
+
typedef SkPairPathEffect INHERITED;
};
diff --git a/include/core/SkPathMeasure.h b/include/core/SkPathMeasure.h
index 3419e6683f..6866ccedae 100644
--- a/include/core/SkPathMeasure.h
+++ b/include/core/SkPathMeasure.h
@@ -41,7 +41,7 @@ public:
Returns false if there is no path, or a zero-length path was specified, in which case
position and tangent are unchanged.
*/
- bool SK_WARN_UNUSED_RESULT getPosTan(SkScalar distance, SkPoint* position,
+ bool SK_WARN_UNUSED_RESULT getPosTan(SkScalar distance, SkPoint* position,
SkVector* tangent);
enum MatrixFlags {
@@ -55,7 +55,7 @@ public:
Returns false if there is no path, or a zero-length path was specified, in which case
matrix is unchanged.
*/
- bool SK_WARN_UNUSED_RESULT getMatrix(SkScalar distance, SkMatrix* matrix,
+ bool SK_WARN_UNUSED_RESULT getMatrix(SkScalar distance, SkMatrix* matrix,
MatrixFlags flags = kGetPosAndTan_MatrixFlag);
/** Given a start and stop distance, return in dst the intervening segment(s).
diff --git a/include/core/SkPicture.h b/include/core/SkPicture.h
index dae7ed7829..8a633dc910 100644
--- a/include/core/SkPicture.h
+++ b/include/core/SkPicture.h
@@ -43,12 +43,12 @@ public:
*/
explicit SkPicture(SkStream*);
virtual ~SkPicture();
-
+
/**
* Swap the contents of the two pictures. Guaranteed to succeed.
*/
void swap(SkPicture& other);
-
+
enum RecordingFlags {
/* This flag specifies that when clipPath() is called, the path will
be faithfully recorded, but the recording canvas' current clip will
@@ -92,7 +92,7 @@ public:
@param surface the canvas receiving the drawing commands.
*/
void draw(SkCanvas* surface);
-
+
/** Return the width of the picture's recording canvas. This
value reflects what was passed to setSize(), and does not necessarily
reflect the bounds of what has been recorded into the picture.
@@ -111,10 +111,10 @@ public:
/** Signals that the caller is prematurely done replaying the drawing
commands. This can be called from a canvas virtual while the picture
- is drawing. Has no effect if the picture is not drawing.
+ is drawing. Has no effect if the picture is not drawing.
*/
void abortPlayback();
-
+
private:
int fWidth, fHeight;
SkPictureRecord* fRecord;
@@ -136,11 +136,11 @@ public:
~SkAutoPictureRecord() {
fPicture->endRecording();
}
-
+
/** Return the canvas to draw into for recording into the picture.
*/
SkCanvas* getRecordingCanvas() const { return fCanvas; }
-
+
private:
SkPicture* fPicture;
SkCanvas* fCanvas;
diff --git a/include/core/SkPixelRef.h b/include/core/SkPixelRef.h
index 1b632d36e8..9222b29e43 100644
--- a/include/core/SkPixelRef.h
+++ b/include/core/SkPixelRef.h
@@ -121,7 +121,7 @@ public:
/** Makes a deep copy of this PixelRef, respecting the requested config.
Returns NULL if either there is an error (e.g. the destination could
- not be created with the given config), or this PixelRef does not
+ not be created with the given config), or this PixelRef does not
support deep copies. */
virtual SkPixelRef* deepCopy(SkBitmap::Config config) { return NULL; }
diff --git a/include/core/SkPoint.h b/include/core/SkPoint.h
index 5e20f530c4..1ba710d85a 100644
--- a/include/core/SkPoint.h
+++ b/include/core/SkPoint.h
@@ -173,7 +173,7 @@ struct SK_API SkPoint {
fX = SkScalarAbs(pt.fX);
fY = SkScalarAbs(pt.fY);
}
-
+
// counter-clockwise fan
void setIRectFan(int l, int t, int r, int b) {
SkPoint* v = this;
@@ -322,10 +322,10 @@ struct SK_API SkPoint {
SkScalar accum = 0;
accum *= fX;
accum *= fY;
-
+
// accum is either NaN or it is finite (zero).
SkASSERT(0 == accum || !(accum == accum));
-
+
// value==value will be true iff value is not NaN
// TODO: is it faster to say !accum or accum==accum?
return accum == accum;
@@ -431,11 +431,11 @@ struct SK_API SkPoint {
SkScalar dot(const SkPoint& vec) const {
return DotProduct(*this, vec);
}
-
+
SkScalar lengthSqd() const {
return DotProduct(*this, *this);
}
-
+
SkScalar distanceToSqd(const SkPoint& pt) const {
SkScalar dx = fX - pt.fX;
SkScalar dy = fY - pt.fY;
diff --git a/include/core/SkPreConfig.h b/include/core/SkPreConfig.h
index 55b1abf3bc..9104fa47a3 100644
--- a/include/core/SkPreConfig.h
+++ b/include/core/SkPreConfig.h
@@ -48,7 +48,7 @@
/* Even if the user only defined the NDK variant we still need to build
* the default Android code. Therefore, when attempting to include/exclude
- * something from the NDK variant check first that we are building for
+ * something from the NDK variant check first that we are building for
* Android then check the status of the NDK define.
*/
#if defined(SK_BUILD_FOR_ANDROID_NDK) && !defined(SK_BUILD_FOR_ANDROID)
diff --git a/include/core/SkReader32.h b/include/core/SkReader32.h
index 1bdf949566..4f6809fd9e 100644
--- a/include/core/SkReader32.h
+++ b/include/core/SkReader32.h
@@ -27,11 +27,11 @@ public:
void setMemory(const void* data, size_t size) {
SkASSERT(ptr_align_4(data));
SkASSERT(SkAlign4(size) == size);
-
+
fBase = fCurr = (const char*)data;
fStop = (const char*)data + size;
}
-
+
uint32_t size() const { return SkToU32(fStop - fBase); }
uint32_t offset() const { return SkToU32(fCurr - fBase); }
bool eof() const { return fCurr >= fStop; }
@@ -40,7 +40,7 @@ public:
uint32_t available() const { return SkToU32(fStop - fCurr); }
bool isAvailable(uint32_t size) const { return fCurr + size <= fStop; }
-
+
void rewind() { fCurr = fBase; }
void setOffset(size_t offset) {
@@ -48,9 +48,9 @@ public:
SkASSERT(offset <= this->size());
fCurr = fBase + offset;
}
-
+
bool readBool() { return this->readInt() != 0; }
-
+
int32_t readInt() {
SkASSERT(ptr_align_4(fCurr));
int32_t value = *(const int32_t*)fCurr;
@@ -78,7 +78,7 @@ public:
SkASSERT(fCurr <= fStop);
return value;
}
-
+
const void* skip(size_t size) {
SkASSERT(ptr_align_4(fCurr));
const void* addr = fCurr;
@@ -86,7 +86,7 @@ public:
SkASSERT(fCurr <= fStop);
return addr;
}
-
+
template <typename T> const T& skipT() {
SkASSERT(SkAlign4(sizeof(T)) == sizeof(T));
return *(const T*)this->skip(sizeof(T));
@@ -99,7 +99,7 @@ public:
fCurr += SkAlign4(size);
SkASSERT(fCurr <= fStop);
}
-
+
uint8_t readU8() { return (uint8_t)this->readInt(); }
uint16_t readU16() { return (uint16_t)this->readInt(); }
int32_t readS32() { return this->readInt(); }
@@ -141,7 +141,7 @@ private:
const char* fCurr; // current position within buffer
const char* fStop; // end of buffer
const char* fBase; // beginning of buffer
-
+
#ifdef SK_DEBUG
static bool ptr_align_4(const void* ptr) {
return (((const char*)ptr - (const char*)NULL) & 3) == 0;
diff --git a/include/core/SkRect.h b/include/core/SkRect.h
index 723f5f6e2b..23af56006c 100644
--- a/include/core/SkRect.h
+++ b/include/core/SkRect.h
@@ -25,25 +25,25 @@ struct SK_API SkIRect {
r.setEmpty();
return r;
}
-
+
static SkIRect SK_WARN_UNUSED_RESULT MakeWH(int32_t w, int32_t h) {
SkIRect r;
r.set(0, 0, w, h);
return r;
}
-
+
static SkIRect SK_WARN_UNUSED_RESULT MakeSize(const SkISize& size) {
SkIRect r;
r.set(0, 0, size.width(), size.height());
return r;
}
-
+
static SkIRect SK_WARN_UNUSED_RESULT MakeLTRB(int32_t l, int32_t t, int32_t r, int32_t b) {
SkIRect rect;
rect.set(l, t, r, b);
return rect;
}
-
+
static SkIRect SK_WARN_UNUSED_RESULT MakeXYWH(int32_t x, int32_t y, int32_t w, int32_t h) {
SkIRect r;
r.set(x, y, x + w, y + h);
@@ -54,7 +54,7 @@ struct SK_API SkIRect {
int top() const { return fTop; }
int right() const { return fRight; }
int bottom() const { return fBottom; }
-
+
/** return the left edge of the rect */
int x() const { return fLeft; }
/** return the top edge of the rect */
@@ -64,18 +64,18 @@ struct SK_API SkIRect {
* (i.e. left <= right) so the result may be negative.
*/
int width() const { return fRight - fLeft; }
-
+
/**
* Returns the rectangle's height. This does not check for a valid rect
* (i.e. top <= bottom) so the result may be negative.
*/
int height() const { return fBottom - fTop; }
-
+
/**
* Return true if the rectangle's width or height are <= 0
*/
bool isEmpty() const { return fLeft >= fRight || fTop >= fBottom; }
-
+
friend bool operator==(const SkIRect& a, const SkIRect& b) {
return !memcmp(&a, &b, sizeof(a));
}
@@ -118,7 +118,7 @@ struct SK_API SkIRect {
fLeft = fTop = SK_MinS32;
fRight = fBottom = SK_MaxS32;
}
-
+
/**
* Make the largest representable rectangle, but inverted (e.g. fLeft will
* be max 32bit and right will be min 32bit).
@@ -127,7 +127,7 @@ struct SK_API SkIRect {
fLeft = fTop = SK_MaxS32;
fRight = fBottom = SK_MinS32;
}
-
+
/** Offset set the rectangle by adding dx to its left and right,
and adding dy to its top and bottom.
*/
@@ -163,7 +163,7 @@ struct SK_API SkIRect {
bool quickReject(int l, int t, int r, int b) const {
return l >= fRight || fLeft >= r || t >= fBottom || fTop >= b;
}
-
+
/** Returns true if (x,y) is inside the rectangle and the rectangle is not
empty. The left and top are considered to be inside, while the right
and bottom are not. Thus for the rectangle (0, 0, 5, 10), the
@@ -205,11 +205,11 @@ struct SK_API SkIRect {
return fLeft <= left && fTop <= top &&
fRight >= right && fBottom >= bottom;
}
-
+
bool containsNoEmptyCheck(const SkIRect& r) const {
return containsNoEmptyCheck(r.fLeft, r.fTop, r.fRight, r.fBottom);
}
-
+
/** If r intersects this rectangle, return true and set this rectangle to that
intersection, otherwise return false and do not change this rectangle.
If either rectangle is empty, do nothing and return false.
@@ -225,7 +225,7 @@ struct SK_API SkIRect {
*/
bool intersect(const SkIRect& a, const SkIRect& b) {
SkASSERT(&a && &b);
-
+
if (!a.isEmpty() && !b.isEmpty() &&
a.fLeft < b.fRight && b.fLeft < a.fRight &&
a.fTop < b.fBottom && b.fTop < a.fBottom) {
@@ -237,7 +237,7 @@ struct SK_API SkIRect {
}
return false;
}
-
+
/** If rectangles a and b intersect, return true and set this rectangle to
that intersection, otherwise return false and do not change this
rectangle. For speed, no check to see if a or b are empty is performed.
@@ -247,7 +247,7 @@ struct SK_API SkIRect {
bool intersectNoEmptyCheck(const SkIRect& a, const SkIRect& b) {
SkASSERT(&a && &b);
SkASSERT(!a.isEmpty() && !b.isEmpty());
-
+
if (a.fLeft < b.fRight && b.fLeft < a.fRight &&
a.fTop < b.fBottom && b.fTop < a.fBottom) {
fLeft = SkMax32(a.fLeft, b.fLeft);
@@ -275,7 +275,7 @@ struct SK_API SkIRect {
}
return false;
}
-
+
/** Returns true if a and b are not empty, and they intersect
*/
static bool Intersects(const SkIRect& a, const SkIRect& b) {
@@ -283,7 +283,7 @@ struct SK_API SkIRect {
a.fLeft < b.fRight && b.fLeft < a.fRight &&
a.fTop < b.fBottom && b.fTop < a.fBottom;
}
-
+
/**
* Returns true if a and b intersect. debug-asserts that neither are empty.
*/
@@ -293,7 +293,7 @@ struct SK_API SkIRect {
return a.fLeft < b.fRight && b.fLeft < a.fRight &&
a.fTop < b.fBottom && b.fTop < a.fBottom;
}
-
+
/** Update this rectangle to enclose itself and the specified rectangle.
If this rectangle is empty, just set it to the specified rectangle. If the specified
rectangle is empty, do nothing.
@@ -360,7 +360,7 @@ struct SK_API SkRect {
* Return true if the rectangle's width or height are <= 0
*/
bool isEmpty() const { return fLeft >= fRight || fTop >= fBottom; }
-
+
/**
* Returns true iff all values in the rect are finite. If any are
* infinite or NaN (or SK_FixedNaN when SkScalar is fixed) then this
@@ -373,7 +373,7 @@ struct SK_API SkRect {
accum *= fTop;
accum *= fRight;
accum *= fBottom;
-
+
// accum is either NaN or it is finite (zero).
SkASSERT(0 == accum || !(accum == accum));
@@ -459,14 +459,14 @@ struct SK_API SkRect {
void setBounds(const SkPoint pts[], int count) {
(void)this->setBoundsCheck(pts, count);
}
-
+
/**
* Compute the bounds of the array of points, and set this rect to that
* bounds and return true... unless a non-finite value is encountered,
* in which case this rect is set to empty and false is returned.
*/
bool setBoundsCheck(const SkPoint pts[], int count);
-
+
void set(const SkPoint& p0, const SkPoint& p1) {
fLeft = SkMinScalar(p0.fX, p1.fX);
fRight = SkMaxScalar(p0.fX, p1.fX);
@@ -488,7 +488,7 @@ struct SK_API SkRect {
fLeft = fTop = SK_ScalarMin;
fRight = fBottom = SK_ScalarMax;
}
-
+
/**
* Make the largest representable rectangle, but inverted (e.g. fLeft will
* be max and right will be min).
@@ -506,7 +506,7 @@ struct SK_API SkRect {
fTop += dy;
fRight += dx;
fBottom += dy;
- }
+ }
void offset(const SkPoint& delta) {
this->offset(delta.fX, delta.fY);
@@ -562,7 +562,7 @@ struct SK_API SkRect {
* rectangle. If either rectangle is empty, do nothing and return false.
*/
bool intersect(const SkRect& a, const SkRect& b);
-
+
/**
* Return true if rectangles a and b are not empty and intersect.
*/
@@ -571,7 +571,7 @@ struct SK_API SkRect {
a.fLeft < b.fRight && b.fLeft < a.fRight &&
a.fTop < b.fBottom && b.fTop < a.fBottom;
}
-
+
/**
* Update this rectangle to enclose itself and the specified rectangle.
* If this rectangle is empty, just set it to the specified rectangle.
@@ -604,7 +604,7 @@ struct SK_API SkRect {
fTop = SkMinScalar(y, fTop);
fBottom = SkMaxScalar(y, fBottom);
}
-
+
/**
* Returns true if (p.fX,p.fY) is inside the rectangle, and the rectangle
* is not empty.
diff --git a/include/core/SkRegion.h b/include/core/SkRegion.h
index 2aab42385b..ab8f220a35 100644
--- a/include/core/SkRegion.h
+++ b/include/core/SkRegion.h
@@ -33,7 +33,7 @@ public:
enum {
kRunTypeSentinel = 0x7FFFFFFF
};
-
+
SkRegion();
SkRegion(const SkRegion&);
explicit SkRegion(const SkIRect&);
@@ -53,7 +53,7 @@ public:
bool operator!=(const SkRegion& other) const {
return !(*this == other);
}
-
+
/**
* Replace this region with the specified region, and return true if the
* resulting region is non-empty.
@@ -117,7 +117,7 @@ public:
* @return true if the resulting region is non-empty
*/
bool setRects(const SkIRect rects[], int count);
-
+
/**
* Set this region to the specified region, and return true if it is
* non-empty.
@@ -131,13 +131,13 @@ public:
* drawn by the path (with no antialiasing) with the specified clip.
*/
bool setPath(const SkPath&, const SkRegion& clip);
-
+
/**
* Returns true if the specified rectangle has a non-empty intersection
* with this region.
*/
bool intersects(const SkIRect&) const;
-
+
/**
* Returns true if the specified region has a non-empty intersection
* with this region.
@@ -185,14 +185,14 @@ public:
bool quickContains(int32_t left, int32_t top, int32_t right,
int32_t bottom) const {
SkASSERT(this->isEmpty() == fBounds.isEmpty()); // valid region
-
+
return left < right && top < bottom &&
fRunHead == SkRegion_gRectRunHeadPtr && // this->isRect()
/* fBounds.contains(left, top, right, bottom); */
fBounds.fLeft <= left && fBounds.fTop <= top &&
fBounds.fRight >= right && fBounds.fBottom >= bottom;
}
-
+
/**
* Return true if this region is empty, or if the specified rectangle does
* not intersect the region. Returning false is not a guarantee that they
@@ -236,14 +236,14 @@ public:
kReverseDifference_Op,
kReplace_Op //!< replace the dst region with the op region
};
-
+
/**
* Set this region to the result of applying the Op to this region and the
* specified rectangle: this = (this op rect).
* Return true if the resulting region is non-empty.
*/
bool op(const SkIRect& rect, Op op) { return this->op(*this, rect, op); }
-
+
/**
* Set this region to the result of applying the Op to this region and the
* specified rectangle: this = (this op rect).
@@ -254,7 +254,7 @@ public:
rect.set(left, top, right, bottom);
return this->op(*this, rect, op);
}
-
+
/**
* Set this region to the result of applying the Op to this region and the
* specified region: this = (this op rgn).
@@ -387,7 +387,7 @@ private:
friend class android::Region; // needed for marshalling efficiently
struct RunHead;
-
+
// allocate space for count runs
void allocateRuns(int count);
void allocateRuns(int count, int ySpanCount, int intervalCount);
@@ -397,21 +397,21 @@ private:
RunHead* fRunHead;
void freeRuns();
-
+
/**
* Return the runs from this region, consing up fake runs if the region
* is empty or a rect. In those 2 cases, we use tmpStorage to hold the
* run data.
*/
const RunType* getRuns(RunType tmpStorage[], int* intervals) const;
-
+
// This is called with runs[] that do not yet have their interval-count
// field set on each scanline. That is computed as part of this call
// (inside ComputeRunBounds).
bool setRuns(RunType runs[], int count);
int count_runtype_values(int* itop, int* ibot) const;
-
+
static void BuildRectRuns(const SkIRect& bounds,
RunType runs[kRectRegionRuns]);
diff --git a/include/core/SkShader.h b/include/core/SkShader.h
index 57d920c55e..4c20605cd7 100644
--- a/include/core/SkShader.h
+++ b/include/core/SkShader.h
@@ -309,7 +309,7 @@ public:
* need to create textures. The sampler parameter is necessary to set
* up matrix/tile modes/etc, and will eventually be removed.
*/
- virtual GrCustomStage* asNewCustomStage(GrContext* context,
+ virtual GrCustomStage* asNewCustomStage(GrContext* context,
GrSamplerState* sampler) const;
//////////////////////////////////////////////////////////////////////////
diff --git a/include/core/SkSize.h b/include/core/SkSize.h
index 12dbeae424..808583f3e8 100644
--- a/include/core/SkSize.h
+++ b/include/core/SkSize.h
@@ -36,15 +36,15 @@ template <typename T> struct SkTSize {
bool isEmpty() const {
return fWidth <= 0 || fHeight <= 0;
}
-
+
/** Set the width and height to 0 */
void setEmpty() {
fWidth = fHeight = 0;
}
-
- T width() const { return fWidth; }
- T height() const { return fHeight; }
-
+
+ T width() const { return fWidth; }
+ T height() const { return fHeight; }
+
/** If width or height is < 0, it is set to 0 */
void clampNegToZero() {
if (fWidth < 0) {
@@ -54,7 +54,7 @@ template <typename T> struct SkTSize {
fHeight = 0;
}
}
-
+
bool equals(T w, T h) const {
return fWidth == w && fHeight == h;
}
@@ -83,8 +83,8 @@ struct SkSize : public SkTSize<SkScalar> {
s.fHeight = h;
return s;
}
-
-
+
+
SkSize& operator=(const SkISize& src) {
this->set(SkIntToScalar(src.fWidth), SkIntToScalar(src.fHeight));
return *this;
diff --git a/include/core/SkStream.h b/include/core/SkStream.h
index f394deeb9c..08d087815b 100644
--- a/include/core/SkStream.h
+++ b/include/core/SkStream.h
@@ -40,7 +40,7 @@ public:
/** Return the total length of the stream.
*/
size_t getLength() { return this->read(NULL, 0); }
-
+
/** Skip the specified number of bytes, returning the actual number
of bytes that could be skipped.
*/
@@ -91,7 +91,7 @@ public:
virtual void flush();
// helpers
-
+
bool write8(U8CPU);
bool write16(U16CPU);
bool write32(uint32_t);
@@ -101,11 +101,11 @@ public:
bool writeBigDecAsText(int64_t, int minDigits = 0);
bool writeHexAsText(uint32_t, int minDigits = 0);
bool writeScalarAsText(SkScalar);
-
+
bool writeBool(bool v) { return this->write8(v); }
bool writeScalar(SkScalar);
bool writePackedUInt(size_t);
-
+
bool writeStream(SkStream* input, size_t length);
bool writeData(const SkData*);
@@ -161,15 +161,15 @@ public:
*/
SkFDStream(int fileDesc, bool closeWhenDone);
virtual ~SkFDStream();
-
+
/** Returns true if the current path could be opened.
*/
bool isValid() const { return fFD >= 0; }
-
+
virtual bool rewind() SK_OVERRIDE;
virtual size_t read(void* buffer, size_t size) SK_OVERRIDE;
virtual const char* getFileName() SK_OVERRIDE { return NULL; }
-
+
private:
int fFD;
bool fCloseWhenDone;
@@ -222,7 +222,7 @@ public:
const void* getAtPos();
size_t seek(size_t offset);
size_t peek() const { return fOffset; }
-
+
private:
SkData* fData;
size_t fOffset;
diff --git a/include/core/SkSurface.h b/include/core/SkSurface.h
index 884045fd39..8e407b92f6 100644
--- a/include/core/SkSurface.h
+++ b/include/core/SkSurface.h
@@ -79,13 +79,13 @@ public:
* 0.
*/
uint32_t generationID() const;
-
+
/**
* Call this if the contents have changed. This will (lazily) force a new
* value to be returned from generationID() when it is called next.
*/
void notifyContentChanged();
-
+
/**
* Return a canvas that will draw into this surface. This will always
* return the same canvas for a given surface, and is manged/owned by the
diff --git a/include/core/SkTArray.h b/include/core/SkTArray.h
index 01fc1421b3..3ca66793f4 100644
--- a/include/core/SkTArray.h
+++ b/include/core/SkTArray.h
@@ -60,13 +60,13 @@ public:
}
/**
- * Creates an empty array that will preallocate space for reserveCount
+ * Creates an empty array that will preallocate space for reserveCount
* elements.
*/
explicit SkTArray(int reserveCount) {
this->init(NULL, 0, NULL, reserveCount);
}
-
+
/**
* Copies one array to another. The new array will be heap allocated.
*/
@@ -75,7 +75,7 @@ public:
}
/**
- * Creates a SkTArray by copying contents of a standard C array. The new
+ * Creates a SkTArray by copying contents of a standard C array. The new
* array will be heap allocated. Be careful not to use this constructor
* when you really want the (void*, int) version.
*/
diff --git a/include/core/SkTDArray.h b/include/core/SkTDArray.h
index 2d7ec186a6..997a07022b 100644
--- a/include/core/SkTDArray.h
+++ b/include/core/SkTDArray.h
@@ -121,7 +121,7 @@ public:
SkASSERT(fReserve == 0 && fCount == 0);
}
}
-
+
void rewind() {
// same as setCount(0)
fCount = 0;
@@ -166,9 +166,9 @@ public:
}
return fArray + oldCount;
}
-
+
T* appendClear() {
- T* result = this->append();
+ T* result = this->append();
*result = 0;
return result;
}
diff --git a/include/core/SkTDLinkedList.h b/include/core/SkTDLinkedList.h
index a76ef96acd..7afb5b1b83 100644
--- a/include/core/SkTDLinkedList.h
+++ b/include/core/SkTDLinkedList.h
@@ -10,7 +10,7 @@
#include "SkTypes.h"
-/**
+/**
* Helper class to automatically initialize the doubly linked list
* created pointers.
*/
@@ -91,8 +91,8 @@ public:
#endif
}
- bool isEmpty() const {
- return NULL == fHead && NULL == fTail;
+ bool isEmpty() const {
+ return NULL == fHead && NULL == fTail;
}
class Iter {
diff --git a/include/core/SkTLazy.h b/include/core/SkTLazy.h
index 9cfaccbc7a..cf2d943829 100644
--- a/include/core/SkTLazy.h
+++ b/include/core/SkTLazy.h
@@ -76,13 +76,13 @@ public:
* false otherwise.
*/
bool isValid() const { return NULL != fPtr; }
-
+
/**
* Returns either NULL, or a copy of the object that was passed to
* set() or the constructor.
*/
T* get() const { SkASSERT(this->isValid()); return fPtr; }
-
+
private:
T* fPtr; // NULL or fStorage
char fStorage[sizeof(T)];
diff --git a/include/core/SkTSearch.h b/include/core/SkTSearch.h
index f6951da1d2..2541634d82 100644
--- a/include/core/SkTSearch.h
+++ b/include/core/SkTSearch.h
@@ -220,7 +220,7 @@ class SkAutoAsciiToLC {
public:
SkAutoAsciiToLC(const char str[], size_t len = (size_t)-1);
~SkAutoAsciiToLC();
-
+
const char* lc() const { return fLC; }
size_t length() const { return fLength; }
diff --git a/include/core/SkTemplates.h b/include/core/SkTemplates.h
index c152b31aac..e4c8bc44ca 100644
--- a/include/core/SkTemplates.h
+++ b/include/core/SkTemplates.h
@@ -141,7 +141,7 @@ public:
/** Return the array of T elements. Will be NULL if count == 0
*/
T* get() const { return fArray; }
-
+
/** Return the nth element in the array
*/
T& operator[](int index) const {
@@ -170,7 +170,7 @@ public:
}
fCount = count;
}
-
+
~SkAutoSTArray() {
if (fCount > N) {
delete[] fArray;
@@ -182,22 +182,22 @@ public:
}
}
}
-
+
/** Return the number of T elements in the array
*/
size_t count() const { return fCount; }
-
+
/** Return the array of T elements. Will be NULL if count == 0
*/
T* get() const { return fArray; }
-
+
/** Return the nth element in the array
*/
T& operator[](int index) const {
SkASSERT((unsigned)index < fCount);
return fArray[index];
}
-
+
private:
size_t fCount;
T* fArray;
diff --git a/include/core/SkThread.h b/include/core/SkThread.h
index 5b1fc1c213..4a2499a203 100644
--- a/include/core/SkThread.h
+++ b/include/core/SkThread.h
@@ -37,7 +37,7 @@ public:
SkASSERT(fMutex != NULL);
mutex.acquire();
}
-
+
SkAutoMutexAcquire(SkBaseMutex* mutex) : fMutex(mutex) {
if (mutex) {
mutex->acquire();
@@ -60,7 +60,7 @@ public:
fMutex = NULL;
}
}
-
+
private:
SkBaseMutex* fMutex;
};
diff --git a/include/core/SkTypeface.h b/include/core/SkTypeface.h
index 73794dbcdc..78ec9f7cb6 100644
--- a/include/core/SkTypeface.h
+++ b/include/core/SkTypeface.h
@@ -64,7 +64,7 @@ public:
data. Will never return 0.
*/
SkFontID uniqueID() const { return fUniqueID; }
-
+
/** Return the uniqueID for the specified typeface. If the face is null,
resolve it to the default font and return its uniqueID. Will never
return 0.
@@ -142,25 +142,25 @@ public:
/** Return the number of tables in the font. */
int countTables() const;
-
+
/** Copy into tags[] (allocated by the caller) the list of table tags in
* the font, and return the number. This will be the same as CountTables()
* or 0 if an error occured. If tags == NULL, this only returns the count
* (the same as calling countTables()).
*/
int getTableTags(SkFontTableTag tags[]) const;
-
+
/** Given a table tag, return the size of its contents, or 0 if not present
*/
size_t getTableSize(SkFontTableTag) const;
-
+
/** Copy the contents of a table into data (allocated by the caller). Note
* that the contents of the table will be in their native endian order
* (which for most truetype tables is big endian). If the table tag is
* not found, or there is an error copying the data, then 0 is returned.
* If this happens, it is possible that some or all of the memory pointed
* to by data may have been written to, even though an error has occured.
- *
+ *
* @param fontID the font to copy the table from
* @param tag The table tag whose contents are to be copied
* @param offset The offset in bytes into the table's contents where the
diff --git a/include/core/SkTypes.h b/include/core/SkTypes.h
index 73bd429667..eb87181e7f 100644
--- a/include/core/SkTypes.h
+++ b/include/core/SkTypes.h
@@ -432,7 +432,7 @@ public:
* malloc a new block of the smaller size.
*/
kAlloc_OnShrink,
-
+
/**
* If the requested size is smaller than the current size, and the
* current block is dynamically allocated, just return the old
diff --git a/include/core/SkUnPreMultiply.h b/include/core/SkUnPreMultiply.h
index 70889189d5..4fa5d579e9 100644
--- a/include/core/SkUnPreMultiply.h
+++ b/include/core/SkUnPreMultiply.h
@@ -18,7 +18,7 @@
class SK_API SkUnPreMultiply {
public:
typedef uint32_t Scale;
-
+
// index this table with alpha [0..255]
static const Scale* GetScaleTable() {
return gTable;
@@ -28,15 +28,15 @@ public:
SkASSERT(alpha <= 255);
return gTable[alpha];
}
-
+
/** Usage:
-
+
const Scale* table = SkUnPreMultiply::GetScaleTable();
-
+
for (...) {
unsigned a = ...
SkUnPreMultiply::Scale scale = table[a];
-
+
red = SkUnPreMultiply::ApplyScale(scale, red);
...
// now red is unpremultiplied
@@ -46,9 +46,9 @@ public:
SkASSERT(component <= 255);
return (scale * component + (1 << 23)) >> 24;
}
-
+
static SkColor PMColorToColor(SkPMColor c);
-
+
private:
static const uint32_t gTable[256];
};
diff --git a/include/core/SkUnitMapper.h b/include/core/SkUnitMapper.h
index 47a4dad6c1..45bb987870 100644
--- a/include/core/SkUnitMapper.h
+++ b/include/core/SkUnitMapper.h
@@ -24,7 +24,7 @@ public:
/** Given a value in [0..0xFFFF], return a value in the same range.
*/
virtual uint16_t mapUnit16(uint16_t x) = 0;
-
+
protected:
SkUnitMapper(SkFlattenableReadBuffer& rb) : SkFlattenable(rb) {}
diff --git a/include/core/SkWriter32.h b/include/core/SkWriter32.h
index 793e815b3d..78cfb2b165 100644
--- a/include/core/SkWriter32.h
+++ b/include/core/SkWriter32.h
@@ -60,23 +60,23 @@ public:
this->writeInt(value);
return value;
}
-
+
void writeInt(int32_t value) {
*(int32_t*)this->reserve(sizeof(value)) = value;
}
-
+
void write8(int32_t value) {
*(int32_t*)this->reserve(sizeof(value)) = value & 0xFF;
}
-
+
void write16(int32_t value) {
*(int32_t*)this->reserve(sizeof(value)) = value & 0xFFFF;
}
-
+
void write32(int32_t value) {
*(int32_t*)this->reserve(sizeof(value)) = value;
}
-
+
void writePtr(void* ptr) {
// Since we "know" that we're always 4-byte aligned, we can tell the
// compiler that here, by assigning to an int32 ptr.
@@ -91,11 +91,11 @@ public:
void writeScalar(SkScalar value) {
*(SkScalar*)this->reserve(sizeof(value)) = value;
}
-
+
void writePoint(const SkPoint& pt) {
*(SkPoint*)this->reserve(sizeof(pt)) = pt;
}
-
+
void writeRect(const SkRect& rect) {
*(SkRect*)this->reserve(sizeof(rect)) = rect;
}
@@ -111,7 +111,7 @@ public:
SkASSERT(SkAlign4(size) == size);
matrix.writeToMemory(this->reserve(size));
}
-
+
void writeRegion(const SkRegion& rgn) {
size_t size = rgn.writeToMemory(NULL);
SkASSERT(SkAlign4(size) == size);
@@ -134,7 +134,7 @@ public:
// in the current block
memcpy(this->reserve(size), values, size);
}
-
+
void writePad(const void* src, size_t size);
/**
@@ -161,14 +161,14 @@ public:
// be a multiple of 4. This does not allocate any new space, so the returned
// address is only valid for 1 int.
uint32_t* peek32(size_t offset);
-
+
// copy into a single buffer (allocated by caller). Must be at least size()
void flatten(void* dst) const;
-
+
// read from the stream, and write up to length bytes. Return the actual
// number of bytes written.
size_t readFromStream(SkStream*, size_t length);
-
+
bool writeToStream(SkWStream*);
private:
@@ -196,7 +196,7 @@ private:
template <size_t SIZE> class SkSWriter32 : public SkWriter32 {
public:
SkSWriter32(size_t minSize) : SkWriter32(minSize, fData.fStorage, SIZE) {}
-
+
private:
union {
void* fPtrAlignment;
diff --git a/include/core/SkXfermode.h b/include/core/SkXfermode.h
index 2b7c11ea61..99d5a9cc12 100644
--- a/include/core/SkXfermode.h
+++ b/include/core/SkXfermode.h
@@ -101,11 +101,11 @@ public:
// all remaining modes are defined in the SVG Compositing standard
// http://www.w3.org/TR/2009/WD-SVGCompositing-20090430/
kPlus_Mode,
- kMultiply_Mode,
-
+ kMultiply_Mode,
+
// all above modes can be expressed as pair of src/dst Coeffs
- kCoeffModesCnt,
-
+ kCoeffModesCnt,
+
kScreen_Mode = kCoeffModesCnt,
kOverlay_Mode,
kDarken_Mode,
diff --git a/include/effects/Sk1DPathEffect.h b/include/effects/Sk1DPathEffect.h
index eafac36b89..9fad1efc18 100644
--- a/include/effects/Sk1DPathEffect.h
+++ b/include/effects/Sk1DPathEffect.h
@@ -42,10 +42,10 @@ public:
kTranslate_Style, // translate the shape to each position
kRotate_Style, // rotate the shape about its center
kMorph_Style, // transform each point, and turn lines into curves
-
+
kStyleCount
};
-
+
/** Dash by replicating the specified path.
@param path The path to replicate (dash)
@param advance The space between instances of path
@@ -66,7 +66,7 @@ protected:
// overrides from Sk1DPathEffect
virtual SkScalar begin(SkScalar contourLength) SK_OVERRIDE;
virtual SkScalar next(SkPath*, SkScalar distance, SkPathMeasure&) SK_OVERRIDE;
-
+
private:
SkPath fPath; // copied from constructor
SkScalar fAdvance; // copied from constructor
diff --git a/include/effects/Sk2DPathEffect.h b/include/effects/Sk2DPathEffect.h
index 724fb8f3a1..adc27e440f 100644
--- a/include/effects/Sk2DPathEffect.h
+++ b/include/effects/Sk2DPathEffect.h
@@ -65,7 +65,7 @@ public:
* the latice.
*/
SkPath2DPathEffect(const SkMatrix&, const SkPath&);
-
+
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkPath2DPathEffect)
protected:
diff --git a/include/effects/SkBlurDrawLooper.h b/include/effects/SkBlurDrawLooper.h
index 2aff2f3ad2..0f400cddaf 100644
--- a/include/effects/SkBlurDrawLooper.h
+++ b/include/effects/SkBlurDrawLooper.h
@@ -25,8 +25,8 @@ class SK_API SkBlurDrawLooper : public SkDrawLooper {
public:
enum BlurFlags {
kNone_BlurFlag = 0x00,
- /**
- The blur layer's dx/dy/radius aren't affected by the canvas
+ /**
+ The blur layer's dx/dy/radius aren't affected by the canvas
transform.
*/
kIgnoreTransform_BlurFlag = 0x01,
@@ -36,7 +36,7 @@ public:
kAll_BlurFlag = 0x07
};
- SkBlurDrawLooper(SkScalar radius, SkScalar dx, SkScalar dy, SkColor color,
+ SkBlurDrawLooper(SkScalar radius, SkScalar dx, SkScalar dy, SkColor color,
uint32_t flags = kNone_BlurFlag);
virtual ~SkBlurDrawLooper();
@@ -55,7 +55,7 @@ private:
SkColorFilter* fColorFilter;
SkScalar fDx, fDy;
SkColor fBlurColor;
- uint32_t fBlurFlags;
+ uint32_t fBlurFlags;
enum State {
kBeforeEdge,
@@ -63,7 +63,7 @@ private:
kDone
};
State fState;
-
+
typedef SkDrawLooper INHERITED;
};
diff --git a/include/effects/SkBlurMaskFilter.h b/include/effects/SkBlurMaskFilter.h
index 9a1c9cecff..500e6d6998 100644
--- a/include/effects/SkBlurMaskFilter.h
+++ b/include/effects/SkBlurMaskFilter.h
@@ -41,7 +41,7 @@ public:
@param flags Flags to use - defaults to none
@return The new blur maskfilter
*/
- static SkMaskFilter* Create(SkScalar radius, BlurStyle style,
+ static SkMaskFilter* Create(SkScalar radius, BlurStyle style,
uint32_t flags = kNone_BlurFlag);
/** Create an emboss maskfilter
diff --git a/include/effects/SkColorFilterImageFilter.h b/include/effects/SkColorFilterImageFilter.h
index 2d07d5145e..73b3fa92ac 100755
--- a/include/effects/SkColorFilterImageFilter.h
+++ b/include/effects/SkColorFilterImageFilter.h
@@ -18,17 +18,17 @@ public:
virtual ~SkColorFilterImageFilter();
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkColorFilterImageFilter)
-
+
protected:
SkColorFilterImageFilter(SkFlattenableReadBuffer& buffer);
virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
-
+
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
SkBitmap* result, SkIPoint* loc) SK_OVERRIDE;
-
+
private:
SkColorFilter* fColorFilter;
-
+
typedef SkSingleInputImageFilter INHERITED;
};
diff --git a/include/effects/SkColorMatrix.h b/include/effects/SkColorMatrix.h
index ee383db656..a92f5882ea 100644
--- a/include/effects/SkColorMatrix.h
+++ b/include/effects/SkColorMatrix.h
@@ -15,7 +15,7 @@
class SkColorMatrix {
public:
SkScalar fMat[20];
-
+
void setIdentity();
void setScale(SkScalar rScale, SkScalar gScale, SkScalar bScale,
SkScalar aScale = SK_Scalar1);
diff --git a/include/effects/SkCornerPathEffect.h b/include/effects/SkCornerPathEffect.h
index 02fe6d9b9f..6c43b6c68c 100644
--- a/include/effects/SkCornerPathEffect.h
+++ b/include/effects/SkCornerPathEffect.h
@@ -37,7 +37,7 @@ protected:
private:
SkScalar fRadius;
-
+
typedef SkPathEffect INHERITED;
};
diff --git a/include/effects/SkDashPathEffect.h b/include/effects/SkDashPathEffect.h
index 87580aa37d..ddac9cfd4f 100644
--- a/include/effects/SkDashPathEffect.h
+++ b/include/effects/SkDashPathEffect.h
@@ -21,7 +21,7 @@ public:
/** intervals: array containing an even number of entries (>=2), with
the even indices specifying the length of "on" intervals, and the odd
indices specifying the length of "off" intervals.
- count: number of elements in the intervals array
+ count: number of elements in the intervals array
phase: offset into the intervals array (mod the sum of all of the
intervals).
@@ -51,7 +51,7 @@ public:
protected:
SkDashPathEffect(SkFlattenableReadBuffer&);
virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
-
+
private:
SkScalar* fIntervals;
int32_t fCount;
diff --git a/include/effects/SkDiscretePathEffect.h b/include/effects/SkDiscretePathEffect.h
index 29fd3c5242..a2934def43 100644
--- a/include/effects/SkDiscretePathEffect.h
+++ b/include/effects/SkDiscretePathEffect.h
@@ -34,7 +34,7 @@ protected:
private:
SkScalar fSegLength, fPerterb;
-
+
typedef SkPathEffect INHERITED;
};
diff --git a/include/effects/SkEmbossMaskFilter.h b/include/effects/SkEmbossMaskFilter.h
index 24815a54d6..dc5f99ee0c 100644
--- a/include/effects/SkEmbossMaskFilter.h
+++ b/include/effects/SkEmbossMaskFilter.h
@@ -43,7 +43,7 @@ protected:
private:
Light fLight;
SkScalar fBlurRadius;
-
+
typedef SkMaskFilter INHERITED;
};
diff --git a/include/effects/SkGradientShader.h b/include/effects/SkGradientShader.h
index 748abd1801..443be93d67 100644
--- a/include/effects/SkGradientShader.h
+++ b/include/effects/SkGradientShader.h
@@ -34,7 +34,7 @@ public:
the the colors are distributed evenly between the start and end point.
If this is not null, the values must begin with 0, end with 1.0, and
intermediate values must be strictly increasing.
- @param count Must be >=2. The number of colors (and pos if not NULL) entries.
+ @param count Must be >=2. The number of colors (and pos if not NULL) entries.
@param mode The tiling mode
@param mapper May be NULL. Callback to modify the spread of the colors.
*/
@@ -108,7 +108,7 @@ public:
const SkScalar pos[], int count,
SkShader::TileMode mode,
SkUnitMapper* mapper = NULL);
-
+
/** Returns a shader that generates a sweep gradient given a center.
<p />
CreateSweep returns a shader with a reference count of 1.
diff --git a/include/effects/SkKernel33MaskFilter.h b/include/effects/SkKernel33MaskFilter.h
index bd47320529..cfe1265510 100644
--- a/include/effects/SkKernel33MaskFilter.h
+++ b/include/effects/SkKernel33MaskFilter.h
@@ -18,7 +18,7 @@ public:
: fPercent256(percent256) {}
virtual uint8_t computeValue(uint8_t* const* srcRows) = 0;
-
+
// overrides from SkMaskFilter
virtual SkMask::Format getFormat();
virtual bool filterMask(SkMask*, const SkMask&, const SkMatrix&, SkIPoint*);
@@ -29,7 +29,7 @@ protected:
private:
int fPercent256;
-
+
typedef SkMaskFilter INHERITED;
};
@@ -42,19 +42,19 @@ public:
memcpy(fKernel, coeff, 9 * sizeof(int));
fShift = shift;
}
-
+
// override from SkKernel33ProcMaskFilter
virtual uint8_t computeValue(uint8_t* const* srcRows);
-
+
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkKernel33MaskFilter)
-
+
private:
int fKernel[3][3];
int fShift;
SkKernel33MaskFilter(SkFlattenableReadBuffer& rb);
virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
-
+
typedef SkKernel33ProcMaskFilter INHERITED;
};
diff --git a/include/effects/SkLayerDrawLooper.h b/include/effects/SkLayerDrawLooper.h
index d00c1e5bdd..d347de773f 100644
--- a/include/effects/SkLayerDrawLooper.h
+++ b/include/effects/SkLayerDrawLooper.h
@@ -35,7 +35,7 @@ public:
kShader_Bit = 1 << 4, //!< use this layer's shader
kColorFilter_Bit = 1 << 5, //!< use this layer's colorfilter
kXfermode_Bit = 1 << 6, //!< use this layer's xfermode
-
+
/**
* Use the layer's paint entirely, with these exceptions:
* - We never override the draw's paint's text_encoding, since that is
@@ -44,7 +44,7 @@ public:
* fFlagsMask and fColorMode.
*/
kEntirePaint_Bits = -1
-
+
};
typedef int32_t BitFlags;
@@ -93,22 +93,22 @@ public:
* This layer will draw with the original paint, ad the specified offset
*/
void addLayer(SkScalar dx, SkScalar dy);
-
+
/**
* This layer will with the original paint and no offset.
*/
void addLayer() { this->addLayer(0, 0); }
-
+
// overrides from SkDrawLooper
virtual void init(SkCanvas*);
virtual bool next(SkCanvas*, SkPaint* paint);
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLayerDrawLooper)
-
+
protected:
SkLayerDrawLooper(SkFlattenableReadBuffer&);
virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
-
+
private:
struct Rec {
Rec* fNext;
@@ -129,7 +129,7 @@ private:
public:
MyRegistrar();
};
-
+
typedef SkDrawLooper INHERITED;
};
diff --git a/include/effects/SkLayerRasterizer.h b/include/effects/SkLayerRasterizer.h
index c51b174867..f3149e6de5 100644
--- a/include/effects/SkLayerRasterizer.h
+++ b/include/effects/SkLayerRasterizer.h
@@ -20,16 +20,16 @@ class SkLayerRasterizer : public SkRasterizer {
public:
SkLayerRasterizer();
virtual ~SkLayerRasterizer();
-
+
void addLayer(const SkPaint& paint) {
this->addLayer(paint, 0, 0);
}
- /** Add a new layer (above any previous layers) to the rasterizer.
- The layer will extract those fields that affect the mask from
- the specified paint, but will not retain a reference to the paint
- object itself, so it may be reused without danger of side-effects.
- */
+ /** Add a new layer (above any previous layers) to the rasterizer.
+ The layer will extract those fields that affect the mask from
+ the specified paint, but will not retain a reference to the paint
+ object itself, so it may be reused without danger of side-effects.
+ */
void addLayer(const SkPaint& paint, SkScalar dx, SkScalar dy);
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLayerRasterizer)
diff --git a/include/effects/SkPaintFlagsDrawFilter.h b/include/effects/SkPaintFlagsDrawFilter.h
index d8cc3ba657..775cb913b4 100644
--- a/include/effects/SkPaintFlagsDrawFilter.h
+++ b/include/effects/SkPaintFlagsDrawFilter.h
@@ -15,10 +15,10 @@
class SkPaintFlagsDrawFilter : public SkDrawFilter {
public:
SkPaintFlagsDrawFilter(uint32_t clearFlags, uint32_t setFlags);
-
+
// overrides
virtual void filter(SkPaint*, Type);
-
+
private:
uint16_t fClearFlags; // user specified
uint16_t fSetFlags; // user specified
diff --git a/include/effects/SkPorterDuff.h b/include/effects/SkPorterDuff.h
index 44d94f8e4d..8308f3c31b 100644
--- a/include/effects/SkPorterDuff.h
+++ b/include/effects/SkPorterDuff.h
@@ -55,19 +55,19 @@ public:
/** Return an SkXfermode object for the specified mode.
*/
static SkXfermode* CreateXfermode(Mode mode);
-
+
/** Return a function pointer to a routine that applies the specified
porter-duff transfer mode.
*/
static SkXfermodeProc GetXfermodeProc(Mode mode);
-
+
/** Return a function pointer to a routine that applies the specified
porter-duff transfer mode and srcColor to a 16bit device color. Note,
if the mode+srcColor might return a non-opaque color, then there is not
16bit proc, and this will return NULL.
*/
static SkXfermodeProc16 GetXfermodeProc16(Mode mode, SkColor srcColor);
-
+
/** If the specified xfermode advertises itself as one of the porterduff
modes (via SkXfermode::Coeff), return true and if not null, set mode
to the corresponding porterduff mode. If it is not recognized as a one,
diff --git a/include/effects/SkTableColorFilter.h b/include/effects/SkTableColorFilter.h
index 9fec68c25e..5714d072f2 100644
--- a/include/effects/SkTableColorFilter.h
+++ b/include/effects/SkTableColorFilter.h
@@ -18,7 +18,7 @@ public:
* the table is applied, and then the result is remultiplied.
*/
static SkColorFilter* Create(const uint8_t table[256]);
-
+
/**
* Create a table colorfilter, with a different table for each
* component [A, R, G, B]. If a given table is NULL, then it is
diff --git a/include/effects/SkTableMaskFilter.h b/include/effects/SkTableMaskFilter.h
index e2472d7d86..656eaba929 100644
--- a/include/effects/SkTableMaskFilter.h
+++ b/include/effects/SkTableMaskFilter.h
@@ -14,7 +14,7 @@
#include "SkScalar.h"
/** \class SkTableMaskFilter
-
+
Applies a table lookup on each of the alpha values in the mask.
Helper methods create some common tables (e.g. gamma, clipping)
*/
@@ -50,7 +50,7 @@ public:
// overrides from SkMaskFilter
virtual SkMask::Format getFormat();
virtual bool filterMask(SkMask*, const SkMask&, const SkMatrix&, SkIPoint*);
-
+
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTableMaskFilter)
protected:
@@ -59,7 +59,7 @@ protected:
private:
uint8_t fTable[256];
-
+
typedef SkMaskFilter INHERITED;
};
diff --git a/include/effects/SkTestImageFilters.h b/include/effects/SkTestImageFilters.h
index 55ee1d6258..4c96776a00 100755
--- a/include/effects/SkTestImageFilters.h
+++ b/include/effects/SkTestImageFilters.h
@@ -38,19 +38,19 @@ public:
virtual ~SkComposeImageFilter();
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposeImageFilter)
-
+
protected:
SkComposeImageFilter(SkFlattenableReadBuffer& buffer);
virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
-
+
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
SkBitmap* result, SkIPoint* loc) SK_OVERRIDE;
virtual bool onFilterBounds(const SkIRect&, const SkMatrix&, SkIRect*) SK_OVERRIDE;
-
+
private:
SkImageFilter* fOuter;
SkImageFilter* fInner;
-
+
typedef SkImageFilter INHERITED;
};
@@ -63,17 +63,17 @@ public:
SkMergeImageFilter(SkImageFilter* const filters[], int count,
const SkXfermode::Mode modes[] = NULL);
virtual ~SkMergeImageFilter();
-
+
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMergeImageFilter)
-
+
protected:
SkMergeImageFilter(SkFlattenableReadBuffer& buffer);
virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
-
+
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
SkBitmap* result, SkIPoint* loc) SK_OVERRIDE;
virtual bool onFilterBounds(const SkIRect&, const SkMatrix&, SkIRect*) SK_OVERRIDE;
-
+
private:
SkImageFilter** fFilters;
uint8_t* fModes; // SkXfermode::Mode
@@ -85,7 +85,7 @@ private:
void initAlloc(int count, bool hasModes);
void init(SkImageFilter* const [], int count, const SkXfermode::Mode []);
-
+
typedef SkImageFilter INHERITED;
};
@@ -95,19 +95,19 @@ private:
class SkDownSampleImageFilter : public SkImageFilter {
public:
SkDownSampleImageFilter(SkScalar scale) : fScale(scale) {}
-
+
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDownSampleImageFilter)
-
+
protected:
SkDownSampleImageFilter(SkFlattenableReadBuffer& buffer);
virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
-
+
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
SkBitmap* result, SkIPoint* loc) SK_OVERRIDE;
-
+
private:
SkScalar fScale;
-
+
typedef SkImageFilter INHERITED;
};
diff --git a/include/effects/SkTransparentShader.h b/include/effects/SkTransparentShader.h
index 531da74cb1..20bb51ac1a 100644
--- a/include/effects/SkTransparentShader.h
+++ b/include/effects/SkTransparentShader.h
@@ -31,7 +31,7 @@ private:
uint8_t fAlpha;
SkTransparentShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
-
+
typedef SkShader INHERITED;
};
diff --git a/include/gpu/GrAARectRenderer.h b/include/gpu/GrAARectRenderer.h
index fdaa30a47e..e8b9f158bc 100644
--- a/include/gpu/GrAARectRenderer.h
+++ b/include/gpu/GrAARectRenderer.h
@@ -23,7 +23,7 @@ class GrAARectRenderer : public GrRefCnt {
public:
SK_DECLARE_INST_COUNT(GrAARectRenderer)
- GrAARectRenderer()
+ GrAARectRenderer()
: fAAFillRectIndexBuffer(NULL)
, fAAStrokeRectIndexBuffer(NULL) {
}
diff --git a/include/gpu/GrCacheID.h b/include/gpu/GrCacheID.h
index e6f5f752d1..e593d7ee3f 100644
--- a/include/gpu/GrCacheID.h
+++ b/include/gpu/GrCacheID.h
@@ -45,18 +45,18 @@
* the resource-specific portion - which is filled in by each GrResource-
* derived class.
*
- * For the public portion each client of the cache makes up its own
- * unique-per-resource identifier (e.g., bitmap genID). A public ID of
- * 'kScratch_CacheID' indicates that the resource is a "scratch" resource.
- * When used to acquire a resource it indicates the cache user is
- * looking for a resource that matches a resource-subclass-specific set of
- * “dimensions” such as width, height, buffer size, or pixel config, but not
- * for particular resource contents (e.g., texel or vertex values). The public
- * IDs are unique within a private ID value but not necessarily across
+ * For the public portion each client of the cache makes up its own
+ * unique-per-resource identifier (e.g., bitmap genID). A public ID of
+ * 'kScratch_CacheID' indicates that the resource is a "scratch" resource.
+ * When used to acquire a resource it indicates the cache user is
+ * looking for a resource that matches a resource-subclass-specific set of
+ * “dimensions” such as width, height, buffer size, or pixel config, but not
+ * for particular resource contents (e.g., texel or vertex values). The public
+ * IDs are unique within a private ID value but not necessarily across
* private IDs.
*
* The domain portion identifies the cache client while the type field
- * indicates the resource type. When the public portion indicates that the
+ * indicates the resource type. When the public portion indicates that the
* resource is a scratch resource, the domain field should be kUnrestricted
* so that scratch resources can be recycled across domains.
*/
diff --git a/include/gpu/GrClipData.h b/include/gpu/GrClipData.h
index c9d934d96e..0cf702234c 100644
--- a/include/gpu/GrClipData.h
+++ b/include/gpu/GrClipData.h
@@ -19,7 +19,7 @@ class GrSurface;
/**
* GrClipData encapsulates the information required to construct the clip
* masks. 'fOrigin' is only non-zero when saveLayer has been called
- * with an offset bounding box. The clips in 'fClipStack' are in
+ * with an offset bounding box. The clips in 'fClipStack' are in
* device coordinates (i.e., they have been translated by -fOrigin w.r.t.
* the canvas' device coordinates).
*/
@@ -28,7 +28,7 @@ public:
const SkClipStack* fClipStack;
SkIPoint fOrigin;
- GrClipData()
+ GrClipData()
: fClipStack(NULL) {
fOrigin.setZero();
}
@@ -45,11 +45,11 @@ public:
return fClipStack == other.fClipStack;
}
- bool operator!=(const GrClipData& other) const {
- return !(*this == other);
+ bool operator!=(const GrClipData& other) const {
+ return !(*this == other);
}
- void getConservativeBounds(const GrSurface* surface,
+ void getConservativeBounds(const GrSurface* surface,
GrIRect* devResult,
bool* isIntersectionOfRects = NULL) const;
};
diff --git a/include/gpu/GrConfig.h b/include/gpu/GrConfig.h
index ffab237f41..327dbb44b1 100644
--- a/include/gpu/GrConfig.h
+++ b/include/gpu/GrConfig.h
@@ -118,7 +118,7 @@ typedef unsigned __int64 uint64_t;
#else
/*
* Include stdint.h with defines that trigger declaration of C99 limit/const
- * macros here before anyone else has a chance to include stdint.h without
+ * macros here before anyone else has a chance to include stdint.h without
* these.
*/
#define __STDC_LIMIT_MACROS
diff --git a/include/gpu/GrContext.h b/include/gpu/GrContext.h
index 8dd81d9d8f..8ee326c974 100644
--- a/include/gpu/GrContext.h
+++ b/include/gpu/GrContext.h
@@ -15,7 +15,7 @@
#include "GrClipData.h"
// not strictly needed but requires WK change in LayerTextureUpdaterCanvas to
// remove.
-#include "GrRenderTarget.h"
+#include "GrRenderTarget.h"
#include "SkClipStack.h"
class GrAutoScratchTexture;
@@ -164,12 +164,12 @@ public:
* unlocked. Call must be balanced with an unlockTexture() call.
*
* Textures created by createAndLockTexture() hide the complications of
- * tiling non-power-of-two textures on APIs that don't support this (e.g.
+ * tiling non-power-of-two textures on APIs that don't support this (e.g.
* unextended GLES2). Tiling a npot texture created by lockScratchTexture on
* such an API will create gaps in the tiling pattern. This includes clamp
* mode. (This may be addressed in a future update.)
*/
- GrTexture* lockScratchTexture(const GrTextureDesc& desc,
+ GrTexture* lockScratchTexture(const GrTextureDesc& desc,
ScratchTexMatch match);
/**
@@ -223,7 +223,7 @@ public:
int getMaxTextureSize() const;
/**
- * Return the max width or height of a render target supported by the
+ * Return the max width or height of a render target supported by the
* current gpu
*/
int getMaxRenderTargetSize() const;
@@ -326,7 +326,7 @@ public:
* @param target if non-NULL, the render target to clear otherwise clear
* the current render target
*/
- void clear(const GrIRect* rect, GrColor color,
+ void clear(const GrIRect* rect, GrColor color,
GrRenderTarget* target = NULL);
/**
@@ -667,7 +667,7 @@ public:
class AutoClip : GrNoncopyable {
public:
- AutoClip(GrContext* context, const GrRect& newClipRect)
+ AutoClip(GrContext* context, const GrRect& newClipRect)
: fContext(context)
, fNewClipStack(newClipRect) {
fNewClipData.fClipStack = &fNewClipStack;
@@ -794,7 +794,7 @@ public:
, fTexture(NULL) {
this->set(context, desc, match);
}
-
+
~GrAutoScratchTexture() {
this->reset();
}
@@ -808,11 +808,11 @@ public:
/*
* When detaching a texture we do not unlock it in the texture cache but
- * we do set the returnToCache flag. In this way the texture remains
- * "locked" in the texture cache until it is freed and recycled in
- * GrTexture::internal_dispose. In reality, the texture has been removed
- * from the cache (because this is in AutoScratchTexture) and by not
- * calling unlockTexture we simply don't re-add it. It will be reattached
+ * we do set the returnToCache flag. In this way the texture remains
+ * "locked" in the texture cache until it is freed and recycled in
+ * GrTexture::internal_dispose. In reality, the texture has been removed
+ * from the cache (because this is in AutoScratchTexture) and by not
+ * calling unlockTexture we simply don't re-add it. It will be reattached
* in GrTexture::internal_dispose.
*
* Note that the caller is assumed to accept and manage the ref to the
diff --git a/include/gpu/GrContextFactory.h b/include/gpu/GrContextFactory.h
index 409c7fa15f..600bedae66 100644
--- a/include/gpu/GrContextFactory.h
+++ b/include/gpu/GrContextFactory.h
@@ -22,7 +22,7 @@
#include "SkTArray.h"
/**
- * This is a simple class that is useful in test apps that use different
+ * This is a simple class that is useful in test apps that use different
* GrContexts backed by different types of GL contexts. It manages creating the
* GL context and a GrContext that uses it. The GL/Gr contexts persist until the
* factory is destroyed (though the caller can always grab a ref on the returned
diff --git a/include/gpu/GrCustomStage.h b/include/gpu/GrCustomStage.h
index 0ac7a76205..fd5d7e00dc 100644
--- a/include/gpu/GrCustomStage.h
+++ b/include/gpu/GrCustomStage.h
@@ -38,7 +38,7 @@ private:
};
/** Provides custom vertex shader, fragment shader, uniform data for a
- particular stage of the Ganesh shading pipeline.
+ particular stage of the Ganesh shading pipeline.
Subclasses must have a function that produces a human-readable name:
static const char* Name();
GrCustomStage objects *must* be immutable: after being constructed,
@@ -71,7 +71,7 @@ public:
Example:
class MyCustomStage : public GrCustomStage {
...
- virtual const GrProgramStageFactory& getFactory() const
+ virtual const GrProgramStageFactory& getFactory() const
SK_OVERRIDE {
return GrTProgramStageFactory<MyCustomStage>::getInstance();
}
diff --git a/include/gpu/GrGlyph.h b/include/gpu/GrGlyph.h
index f79de7cb33..956404ec11 100644
--- a/include/gpu/GrGlyph.h
+++ b/include/gpu/GrGlyph.h
@@ -38,40 +38,40 @@ struct GrGlyph {
fBounds.set(bounds);
fAtlasLocation.set(0, 0);
}
-
+
void free() {
if (fPath) {
delete fPath;
fPath = NULL;
}
}
-
+
int width() const { return fBounds.width(); }
int height() const { return fBounds.height(); }
bool isEmpty() const { return fBounds.isEmpty(); }
uint16_t glyphID() const { return UnpackID(fPackedID); }
///////////////////////////////////////////////////////////////////////////
-
+
static inline unsigned ExtractSubPixelBitsFromFixed(GrFixed pos) {
// two most significant fraction bits from fixed-point
return (pos >> 14) & 3;
}
-
+
static inline PackedID Pack(uint16_t glyphID, GrFixed x, GrFixed y) {
x = ExtractSubPixelBitsFromFixed(x);
y = ExtractSubPixelBitsFromFixed(y);
return (x << 18) | (y << 16) | glyphID;
}
-
+
static inline GrFixed UnpackFixedX(PackedID packed) {
return ((packed >> 18) & 3) << 14;
}
-
+
static inline GrFixed UnpackFixedY(PackedID packed) {
return ((packed >> 16) & 3) << 14;
}
-
+
static inline uint16_t UnpackID(PackedID packed) {
return (uint16_t)packed;
}
diff --git a/include/gpu/GrPaint.h b/include/gpu/GrPaint.h
index 90bd9a7c73..f9573bba93 100644
--- a/include/gpu/GrPaint.h
+++ b/include/gpu/GrPaint.h
@@ -151,7 +151,7 @@ public:
if (fColorMatrixEnabled) {
memcpy(fColorMatrix, paint.fColorMatrix, sizeof(fColorMatrix));
}
-
+
for (int i = 0; i < kMaxTextures; ++i) {
if (paint.isTextureStageEnabled(i)) {
fTextureSamplers[i] = paint.fTextureSamplers[i];
diff --git a/include/gpu/GrPoint.h b/include/gpu/GrPoint.h
index b32123b568..fd2c5a7cc1 100644
--- a/include/gpu/GrPoint.h
+++ b/include/gpu/GrPoint.h
@@ -20,7 +20,7 @@
struct GrIPoint16 {
int16_t fX, fY;
-
+
void set(intptr_t x, intptr_t y) {
fX = GrToS16(x);
fY = GrToS16(y);
diff --git a/include/gpu/GrRect.h b/include/gpu/GrRect.h
index 60a4773820..42ddd8e8fe 100644
--- a/include/gpu/GrRect.h
+++ b/include/gpu/GrRect.h
@@ -19,12 +19,12 @@ typedef SkRect GrRect;
struct GrIRect16 {
int16_t fLeft, fTop, fRight, fBottom;
-
+
int width() const { return fRight - fLeft; }
int height() const { return fBottom - fTop; }
int area() const { return this->width() * this->height(); }
bool isEmpty() const { return fLeft >= fRight || fTop >= fBottom; }
-
+
void set(const GrIRect& r) {
fLeft = SkToS16(r.fLeft);
fTop = SkToS16(r.fTop);
diff --git a/include/gpu/GrRenderTarget.h b/include/gpu/GrRenderTarget.h
index 33df8c6329..d6e8ee0be8 100644
--- a/include/gpu/GrRenderTarget.h
+++ b/include/gpu/GrRenderTarget.h
@@ -49,8 +49,8 @@ public:
* @return this render target.
*/
virtual GrRenderTarget* asRenderTarget() SK_OVERRIDE { return this; }
- virtual const GrRenderTarget* asRenderTarget() const SK_OVERRIDE {
- return this;
+ virtual const GrRenderTarget* asRenderTarget() const SK_OVERRIDE {
+ return this;
}
virtual bool readPixels(int left, int top, int width, int height,
@@ -132,7 +132,7 @@ public:
void resolve();
// a MSAA RT may require explicit resolving , it may auto-resolve (e.g. FBO
- // 0 in GL), or be unresolvable because the client didn't give us the
+ // 0 in GL), or be unresolvable because the client didn't give us the
// resolve destination.
enum ResolveType {
kCanResolve_ResolveType,
@@ -159,7 +159,7 @@ protected:
friend class GrTexture;
// When a texture unrefs an owned rendertarget this func
- // removes the back pointer. This could be called from
+ // removes the back pointer. This could be called from
// texture's destructor but would have to be done in derived
// classes. By the time of texture base destructor it has already
// lost its pointer to the rt.
diff --git a/include/gpu/GrSamplerState.h b/include/gpu/GrSamplerState.h
index f87b9b4e10..12c0937dfd 100644
--- a/include/gpu/GrSamplerState.h
+++ b/include/gpu/GrSamplerState.h
@@ -103,7 +103,7 @@ public:
bool operator ==(const GrSamplerState& s) const {
/* We must be bit-identical as far as the CustomStage;
there may be multiple CustomStages that will produce
- the same shader code and so are equivalent.
+ the same shader code and so are equivalent.
Can't take the address of fWrapX because it's :8 */
int bitwiseRegion = (intptr_t) &fCustomStage - (intptr_t) this;
GrAssert(sizeof(GrSamplerState) ==
@@ -157,7 +157,7 @@ public:
*
* After this call M' = M*m where M is the old matrix, m is the parameter
* to this function, and M' is the new matrix. (We consider points to
- * be column vectors so tex cood vector t is transformed by matrix X as
+ * be column vectors so tex cood vector t is transformed by matrix X as
* t' = X*t.)
*
* @param matrix the matrix used to modify the matrix.
diff --git a/include/gpu/GrTexture.h b/include/gpu/GrTexture.h
index c7bfb8c363..5f6d53522a 100644
--- a/include/gpu/GrTexture.h
+++ b/include/gpu/GrTexture.h
@@ -42,16 +42,16 @@ public:
void resetFlag(GrTextureFlags flags) {
fDesc.fFlags = fDesc.fFlags & ~flags;
}
- bool isSetFlag(GrTextureFlags flags) const {
- return 0 != (fDesc.fFlags & flags);
+ bool isSetFlag(GrTextureFlags flags) const {
+ return 0 != (fDesc.fFlags & flags);
}
/**
* Approximate number of bytes used by the texture
*/
virtual size_t sizeInBytes() const SK_OVERRIDE {
- return (size_t) fDesc.fWidth *
- fDesc.fHeight *
+ return (size_t) fDesc.fWidth *
+ fDesc.fHeight *
GrBytesPerPixel(fDesc.fConfig);
}
@@ -81,11 +81,11 @@ public:
* @return handle to render target or NULL if the texture is not a
* render target
*/
- virtual GrRenderTarget* asRenderTarget() SK_OVERRIDE {
- return fRenderTarget;
+ virtual GrRenderTarget* asRenderTarget() SK_OVERRIDE {
+ return fRenderTarget;
}
- virtual const GrRenderTarget* asRenderTarget() const SK_OVERRIDE {
- return fRenderTarget;
+ virtual const GrRenderTarget* asRenderTarget() const SK_OVERRIDE {
+ return fRenderTarget;
}
// GrTexture
@@ -93,13 +93,13 @@ public:
* Convert from texels to normalized texture coords for POT textures
* only.
*/
- GrFixed normalizeFixedX(GrFixed x) const {
+ GrFixed normalizeFixedX(GrFixed x) const {
GrAssert(GrIsPow2(fDesc.fWidth));
- return x >> fShiftFixedX;
+ return x >> fShiftFixedX;
}
- GrFixed normalizeFixedY(GrFixed y) const {
+ GrFixed normalizeFixedY(GrFixed y) const {
GrAssert(GrIsPow2(fDesc.fHeight));
- return y >> fShiftFixedY;
+ return y >> fShiftFixedY;
}
/**
@@ -117,7 +117,7 @@ public:
/**
* Call this when the state of the native API texture object is
- * altered directly, without being tracked by skia.
+ * altered directly, without being tracked by skia.
*/
virtual void invalidateCachedState() = 0;
diff --git a/include/gpu/GrTypes.h b/include/gpu/GrTypes.h
index 58f8968530..6888f5c33b 100644
--- a/include/gpu/GrTypes.h
+++ b/include/gpu/GrTypes.h
@@ -298,7 +298,7 @@ enum GrPixelConfig {
kGrPixelConfigCount
};
-// Aliases for pixel configs that match skia's byte order.
+// Aliases for pixel configs that match skia's byte order.
#ifndef SK_CPU_LENDIAN
#error "Skia gpu currently assumes little endian"
#endif
@@ -404,7 +404,7 @@ enum GrTextureFlags {
* Creates a texture that can be rendered to as a GrRenderTarget. Use
* GrTexture::asRenderTarget() to access.
*/
- kRenderTarget_GrTextureFlagBit = 0x1,
+ kRenderTarget_GrTextureFlagBit = 0x1,
/**
* By default all render targets have an associated stencil buffer that
* may be required for path filling. This flag overrides stencil buffer
@@ -435,7 +435,7 @@ enum {
* Describes a texture to be created.
*/
struct GrTextureDesc {
- GrTextureDesc()
+ GrTextureDesc()
: fFlags(kNone_GrTextureFlags)
, fWidth(0)
, fHeight(0)
@@ -464,7 +464,7 @@ struct GrTextureDesc {
};
/**
- * GrCacheData holds user-provided cache-specific data. It is used in
+ * GrCacheData holds user-provided cache-specific data. It is used in
* combination with the GrTextureDesc to construct a cache key for texture
* resources.
*/
@@ -484,7 +484,7 @@ struct GrCacheData {
// No default constructor is provided since, if you are creating one
// of these, you should definitely have a key (or be using the scratch
// key).
- GrCacheData(uint64_t key)
+ GrCacheData(uint64_t key)
: fClientCacheID(key)
, fResourceDomain(kScratch_ResourceDomain) {
}
@@ -600,8 +600,8 @@ typedef intptr_t GrPlatform3DObject;
/**
* Gr can wrap an existing texture created by the client with a GrTexture
* object. The client is responsible for ensuring that the texture lives at
- * least as long as the GrTexture object wrapping it. We require the client to
- * explicitly provide information about the texture, such as width, height,
+ * least as long as the GrTexture object wrapping it. We require the client to
+ * explicitly provide information about the texture, such as width, height,
* and pixel config, rather than querying the 3D APIfor these values. We expect
* these to be immutable even if the 3D API doesn't require this (OpenGL).
*
@@ -658,7 +658,7 @@ struct GrPlatformTextureDesc {
* Gr can wrap an existing render target created by the client in the 3D API
* with a GrRenderTarget object. The client is responsible for ensuring that the
* underlying 3D API object lives at least as long as the GrRenderTarget object
- * wrapping it. We require the client to explicitly provide information about
+ * wrapping it. We require the client to explicitly provide information about
* the target, such as width, height, and pixel config rather than querying the
* 3D API for these values. We expect these properties to be immutable even if
* the 3D API doesn't require this (OpenGL).
diff --git a/include/gpu/gl/GrGLConfig.h b/include/gpu/gl/GrGLConfig.h
index dd38283e25..20d9031264 100644
--- a/include/gpu/gl/GrGLConfig.h
+++ b/include/gpu/gl/GrGLConfig.h
@@ -49,7 +49,7 @@
* GR_GL_NO_CONSTANT_ATTRIBUTES: if this evaluates to true then the GL backend
* will use uniforms instead of attributes in all cases when there is not
* per-vertex data. This is important when the underlying GL implementation
- * doesn't actually support immediate style attribute values (e.g. when
+ * doesn't actually support immediate style attribute values (e.g. when
* the GL stream is converted to DX as in ANGLE on Chrome). Defaults to 0.
*
* GR_GL_USE_BUFFER_DATA_NULL_HINT: When specifing new data for a vertex/index
diff --git a/include/gpu/gl/GrGLFunctions.h b/include/gpu/gl/GrGLFunctions.h
index 626d904726..b0b3b16313 100644
--- a/include/gpu/gl/GrGLFunctions.h
+++ b/include/gpu/gl/GrGLFunctions.h
@@ -103,7 +103,7 @@ extern "C" {
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLGetQueryObjecti64vProc)(GrGLuint id, GrGLenum pname, GrGLint64 *params);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLGetQueryObjectivProc)(GrGLuint id, GrGLenum pname, GrGLint *params);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLGetQueryObjectui64vProc)(GrGLuint id, GrGLenum pname, GrGLuint64 *params);
- typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLGetQueryObjectuivProc)(GrGLuint id, GrGLenum pname, GrGLuint *params);
+ typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLGetQueryObjectuivProc)(GrGLuint id, GrGLenum pname, GrGLuint *params);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLGetRenderbufferParameterivProc)(GrGLenum target, GrGLenum pname, GrGLint* params);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLGetShaderInfoLogProc)(GrGLuint shader, GrGLsizei bufsize, GrGLsizei* length, char* infolog);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLGetShaderivProc)(GrGLuint shader, GrGLenum pname, GrGLint* params);
@@ -160,7 +160,7 @@ extern "C" {
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLViewportProc)(GrGLint x, GrGLint y, GrGLsizei width, GrGLsizei height);
// Experimental: Functions for GL_NV_path_rendering. These will be
- // alphabetized with the above functions once this is fully supported
+ // alphabetized with the above functions once this is fully supported
// (and functions we are unlikely to use will possibly be omitted).
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLMatrixModeProc)(GrGLenum);
typedef GrGLvoid (GR_GL_FUNCTION_TYPE* GrGLLoadIdentityProc)();
diff --git a/include/gpu/gl/GrGLInterface.h b/include/gpu/gl/GrGLInterface.h
index c627b90fd6..e1ca40e391 100644
--- a/include/gpu/gl/GrGLInterface.h
+++ b/include/gpu/gl/GrGLInterface.h
@@ -45,7 +45,7 @@ enum GrGLBinding {
* whether the same GrGLInterface is returned or whether a new one is created
* at each call. Some platforms may not be able to use a single GrGLInterface
* because extension function ptrs vary across contexts. Note that GrGLInterface
- * is ref-counted. So if the same object is returned by multiple calls to
+ * is ref-counted. So if the same object is returned by multiple calls to
* GrGLDefaultInterface, each should bump the ref count.
*
* By defining GR_GL_PER_GL_CALL_IFACE_CALLBACK to 1 the client can specify a
@@ -60,7 +60,7 @@ const GrGLInterface* GrGLDefaultInterface();
/**
* Creates a GrGLInterface for a "native" GL context (e.g. WGL on windows,
* GLX on linux, AGL on Mac). On platforms that have context-specific function
- * pointers for GL extensions (e.g. windows) the returned interface is only
+ * pointers for GL extensions (e.g. windows) the returned interface is only
* valid for the context that was current at creation.
*/
const GrGLInterface* GrGLCreateNativeInterface();
@@ -86,7 +86,7 @@ const GrGLInterface* GrGLCreateANGLEInterface();
const GrGLInterface* GrGLCreateNullInterface();
/**
- * Creates a debugging GrGLInterface that doesn't draw anything. Used for
+ * Creates a debugging GrGLInterface that doesn't draw anything. Used for
* finding memory leaks and invalid memory accesses.
*/
const GrGLInterface* GrGLCreateDebugInterface();
@@ -255,7 +255,7 @@ public:
GLPtr<GrGLViewportProc> fViewport;
// Experimental: Functions for GL_NV_path_rendering. These will be
- // alphabetized with the above functions once this is fully supported
+ // alphabetized with the above functions once this is fully supported
// (and functions we are unlikely to use will possibly be omitted).
GLPtr<GrGLMatrixModeProc> fMatrixMode;
GLPtr<GrGLLoadIdentityProc> fLoadIdentity;
diff --git a/include/gpu/gl/SkGLContext.h b/include/gpu/gl/SkGLContext.h
index b8b6b6e85d..3f99eaeb6a 100644
--- a/include/gpu/gl/SkGLContext.h
+++ b/include/gpu/gl/SkGLContext.h
@@ -38,8 +38,8 @@ public:
protected:
/**
- * Subclass implements this to make a GL context. The returned GrGLInterface
- * should be populated with functions compatible with the context. The
+ * Subclass implements this to make a GL context. The returned GrGLInterface
+ * should be populated with functions compatible with the context. The
* format and size of backbuffers does not matter since an FBO will be
* created.
*/
diff --git a/include/images/SkFlipPixelRef.h b/include/images/SkFlipPixelRef.h
index 3d5c097077..ac437805d6 100644
--- a/include/images/SkFlipPixelRef.h
+++ b/include/images/SkFlipPixelRef.h
@@ -21,7 +21,7 @@ class SkFlipPixelRef : public SkPixelRef {
public:
SkFlipPixelRef(SkBitmap::Config, int width, int height);
virtual ~SkFlipPixelRef();
-
+
bool isDirty() const { return fFlipper.isDirty(); }
const SkRegion& dirtyRgn() const { return fFlipper.dirtyRgn(); }
@@ -41,7 +41,7 @@ protected:
SkFlipPixelRef(SkFlattenableReadBuffer&);
virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
-
+
private:
void getFrontBack(const void** front, void** back) const {
if (front) {
@@ -61,7 +61,7 @@ private:
SkMutex fMutex;
SkPageFlipper fFlipper;
-
+
void* fStorage;
void* fPage0; // points into fStorage;
void* fPage1; // points into fStorage;
@@ -81,10 +81,10 @@ public:
fRef->endUpdate();
}
}
-
+
const SkBitmap& bitmap() const { return fBitmap; }
const SkRegion& dirty() const { return *fDirty; }
-
+
// optional. This gets automatically called in the destructor (only once)
void endUpdate() {
if (fRef) {
diff --git a/include/images/SkImageEncoder.h b/include/images/SkImageEncoder.h
index 907e28b9de..5e350d46ff 100644
--- a/include/images/SkImageEncoder.h
+++ b/include/images/SkImageEncoder.h
@@ -22,7 +22,7 @@ public:
static SkImageEncoder* Create(Type);
virtual ~SkImageEncoder();
-
+
/* Quality ranges from 0..100 */
enum {
kDefaultQuality = 80
diff --git a/include/images/SkImageRef.h b/include/images/SkImageRef.h
index bec3527acc..dcc4c0e240 100644
--- a/include/images/SkImageRef.h
+++ b/include/images/SkImageRef.h
@@ -27,7 +27,7 @@ public:
since it may be accessed from another thread, the caller must ensure
that this imageref is the only owner of the stream. i.e. - sole
ownership of the stream object is transferred to this imageref object.
-
+
@param stream The stream containing the encoded image data. This may be
retained (by calling ref()), so the caller should not
explicitly delete it.
@@ -40,22 +40,22 @@ public:
/** this value is passed onto the decoder. Default is true
*/
void setDitherImage(bool dither) { fDoDither = dither; }
-
+
/** Return true if the image can be decoded. If so, and bitmap is non-null,
call its setConfig() with the corresponding values, but explicitly will
not set its pixels or colortable. Use SkPixelRef::lockPixels() for that.
-
+
If there has been an error decoding the bitmap, this will return false
and ignore the bitmap parameter.
*/
bool getInfo(SkBitmap* bm);
-
+
/** Return true if the image can be decoded and is opaque. Calling this
method will decode and set the pixels in the specified bitmap and
sets the isOpaque flag.
*/
bool isOpaque(SkBitmap* bm);
-
+
SkImageDecoderFactory* getDecoderFactory() const { return fFactory; }
// returns the factory parameter
SkImageDecoderFactory* setDecoderFactory(SkImageDecoderFactory*);
@@ -74,13 +74,13 @@ protected:
virtual void* onLockPixels(SkColorTable**);
// override this in your subclass to clean up when we're unlocking pixels
virtual void onUnlockPixels();
-
+
SkImageRef(SkFlattenableReadBuffer&);
virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
SkBitmap fBitmap;
-private:
+private:
SkStream* setStream(SkStream*);
// called with mutex already held. returns true if the bitmap is in the
// requested state (or further, i.e. has pixels)
@@ -92,12 +92,12 @@ private:
int fSampleSize;
bool fDoDither;
bool fErrorInDecoding;
-
+
friend class SkImageRefPool;
-
- SkImageRef* fPrev, *fNext;
+
+ SkImageRef* fPrev, *fNext;
size_t ramUsed() const;
-
+
typedef SkPixelRef INHERITED;
};
diff --git a/include/images/SkImageRef_GlobalPool.h b/include/images/SkImageRef_GlobalPool.h
index 03c23673c6..914b0eb435 100644
--- a/include/images/SkImageRef_GlobalPool.h
+++ b/include/images/SkImageRef_GlobalPool.h
@@ -17,7 +17,7 @@ public:
// if pool is null, use the global pool
SkImageRef_GlobalPool(SkStream*, SkBitmap::Config, int sampleSize = 1);
virtual ~SkImageRef_GlobalPool();
-
+
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkImageRef_GlobalPool)
// API to control the global pool
@@ -25,15 +25,15 @@ public:
/** Return the amount specified as the budget for the cache (in bytes).
*/
static size_t GetRAMBudget();
-
+
/** Set a new budget value for the cache.
*/
static void SetRAMBudget(size_t);
-
+
/** Return how much ram is currently in use by the global cache.
*/
static size_t GetRAMUsed();
-
+
/** Free up (approximately) enough such that the amount used by the cache
is <= the specified amount. Since some images may be "in use", the
amount actually freed may not always result in a ram usage value <=
@@ -42,16 +42,16 @@ public:
amount.
*/
static void SetRAMUsed(size_t usageInBytes);
-
+
static void DumpPool();
protected:
virtual bool onDecode(SkImageDecoder* codec, SkStream* stream,
SkBitmap* bitmap, SkBitmap::Config config,
SkImageDecoder::Mode mode);
-
+
virtual void onUnlockPixels();
-
+
SkImageRef_GlobalPool(SkFlattenableReadBuffer&);
private:
diff --git a/include/images/SkMovie.h b/include/images/SkMovie.h
index cecad29a31..f32d6094b2 100644
--- a/include/images/SkMovie.h
+++ b/include/images/SkMovie.h
@@ -40,7 +40,7 @@ public:
int width();
int height();
int isOpaque();
-
+
/** Specify the time code (between 0...duration) to sample a bitmap
from the movie. Returns true if this time code generated a different
bitmap/frame from the previous state (i.e. true means you need to
@@ -50,7 +50,7 @@ public:
// return the right bitmap for the current time code
const SkBitmap& bitmap();
-
+
protected:
struct Info {
SkMSec fDuration;
@@ -71,7 +71,7 @@ private:
SkMSec fCurrTime;
SkBitmap fBitmap;
bool fNeedBitmap;
-
+
void ensureInfo();
typedef SkRefCnt INHERITED;
diff --git a/include/images/SkPageFlipper.h b/include/images/SkPageFlipper.h
index 1a188565aa..91a1e9de6c 100644
--- a/include/images/SkPageFlipper.h
+++ b/include/images/SkPageFlipper.h
@@ -25,7 +25,7 @@ class SkPageFlipper {
public:
SkPageFlipper();
SkPageFlipper(int width, int height);
-
+
int width() const { return fWidth; }
int height() const { return fHeight; }
@@ -44,7 +44,7 @@ public:
region (provided by the caller) is the area that should be copied from
the front page to the back page (will not intersect with the returned
inval region.
-
+
Once this is called, the two internal regions are swapped, so the *new*
back inval region is ready to receive new inval calls.
*/
diff --git a/include/ports/SkHarfBuzzFont.h b/include/ports/SkHarfBuzzFont.h
index 66c5534628..22749af092 100644
--- a/include/ports/SkHarfBuzzFont.h
+++ b/include/ports/SkHarfBuzzFont.h
@@ -29,7 +29,7 @@ public:
Color information (e.g. color, xfermode, shader, etc.) are not required.
*/
virtual void setupPaint(SkPaint*) const = 0;
-
+
/** Implementation of HB_GetFontTableFunc, using SkHarfBuzzFont* as
the first parameter.
*/
diff --git a/include/ports/SkStream_Win.h b/include/ports/SkStream_Win.h
index 849636005d..d85da8ba44 100644
--- a/include/ports/SkStream_Win.h
+++ b/include/ports/SkStream_Win.h
@@ -34,7 +34,7 @@ public:
// overrides
virtual bool rewind();
virtual size_t read(void* buffer, size_t size);
-
+
private:
SkString fURL;
HINTERNET fConnection;
diff --git a/include/svg/SkSVGBase.h b/include/svg/SkSVGBase.h
index 234ba8b443..a512eabed1 100644
--- a/include/svg/SkSVGBase.h
+++ b/include/svg/SkSVGBase.h
@@ -17,7 +17,7 @@ class SkSVGParser;
class SkSVGBase {
public:
virtual ~SkSVGBase();
- virtual void addAttribute(SkSVGParser& parser, int attrIndex,
+ virtual void addAttribute(SkSVGParser& parser, int attrIndex,
const char* attrValue, size_t attrLength);
virtual int getAttributes(const SkSVGAttribute** attrPtr) = 0;
};
diff --git a/include/svg/SkSVGPaintState.h b/include/svg/SkSVGPaintState.h
index 76c5daf557..211e9cfce4 100644
--- a/include/svg/SkSVGPaintState.h
+++ b/include/svg/SkSVGPaintState.h
@@ -42,10 +42,10 @@ public:
};
SkSVGPaint();
- virtual void addAttribute(SkSVGParser& parser, int attrIndex,
+ virtual void addAttribute(SkSVGParser& parser, int attrIndex,
const char* attrValue, size_t attrLength);
bool flush(SkSVGParser& , bool isFlushable, bool isDef);
- virtual int getAttributes(const SkSVGAttribute** attrPtr);
+ virtual int getAttributes(const SkSVGAttribute** attrPtr);
static void Push(SkSVGPaint** head, SkSVGPaint* add);
static void Pop(SkSVGPaint** head);
SkString* operator[](int index);
diff --git a/include/svg/SkSVGParser.h b/include/svg/SkSVGParser.h
index a58729de80..c2f9112e64 100644
--- a/include/svg/SkSVGParser.h
+++ b/include/svg/SkSVGParser.h
@@ -55,7 +55,7 @@ private:
static void Delete(SkTDArray<SkSVGElement*>& fChildren);
static SkSVGTypes GetType(const char name[], size_t len);
SkSVGPaint* fHead;
- SkSVGPaint fEmptyPaint;
+ SkSVGPaint fEmptyPaint;
SkSVGPaint fLastFlush;
SkString fLastColor;
SkMatrix fLastTransform;
diff --git a/include/svg/SkSVGTypes.h b/include/svg/SkSVGTypes.h
index 28830a134c..b13bc6e4fc 100644
--- a/include/svg/SkSVGTypes.h
+++ b/include/svg/SkSVGTypes.h
@@ -33,7 +33,7 @@ enum SkSVGTypes {
SkSVGType_Symbol,
SkSVGType_Text,
SkSVGType_Tspan,
- SkSVGType_Unknown,
+ SkSVGType_Unknown,
SkSVGType_Use
};
diff --git a/include/text/SkTextLayout.h b/include/text/SkTextLayout.h
index 3b123343e8..7d0ffe72de 100644
--- a/include/text/SkTextLayout.h
+++ b/include/text/SkTextLayout.h
@@ -22,7 +22,7 @@ public:
const SkPaint& paint() const { return fPaint; }
SkPaint& paint() { return fPaint; }
-
+
// todo: bidi-override, language
private:
diff --git a/include/utils/SkBoundaryPatch.h b/include/utils/SkBoundaryPatch.h
index 7997cf8abe..89060a65da 100644
--- a/include/utils/SkBoundaryPatch.h
+++ b/include/utils/SkBoundaryPatch.h
@@ -49,7 +49,7 @@ private:
class SkLineBoundary : public SkBoundary {
public:
SkPoint fPts[4];
-
+
// override
virtual SkPoint eval(Edge, SkScalar);
};
@@ -58,7 +58,7 @@ class SkCubicBoundary : public SkBoundary {
public:
// the caller sets the first 12 entries. The 13th is used by the impl.
SkPoint fPts[13];
-
+
// override
virtual SkPoint eval(Edge, SkScalar);
};
diff --git a/include/utils/SkCamera.h b/include/utils/SkCamera.h
index d3bddaa2af..6527c32d6e 100644
--- a/include/utils/SkCamera.h
+++ b/include/utils/SkCamera.h
@@ -55,7 +55,7 @@ typedef SkPoint3D SkVector3D;
struct SkMatrix3D {
SkScalar fMat[3][4];
-
+
void reset();
void setRow(int row, SkScalar a, SkScalar b, SkScalar c, SkScalar d = 0)
@@ -71,7 +71,7 @@ struct SkMatrix3D {
void setRotateY(SkScalar deg);
void setRotateZ(SkScalar deg);
void setTranslate(SkScalar x, SkScalar y, SkScalar z);
-
+
void preRotateX(SkScalar deg);
void preRotateY(SkScalar deg);
void preRotateZ(SkScalar deg);
@@ -113,7 +113,7 @@ private:
public: // make public for SkDraw3D for now
SkVector3D fU, fV;
SkPoint3D fOrigin;
-
+
friend class SkCamera3D;
};
@@ -161,7 +161,7 @@ public:
void applyToCanvas(SkCanvas*) const;
SkScalar dotWithNormal(SkScalar dx, SkScalar dy, SkScalar dz) const;
-
+
private:
struct Rec {
Rec* fNext;
diff --git a/include/utils/SkCullPoints.h b/include/utils/SkCullPoints.h
index 5458b29781..fafa0fc085 100644
--- a/include/utils/SkCullPoints.h
+++ b/include/utils/SkCullPoints.h
@@ -16,13 +16,13 @@ class SkCullPoints {
public:
SkCullPoints();
SkCullPoints(const SkIRect& r);
-
+
void reset(const SkIRect& r);
-
+
/** Start a contour at (x,y). Follow this with call(s) to lineTo(...)
*/
void moveTo(int x, int y);
-
+
enum LineToResult {
kNo_Result, //!< line segment was completely clipped out
kLineTo_Result, //!< path.lineTo(pts[1]);
@@ -37,7 +37,7 @@ private:
SkIPoint fAsQuad[4]; // cache of fR as 4 points
SkIPoint fPrevPt; // private state
LineToResult fPrevResult; // private state
-
+
bool sect_test(int x0, int y0, int x1, int y1) const;
};
@@ -56,7 +56,7 @@ public:
SkCullPointsPath(const SkIRect& r, SkPath* dst);
void reset(const SkIRect& r, SkPath* dst);
-
+
void moveTo(int x, int y);
void lineTo(int x, int y);
diff --git a/include/utils/SkDeferredCanvas.h b/include/utils/SkDeferredCanvas.h
index ff3235136d..8779df96b2 100644
--- a/include/utils/SkDeferredCanvas.h
+++ b/include/utils/SkDeferredCanvas.h
@@ -47,7 +47,7 @@ public:
/**
* Specify a NotificationClient to be used by this canvas. Calling
- * setNotificationClient will release the previously set
+ * setNotificationClient will release the previously set
* NotificationClient, if any. SkDeferredCanvas does not take ownership
* of the notification client. Therefore user code is resposible
* for its destruction. The notification client must be unregistered
@@ -75,7 +75,7 @@ public:
bool isDeferredDrawing() const;
/**
- * Returns true if the canvas contains a fresh frame. A frame is
+ * Returns true if the canvas contains a fresh frame. A frame is
* considered fresh when its content do not depend on the contents
* of the previous frame. For example, if a canvas is cleared before
* drawing each frame, the frames will all be considered fresh.
@@ -181,7 +181,7 @@ public:
/**
* Called after a recording a draw command if additional memory
* had to be allocated for recording.
- * @param newAllocatedStorage same value as would be returned by
+ * @param newAllocatedStorage same value as would be returned by
* storageAllocatedForRecording(), for convenience.
*/
virtual void storageAllocatedForRecordingChanged(
@@ -191,7 +191,7 @@ public:
* Called after pending draw commands have been flushed
*/
virtual void flushedDrawCommands() {}
-
+
private:
typedef SkRefCnt INHERITED;
};
diff --git a/include/utils/SkDumpCanvas.h b/include/utils/SkDumpCanvas.h
index 36c27caebf..bae84c6e84 100644
--- a/include/utils/SkDumpCanvas.h
+++ b/include/utils/SkDumpCanvas.h
@@ -53,7 +53,7 @@ public:
virtual void dump(SkDumpCanvas*, SkDumpCanvas::Verb, const char str[],
const SkPaint*) = 0;
-
+
private:
typedef SkRefCnt INHERITED;
};
diff --git a/include/utils/SkJSON.h b/include/utils/SkJSON.h
index 5268af53cd..c601fa89b5 100644
--- a/include/utils/SkJSON.h
+++ b/include/utils/SkJSON.h
@@ -23,9 +23,9 @@ public:
kFloat,
kBool,
};
-
+
class Array;
-
+
class Object {
private:
struct Slot;
@@ -42,7 +42,7 @@ public:
* not be null.
*/
void addObject(const char name[], Object* value);
-
+
/**
* Create a new slot with the specified name and value. The name
* parameter is copied, but ownership of the Array parameter is
@@ -50,26 +50,26 @@ public:
* not be null.
*/
void addArray(const char name[], Array* value);
-
+
/**
* Create a new slot with the specified name and value. Both parameters
* are copied. The value parameter may be null, but the name must
* not be null.
*/
void addString(const char name[], const char value[]);
-
+
/**
* Create a new slot with the specified name and value. The name
* parameter is copied, and must not be null.
*/
void addInt(const char name[], int32_t value);
-
+
/**
* Create a new slot with the specified name and value. The name
* parameter is copied, and must not be null.
*/
void addFloat(const char name[], float value);
-
+
/**
* Create a new slot with the specified name and value. The name
* parameter is copied, and must not be null.
@@ -108,7 +108,7 @@ public:
class Iter {
public:
Iter(const Object&);
-
+
/**
* Returns true when there are no more entries in the iterator.
* In this case, no other methods should be called.
@@ -126,43 +126,43 @@ public:
* if done() returns false.
*/
Type type() const;
-
+
/**
* Returns the name of the current element. Should only be called
* if done() returns false.
*/
const char* name() const;
-
+
/**
* Returns the type of the current element. Should only be called
* if done() returns false and type() returns kObject.
*/
Object* objectValue() const;
-
+
/**
* Returns the type of the current element. Should only be called
* if done() returns false and type() returns kArray.
*/
Array* arrayValue() const;
-
+
/**
* Returns the type of the current element. Should only be called
* if done() returns false and type() returns kString.
*/
const char* stringValue() const;
-
+
/**
* Returns the type of the current element. Should only be called
* if done() returns false and type() returns kInt.
*/
int32_t intValue() const;
-
+
/**
* Returns the type of the current element. Should only be called
* if done() returns false and type() returns kFloat.
*/
float floatValue() const;
-
+
/**
* Returns the type of the current element. Should only be called
* if done() returns false and type() returns kBool.
@@ -176,14 +176,14 @@ public:
private:
Slot* fHead;
Slot* fTail;
-
+
const Slot* findSlot(const char name[], Type) const;
Slot* addSlot(Slot*);
void dumpLevel(int level) const;
-
+
friend class Array;
};
-
+
class Array {
public:
/**
@@ -197,22 +197,22 @@ public:
* values.
*/
Array(const int32_t values[], int count);
-
+
/**
* Creates an array of floats, initialized by copying the specified
* values.
*/
Array(const float values[], int count);
-
+
/**
* Creates an array of bools, initialized by copying the specified
* values.
*/
Array(const bool values[], int count);
-
+
Array(const Array&);
~Array();
-
+
int count() const { return fCount; }
Type type() const { return fType; }
@@ -222,7 +222,7 @@ public:
* Should only be called if the Array's type is kObject.
*/
void setObject(int index, Object*);
-
+
/**
* Replace the element at the specified index with the specified
* Array (which may be null). Ownership of the Array is transferred.
@@ -274,10 +274,10 @@ public:
float* fFloats;
bool* fBools;
} fArray;
-
+
void init(Type, int count, const void* src);
void dumpLevel(int level) const;
-
+
friend class Object;
};
};
diff --git a/include/utils/SkMeshUtils.h b/include/utils/SkMeshUtils.h
index c7cdeca4a8..564df67a8e 100644
--- a/include/utils/SkMeshUtils.h
+++ b/include/utils/SkMeshUtils.h
@@ -19,7 +19,7 @@ class SkMeshIndices {
public:
SkMeshIndices();
~SkMeshIndices();
-
+
bool init(int texW, int texH, int rows, int cols) {
return this->init(NULL, NULL, texW, texH, rows, cols);
}
diff --git a/include/utils/SkNinePatch.h b/include/utils/SkNinePatch.h
index b0ea46b19e..4d8788b285 100644
--- a/include/utils/SkNinePatch.h
+++ b/include/utils/SkNinePatch.h
@@ -22,7 +22,7 @@ public:
static void DrawNine(SkCanvas* canvas, const SkRect& dst,
const SkBitmap& bitmap, const SkIRect& margins,
const SkPaint* paint = NULL);
-
+
static void DrawMesh(SkCanvas* canvas, const SkRect& dst,
const SkBitmap& bitmap,
const int32_t xDivs[], int numXDivs,
diff --git a/include/utils/ios/SkStream_NSData.h b/include/utils/ios/SkStream_NSData.h
index 0829a4f26f..8e6f06452d 100755
--- a/include/utils/ios/SkStream_NSData.h
+++ b/include/utils/ios/SkStream_NSData.h
@@ -30,7 +30,7 @@ class SkStream_NSData : public SkMemoryStream {
public:
SkStream_NSData(NSData* data);
virtual ~SkStream_NSData();
-
+
static SkStream_NSData* CreateFromResource(const char name[],
const char suffix[]);
diff --git a/include/utils/win/SkIStream.h b/include/utils/win/SkIStream.h
index b7d09493da..e4e045c988 100644
--- a/include/utils/win/SkIStream.h
+++ b/include/utils/win/SkIStream.h
@@ -46,24 +46,24 @@ public:
// IStream Interface
public:
virtual HRESULT STDMETHODCALLTYPE SetSize(ULARGE_INTEGER);
-
+
virtual HRESULT STDMETHODCALLTYPE CopyTo(IStream*
, ULARGE_INTEGER
, ULARGE_INTEGER*
, ULARGE_INTEGER*);
-
+
virtual HRESULT STDMETHODCALLTYPE Commit(DWORD);
-
+
virtual HRESULT STDMETHODCALLTYPE Revert(void);
-
+
virtual HRESULT STDMETHODCALLTYPE LockRegion(ULARGE_INTEGER
, ULARGE_INTEGER
, DWORD);
-
+
virtual HRESULT STDMETHODCALLTYPE UnlockRegion(ULARGE_INTEGER
, ULARGE_INTEGER
, DWORD);
-
+
virtual HRESULT STDMETHODCALLTYPE Clone(IStream **);
virtual HRESULT STDMETHODCALLTYPE Seek(LARGE_INTEGER liDistanceToMove
diff --git a/include/utils/win/SkTScopedComPtr.h b/include/utils/win/SkTScopedComPtr.h
index 14aace5440..85c314a97a 100644
--- a/include/utils/win/SkTScopedComPtr.h
+++ b/include/utils/win/SkTScopedComPtr.h
@@ -47,13 +47,13 @@ public:
this->fPtr = NULL;
}
}
-
+
void swap(SkTScopedComPtr<T>& that) {
T* temp = this->fPtr;
this->fPtr = that.fPtr;
that.fPtr = temp;
}
-
+
T* release() {
T* temp = this->fPtr;
this->fPtr = NULL;
diff --git a/include/views/SkEvent.h b/include/views/SkEvent.h
index b3a07e9551..e11c1573d2 100644
--- a/include/views/SkEvent.h
+++ b/include/views/SkEvent.h
@@ -105,7 +105,7 @@ public:
fTargetProc = proc;
return this;
}
-
+
/**
* Return the event's unnamed 32bit field. Default value is 0
*/
@@ -195,7 +195,7 @@ public:
void post() {
return this->postDelay(0);
}
-
+
/**
* Post to the event queue using the event's targetID or target-proc and
* the specifed millisecond delay.
@@ -204,7 +204,7 @@ public:
* the event queue. It cannot be allocated on the stack or in a global.
*/
void postDelay(SkMSec delay);
-
+
/**
* Post to the event queue using the event's targetID or target-proc.
* The event will be delivered no sooner than the specified millisecond
diff --git a/include/views/SkKey.h b/include/views/SkKey.h
index 4db3108d4c..a019c28115 100644
--- a/include/views/SkKey.h
+++ b/include/views/SkKey.h
@@ -13,9 +13,9 @@
#include "SkTypes.h"
enum SkKey {
- //reordering these to match android.app.KeyEvent
+ //reordering these to match android.app.KeyEvent
kNONE_SkKey, //corresponds to android's UNKNOWN
-
+
kLeftSoftKey_SkKey,
kRightSoftKey_SkKey,
@@ -23,7 +23,7 @@ enum SkKey {
kBack_SkKey, //!< (CLR)
kSend_SkKey, //!< the green (talk) key
kEnd_SkKey, //!< the red key
-
+
k0_SkKey,
k1_SkKey,
k2_SkKey,
diff --git a/include/views/SkOSMenu.h b/include/views/SkOSMenu.h
index 0c4a619efa..3e5ee43920 100644
--- a/include/views/SkOSMenu.h
+++ b/include/views/SkOSMenu.h
@@ -17,9 +17,9 @@ class SkOSMenu {
public:
explicit SkOSMenu(const char title[] = "");
~SkOSMenu();
-
+
/**
- * Each of these (except action) has an associated value, which is stored in
+ * Each of these (except action) has an associated value, which is stored in
* the event payload for the item.
* Each type has a specific type for its value...
* Action : none
@@ -40,23 +40,23 @@ public:
kTextField_Type,
kCustom_Type
};
-
+
enum TriState {
kMixedState = -1,
kOffState = 0,
kOnState = 1
};
-
+
class Item {
public:
/**
* Auto increments a global to generate an unique ID for each new item
* Note: Thread safe
*/
- Item(const char label[], SkOSMenu::Type type, const char slotName[],
+ Item(const char label[], SkOSMenu::Type type, const char slotName[],
SkEvent* evt);
~Item() { delete fEvent; }
-
+
SkEvent* getEvent() const { return fEvent; }
int getID() const { return fID; }
const char* getLabel() const { return fLabel.c_str(); }
@@ -64,18 +64,18 @@ public:
Type getType() const { return fType; }
void setKeyEquivalent(SkUnichar key) { fKey = key; }
SkUnichar getKeyEquivalent() const { return fKey; }
-
+
/**
* Helper functions for predefined types
*/
void setBool(bool value) const; //For Switch
- void setScalar(SkScalar value) const; //For Slider
+ void setScalar(SkScalar value) const; //For Slider
void setInt(int value) const; //For List
void setTriState(TriState value) const; //For Tristate
void setString(const char value[]) const; //For TextField
-
+
/**
- * Post event associated with the menu item to target, any changes to
+ * Post event associated with the menu item to target, any changes to
* the associated event must be made prior to calling this method
*/
void postEvent() const { (new SkEvent(*(fEvent)))->post(); }
@@ -88,80 +88,80 @@ public:
Type fType;
SkUnichar fKey;
};
-
+
void reset();
const char* getTitle() const { return fTitle.c_str(); }
void setTitle (const char title[]) { fTitle.set(title); }
int getCount() const { return fItems.count(); }
const Item* getItemByID(int itemID) const;
void getItems(const Item* items[]) const;
-
+
/**
- * Assign key to the menu item with itemID, will do nothing if there's no
+ * Assign key to the menu item with itemID, will do nothing if there's no
* item with the id given
*/
void assignKeyEquivalentToItem(int itemID, SkUnichar key);
/**
- * Call this in a SkView's onHandleChar to trigger any menu items with the
- * given key equivalent. If such an item is found, the method will return
- * true and its corresponding event will be triggered (default behavior
+ * Call this in a SkView's onHandleChar to trigger any menu items with the
+ * given key equivalent. If such an item is found, the method will return
+ * true and its corresponding event will be triggered (default behavior
* defined for switches(toggling), tristates(cycle), and lists(cycle),
- * for anything else, the event attached is posted without state changes)
+ * for anything else, the event attached is posted without state changes)
* If no menu item can be matched with the key, false will be returned
*/
bool handleKeyEquivalent(SkUnichar key);
-
+
/**
- * The following functions append new items to the menu and returns their
- * associated unique id, which can be used to by the client to refer to
+ * The following functions append new items to the menu and returns their
+ * associated unique id, which can be used to by the client to refer to
* the menu item created and change its state. slotName specifies the string
* identifier of any state/value to be returned in the item's SkEvent object
* NOTE: evt must be dynamically allocated
*/
- int appendItem(const char label[], Type type, const char slotName[],
- SkEvent* evt);
-
+ int appendItem(const char label[], Type type, const char slotName[],
+ SkEvent* evt);
+
/**
- * Create predefined items with the given parameters. To be used with the
+ * Create predefined items with the given parameters. To be used with the
* other helper functions below to retrive/update state information.
- * Note: the helper functions below assume that slotName is UNIQUE for all
+ * Note: the helper functions below assume that slotName is UNIQUE for all
* menu items of the same type since it's used to identify the event
*/
int appendAction(const char label[], SkEventSinkID target);
- int appendList(const char label[], const char slotName[],
+ int appendList(const char label[], const char slotName[],
SkEventSinkID target, int defaultIndex, const char[] ...);
- int appendSlider(const char label[], const char slotName[],
- SkEventSinkID target, SkScalar min, SkScalar max,
+ int appendSlider(const char label[], const char slotName[],
+ SkEventSinkID target, SkScalar min, SkScalar max,
SkScalar defaultValue);
- int appendSwitch(const char label[], const char slotName[],
+ int appendSwitch(const char label[], const char slotName[],
SkEventSinkID target, bool defaultState = false);
int appendTriState(const char label[], const char slotName[],
SkEventSinkID target, TriState defaultState = kOffState);
int appendTextField(const char label[], const char slotName[],
SkEventSinkID target, const char placeholder[] = "");
-
-
+
+
/**
* Helper functions to retrieve information other than the stored value for
* some predefined types
*/
static bool FindListItemCount(const SkEvent& evt, int* count);
/**
- * Ensure that the items array can store n SkStrings where n is the count
+ * Ensure that the items array can store n SkStrings where n is the count
* extracted using FindListItemCount
*/
static bool FindListItems(const SkEvent& evt, SkString items[]);
static bool FindSliderMin(const SkEvent& evt, SkScalar* min);
static bool FindSliderMax(const SkEvent& evt, SkScalar* max);
-
+
/**
* Returns true if an action with the given label is found, false otherwise
*/
static bool FindAction(const SkEvent& evt, const char label[]);
/**
- * The following helper functions will return true if evt is generated from
- * a predefined item type and retrieve the corresponding state information.
- * They will return false and leave value unchanged if there's a type
+ * The following helper functions will return true if evt is generated from
+ * a predefined item type and retrieve the corresponding state information.
+ * They will return false and leave value unchanged if there's a type
* mismatch or slotName is incorrect
*/
static bool FindListIndex(const SkEvent& evt, const char slotName[], int* value);
@@ -169,11 +169,11 @@ public:
static bool FindSwitchState(const SkEvent& evt, const char slotName[], bool* value);
static bool FindTriState(const SkEvent& evt, const char slotName[], TriState* value);
static bool FindText(const SkEvent& evt, const char slotName[], SkString* value);
-
+
private:
SkString fTitle;
SkTDArray<Item*> fItems;
-
+
// illegal
SkOSMenu(const SkOSMenu&);
SkOSMenu& operator=(const SkOSMenu&);
diff --git a/include/views/SkOSWindow_Mac.h b/include/views/SkOSWindow_Mac.h
index 3391785ef9..d195cf1b65 100644
--- a/include/views/SkOSWindow_Mac.h
+++ b/include/views/SkOSWindow_Mac.h
@@ -17,7 +17,7 @@ public:
~SkOSWindow();
void* getHWND() const { return fHWND; }
- virtual bool onDispatchClick(int x, int y, Click::State state,
+ virtual bool onDispatchClick(int x, int y, Click::State state,
void* owner);
enum SkBackEndTypes {
kNone_BackEndType,
@@ -39,7 +39,7 @@ protected:
virtual void onAddMenu(const SkOSMenu*);
virtual void onUpdateMenu(const SkOSMenu*);
virtual void onSetTitle(const char[]);
-
+
private:
void* fHWND;
bool fInvalEventIsPending;
diff --git a/include/views/SkOSWindow_Win.h b/include/views/SkOSWindow_Win.h
index 5add420803..ff289bd6a6 100644
--- a/include/views/SkOSWindow_Win.h
+++ b/include/views/SkOSWindow_Win.h
@@ -61,7 +61,7 @@ protected:
private:
void* fHWND;
-
+
void doPaint(void* ctx);
#if SK_SUPPORT_GPU
@@ -89,7 +89,7 @@ private:
#endif // SK_ANGLE
#endif // SK_SUPPORT_GPU
- typedef SkWindow INHERITED;
+ typedef SkWindow INHERITED;
};
#endif
diff --git a/include/views/SkOSWindow_iOS.h b/include/views/SkOSWindow_iOS.h
index 33f014cb59..a1c4956be9 100755
--- a/include/views/SkOSWindow_iOS.h
+++ b/include/views/SkOSWindow_iOS.h
@@ -16,7 +16,7 @@ public:
~SkOSWindow();
void* getHWND() const { return fHWND; }
- virtual bool onDispatchClick(int x, int y, Click::State state,
+ virtual bool onDispatchClick(int x, int y, Click::State state,
void* owner);
enum SkBackEndTypes {
@@ -37,7 +37,7 @@ protected:
virtual void onAddMenu(const SkOSMenu*);
virtual void onUpdateMenu(const SkOSMenu*);
virtual void onSetTitle(const char[]);
-
+
private:
void* fHWND;
bool fInvalEventIsPending;
diff --git a/include/views/SkOSWindow_wxwidgets.h b/include/views/SkOSWindow_wxwidgets.h
index a662b4099e..ad939b2865 100644
--- a/include/views/SkOSWindow_wxwidgets.h
+++ b/include/views/SkOSWindow_wxwidgets.h
@@ -17,19 +17,19 @@ public:
SkOSWindow();
SkOSWindow(const wxString& title, int x, int y, int width, int height);
~SkOSWindow();
-
+
wxFrame* getWXFrame() const { return fFrame; }
-
+
void updateSize();
-
+
protected:
virtual void onHandleInval(const SkIRect&);
virtual void onAddMenu(const SkOSMenu*);
-
+
private:
wxFrame* fFrame;
typedef SkWindow INHERITED;
-
+
};
#endifpedef SkWindow INHERITED;
diff --git a/include/views/SkStackViewLayout.h b/include/views/SkStackViewLayout.h
index 705ff74bdb..f8d23de783 100644
--- a/include/views/SkStackViewLayout.h
+++ b/include/views/SkStackViewLayout.h
@@ -37,7 +37,7 @@ public:
kStart_Pack,
kCenter_Pack,
kEnd_Pack,
-
+
kPackCount
};
Pack getPack() const { return (Pack)fPack; }
diff --git a/include/views/SkSystemEventTypes.h b/include/views/SkSystemEventTypes.h
index f0f2952a32..bb2b5d5279 100644
--- a/include/views/SkSystemEventTypes.h
+++ b/include/views/SkSystemEventTypes.h
@@ -17,7 +17,7 @@
*/
#define SK_EventType_Delay "\xd" "lay"
#define SK_EventType_Inval "nv" "\xa" "l"
-#define SK_EventType_Key "key" "\x1"
+#define SK_EventType_Key "key" "\x1"
#define SK_EventType_OnEnd "on" "\xe" "n"
#define SK_EventType_Unichar "\xc" "har"
#define SK_EventType_KeyUp "key" "\xf"
diff --git a/include/views/SkTouchGesture.h b/include/views/SkTouchGesture.h
index 527065e540..1ba3865aa5 100644
--- a/include/views/SkTouchGesture.h
+++ b/include/views/SkTouchGesture.h
@@ -13,13 +13,13 @@
struct SkFlingState {
SkFlingState() : fActive(false) {}
-
+
bool isActive() const { return fActive; }
void stop() { fActive = false; }
-
+
void reset(float sx, float sy);
bool evaluateMatrix(SkMatrix* matrix);
-
+
private:
SkPoint fDirection;
SkScalar fSpeed0;
diff --git a/include/views/SkView.h b/include/views/SkView.h
index de497dd768..eb0621a18f 100644
--- a/include/views/SkView.h
+++ b/include/views/SkView.h
@@ -82,9 +82,9 @@ public:
void getLocalBounds(SkRect* bounds) const;
/** Loc - the view's offset with respect to its parent in its view hiearchy.
- NOTE: For more complex transforms, use Local Matrix. The tranformations
+ NOTE: For more complex transforms, use Local Matrix. The tranformations
are applied in the following order:
- canvas->translate(fLoc.fX, fLoc.fY);
+ canvas->translate(fLoc.fX, fLoc.fY);
canvas->concat(fMatrix);
*/
/** Return the view's left edge */
@@ -96,13 +96,13 @@ public:
void setLoc(const SkPoint& loc) { this->setLoc(loc.fX, loc.fY); }
void setLocX(SkScalar x) { this->setLoc(x, fLoc.fY); }
void setLocY(SkScalar y) { this->setLoc(fLoc.fX, y); }
-
- /** Local Matrix - matrix used to tranform the view with respect to its
- parent in its view hiearchy. Use setLocalMatrix to apply matrix
+
+ /** Local Matrix - matrix used to tranform the view with respect to its
+ parent in its view hiearchy. Use setLocalMatrix to apply matrix
transformations to the current view and in turn affect its children.
NOTE: For simple offsets, use Loc. The transformations are applied in
the following order:
- canvas->translate(fLoc.fX, fLoc.fY);
+ canvas->translate(fLoc.fX, fLoc.fY);
canvas->concat(fMatrix);
*/
const SkMatrix& getLocalMatrix() const { return fMatrix; }
@@ -205,7 +205,7 @@ public:
/** Convert the specified point from global coordinates into view-local coordinates
* Return true on success; false on failure
*/
- bool globalToLocal(SkPoint* pt) const {
+ bool globalToLocal(SkPoint* pt) const {
if (NULL != pt) {
return this->globalToLocal(pt->fX, pt->fY, pt);
}
@@ -217,7 +217,7 @@ public:
bool globalToLocal(SkScalar globalX, SkScalar globalY, SkPoint* local) const;
/** \class F2BIter
-
+
Iterator that will return each of this view's children, in
front-to-back order (the order used for clicking). The first
call to next() returns the front-most child view. When
@@ -232,7 +232,7 @@ public:
};
/** \class B2FIter
-
+
Iterator that will return each of this view's children, in
back-to-front order (the order they are drawn). The first
call to next() returns the back-most child view. When
@@ -247,7 +247,7 @@ public:
};
/** \class Artist
-
+
Install a subclass of this in a view (calling setArtist()), and then the
default implementation of that view's onDraw() will invoke this object
automatically.
@@ -275,7 +275,7 @@ public:
Artist* setArtist(Artist* artist);
/** \class Layout
-
+
Install a subclass of this in a view (calling setLayout()), and then the
default implementation of that view's onLayoutChildren() will invoke
this object automatically.
@@ -382,7 +382,7 @@ private:
friend class B2FIter;
friend class F2BIter;
-
+
friend class SkLayerView;
bool setFocusView(SkView* fvOrNull);
diff --git a/include/views/SkViewInflate.h b/include/views/SkViewInflate.h
index 7282091c45..b2cd1e67ce 100644
--- a/include/views/SkViewInflate.h
+++ b/include/views/SkViewInflate.h
@@ -17,7 +17,7 @@
class SkView;
class SkViewInflate {
-public:
+public:
SkViewInflate();
virtual ~SkViewInflate();
@@ -33,7 +33,7 @@ public:
if no match is found.
*/
SkView* findViewByID(const char id[]) const;
-
+
SkDEBUGCODE(void dump() const;)
protected:
diff --git a/include/views/SkWindow.h b/include/views/SkWindow.h
index c72163c223..a71bf4d7dc 100644
--- a/include/views/SkWindow.h
+++ b/include/views/SkWindow.h
@@ -54,7 +54,7 @@ public:
void addMenu(SkOSMenu*);
const SkTDArray<SkOSMenu*>* getMenus() { return &fMenus; }
-
+
const char* getTitle() const { return fTitle.c_str(); }
void setTitle(const char title[]);
@@ -93,7 +93,7 @@ private:
SkView* fFocusView;
bool fWaitingOnInval;
-
+
SkString fTitle;
SkMatrix fMatrix;
diff --git a/include/views/animated/SkImageView.h b/include/views/animated/SkImageView.h
index e17914151b..a21da0be51 100644
--- a/include/views/animated/SkImageView.h
+++ b/include/views/animated/SkImageView.h
@@ -25,7 +25,7 @@ public:
void getUri(SkString*) const;
void setUri(const char []);
void setUri(const SkString&);
-
+
enum ScaleType {
kMatrix_ScaleType,
@@ -36,7 +36,7 @@ public:
};
ScaleType getScaleType() const { return (ScaleType)fScaleType; }
void setScaleType(ScaleType);
-
+
bool getImageMatrix(SkMatrix*) const;
void setImageMatrix(const SkMatrix*);
@@ -45,7 +45,7 @@ protected:
virtual bool onEvent(const SkEvent&);
virtual void onDraw(SkCanvas*);
virtual void onInflate(const SkDOM&, const SkDOMNode*);
-
+
private:
SkString fUri;
SkMatrix* fMatrix; // null or copy of caller's matrix ,,,,,
@@ -56,7 +56,7 @@ private:
uint8_t fScaleType;
SkBool8 fDataIsAnim; // as opposed to bitmap
SkBool8 fUriIsValid;
-
+
void onUriChange();
bool getDataBounds(SkRect* bounds);
bool freeData();
diff --git a/include/views/animated/SkProgressBarView.h b/include/views/animated/SkProgressBarView.h
index 0e39d1e0b6..7e670a9ad5 100644
--- a/include/views/animated/SkProgressBarView.h
+++ b/include/views/animated/SkProgressBarView.h
@@ -18,29 +18,29 @@ class SkProgressBarView : public SkWidgetView {
public:
SkProgressBarView();
//SkProgressBarView(int max);
-
+
//inflate: "sk-progress"
-
+
void reset(); //reset progress to zero
void setProgress(int progress);
void changeProgress(int diff);
void setMax(int max);
-
+
int getProgress() const { return fProgress; }
int getMax() const { return fMax; }
-
+
protected:
//overrides
virtual void onInflate(const SkDOM& dom, const SkDOM::Node* node);
virtual void onSizeChange();
virtual void onDraw(SkCanvas* canvas);
virtual bool onEvent(const SkEvent& evt);
-
+
private:
SkAnimator fAnim;
int fProgress;
int fMax;
-
+
typedef SkWidgetView INHERITED;
};
diff --git a/include/views/animated/SkScrollBarView.h b/include/views/animated/SkScrollBarView.h
index 110d0e12f0..1270e14136 100644
--- a/include/views/animated/SkScrollBarView.h
+++ b/include/views/animated/SkScrollBarView.h
@@ -22,10 +22,10 @@ public:
unsigned getShown() const { return fShownLength; }
unsigned getTotal() const { return fTotalLength; }
- void setStart(unsigned start);
+ void setStart(unsigned start);
void setShown(unsigned shown);
void setTotal(unsigned total);
-
+
protected:
//overrides
virtual void onInflate(const SkDOM& dom, const SkDOM::Node* node);
@@ -36,9 +36,9 @@ protected:
private:
SkAnimator fAnim;
unsigned fTotalLength, fStartPoint, fShownLength;
-
+
void adjust();
-
+
typedef SkWidgetView INHERITED;
};
#endif
diff --git a/include/views/animated/SkWidgetViews.h b/include/views/animated/SkWidgetViews.h
index 93adeef6b0..40346600c3 100644
--- a/include/views/animated/SkWidgetViews.h
+++ b/include/views/animated/SkWidgetViews.h
@@ -21,7 +21,7 @@ enum SkWidgetEnum {
kProgress_WidgetEnum, //!< <sk-progress>
kScroll_WidgetEnum, //!< <sk-scroll>
kText_WidgetEnum, //!< <sk-text>
-
+
kWidgetEnumCount
};
@@ -32,7 +32,7 @@ enum SkinEnum {
kProgress_SkinEnum,
kScroll_SkinEnum,
kStaticText_SkinEnum,
-
+
kSkinEnumCount
};
@@ -73,7 +73,7 @@ public:
/** Returns true if the widget can post its event to its listeners.
*/
bool postWidgetEvent();
-
+
/** Returns the sinkID of the widgetview that posted the event, or 0
*/
static SkEventSinkID GetWidgetEventSinkID(const SkEvent&);
@@ -93,11 +93,11 @@ protected:
// overrides
virtual void onInflate(const SkDOM& dom, const SkDOM::Node*);
-
+
private:
SkString fLabel;
SkEvent fEvent;
-
+
typedef SkView INHERITED;
};
@@ -106,7 +106,7 @@ private:
class SkButtonView : public SkWidgetView {
public:
// inflate: "sk-button"
-
+
protected:
// overrides
virtual bool onEvent(const SkEvent&);
@@ -121,7 +121,7 @@ public:
SkCheckButtonView();
// inflate: "sk-checkbutton"
-
+
enum CheckState {
kOff_CheckState, //!< inflate: check-state="off"
kOn_CheckState, //!< inflate: check-state="on"
@@ -144,10 +144,10 @@ protected:
// overrides
virtual void onInflate(const SkDOM& dom, const SkDOM::Node*);
virtual bool onPrepareWidgetEvent(SkEvent* evt);
-
+
private:
uint8_t fCheckState;
-
+
typedef SkWidgetView INHERITED;
};
@@ -214,7 +214,7 @@ public:
bool hasScrollBar() const { return fScrollBar != NULL; }
void setHasScrollBar(bool);
-
+
/** Return the number of visible rows
*/
int getVisibleRowCount() const { return fVisibleRowCount; }
@@ -300,7 +300,7 @@ public:
virtual void getRecord(int rowIndex, int fieldIndex, SkString* data);
virtual bool prepareWidgetEvent(SkEvent*, int rowIndex);
-
+
static SkListSource* Factory(const char name[]);
private:
typedef SkRefCnt INHERITED;
diff --git a/include/xml/SkBML_WXMLParser.h b/include/xml/SkBML_WXMLParser.h
index e16b95c956..5d220cfbaa 100644
--- a/include/xml/SkBML_WXMLParser.h
+++ b/include/xml/SkBML_WXMLParser.h
@@ -21,10 +21,10 @@ public:
BML_WXMLParser(SkWStream& writer);
virtual ~BML_WXMLParser();
static void Write(SkStream& s, const char filename[]);
-
+
/** @cond UNIT_TEST */
SkDEBUGCODE(static void UnitTest();)
- /** @endcond */
+ /** @endcond */
private:
virtual bool onAddAttribute(const char name[], const char value[]);
virtual bool onEndElement(const char name[]);
diff --git a/include/xml/SkDOM.h b/include/xml/SkDOM.h
index 60145c8efa..fd175f06b7 100644
--- a/include/xml/SkDOM.h
+++ b/include/xml/SkDOM.h
@@ -47,7 +47,7 @@ public:
const Attr* getNextAttr(const Node*, const Attr*) const;
const char* getAttrName(const Node*, const Attr*) const;
const char* getAttrValue(const Node*, const Attr*) const;
-
+
// helpers for walking children
int countChildren(const Node* node, const char elem[] = NULL) const;
diff --git a/include/xml/SkXMLParser.h b/include/xml/SkXMLParser.h
index bd8c2f15ee..1a90bf71e7 100644
--- a/include/xml/SkXMLParser.h
+++ b/include/xml/SkXMLParser.h
@@ -76,7 +76,7 @@ public:
virtual bool startElement(const char elem[]);
virtual bool addAttribute(const char name[], const char value[]);
virtual bool endElement(const char elem[]);
- virtual bool text(const char text[], int len);
+ virtual bool text(const char text[], int len);
void* fParser;
protected:
SkXMLParserError* fError;
@@ -116,14 +116,14 @@ public:
const char* fName;
const char* fValue;
};
-
+
int getDepth() const { return fDepth; }
const char* getName();
int getAttributeCount();
void getAttributeInfo(int, AttrInfo*);
const char* getText();
bool isWhitespace();
-
+
protected:
virtual bool onEntityReplacement(const char name[],
SkString* replacement);
@@ -142,11 +142,11 @@ private:
bool onInit(); // return false on failure
EventType onNextToken();
void onExit();
-
+
SkStream* fStream;
Curr fCurr;
int fDepth;
-
+
struct Impl;
Impl* fImpl;
};
diff --git a/src/core/ARGB32_Clamp_Bilinear_BitmapShader.h b/src/core/ARGB32_Clamp_Bilinear_BitmapShader.h
index e76ab087ee..720b4799e9 100644
--- a/src/core/ARGB32_Clamp_Bilinear_BitmapShader.h
+++ b/src/core/ARGB32_Clamp_Bilinear_BitmapShader.h
@@ -48,16 +48,16 @@ static inline SkPMColor sample_bilerpx(SkFixed fx, unsigned srcMaxX, const SkPMC
int srcRB, const SkFilterPtrProc* proc_table)
{
int ix = fx >> 16;
-
+
const SkPMColor *p00, *p01, *p10, *p11;
-
+
p00 = p01 = srcPixels + SkClampMax(ix, srcMaxX);
if ((unsigned)ix < srcMaxX)
p01 += 1;
p10 = (const SkPMColor*)((const char*)p00 + srcRB);
p11 = (const SkPMColor*)((const char*)p01 + srcRB);
-
+
SkFilterPtrProc proc = SkGetBilinearFilterPtrXProc(proc_table, fx);
return proc(p00, p01, p10, p11);
}
@@ -65,7 +65,7 @@ static inline SkPMColor sample_bilerpx(SkFixed fx, unsigned srcMaxX, const SkPMC
void ARGB32_Clamp_Bilinear_BitmapShader::shadeSpan(int x, int y, SkPMColor dstC[], int count)
{
SkASSERT(count > 0);
-
+
unsigned srcScale = SkAlpha255To256(this->getPaintAlpha());
const SkMatrix& inv = this->getTotalInverse();
diff --git a/src/core/SkAAClip.cpp b/src/core/SkAAClip.cpp
index e0fcf7a9f4..fce6683999 100644
--- a/src/core/SkAAClip.cpp
+++ b/src/core/SkAAClip.cpp
@@ -57,7 +57,7 @@ struct SkAAClip::RunHead {
int32_t fRefCnt;
int32_t fRowCount;
int32_t fDataSize;
-
+
YOffset* yoffsets() {
return (YOffset*)((char*)this + sizeof(RunHead));
}
@@ -138,7 +138,7 @@ SkAAClip::Iter::Iter(const SkAAClip& clip) {
fStopYOff = NULL;
return;
}
-
+
const RunHead* head = clip.fRunHead;
fCurrYOff = head->yoffsets();
fStopYOff = fCurrYOff + head->fRowCount;
@@ -334,7 +334,7 @@ static int trim_row_left_right(uint8_t* row, int width, int leftZ, int riteZ) {
SkASSERT(riteZ >= 0);
} while (riteZ > 0);
}
-
+
return trim;
}
@@ -357,7 +357,7 @@ static void test_trim_row_left_right() {
return;
}
gOnce = true;
-
+
uint8_t data0[] = { 0, 0, 0, 10, 10, 0xFF };
uint8_t data1[] = { 2, 0, 0, 10, 5, 0, 2, 0, 3, 0xFF };
uint8_t data2[] = { 5, 0, 2, 10, 5, 0, 2, 0, 3, 0xFF };
@@ -369,13 +369,13 @@ static void test_trim_row_left_right() {
uint8_t data8[] = { 2, 2, 2, 10, 2, 0, 2, 0xFF, 2, 0, 2, 0xFF, 2, 0 };
uint8_t data9[] = { 5, 2, 4, 10, 2, 0, 2, 0, 2, 0, 2, 0xFF, 2, 0 };
uint8_t data10[] ={ 74, 0, 4, 150, 9, 0, 65, 0, 76, 0xFF };
-
+
uint8_t* array[] = {
data0, data1, data2, data3, data4,
data5, data6, data7, data8, data9,
data10
};
-
+
for (size_t i = 0; i < SK_ARRAY_COUNT(array); ++i) {
uint8_t* data = array[i];
const int trimL = *data++;
@@ -397,7 +397,7 @@ bool SkAAClip::trimLeftRight() {
if (this->isEmpty()) {
return false;
}
-
+
AUTO_AACLIP_VALIDATE(*this);
const int width = fBounds.width();
@@ -514,7 +514,7 @@ bool SkAAClip::trimTopBottom() {
SkASSERT(!fBounds.isEmpty());
head->fRowCount -= skip;
SkASSERT(head->fRowCount > 0);
-
+
this->validate();
// need to reset this after the memmove
base = head->data();
@@ -621,10 +621,10 @@ bool operator==(const SkAAClip& a, const SkAAClip& b) {
if (a.fBounds != b.fBounds) {
return false;
}
-
+
const SkAAClip::RunHead* ah = a.fRunHead;
const SkAAClip::RunHead* bh = b.fRunHead;
-
+
// this catches empties and rects being equal
if (ah == bh) {
return true;
@@ -726,7 +726,7 @@ bool SkAAClip::setRegion(const SkRegion& rgn) {
}
this->swap(clip);
return !this->isEmpty();
-#else
+#else
const SkIRect& bounds = rgn.getBounds();
const int offsetX = bounds.fLeft;
const int offsetY = bounds.fTop;
@@ -909,10 +909,10 @@ public:
SkASSERT(count > 0);
SkASSERT(fBounds.contains(x, y));
SkASSERT(fBounds.contains(x + count - 1, y));
-
+
x -= fBounds.left();
y -= fBounds.top();
-
+
Row* row = fCurrRow;
if (y != fPrevY) {
SkASSERT(y > fPrevY);
@@ -951,7 +951,7 @@ public:
SkASSERT(y == fCurrRow->fY);
fCurrRow->fY = y + height - 1;
}
-
+
void addRectRun(int x, int y, int width, int height) {
SkASSERT(fBounds.contains(x + width - 1, y + height - 1));
this->addRun(x, y, 0xFF, width);
@@ -1004,7 +1004,7 @@ public:
const Row* row = fRows.begin();
const Row* stop = fRows.end();
- size_t dataSize = 0;
+ size_t dataSize = 0;
while (row < stop) {
dataSize += row->fData->count();
row += 1;
@@ -1033,7 +1033,7 @@ public:
yoffset->fY = row->fY - adjustY;
yoffset->fOffset = data - baseData;
yoffset += 1;
-
+
size_t n = row->fData->count();
memcpy(data, row->fData->begin(), n);
#ifdef SK_DEBUG
@@ -1041,7 +1041,7 @@ public:
SkASSERT(bytesNeeded == n);
#endif
data += n;
-
+
row += 1;
}
@@ -1166,7 +1166,7 @@ class SkAAClip::BuilderBlitter : public SkBlitter {
/*
If we see a gap of 1 or more empty scanlines while building in Y-order,
we inject an explicit empty scanline (alpha==0)
-
+
See AAClipTest.cpp : test_path_with_hole()
*/
void checkForYGap(int y) {
@@ -1265,7 +1265,7 @@ public:
localCount -= right - fRight;
SkASSERT(localCount >= 0);
}
-
+
if (localCount) {
fBuilder->addRun(localX, y, *alpha, localCount);
}
@@ -1315,7 +1315,7 @@ bool SkAAClip::setPath(const SkPath& path, const SkRegion* clip, bool doAA) {
tmpClip.setRect(ibounds);
clip = &tmpClip;
}
-
+
if (path.isInverseFillType()) {
ibounds = clip->getBounds();
} else {
@@ -1478,7 +1478,7 @@ static void operatorX(SkAAClip::Builder& builder, int lastY,
U8CPU alphaA = 0;
U8CPU alphaB = 0;
int left, rite;
-
+
if (leftA < leftB) {
left = leftA;
alphaA = iterA.alpha();
@@ -1561,7 +1561,7 @@ static void operateY(SkAAClip::Builder& builder, const SkAAClip& A,
} else {
bot = topA = topB;
}
-
+
} else if (topB < topA) {
top = topB;
rowB = iterB.data();
@@ -1603,14 +1603,14 @@ static void operateY(SkAAClip::Builder& builder, const SkAAClip& A,
bool SkAAClip::op(const SkAAClip& clipAOrig, const SkAAClip& clipBOrig,
SkRegion::Op op) {
AUTO_AACLIP_VALIDATE(*this);
-
+
if (SkRegion::kReplace_Op == op) {
return this->set(clipBOrig);
}
-
+
const SkAAClip* clipA = &clipAOrig;
const SkAAClip* clipB = &clipBOrig;
-
+
if (SkRegion::kReverseDifference_Op == op) {
SkTSwap(clipA, clipB);
op = SkRegion::kDifference_Op;
@@ -1630,14 +1630,14 @@ bool SkAAClip::op(const SkAAClip& clipAOrig, const SkAAClip& clipBOrig,
}
bounds = clipA->fBounds;
break;
-
+
case SkRegion::kIntersect_Op:
if ((a_empty | b_empty) || !bounds.intersect(clipA->fBounds,
clipB->fBounds)) {
return this->setEmpty();
}
break;
-
+
case SkRegion::kUnion_Op:
case SkRegion::kXOR_Op:
if (a_empty) {
@@ -1709,7 +1709,7 @@ bool SkAAClip::op(const SkIRect& rOrig, SkRegion::Op op) {
bool SkAAClip::op(const SkRect& rOrig, SkRegion::Op op, bool doAA) {
SkRect rStorage, boundsStorage;
const SkRect* r = &rOrig;
-
+
boundsStorage.set(fBounds);
switch (op) {
case SkRegion::kIntersect_Op:
@@ -1731,7 +1731,7 @@ bool SkAAClip::op(const SkRect& rOrig, SkRegion::Op op, bool doAA) {
default:
break;
}
-
+
SkAAClip clip;
clip.setRect(*r, doAA);
return this->op(*this, clip, op);
@@ -1747,11 +1747,11 @@ bool SkAAClip::translate(int dx, int dy, SkAAClip* dst) const {
if (NULL == dst) {
return !this->isEmpty();
}
-
+
if (this->isEmpty()) {
return dst->setEmpty();
}
-
+
if (this != dst) {
sk_atomic_inc(&fRunHead->fRefCnt);
dst->freeRuns();
@@ -1784,16 +1784,16 @@ void SkAAClip::copyToMask(SkMask* mask) const {
mask->fRowBytes = 0;
return;
}
-
+
mask->fBounds = fBounds;
mask->fRowBytes = fBounds.width();
size_t size = mask->computeImageSize();
mask->fImage = SkMask::AllocImage(size);
-
+
Iter iter(*this);
uint8_t* dst = mask->fImage;
const int width = fBounds.width();
-
+
int y = fBounds.fTop;
while (!iter.done()) {
do {
@@ -1822,7 +1822,7 @@ static void expandToRuns(const uint8_t* SK_RESTRICT data, int initialCount, int
aa[0] = data[1];
aa += n;
-
+
data += 2;
width -= n;
if (0 == width) {
@@ -1913,7 +1913,7 @@ static void merge(const uint8_t* SK_RESTRICT row, int rowN,
row += 2;
rowN = row[0]; // reload
}
-
+
SkDEBUGCODE(accumulated += minN;)
SkASSERT(accumulated <= width);
}
@@ -2012,7 +2012,7 @@ template <typename T> void mergeT(const T* SK_RESTRICT src, int srcN,
for (;;) {
SkASSERT(rowN > 0);
SkASSERT(srcN > 0);
-
+
int n = SkMin32(rowN, srcN);
unsigned rowA = row[1];
if (0xFF == rowA) {
@@ -2024,14 +2024,14 @@ template <typename T> void mergeT(const T* SK_RESTRICT src, int srcN,
dst[i] = mergeOne(src[i], rowA);
}
}
-
+
if (0 == (srcN -= n)) {
break;
}
-
+
src += n;
dst += n;
-
+
SkASSERT(rowN == n);
row += 2;
rowN = row[0];
diff --git a/src/core/SkAAClip.h b/src/core/SkAAClip.h
index 03f6992427..f2cde62dbc 100644
--- a/src/core/SkAAClip.h
+++ b/src/core/SkAAClip.h
@@ -55,7 +55,7 @@ public:
void copyToMask(SkMask*) const;
// called internally
-
+
bool quickContains(int left, int top, int right, int bottom) const;
bool quickContains(const SkIRect& r) const {
return this->quickContains(r.fLeft, r.fTop, r.fRight, r.fBottom);
@@ -102,7 +102,7 @@ public:
fAAClip = aaclip;
fAAClipBounds = aaclip->getBounds();
}
-
+
virtual void blitH(int x, int y, int width) SK_OVERRIDE;
virtual void blitAntiH(int x, int y, const SkAlpha[],
const int16_t runs[]) SK_OVERRIDE;
@@ -110,7 +110,7 @@ public:
virtual void blitRect(int x, int y, int width, int height) SK_OVERRIDE;
virtual void blitMask(const SkMask&, const SkIRect& clip) SK_OVERRIDE;
virtual const SkBitmap* justAnOpaqueColor(uint32_t* value) SK_OVERRIDE;
-
+
private:
SkBlitter* fBlitter;
const SkAAClip* fAAClip;
diff --git a/src/core/SkAdvancedTypefaceMetrics.cpp b/src/core/SkAdvancedTypefaceMetrics.cpp
index e91b2e50e5..370616ef95 100644
--- a/src/core/SkAdvancedTypefaceMetrics.cpp
+++ b/src/core/SkAdvancedTypefaceMetrics.cpp
@@ -46,12 +46,12 @@ template <>
void stripUninterestingTrailingAdvancesFromRange<int16_t>(
SkAdvancedTypefaceMetrics::AdvanceMetric<int16_t>* range) {
SkASSERT(range);
-
+
int expectedAdvanceCount = range->fEndId - range->fStartId + 1;
if (range->fAdvance.count() < expectedAdvanceCount) {
return;
}
-
+
for (int i = expectedAdvanceCount - 1; i >= 0; --i) {
if (range->fAdvance[i] != kDontCareAdvance &&
range->fAdvance[i] != kInvalidAdvance &&
@@ -92,7 +92,7 @@ void zeroWildcardsInRange<int16_t>(
return;
}
SkASSERT(range->fAdvance.count() == range->fEndId - range->fStartId + 1);
-
+
// Zero out wildcards.
for (int i = 0; i < range->fAdvance.count(); ++i) {
if (range->fAdvance[i] == kDontCareAdvance) {
@@ -100,7 +100,7 @@ void zeroWildcardsInRange<int16_t>(
}
}
}
-
+
template <typename Data>
void finishRange(
SkAdvancedTypefaceMetrics::AdvanceMetric<Data>* range,
diff --git a/src/core/SkAntiRun.h b/src/core/SkAntiRun.h
index 56b5ee5f73..31b52e3b1a 100644
--- a/src/core/SkAntiRun.h
+++ b/src/core/SkAntiRun.h
@@ -31,7 +31,7 @@ public:
/// Reinitialize for a new scanline.
void reset(int width);
-
+
/**
* Insert into the buffer a run starting at (x-offsetX):
* if startAlpha > 0
diff --git a/src/core/SkAutoKern.h b/src/core/SkAutoKern.h
index f6879a1394..0a08432a73 100644
--- a/src/core/SkAutoKern.h
+++ b/src/core/SkAutoKern.h
@@ -24,7 +24,7 @@ class SkAutoKern {
public:
SkAutoKern() : fPrevRsbDelta(0) {}
- SkFixed adjust(const SkGlyph& glyph)
+ 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);
diff --git a/src/core/SkBitmap.cpp b/src/core/SkBitmap.cpp
index 382d6a1dce..9dbf322b8e 100644
--- a/src/core/SkBitmap.cpp
+++ b/src/core/SkBitmap.cpp
@@ -464,7 +464,7 @@ Sk64 SkBitmap::getSafeSize64() const {
return ComputeSafeSize64(getConfig(), fWidth, fHeight, fRowBytes);
}
-bool SkBitmap::copyPixelsTo(void* const dst, size_t dstSize,
+bool SkBitmap::copyPixelsTo(void* const dst, size_t dstSize,
int dstRowBytes, bool preserveDstPad) const {
if (dstRowBytes == -1)
@@ -512,9 +512,9 @@ bool SkBitmap::copyPixelsTo(void* const dst, size_t dstSize,
///////////////////////////////////////////////////////////////////////////////
-bool SkBitmap::isImmutable() const {
+bool SkBitmap::isImmutable() const {
return fPixelRef ? fPixelRef->isImmutable() :
- fFlags & kImageIsImmutable_Flag;
+ fFlags & kImageIsImmutable_Flag;
}
void SkBitmap::setImmutable() {
@@ -907,10 +907,10 @@ bool SkBitmap::copyTo(SkBitmap* dst, Config dstConfig, Allocator* alloc) const {
if (!src->readyToDraw()) {
return false;
}
-
+
SkBitmap tmpDst;
tmpDst.setConfig(dstConfig, src->width(), src->height());
-
+
// allocate colortable if srcConfig == kIndex8_Config
SkColorTable* ctable = (dstConfig == kIndex8_Config) ?
new SkColorTable(*src->getColorTable()) : NULL;
@@ -918,12 +918,12 @@ bool SkBitmap::copyTo(SkBitmap* dst, Config dstConfig, Allocator* alloc) const {
if (!tmpDst.allocPixels(alloc, ctable)) {
return false;
}
-
+
if (!tmpDst.readyToDraw()) {
// allocator/lock failed
return false;
}
-
+
/* do memcpy for the same configs cases, else use drawing
*/
if (src->config() == dstConfig) {
diff --git a/src/core/SkBitmapHeap.cpp b/src/core/SkBitmapHeap.cpp
index e7f9eed354..936951cc8e 100644
--- a/src/core/SkBitmapHeap.cpp
+++ b/src/core/SkBitmapHeap.cpp
@@ -226,7 +226,7 @@ size_t SkBitmapHeap::freeMemoryIfPossible(size_t bytesToFree) {
fLeastRecentlyUsed->fLessRecentlyUsed = NULL;
}
}
-
+
return origBytesAllocated - fBytesAllocated;
}
diff --git a/src/core/SkBitmapHeap.h b/src/core/SkBitmapHeap.h
index 61e1dd905d..badbc9cd84 100644
--- a/src/core/SkBitmapHeap.h
+++ b/src/core/SkBitmapHeap.h
@@ -207,14 +207,14 @@ public:
* equal to IGNORE_OWNERS.
*/
void deferAddingOwners();
-
+
/**
* Resume adding references when duplicate SkBitmaps are inserted.
* @param add If true, add references to the SkBitmapHeapEntrys whose SkBitmaps were re-inserted
* while deferring.
*/
void endAddingOwnersDeferral(bool add);
-
+
private:
struct LookupEntry {
LookupEntry(const SkBitmap& bm)
diff --git a/src/core/SkBitmapProcState.cpp b/src/core/SkBitmapProcState.cpp
index 01ef5a5360..3eccf47e70 100644
--- a/src/core/SkBitmapProcState.cpp
+++ b/src/core/SkBitmapProcState.cpp
@@ -61,7 +61,7 @@ bool SkBitmapProcState::chooseProcs(const SkMatrix& inv, const SkPaint& paint) {
int shift = fOrigBitmap.extractMipLevel(&fMipBitmap,
SkScalarToFixed(m->getScaleX()),
SkScalarToFixed(m->getSkewY()));
-
+
if (shift > 0) {
if (m != &fUnitInvMatrix) {
fUnitInvMatrix = *m;
@@ -70,7 +70,7 @@ bool SkBitmapProcState::chooseProcs(const SkMatrix& inv, const SkPaint& paint) {
SkScalar scale = SkFixedToScalar(SK_Fixed1 >> shift);
fUnitInvMatrix.postScale(scale, scale);
-
+
// now point here instead of fOrigBitmap
fBitmap = &fMipBitmap;
}
@@ -106,7 +106,7 @@ bool SkBitmapProcState::chooseProcs(const SkMatrix& inv, const SkPaint& paint) {
}
///////////////////////////////////////////////////////////////////////
-
+
int index = 0;
if (fAlphaScale < 256) { // note: this distinction is not used for D16
index |= 1;
@@ -149,7 +149,7 @@ bool SkBitmapProcState::chooseProcs(const SkMatrix& inv, const SkPaint& paint) {
S32_alpha_D32_filter_DXDY,
S32_opaque_D32_filter_DX,
S32_alpha_D32_filter_DX,
-
+
S16_opaque_D32_nofilter_DXDY,
S16_alpha_D32_nofilter_DXDY,
S16_opaque_D32_nofilter_DX,
@@ -158,7 +158,7 @@ bool SkBitmapProcState::chooseProcs(const SkMatrix& inv, const SkPaint& paint) {
S16_alpha_D32_filter_DXDY,
S16_opaque_D32_filter_DX,
S16_alpha_D32_filter_DX,
-
+
SI8_opaque_D32_nofilter_DXDY,
SI8_alpha_D32_nofilter_DXDY,
SI8_opaque_D32_nofilter_DX,
@@ -167,7 +167,7 @@ bool SkBitmapProcState::chooseProcs(const SkMatrix& inv, const SkPaint& paint) {
SI8_alpha_D32_filter_DXDY,
SI8_opaque_D32_filter_DX,
SI8_alpha_D32_filter_DX,
-
+
S4444_opaque_D32_nofilter_DXDY,
S4444_alpha_D32_nofilter_DXDY,
S4444_opaque_D32_nofilter_DX,
@@ -176,7 +176,7 @@ bool SkBitmapProcState::chooseProcs(const SkMatrix& inv, const SkPaint& paint) {
S4444_alpha_D32_filter_DXDY,
S4444_opaque_D32_filter_DX,
S4444_alpha_D32_filter_DX,
-
+
// A8 treats alpha/opauqe the same (equally efficient)
SA8_alpha_D32_nofilter_DXDY,
SA8_alpha_D32_nofilter_DXDY,
@@ -187,23 +187,23 @@ bool SkBitmapProcState::chooseProcs(const SkMatrix& inv, const SkPaint& paint) {
SA8_alpha_D32_filter_DX,
SA8_alpha_D32_filter_DX
};
-
+
static const SampleProc16 gSkBitmapProcStateSample16[] = {
S32_D16_nofilter_DXDY,
S32_D16_nofilter_DX,
S32_D16_filter_DXDY,
S32_D16_filter_DX,
-
+
S16_D16_nofilter_DXDY,
S16_D16_nofilter_DX,
S16_D16_filter_DXDY,
S16_D16_filter_DX,
-
+
SI8_D16_nofilter_DXDY,
SI8_D16_nofilter_DX,
SI8_D16_filter_DXDY,
SI8_D16_filter_DX,
-
+
// Don't support 4444 -> 565
NULL, NULL, NULL, NULL,
// Don't support A8 -> 565
@@ -240,7 +240,7 @@ static void check_scale_nofilter(uint32_t bitmapXY[], int count,
unsigned mx, unsigned my) {
unsigned y = *bitmapXY++;
SkASSERT(y < my);
-
+
const uint16_t* xptr = reinterpret_cast<const uint16_t*>(bitmapXY);
for (int i = 0; i < count; ++i) {
SkASSERT(xptr[i] < mx);
@@ -251,10 +251,10 @@ static void check_scale_filter(uint32_t bitmapXY[], int count,
unsigned mx, unsigned my) {
uint32_t YY = *bitmapXY++;
unsigned y0 = YY >> 18;
- unsigned y1 = YY & 0x3FFF;
+ unsigned y1 = YY & 0x3FFF;
SkASSERT(y0 < my);
SkASSERT(y1 < my);
-
+
for (int i = 0; i < count; ++i) {
uint32_t XX = bitmapXY[i];
unsigned x0 = XX >> 18;
@@ -323,7 +323,7 @@ SkBitmapProcState::MatrixProc SkBitmapProcState::getMatrixProc() const {
/*
The storage requirements for the different matrix procs are as follows,
where each X or Y is 2 bytes, and N is the number of pixels/elements:
-
+
scale/translate nofilter Y(4bytes) + N * X
affine/perspective nofilter N * (X Y)
scale/translate filter Y Y + N * (X X)
diff --git a/src/core/SkBitmapProcState.h b/src/core/SkBitmapProcState.h
index e9951c801e..4e3a1a1b3e 100644
--- a/src/core/SkBitmapProcState.h
+++ b/src/core/SkBitmapProcState.h
@@ -43,7 +43,7 @@ struct SkBitmapProcState {
uint32_t bitmapXY[],
int count,
int x, int y);
-
+
typedef void (*SampleProc32)(const SkBitmapProcState&,
const uint32_t[],
int count,
@@ -53,7 +53,7 @@ struct SkBitmapProcState {
const uint32_t[],
int count,
uint16_t colors[]);
-
+
typedef U16CPU (*FixedTileProc)(SkFixed); // returns 0..0xFFFF
typedef U16CPU (*FixedTileLowBitsProc)(SkFixed, int); // returns 0..0xF
typedef U16CPU (*IntTileProc)(int value, int count); // returns 0..count-1
@@ -64,7 +64,7 @@ struct SkBitmapProcState {
SkFractionalInt fInvSxFractionalInt;
SkFractionalInt fInvKyFractionalInt;
-
+
FixedTileProc fTileProcX; // chooseProcs
FixedTileProc fTileProcY; // chooseProcs
FixedTileLowBitsProc fTileLowBitsProcX; // chooseProcs
@@ -102,7 +102,7 @@ struct SkBitmapProcState {
(i.e. the number of SkPMColor values to be written by the sample proc).
This routine takes into account that filtering and scale-vs-affine
affect the amount of buffer space needed.
-
+
Only valid to call after chooseProcs (setContext) has been called. It is
safe to call this inside the shader's shadeSpan() method.
*/
@@ -130,7 +130,7 @@ private:
MatrixProc fMatrixProc; // chooseProcs
SampleProc32 fSampleProc32; // chooseProcs
SampleProc16 fSampleProc16; // chooseProcs
-
+
SkMatrix fUnitInvMatrix; // chooseProcs
SkBitmap fOrigBitmap; // CONSTRUCTOR
SkBitmap fMipBitmap;
@@ -174,9 +174,9 @@ void S32_opaque_D32_filter_DX(const SkBitmapProcState& s, const uint32_t xy[],
int count, SkPMColor colors[]);
void S32_alpha_D32_filter_DX(const SkBitmapProcState& s, const uint32_t xy[],
int count, SkPMColor colors[]);
-void S32_opaque_D32_filter_DXDY(const SkBitmapProcState& s,
- const uint32_t xy[], int count, SkPMColor colors[]);
-void S32_alpha_D32_filter_DXDY(const SkBitmapProcState& s,
+void S32_opaque_D32_filter_DXDY(const SkBitmapProcState& s,
+ const uint32_t xy[], int count, SkPMColor colors[]);
+void S32_alpha_D32_filter_DXDY(const SkBitmapProcState& s,
const uint32_t xy[], int count, SkPMColor colors[]);
void ClampX_ClampY_filter_scale(const SkBitmapProcState& s, uint32_t xy[],
int count, int x, int y);
diff --git a/src/core/SkBitmapProcState_filter.h b/src/core/SkBitmapProcState_filter.h
index 7fcf75439f..f7848f7812 100644
--- a/src/core/SkBitmapProcState_filter.h
+++ b/src/core/SkBitmapProcState_filter.h
@@ -11,7 +11,7 @@
/*
Filter_32_opaque
-
+
There is no hard-n-fast rule that the filtering must produce
exact results for the color components, but if the 4 incoming colors are
all opaque, then the output color must also be opaque. Subsequent parts of
@@ -24,25 +24,25 @@ static inline void Filter_32_opaque(unsigned x, unsigned y,
SkPMColor* dstColor) {
SkASSERT((unsigned)x <= 0xF);
SkASSERT((unsigned)y <= 0xF);
-
+
int xy = x * y;
static const uint32_t mask = gMask_00FF00FF; //0xFF00FF;
-
+
int scale = 256 - 16*y - 16*x + xy;
uint32_t lo = (a00 & mask) * scale;
uint32_t hi = ((a00 >> 8) & mask) * scale;
-
+
scale = 16*x - xy;
lo += (a01 & mask) * scale;
hi += ((a01 >> 8) & mask) * scale;
-
+
scale = 16*y - xy;
lo += (a10 & mask) * scale;
hi += ((a10 >> 8) & mask) * scale;
-
+
lo += (a11 & mask) * xy;
hi += ((a11 >> 8) & mask) * xy;
-
+
*dstColor = ((lo >> 8) & mask) | (hi & ~mask);
}
@@ -54,22 +54,22 @@ static inline void Filter_32_alpha(unsigned x, unsigned y,
SkASSERT((unsigned)x <= 0xF);
SkASSERT((unsigned)y <= 0xF);
SkASSERT(alphaScale <= 256);
-
+
int xy = x * y;
static const uint32_t mask = gMask_00FF00FF; //0xFF00FF;
-
+
int scale = 256 - 16*y - 16*x + xy;
uint32_t lo = (a00 & mask) * scale;
uint32_t hi = ((a00 >> 8) & mask) * scale;
-
+
scale = 16*x - xy;
lo += (a01 & mask) * scale;
hi += ((a01 >> 8) & mask) * scale;
-
+
scale = 16*y - xy;
lo += (a10 & mask) * scale;
hi += ((a10 >> 8) & mask) * scale;
-
+
lo += (a11 & mask) * xy;
hi += ((a11 >> 8) & mask) * xy;
diff --git a/src/core/SkBitmapProcState_matrix.h b/src/core/SkBitmapProcState_matrix.h
index 317c98437e..cc65c2d801 100644
--- a/src/core/SkBitmapProcState_matrix.h
+++ b/src/core/SkBitmapProcState_matrix.h
@@ -62,7 +62,7 @@ void SCALE_NOFILTER_NAME(const SkBitmapProcState& s,
*xy++ = TILEY_PROCF(SkFractionalIntToFixed(fx), maxY);
fx = SkScalarToFractionalInt(pt.fX);
}
-
+
if (0 == maxX) {
// all of the following X values must be 0
memset(xy, 0, count * sizeof(uint16_t));
@@ -113,7 +113,7 @@ void AFFINE_NOFILTER_NAME(const SkBitmapProcState& s,
SkASSERT((s.fInvType & ~(SkMatrix::kTranslate_Mask |
SkMatrix::kScale_Mask |
SkMatrix::kAffine_Mask)) == 0);
-
+
PREAMBLE(s);
SkPoint srcPt;
s.fInvProc(*s.fInvMatrix,
@@ -126,7 +126,7 @@ void AFFINE_NOFILTER_NAME(const SkBitmapProcState& s,
SkFractionalInt dy = s.fInvKyFractionalInt;
int maxX = s.fBitmap->width() - 1;
int maxY = s.fBitmap->height() - 1;
-
+
for (int i = count; i > 0; --i) {
*xy++ = (TILEY_PROCF(SkFractionalIntToFixed(fy), maxY) << 16) |
TILEX_PROCF(SkFractionalIntToFixed(fx), maxX);
@@ -138,15 +138,15 @@ void PERSP_NOFILTER_NAME(const SkBitmapProcState& s,
uint32_t* SK_RESTRICT xy,
int count, int x, int y) {
SkASSERT(s.fInvType & SkMatrix::kPerspective_Mask);
-
+
PREAMBLE(s);
int maxX = s.fBitmap->width() - 1;
int maxY = s.fBitmap->height() - 1;
-
+
SkPerspIter iter(*s.fInvMatrix,
SkIntToScalar(x) + SK_ScalarHalf,
SkIntToScalar(y) + SK_ScalarHalf, count);
-
+
while ((count = iter.next()) != 0) {
const SkFixed* SK_RESTRICT srcXY = iter.getXY();
while (--count >= 0) {
@@ -180,7 +180,7 @@ void SCALE_FILTER_NAME(const SkBitmapProcState& s,
SkASSERT(s.fInvKy == 0);
PREAMBLE(s);
-
+
const unsigned maxX = s.fBitmap->width() - 1;
const SkFixed one = s.fFilterOneX;
const SkFractionalInt dx = s.fInvSxFractionalInt;
@@ -219,13 +219,13 @@ void AFFINE_FILTER_NAME(const SkBitmapProcState& s,
SkASSERT((s.fInvType & ~(SkMatrix::kTranslate_Mask |
SkMatrix::kScale_Mask |
SkMatrix::kAffine_Mask)) == 0);
-
+
PREAMBLE(s);
SkPoint srcPt;
s.fInvProc(*s.fInvMatrix,
SkIntToScalar(x) + SK_ScalarHalf,
SkIntToScalar(y) + SK_ScalarHalf, &srcPt);
-
+
SkFixed oneX = s.fFilterOneX;
SkFixed oneY = s.fFilterOneY;
SkFixed fx = SkScalarToFixed(srcPt.fX) - (oneX >> 1);
@@ -234,7 +234,7 @@ void AFFINE_FILTER_NAME(const SkBitmapProcState& s,
SkFixed dy = s.fInvKy;
unsigned maxX = s.fBitmap->width() - 1;
unsigned maxY = s.fBitmap->height() - 1;
-
+
do {
*xy++ = PACK_FILTER_Y_NAME(fy, maxY, oneY PREAMBLE_ARG_Y);
fy += dy;
@@ -247,17 +247,17 @@ void PERSP_FILTER_NAME(const SkBitmapProcState& s,
uint32_t* SK_RESTRICT xy, int count,
int x, int y) {
SkASSERT(s.fInvType & SkMatrix::kPerspective_Mask);
-
+
PREAMBLE(s);
unsigned maxX = s.fBitmap->width() - 1;
unsigned maxY = s.fBitmap->height() - 1;
SkFixed oneX = s.fFilterOneX;
SkFixed oneY = s.fFilterOneY;
-
+
SkPerspIter iter(*s.fInvMatrix,
SkIntToScalar(x) + SK_ScalarHalf,
SkIntToScalar(y) + SK_ScalarHalf, count);
-
+
while ((count = iter.next()) != 0) {
const SkFixed* SK_RESTRICT srcXY = iter.getXY();
do {
diff --git a/src/core/SkBitmapProcState_matrixProcs.cpp b/src/core/SkBitmapProcState_matrixProcs.cpp
index 64755be19e..a0cfc33f8a 100644
--- a/src/core/SkBitmapProcState_matrixProcs.cpp
+++ b/src/core/SkBitmapProcState_matrixProcs.cpp
@@ -1,4 +1,4 @@
-/* NEON optimized code (C) COPYRIGHT 2009 Motorola
+/* NEON optimized code (C) COPYRIGHT 2009 Motorola
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
@@ -18,9 +18,9 @@ static unsigned SK_USHIFT16(unsigned x) {
}
/* returns 0...(n-1) given any x (positive or negative).
-
+
As an example, if n (which is always positive) is 5...
-
+
x: -8 -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8
returns: 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3
*/
@@ -50,7 +50,7 @@ static inline bool can_truncate_to_fixed_for_decal(SkFractionalInt frX,
SkFractionalInt frDx,
int count, unsigned max) {
SkFixed dx = SkFractionalIntToFixed(frDx);
-
+
// if decal_ kept SkFractionalInt precision, this would just be dx <= 0
// I just made up the 1/256. Just don't want to perceive accumulated error
// if we truncate frDx and lose its low bits.
@@ -321,13 +321,13 @@ static void clampx_nofilter_trans(const SkBitmapProcState& s,
SkASSERT((s.fInvType & ~SkMatrix::kTranslate_Mask) == 0);
int xpos = nofilter_trans_preamble(s, &xy, x, y);
- const int width = s.fBitmap->width();
+ const int width = s.fBitmap->width();
if (1 == width) {
// all of the following X values must be 0
memset(xy, 0, count * sizeof(uint16_t));
return;
}
-
+
uint16_t* xptr = reinterpret_cast<uint16_t*>(xy);
int n;
@@ -369,7 +369,7 @@ static void repeatx_nofilter_trans(const SkBitmapProcState& s,
SkASSERT((s.fInvType & ~SkMatrix::kTranslate_Mask) == 0);
int xpos = nofilter_trans_preamble(s, &xy, x, y);
- const int width = s.fBitmap->width();
+ const int width = s.fBitmap->width();
if (1 == width) {
// all of the following X values must be 0
memset(xy, 0, count * sizeof(uint16_t));
@@ -409,7 +409,7 @@ static void mirrorx_nofilter_trans(const SkBitmapProcState& s,
SkASSERT((s.fInvType & ~SkMatrix::kTranslate_Mask) == 0);
int xpos = nofilter_trans_preamble(s, &xy, x, y);
- const int width = s.fBitmap->width();
+ const int width = s.fBitmap->width();
if (1 == width) {
// all of the following X values must be 0
memset(xy, 0, count * sizeof(uint16_t));
@@ -440,7 +440,7 @@ static void mirrorx_nofilter_trans(const SkBitmapProcState& s,
forward = !forward;
xptr += n;
count -= n;
-
+
while (count >= width) {
if (forward) {
fill_sequential(xptr, 0, width);
@@ -451,7 +451,7 @@ static void mirrorx_nofilter_trans(const SkBitmapProcState& s,
xptr += width;
count -= width;
}
-
+
if (count > 0) {
if (forward) {
fill_sequential(xptr, 0, count);
@@ -479,7 +479,7 @@ SkBitmapProcState::chooseMatrixProc(bool trivial_matrix) {
return mirrorx_nofilter_trans;
}
}
-
+
int index = 0;
if (fDoFilter) {
index = 1;
@@ -489,7 +489,7 @@ SkBitmapProcState::chooseMatrixProc(bool trivial_matrix) {
} else if (fInvType & SkMatrix::kAffine_Mask) {
index += 2;
}
-
+
if (SkShader::kClamp_TileMode == fTileModeX &&
SkShader::kClamp_TileMode == fTileModeY)
{
@@ -498,11 +498,11 @@ SkBitmapProcState::chooseMatrixProc(bool trivial_matrix) {
fFilterOneY = SK_Fixed1;
return SK_ARM_NEON_WRAP(ClampX_ClampY_Procs)[index];
}
-
+
// all remaining procs use this form for filterOne
fFilterOneX = SK_Fixed1 / fBitmap->width();
fFilterOneY = SK_Fixed1 / fBitmap->height();
-
+
if (SkShader::kRepeat_TileMode == fTileModeX &&
SkShader::kRepeat_TileMode == fTileModeY)
{
diff --git a/src/core/SkBitmapProcState_procs.h b/src/core/SkBitmapProcState_procs.h
index 6d17193cdd..d43305b2cf 100644
--- a/src/core/SkBitmapProcState_procs.h
+++ b/src/core/SkBitmapProcState_procs.h
@@ -19,12 +19,12 @@ static inline uint32_t Filter_565_Expanded(unsigned x, unsigned y,
uint32_t a10, uint32_t a11) {
SkASSERT((unsigned)x <= 0xF);
SkASSERT((unsigned)y <= 0xF);
-
+
a00 = SkExpand_rgb_16(a00);
a01 = SkExpand_rgb_16(a01);
a10 = SkExpand_rgb_16(a10);
a11 = SkExpand_rgb_16(a11);
-
+
int xy = x * y >> 3;
return a00 * (32 - 2*y - 2*x + xy) +
a01 * (2*x - xy) +
@@ -47,7 +47,7 @@ static inline SkPMColor Filter_4444_D32(unsigned x, unsigned y,
uint32_t a10, uint32_t a11) {
SkASSERT((unsigned)x <= 0xF);
SkASSERT((unsigned)y <= 0xF);
-
+
a00 = SkExpand_4444(a00);
a01 = SkExpand_4444(a01);
a10 = SkExpand_4444(a10);
@@ -67,13 +67,13 @@ static inline U8CPU Filter_8(unsigned x, unsigned y,
U8CPU a10, U8CPU a11) {
SkASSERT((unsigned)x <= 0xF);
SkASSERT((unsigned)y <= 0xF);
-
+
int xy = x * y;
unsigned result = a00 * (256 - 16*y - 16*x + xy) +
a01 * (16*x - xy) +
a10 * (16*y - xy) +
a11 * xy;
-
+
return result >> 8;
}
diff --git a/src/core/SkBitmapProcState_sample.h b/src/core/SkBitmapProcState_sample.h
index 7bd0080c43..b38eb779b3 100644
--- a/src/core/SkBitmapProcState_sample.h
+++ b/src/core/SkBitmapProcState_sample.h
@@ -53,14 +53,14 @@ void MAKENAME(_nofilter_DXDY)(const SkBitmapProcState& s,
uint32_t XY;
SRCTYPE src;
-
+
for (i = (count >> 1); i > 0; --i) {
XY = *xy++;
SkASSERT((XY >> 16) < (unsigned)s.fBitmap->height() &&
(XY & 0xFFFF) < (unsigned)s.fBitmap->width());
src = ((const SRCTYPE*)(srcAddr + (XY >> 16) * rb))[XY & 0xFFFF];
*colors++ = RETURNDST(src);
-
+
XY = *xy++;
SkASSERT((XY >> 16) < (unsigned)s.fBitmap->height() &&
(XY & 0xFFFF) < (unsigned)s.fBitmap->width());
@@ -99,9 +99,9 @@ void MAKENAME(_nofilter_DX)(const SkBitmapProcState& s,
srcAddr = (const SRCTYPE*)((const char*)srcAddr +
xy[0] * s.fBitmap->rowBytes());
xy += 1;
-
+
SRCTYPE src;
-
+
if (1 == s.fBitmap->width()) {
src = srcAddr[0];
DSTTYPE dstValue = RETURNDST(src);
@@ -115,7 +115,7 @@ void MAKENAME(_nofilter_DX)(const SkBitmapProcState& s,
SRCTYPE x1 = srcAddr[UNPACK_SECONDARY_SHORT(xx0)];
SRCTYPE x2 = srcAddr[UNPACK_PRIMARY_SHORT(xx1)];
SRCTYPE x3 = srcAddr[UNPACK_SECONDARY_SHORT(xx1)];
-
+
*colors++ = RETURNDST(x0);
*colors++ = RETURNDST(x1);
*colors++ = RETURNDST(x2);
@@ -127,7 +127,7 @@ void MAKENAME(_nofilter_DX)(const SkBitmapProcState& s,
src = srcAddr[*xx++]; *colors++ = RETURNDST(src);
}
}
-
+
#ifdef POSTAMBLE
POSTAMBLE(s);
#endif
@@ -159,12 +159,12 @@ void MAKENAME(_filter_DX)(const SkBitmapProcState& s,
row1 = (const SRCTYPE*)(srcAddr + (XY & 0x3FFF) * rb);
subY = y0 & 0xF;
}
-
+
do {
uint32_t XX = *xy++; // x0:14 | 4 | x1:14
unsigned x0 = XX >> 14;
unsigned x1 = XX & 0x3FFF;
- unsigned subX = x0 & 0xF;
+ unsigned subX = x0 & 0xF;
x0 >>= 4;
FILTER_PROC(subX, subY,
@@ -176,7 +176,7 @@ void MAKENAME(_filter_DX)(const SkBitmapProcState& s,
colors += 1;
} while (--count != 0);
-
+
#ifdef POSTAMBLE
POSTAMBLE(s);
#endif
@@ -187,29 +187,29 @@ void MAKENAME(_filter_DXDY)(const SkBitmapProcState& s,
SkASSERT(count > 0 && colors != NULL);
SkASSERT(s.fDoFilter);
SkDEBUGCODE(CHECKSTATE(s);)
-
+
#ifdef PREAMBLE
PREAMBLE(s);
#endif
const char* SK_RESTRICT srcAddr = (const char*)s.fBitmap->getPixels();
int rb = s.fBitmap->rowBytes();
-
+
do {
uint32_t data = *xy++;
unsigned y0 = data >> 14;
unsigned y1 = data & 0x3FFF;
unsigned subY = y0 & 0xF;
y0 >>= 4;
-
+
data = *xy++;
unsigned x0 = data >> 14;
unsigned x1 = data & 0x3FFF;
unsigned subX = x0 & 0xF;
x0 >>= 4;
-
+
const SRCTYPE* SK_RESTRICT row0 = (const SRCTYPE*)(srcAddr + y0 * rb);
const SRCTYPE* SK_RESTRICT row1 = (const SRCTYPE*)(srcAddr + y1 * rb);
-
+
FILTER_PROC(subX, subY,
SRC_TO_FILTER(row0[x0]),
SRC_TO_FILTER(row0[x1]),
@@ -218,7 +218,7 @@ void MAKENAME(_filter_DXDY)(const SkBitmapProcState& s,
colors);
colors += 1;
} while (--count != 0);
-
+
#ifdef POSTAMBLE
POSTAMBLE(s);
#endif
diff --git a/src/core/SkBitmapProcState_shaderproc.h b/src/core/SkBitmapProcState_shaderproc.h
index 33c238c3aa..6f2bbe722d 100644
--- a/src/core/SkBitmapProcState_shaderproc.h
+++ b/src/core/SkBitmapProcState_shaderproc.h
@@ -51,7 +51,7 @@ void SCALE_FILTER_NAME(const SkBitmapProcState& s, int x, int y,
#ifdef PREAMBLE
PREAMBLE(s);
#endif
-
+
do {
unsigned subX = TILEX_LOW_BITS(fx, maxX);
unsigned x0 = TILEX_PROCF(fx, maxX);
diff --git a/src/core/SkBitmapSampler.cpp b/src/core/SkBitmapSampler.cpp
index 4c05be27c4..755f717b52 100644
--- a/src/core/SkBitmapSampler.cpp
+++ b/src/core/SkBitmapSampler.cpp
@@ -32,7 +32,7 @@ SkBitmapSampler::SkBitmapSampler(const SkBitmap& bm, bool filter,
fMaxX = SkToU16(bm.width() - 1);
fMaxY = SkToU16(bm.height() - 1);
-
+
fTileProcX = get_tilemode_proc(tmx);
fTileProcY = get_tilemode_proc(tmy);
}
@@ -88,13 +88,13 @@ public:
// turn pixel centers into the top-left of our filter-box
x -= SK_FixedHalf;
y -= SK_FixedHalf;
-
+
// compute our pointers
{
const SkBitmap* bitmap = &fBitmap;
int ix = x >> 16;
int iy = y >> 16;
-
+
int maxX = fMaxX;
SkTileModeProc procX = fTileProcX;
int maxY = fMaxY;
@@ -116,7 +116,7 @@ public:
SkFilterPtrProc proc = SkGetBilinearFilterPtrProc(fPtrProcTable, x, y);
return proc(p00, p01, p10, p11);
}
-
+
private:
const SkFilterPtrProc* fPtrProcTable;
};
@@ -136,13 +136,13 @@ public:
// turn pixel centers into the top-left of our filter-box
x -= SK_FixedHalf;
y -= SK_FixedHalf;
-
+
// compute our pointers
{
const SkBitmap* bitmap = &fBitmap;
int ix = x >> 16;
int iy = y >> 16;
-
+
int maxX = fMaxX;
SkTileModeProc procX = fTileProcX;
int maxY = fMaxY;
@@ -167,7 +167,7 @@ public:
return SkPixel16ToPixel32((uint16_t)SkCompact_rgb_16(c));
}
-
+
private:
const SkFilterProc* fProcTable;
};
@@ -192,12 +192,12 @@ public:
// turn pixel centers into the top-left of our filter-box
x -= SK_FixedHalf;
y -= SK_FixedHalf;
-
+
// compute our pointers
{
int ix = x >> 16;
int iy = y >> 16;
-
+
int maxX = fMaxX;
SkTileModeProc procX = fTileProcX;
int maxY = fMaxY;
@@ -225,7 +225,7 @@ public:
return c;
}
-
+
private:
const SkFilterPtrProc* fPtrProcTable;
};
@@ -251,13 +251,13 @@ public:
// turn pixel centers into the top-left of our filter-box
x -= SK_FixedHalf;
y -= SK_FixedHalf;
-
+
// compute our pointers
{
const SkBitmap* bitmap = &fBitmap;
int ix = x >> 16;
int iy = y >> 16;
-
+
int maxX = fMaxX;
SkTileModeProc procX = fTileProcX;
int maxY = fMaxY;
@@ -280,7 +280,7 @@ public:
int alpha = proc(*p00, *p01, *p10, *p11);
return SkAlphaMulQ(fColor, SkAlpha255To256(alpha));
}
-
+
private:
const SkFilterProc* fProcTable;
SkPMColor fColor;
@@ -303,11 +303,11 @@ public:
{
int ix = SkFixedFloor(x);
int iy = SkFixedFloor(y);
-
+
int alpha = *fBitmap.getAddr8(fTileProcX(ix, fMaxX), fTileProcY(iy, fMaxY));
return SkAlphaMulQ(fColor, SkAlpha255To256(alpha));
}
-
+
private:
const SkFilterProc* fProcTable;
SkPMColor fColor;
diff --git a/src/core/SkBitmapShader16BilerpTemplate.h b/src/core/SkBitmapShader16BilerpTemplate.h
index 0769e1c5fb..435b806bb2 100644
--- a/src/core/SkBitmapShader16BilerpTemplate.h
+++ b/src/core/SkBitmapShader16BilerpTemplate.h
@@ -21,7 +21,7 @@ public:
virtual void shadeSpan(int x, int y, SkPMColor dstC[], int count)
{
SkASSERT(count > 0);
-
+
U8CPU alpha = this->getPaintAlpha();
const SkMatrix& inv = this->getTotalInverse();
@@ -157,7 +157,7 @@ public:
SkFixed fy = *srcXY++ - SK_FixedHalf;
int ix = fx >> 16;
int iy = fy >> 16;
-
+
const BILERP_BITMAP16_SHADER_TYPE *p00, *p01, *p10, *p11;
p00 = p01 = ((const BILERP_BITMAP16_SHADER_TYPE*)((const char*)srcPixels +
@@ -207,7 +207,7 @@ public:
do {
int ix = fx >> 16;
int iy = fy >> 16;
-
+
const BILERP_BITMAP16_SHADER_TYPE *p00, *p01, *p10, *p11;
p00 = p01 = ((const BILERP_BITMAP16_SHADER_TYPE*)((const char*)srcPixels +
diff --git a/src/core/SkBitmapShaderTemplate.h b/src/core/SkBitmapShaderTemplate.h
index bfb10d906a..20e55188e0 100644
--- a/src/core/SkBitmapShaderTemplate.h
+++ b/src/core/SkBitmapShaderTemplate.h
@@ -29,7 +29,7 @@ public:
NOFILTER_BITMAP_SHADER_TILEMODE)
{
}
-
+
virtual bool setContext(const SkBitmap& device, const SkPaint& paint, const SkMatrix& matrix)
{
if (!this->INHERITED::setContext(device, paint, matrix))
@@ -221,7 +221,7 @@ public:
while ((count = iter.next()) != 0)
{
const SkFixed* srcXY = iter.getXY();
-
+
while (--count >= 0)
{
fx = *srcXY++;
diff --git a/src/core/SkBitmap_scroll.cpp b/src/core/SkBitmap_scroll.cpp
index de4725b3f9..36e5f051e1 100644
--- a/src/core/SkBitmap_scroll.cpp
+++ b/src/core/SkBitmap_scroll.cpp
@@ -43,8 +43,8 @@ bool SkBitmap::scrollRect(const SkIRect* subset, int dx, int dy,
}
int width = this->width();
- int height = this->height();
-
+ int height = this->height();
+
// check if there's nothing to do
if ((dx | dy) == 0 || width <= 0 || height <= 0) {
if (NULL != inval) {
@@ -56,23 +56,23 @@ bool SkBitmap::scrollRect(const SkIRect* subset, int dx, int dy,
// compute the inval region now, before we see if there are any pixels
if (NULL != inval) {
SkIRect r;
-
+
r.set(0, 0, width, height);
// initial the region with the entire bounds
inval->setRect(r);
// do the "scroll"
r.offset(dx, dy);
-
+
// check if we scrolled completely away
if (!SkIRect::Intersects(r, inval->getBounds())) {
// inval has already been updated...
return true;
}
-
+
// compute the dirty area
inval->op(r, SkRegion::kDifference_Op);
}
-
+
SkAutoLockPixels alp(*this);
// if we have no pixels, just return (inval is already updated)
// don't call readyToDraw(), since we don't require a colortable per se
diff --git a/src/core/SkBlitBWMaskTemplate.h b/src/core/SkBlitBWMaskTemplate.h
index ecbdfb3bb0..15ed54e7c4 100644
--- a/src/core/SkBlitBWMaskTemplate.h
+++ b/src/core/SkBlitBWMaskTemplate.h
@@ -119,7 +119,7 @@ static void SK_BLITBWMASK_NAME(const SkBitmap& bitmap, const SkMask& srcMask, co
} while (--height != 0);
}
}
-}
+}
#undef SK_BLITBWMASK_NAME
#undef SK_BLITBWMASK_ARGS
diff --git a/src/core/SkBlitMask.h b/src/core/SkBlitMask.h
index 9c0fe0f7c3..ea1da257b7 100644
--- a/src/core/SkBlitMask.h
+++ b/src/core/SkBlitMask.h
@@ -29,14 +29,14 @@ public:
typedef void (*ColorProc)(void* dst, size_t dstRB,
const void* mask, size_t maskRB,
SkColor color, int width, int height);
-
+
/**
- * Function pointer that blits a row of mask(lcd16) into a row of dst
+ * Function pointer that blits a row of mask(lcd16) into a row of dst
* colorized by a single color. The number of pixels to blit is specified
* by width.
*/
typedef void (*BlitLCD16RowProc)(SkPMColor dst[], const uint16_t src[],
- SkColor color, int width,
+ SkColor color, int width,
SkPMColor opaqueDst);
/**
@@ -46,19 +46,19 @@ public:
*/
typedef void (*RowProc)(void* dst, const void* mask,
const SkPMColor* src, int width);
-
+
/**
* Public entry-point to return a blitmask ColorProc.
* May return NULL if config or format are not supported.
*/
static ColorProc ColorFactory(SkBitmap::Config, SkMask::Format, SkColor);
-
+
/**
* Return either platform specific optimized blitmask ColorProc,
* or NULL if no optimized routine is available.
*/
static ColorProc PlatformColorProcs(SkBitmap::Config, SkMask::Format, SkColor);
-
+
/**
* Public entry-point to return a blitcolor BlitLCD16RowProc.
*/
@@ -79,7 +79,7 @@ public:
* May return NULL if config or format are not supported.
*/
static RowProc RowFactory(SkBitmap::Config, SkMask::Format, RowFlags);
-
+
/**
* Return either platform specific optimized blitmask RowProc,
* or NULL if no optimized routine is available.
diff --git a/src/core/SkBlitMask_D32.cpp b/src/core/SkBlitMask_D32.cpp
index 6576acb837..4fb974b907 100644
--- a/src/core/SkBlitMask_D32.cpp
+++ b/src/core/SkBlitMask_D32.cpp
@@ -69,7 +69,7 @@ SkBlitMask::BlitLCD16RowProc SkBlitMask::BlitLCD16RowFactory(bool isOpaque) {
if (proc) {
return proc;
}
-
+
if (isOpaque) {
return SkBlitLCD16OpaqueRow;
} else {
@@ -80,11 +80,11 @@ SkBlitMask::BlitLCD16RowProc SkBlitMask::BlitLCD16RowFactory(bool isOpaque) {
static void D32_LCD16_Proc(void* SK_RESTRICT dst, size_t dstRB,
const void* SK_RESTRICT mask, size_t maskRB,
SkColor color, int width, int height) {
-
- SkPMColor* dstRow = (SkPMColor*)dst;
+
+ SkPMColor* dstRow = (SkPMColor*)dst;
const uint16_t* srcRow = (const uint16_t*)mask;
SkPMColor opaqueDst;
-
+
SkBlitMask::BlitLCD16RowProc proc = NULL;
bool isOpaque = (0xFF == SkColorGetA(color));
proc = SkBlitMask::BlitLCD16RowFactory(isOpaque);
@@ -95,7 +95,7 @@ static void D32_LCD16_Proc(void* SK_RESTRICT dst, size_t dstRB,
} else {
opaqueDst = 0; // ignored
}
-
+
do {
proc(dstRow, srcRow, color, width, opaqueDst);
dstRow = (SkPMColor*)((char*)dstRow + dstRB);
@@ -111,28 +111,28 @@ static void blit_lcd32_opaque_row(SkPMColor* SK_RESTRICT dst,
int srcR = SkColorGetR(color);
int srcG = SkColorGetG(color);
int srcB = SkColorGetB(color);
-
+
for (int i = 0; i < width; i++) {
SkPMColor mask = src[i];
if (0 == mask) {
continue;
}
-
+
SkPMColor d = dst[i];
-
+
int maskR = SkGetPackedR32(mask);
int maskG = SkGetPackedG32(mask);
int maskB = SkGetPackedB32(mask);
-
+
// Now upscale them to 0..256, so we can use SkAlphaBlend
maskR = SkAlpha255To256(maskR);
maskG = SkAlpha255To256(maskG);
maskB = SkAlpha255To256(maskB);
-
+
int dstR = SkGetPackedR32(d);
int dstG = SkGetPackedG32(d);
int dstB = SkGetPackedB32(d);
-
+
// LCD blitting is only supported if the dst is known/required
// to be opaque
dst[i] = SkPackARGB32(0xFF,
@@ -149,34 +149,34 @@ static void blit_lcd32_row(SkPMColor* SK_RESTRICT dst,
int srcR = SkColorGetR(color);
int srcG = SkColorGetG(color);
int srcB = SkColorGetB(color);
-
+
srcA = SkAlpha255To256(srcA);
-
+
for (int i = 0; i < width; i++) {
SkPMColor mask = src[i];
if (0 == mask) {
continue;
}
-
+
SkPMColor d = dst[i];
-
+
int maskR = SkGetPackedR32(mask);
int maskG = SkGetPackedG32(mask);
int maskB = SkGetPackedB32(mask);
-
+
// Now upscale them to 0..256, so we can use SkAlphaBlend
maskR = SkAlpha255To256(maskR);
maskG = SkAlpha255To256(maskG);
maskB = SkAlpha255To256(maskB);
-
+
maskR = maskR * srcA >> 8;
maskG = maskG * srcA >> 8;
maskB = maskB * srcA >> 8;
-
+
int dstR = SkGetPackedR32(d);
int dstG = SkGetPackedG32(d);
int dstB = SkGetPackedB32(d);
-
+
// LCD blitting is only supported if the dst is known/required
// to be opaque
dst[i] = SkPackARGB32(0xFF,
@@ -192,7 +192,7 @@ static void D32_LCD32_Blend(void* SK_RESTRICT dst, size_t dstRB,
SkASSERT(height > 0);
SkPMColor* SK_RESTRICT dstRow = (SkPMColor*)dst;
const SkPMColor* SK_RESTRICT srcRow = (const SkPMColor*)mask;
-
+
do {
blit_lcd32_row(dstRow, srcRow, color, width);
dstRow = (SkPMColor*)((char*)dstRow + dstRB);
@@ -206,7 +206,7 @@ static void D32_LCD32_Opaque(void* SK_RESTRICT dst, size_t dstRB,
SkASSERT(height > 0);
SkPMColor* SK_RESTRICT dstRow = (SkPMColor*)dst;
const SkPMColor* SK_RESTRICT srcRow = (const SkPMColor*)mask;
-
+
do {
blit_lcd32_opaque_row(dstRow, srcRow, color, width);
dstRow = (SkPMColor*)((char*)dstRow + dstRB);
@@ -388,7 +388,7 @@ static int mul(int a, int b) {
}
static int src_alpha_blend(int src, int dst, int srcA, int mask) {
-
+
return dst + mul(src - mul(srcA, dst), mask);
}
@@ -400,7 +400,7 @@ static void LCD16_RowProc_Blend(SkPMColor* SK_RESTRICT dst,
if (0 == m) {
continue;
}
-
+
SkPMColor s = src[i];
SkPMColor d = dst[i];
@@ -417,15 +417,15 @@ static void LCD16_RowProc_Blend(SkPMColor* SK_RESTRICT dst,
int maskR = SkGetPackedR16(m) >> (SK_R16_BITS - 5);
int maskG = SkGetPackedG16(m) >> (SK_G16_BITS - 5);
int maskB = SkGetPackedB16(m) >> (SK_B16_BITS - 5);
-
+
maskR = upscale31To255(maskR);
maskG = upscale31To255(maskG);
maskB = upscale31To255(maskB);
-
+
int dstR = SkGetPackedR32(d);
int dstG = SkGetPackedG32(d);
int dstB = SkGetPackedB32(d);
-
+
// LCD blitting is only supported if the dst is known/required
// to be opaque
dst[i] = SkPackARGB32(0xFF,
@@ -443,10 +443,10 @@ static void LCD16_RowProc_Opaque(SkPMColor* SK_RESTRICT dst,
if (0 == m) {
continue;
}
-
+
SkPMColor s = src[i];
SkPMColor d = dst[i];
-
+
int srcR = SkGetPackedR32(s);
int srcG = SkGetPackedG32(s);
int srcB = SkGetPackedB32(s);
@@ -457,16 +457,16 @@ static void LCD16_RowProc_Opaque(SkPMColor* SK_RESTRICT dst,
int maskR = SkGetPackedR16(m) >> (SK_R16_BITS - 5);
int maskG = SkGetPackedG16(m) >> (SK_G16_BITS - 5);
int maskB = SkGetPackedB16(m) >> (SK_B16_BITS - 5);
-
+
// Now upscale them to 0..32, so we can use blend32
maskR = SkUpscale31To32(maskR);
maskG = SkUpscale31To32(maskG);
maskB = SkUpscale31To32(maskB);
-
+
int dstR = SkGetPackedR32(d);
int dstG = SkGetPackedG32(d);
int dstB = SkGetPackedB32(d);
-
+
// LCD blitting is only supported if the dst is known/required
// to be opaque
dst[i] = SkPackARGB32(0xFF,
@@ -490,11 +490,11 @@ static void LCD32_RowProc_Blend(SkPMColor* SK_RESTRICT dst,
int srcR = SkGetPackedR32(s);
int srcG = SkGetPackedG32(s);
int srcB = SkGetPackedB32(s);
-
+
srcA = SkAlpha255To256(srcA);
-
+
SkPMColor d = dst[i];
-
+
int maskR = SkGetPackedR32(m);
int maskG = SkGetPackedG32(m);
int maskB = SkGetPackedB32(m);
@@ -507,7 +507,7 @@ static void LCD32_RowProc_Blend(SkPMColor* SK_RESTRICT dst,
int dstR = SkGetPackedR32(d);
int dstG = SkGetPackedG32(d);
int dstB = SkGetPackedB32(d);
-
+
// LCD blitting is only supported if the dst is known/required
// to be opaque
dst[i] = SkPackARGB32(0xFF,
@@ -525,7 +525,7 @@ static void LCD32_RowProc_Opaque(SkPMColor* SK_RESTRICT dst,
if (0 == m) {
continue;
}
-
+
SkPMColor s = src[i];
SkPMColor d = dst[i];
@@ -540,7 +540,7 @@ static void LCD32_RowProc_Opaque(SkPMColor* SK_RESTRICT dst,
int dstR = SkGetPackedR32(d);
int dstG = SkGetPackedG32(d);
int dstB = SkGetPackedB32(d);
-
+
// Now upscale them to 0..256, so we can use SkAlphaBlend
maskR = SkAlpha255To256(maskR);
maskG = SkAlpha255To256(maskG);
diff --git a/src/core/SkBlitRow_D16.cpp b/src/core/SkBlitRow_D16.cpp
index 5e675e5493..9453488a79 100644
--- a/src/core/SkBlitRow_D16.cpp
+++ b/src/core/SkBlitRow_D16.cpp
@@ -67,7 +67,7 @@ static void S32A_D565_Blend(uint16_t* SK_RESTRICT dst,
const SkPMColor* SK_RESTRICT src, int count,
U8CPU alpha, int /*x*/, int /*y*/) {
SkASSERT(255 > alpha);
-
+
if (count > 0) {
do {
SkPMColor sc = *src++;
@@ -86,12 +86,12 @@ static void S32A_D565_Blend(uint16_t* SK_RESTRICT dst,
}
/////////////////////////////////////////////////////////////////////////////
-
+
static void S32_D565_Opaque_Dither(uint16_t* SK_RESTRICT dst,
const SkPMColor* SK_RESTRICT src,
int count, U8CPU alpha, int x, int y) {
SkASSERT(255 == alpha);
-
+
if (count > 0) {
DITHER_565_SCAN(y);
do {
@@ -109,7 +109,7 @@ static void S32_D565_Blend_Dither(uint16_t* SK_RESTRICT dst,
const SkPMColor* SK_RESTRICT src,
int count, U8CPU alpha, int x, int y) {
SkASSERT(255 > alpha);
-
+
if (count > 0) {
int scale = SkAlpha255To256(alpha);
DITHER_565_SCAN(y);
@@ -117,7 +117,7 @@ static void S32_D565_Blend_Dither(uint16_t* SK_RESTRICT dst,
SkPMColor c = *src++;
SkPMColorAssert(c);
- int dither = DITHER_VALUE(x);
+ int dither = DITHER_VALUE(x);
int sr = SkGetPackedR32(c);
int sg = SkGetPackedG32(c);
int sb = SkGetPackedB32(c);
@@ -138,7 +138,7 @@ static void S32A_D565_Opaque_Dither(uint16_t* SK_RESTRICT dst,
const SkPMColor* SK_RESTRICT src,
int count, U8CPU alpha, int x, int y) {
SkASSERT(255 == alpha);
-
+
if (count > 0) {
DITHER_565_SCAN(y);
do {
@@ -146,16 +146,16 @@ static void S32A_D565_Opaque_Dither(uint16_t* SK_RESTRICT dst,
SkPMColorAssert(c);
if (c) {
unsigned a = SkGetPackedA32(c);
-
+
int d = SkAlphaMul(DITHER_VALUE(x), SkAlpha255To256(a));
-
+
unsigned sr = SkGetPackedR32(c);
unsigned sg = SkGetPackedG32(c);
unsigned sb = SkGetPackedB32(c);
sr = SkDITHER_R32_FOR_565(sr, d);
sg = SkDITHER_G32_FOR_565(sg, d);
sb = SkDITHER_B32_FOR_565(sb, d);
-
+
uint32_t src_expanded = (sg << 24) | (sr << 13) | (sb << 2);
uint32_t dst_expanded = SkExpand_rgb_16(*dst);
dst_expanded = dst_expanded * (SkAlpha255To256(255 - a) >> 3);
@@ -172,7 +172,7 @@ static void S32A_D565_Blend_Dither(uint16_t* SK_RESTRICT dst,
const SkPMColor* SK_RESTRICT src,
int count, U8CPU alpha, int x, int y) {
SkASSERT(255 > alpha);
-
+
if (count > 0) {
int src_scale = SkAlpha255To256(alpha);
DITHER_565_SCAN(y);
@@ -185,18 +185,18 @@ static void S32A_D565_Blend_Dither(uint16_t* SK_RESTRICT dst,
int sa = SkGetPackedA32(c);
int dst_scale = SkAlpha255To256(255 - SkAlphaMul(sa, src_scale));
int dither = DITHER_VALUE(x);
-
+
int sr = SkGetPackedR32(c);
int sg = SkGetPackedG32(c);
int sb = SkGetPackedB32(c);
sr = SkDITHER_R32To565(sr, dither);
sg = SkDITHER_G32To565(sg, dither);
sb = SkDITHER_B32To565(sb, dither);
-
+
int dr = (sr * src_scale + SkGetPackedR16(d) * dst_scale) >> 8;
int dg = (sg * src_scale + SkGetPackedG16(d) * dst_scale) >> 8;
int db = (sb * src_scale + SkGetPackedB16(d) * dst_scale) >> 8;
-
+
*dst = SkPackRGB16(dr, dg, db);
}
dst += 1;
@@ -225,7 +225,7 @@ static const SkBlitRow::Proc gDefault_565_Procs[] = {
};
extern SkBlitRow::Proc SkBlitRow_Factory_4444(unsigned flags);
-
+
SkBlitRow::Proc SkBlitRow::Factory(unsigned flags, SkBitmap::Config config) {
SkASSERT(flags < SK_ARRAY_COUNT(gDefault_565_Procs));
// just so we don't crash
@@ -251,4 +251,4 @@ SkBlitRow::Proc SkBlitRow::Factory(unsigned flags, SkBitmap::Config config) {
}
return proc;
}
-
+
diff --git a/src/core/SkBlitRow_D4444.cpp b/src/core/SkBlitRow_D4444.cpp
index 3a92a6b94a..c32e812499 100644
--- a/src/core/SkBlitRow_D4444.cpp
+++ b/src/core/SkBlitRow_D4444.cpp
@@ -72,7 +72,7 @@ static void S32A_D4444_Blend(uint16_t* SK_RESTRICT dst,
const SkPMColor* SK_RESTRICT src, int count,
U8CPU alpha, int /*x*/, int /*y*/) {
SkASSERT(255 > alpha);
-
+
if (count > 0) {
int src_scale = SkAlpha255To256(alpha) >> 4;
do {
@@ -91,12 +91,12 @@ static void S32A_D4444_Blend(uint16_t* SK_RESTRICT dst,
}
/////////////////////////////////////////////////////////////////////////////
-
+
static void S32_D4444_Opaque_Dither(uint16_t* SK_RESTRICT dst,
const SkPMColor* SK_RESTRICT src,
int count, U8CPU alpha, int x, int y) {
SkASSERT(255 == alpha);
-
+
if (count > 0) {
DITHER_4444_SCAN(y);
do {
@@ -114,7 +114,7 @@ static void S32_D4444_Blend_Dither(uint16_t* SK_RESTRICT dst,
const SkPMColor* SK_RESTRICT src,
int count, U8CPU alpha, int x, int y) {
SkASSERT(255 > alpha);
-
+
if (count > 0) {
int scale16 = SkAlpha255To256(alpha) >> 4;
DITHER_4444_SCAN(y);
@@ -125,7 +125,7 @@ static void S32_D4444_Blend_Dither(uint16_t* SK_RESTRICT dst,
uint32_t src_expand = SkExpand32_4444(c) * scale16;
uint32_t dst_expand = SkExpand_4444(*dst) * (16 - scale16);
-
+
c = SkCompact_8888(src_expand + dst_expand); // convert back to SkPMColor
*dst++ = SkDitherARGB32To4444(c, DITHER_VALUE(x));
DITHER_INC_X(x);
@@ -137,16 +137,16 @@ static void S32A_D4444_Opaque_Dither(uint16_t* SK_RESTRICT dst,
const SkPMColor* SK_RESTRICT src,
int count, U8CPU alpha, int x, int y) {
SkASSERT(255 == alpha);
-
+
if (count > 0) {
DITHER_4444_SCAN(y);
do {
SkPMColor c = *src++;
SkPMColorAssert(c);
if (c) {
- unsigned a = SkGetPackedA32(c);
+ unsigned a = SkGetPackedA32(c);
int d = SkAlphaMul(DITHER_VALUE(x), SkAlpha255To256(a));
-
+
unsigned scale16 = SkAlpha255To256(255 - a) >> 4;
uint32_t src_expand = SkExpand_8888(c);
uint32_t dst_expand = SkExpand_4444(*dst) * scale16;
@@ -166,7 +166,7 @@ static void S32A_D4444_Blend_Dither(uint16_t* SK_RESTRICT dst,
const SkPMColor* SK_RESTRICT src,
int count, U8CPU alpha, int x, int y) {
SkASSERT(255 > alpha);
-
+
if (count > 0) {
int src_scale = SkAlpha255To256(alpha) >> 4;
DITHER_4444_SCAN(y);
@@ -176,7 +176,7 @@ static void S32A_D4444_Blend_Dither(uint16_t* SK_RESTRICT dst,
if (c) {
unsigned a = SkAlpha255To256(SkGetPackedA32(c));
int d = SkAlphaMul(DITHER_VALUE(x), a);
-
+
unsigned dst_scale = 16 - SkAlphaMul(src_scale, a);
uint32_t src_expand = SkExpand32_4444(c) * src_scale;
uint32_t dst_expand = SkExpand_4444(*dst) * dst_scale;
@@ -197,24 +197,24 @@ static const SkBlitRow::Proc gProcs4444[] = {
// no dither
S32_D4444_Opaque,
S32_D4444_Blend,
-
+
S32A_D4444_Opaque,
S32A_D4444_Blend,
-
+
// dither
S32_D4444_Opaque_Dither,
S32_D4444_Blend_Dither,
-
+
S32A_D4444_Opaque_Dither,
S32A_D4444_Blend_Dither
};
-
+
SkBlitRow::Proc SkBlitRow_Factory_4444(unsigned flags);
SkBlitRow::Proc SkBlitRow_Factory_4444(unsigned flags)
{
SkASSERT(flags < SK_ARRAY_COUNT(gProcs4444));
-
+
return gProcs4444[flags];
}
-
-
+
+
diff --git a/src/core/SkBlitter.cpp b/src/core/SkBlitter.cpp
index 02f7160ae1..322f91d40d 100644
--- a/src/core/SkBlitter.cpp
+++ b/src/core/SkBlitter.cpp
@@ -498,7 +498,7 @@ void SkRgnClipBlitter::blitAntiRect(int x, int y, int width, int height,
fBlitter->blitRect(r.fLeft, r.fTop, r.width(), r.height());
} else if (1 == r.width()) {
if (r.fLeft == x) {
- fBlitter->blitV(r.fLeft, r.fTop, r.height(),
+ fBlitter->blitV(r.fLeft, r.fTop, r.height(),
effectiveLeftAlpha);
} else {
SkASSERT(r.fLeft == x + width + 1);
@@ -851,7 +851,7 @@ SkBlitter* SkBlitter::Choose(const SkBitmap& device,
// we promise not to mutate paint unless we know we've reassigned it from
// lazyPaint
SkPaint* paint = const_cast<SkPaint*>(&origPaint);
-
+
if (origPaint.getMaskFilter() != NULL &&
origPaint.getMaskFilter()->getFormat() == SkMask::k3D_Format) {
shader3D = SkNEW_ARGS(Sk3DShader, (shader));
diff --git a/src/core/SkBlitter_ARGB32.cpp b/src/core/SkBlitter_ARGB32.cpp
index 5b9a76a7b4..417c252d80 100644
--- a/src/core/SkBlitter_ARGB32.cpp
+++ b/src/core/SkBlitter_ARGB32.cpp
@@ -15,24 +15,24 @@
///////////////////////////////////////////////////////////////////////////////
static void SkARGB32_Blit32(const SkBitmap& device, const SkMask& mask,
- const SkIRect& clip, SkPMColor srcColor) {
- U8CPU alpha = SkGetPackedA32(srcColor);
- unsigned flags = SkBlitRow::kSrcPixelAlpha_Flag32;
- if (alpha != 255) {
- flags |= SkBlitRow::kGlobalAlpha_Flag32;
- }
- SkBlitRow::Proc32 proc = SkBlitRow::Factory32(flags);
+ const SkIRect& clip, SkPMColor srcColor) {
+ U8CPU alpha = SkGetPackedA32(srcColor);
+ unsigned flags = SkBlitRow::kSrcPixelAlpha_Flag32;
+ if (alpha != 255) {
+ flags |= SkBlitRow::kGlobalAlpha_Flag32;
+ }
+ SkBlitRow::Proc32 proc = SkBlitRow::Factory32(flags);
int x = clip.fLeft;
int y = clip.fTop;
int width = clip.width();
int height = clip.height();
- SkPMColor* dstRow = device.getAddr32(x, y);
+ SkPMColor* dstRow = device.getAddr32(x, y);
const SkPMColor* srcRow = reinterpret_cast<const SkPMColor*>(mask.getAddr8(x, y));
do {
- proc(dstRow, srcRow, width, alpha);
+ proc(dstRow, srcRow, width, alpha);
dstRow = (SkPMColor*)((char*)dstRow + device.rowBytes());
srcRow = (const SkPMColor*)((const char*)srcRow + mask.fRowBytes);
} while (--height != 0);
@@ -162,7 +162,7 @@ void SkARGB32_Blitter::blitMask(const SkMask& mask, const SkIRect& clip) {
if (mask.fFormat == SkMask::kBW_Format) {
SkARGB32_BlendBW(fDevice, mask, clip, fPMColor, SkAlpha255To256(255 - fSrcA));
} else if (SkMask::kARGB32_Format == mask.fFormat) {
- SkARGB32_Blit32(fDevice, mask, clip, fPMColor);
+ SkARGB32_Blit32(fDevice, mask, clip, fPMColor);
}
}
@@ -173,12 +173,12 @@ void SkARGB32_Opaque_Blitter::blitMask(const SkMask& mask,
if (SkBlitMask::BlitColor(fDevice, mask, clip, fColor)) {
return;
}
-
+
if (mask.fFormat == SkMask::kBW_Format) {
SkARGB32_BlitBW(fDevice, mask, clip, fPMColor);
} else if (SkMask::kARGB32_Format == mask.fFormat) {
- SkARGB32_Blit32(fDevice, mask, clip, fPMColor);
- }
+ SkARGB32_Blit32(fDevice, mask, clip, fPMColor);
+ }
}
///////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/SkBlitter_RGB16.cpp b/src/core/SkBlitter_RGB16.cpp
index 8a4d454e9b..175409ce29 100644
--- a/src/core/SkBlitter_RGB16.cpp
+++ b/src/core/SkBlitter_RGB16.cpp
@@ -35,14 +35,14 @@ void sk_dither_memset16(uint16_t dst[], uint16_t value, uint16_t other,
count -= 1;
SkTSwap(value, other);
}
-
+
// fast way to set [value,other] pairs
#ifdef SK_CPU_BENDIAN
sk_memset32((uint32_t*)dst, (value << 16) | other, count >> 1);
#else
sk_memset32((uint32_t*)dst, (other << 16) | value, count >> 1);
#endif
-
+
if (count & 1) {
dst[count - 1] = value;
}
@@ -62,7 +62,7 @@ public:
virtual void blitMask(const SkMask&,
const SkIRect&);
virtual const SkBitmap* justAnOpaqueColor(uint32_t*);
-
+
protected:
SkPMColor fSrcColor32;
uint32_t fExpandedRaw16;
@@ -71,10 +71,10 @@ protected:
uint16_t fRawColor16; // unscaled
uint16_t fRawDither16; // unscaled
SkBool8 fDoDither;
-
+
// illegal
SkRGB16_Blitter& operator=(const SkRGB16_Blitter&);
-
+
typedef SkRasterBlitter INHERITED;
};
@@ -88,7 +88,7 @@ public:
virtual void blitRect(int x, int y, int width, int height);
virtual void blitMask(const SkMask&,
const SkIRect&);
-
+
private:
typedef SkRGB16_Blitter INHERITED;
};
@@ -100,7 +100,7 @@ public:
virtual void blitMask(const SkMask&, const SkIRect&);
virtual void blitAntiH(int x, int y, const SkAlpha* antialias,
const int16_t* runs);
-
+
private:
typedef SkRGB16_Opaque_Blitter INHERITED;
};
@@ -114,16 +114,16 @@ public:
virtual void blitAntiH(int x, int y, const SkAlpha* antialias,
const int16_t* runs);
virtual void blitRect(int x, int y, int width, int height);
-
+
protected:
SkPMColor* fBuffer;
SkBlitRow::Proc fOpaqueProc;
SkBlitRow::Proc fAlphaProc;
-
+
private:
// illegal
SkRGB16_Shader_Blitter& operator=(const SkRGB16_Shader_Blitter&);
-
+
typedef SkShaderBlitter INHERITED;
};
@@ -135,7 +135,7 @@ public:
virtual void blitAntiH(int x, int y, const SkAlpha* antialias,
const int16_t* runs);
virtual void blitRect(int x, int y, int width, int height);
-
+
private:
typedef SkRGB16_Shader_Blitter INHERITED;
};
@@ -147,15 +147,15 @@ public:
virtual void blitH(int x, int y, int width);
virtual void blitAntiH(int x, int y, const SkAlpha* antialias,
const int16_t* runs);
-
+
private:
SkXfermode* fXfermode;
SkPMColor* fBuffer;
uint8_t* fAAExpand;
-
+
// illegal
SkRGB16_Shader_Xfermode_Blitter& operator=(const SkRGB16_Shader_Xfermode_Blitter&);
-
+
typedef SkShaderBlitter INHERITED;
};
@@ -291,7 +291,7 @@ void SkRGB16_Opaque_Blitter::blitH(int x, int y, int width) {
// return 1 or 0 from a bool
static inline int Bool2Int(int value) {
- return !!value;
+ return !!value;
}
void SkRGB16_Opaque_Blitter::blitAntiH(int x, int y,
@@ -386,20 +386,20 @@ void SkRGB16_Opaque_Blitter::blitMask(const SkMask& mask,
uint32_t expanded32 = fExpandedRaw16;
#ifdef SK_USE_NEON
-#define UNROLL 8
+#define UNROLL 8
do {
int w = width;
if (w >= UNROLL) {
- uint32x4_t color; /* can use same one */
+ uint32x4_t color; /* can use same one */
uint32x4_t dev_lo, dev_hi;
uint32x4_t t1, t2;
uint32x4_t wn1, wn2;
uint16x4_t odev_lo, odev_hi;
uint16x4_t alpha_lo, alpha_hi;
uint16x8_t alpha_full;
-
+
color = vdupq_n_u32(expanded32);
-
+
do {
/* alpha is 8x8, widen and split to get pair of 16x4's */
alpha_full = vmovl_u8(vld1_u8(alpha));
@@ -407,53 +407,53 @@ void SkRGB16_Opaque_Blitter::blitMask(const SkMask& mask,
alpha_full = vshrq_n_u16(alpha_full, 3);
alpha_lo = vget_low_u16(alpha_full);
alpha_hi = vget_high_u16(alpha_full);
-
+
dev_lo = vmovl_u16(vld1_u16(device));
dev_hi = vmovl_u16(vld1_u16(device+4));
-
+
/* unpack in 32 bits */
dev_lo = vorrq_u32(
vandq_u32(dev_lo, vdupq_n_u32(0x0000F81F)),
- vshlq_n_u32(vandq_u32(dev_lo,
+ vshlq_n_u32(vandq_u32(dev_lo,
vdupq_n_u32(0x000007E0)),
16)
);
dev_hi = vorrq_u32(
vandq_u32(dev_hi, vdupq_n_u32(0x0000F81F)),
- vshlq_n_u32(vandq_u32(dev_hi,
+ vshlq_n_u32(vandq_u32(dev_hi,
vdupq_n_u32(0x000007E0)),
16)
);
-
+
/* blend the two */
t1 = vmulq_u32(vsubq_u32(color, dev_lo), vmovl_u16(alpha_lo));
t1 = vshrq_n_u32(t1, 5);
dev_lo = vaddq_u32(dev_lo, t1);
-
+
t1 = vmulq_u32(vsubq_u32(color, dev_hi), vmovl_u16(alpha_hi));
t1 = vshrq_n_u32(t1, 5);
dev_hi = vaddq_u32(dev_hi, t1);
-
+
/* re-compact and store */
wn1 = vandq_u32(dev_lo, vdupq_n_u32(0x0000F81F)),
wn2 = vshrq_n_u32(dev_lo, 16);
wn2 = vandq_u32(wn2, vdupq_n_u32(0x000007E0));
odev_lo = vmovn_u32(vorrq_u32(wn1, wn2));
-
+
wn1 = vandq_u32(dev_hi, vdupq_n_u32(0x0000F81F)),
wn2 = vshrq_n_u32(dev_hi, 16);
wn2 = vandq_u32(wn2, vdupq_n_u32(0x000007E0));
odev_hi = vmovn_u32(vorrq_u32(wn1, wn2));
-
+
vst1_u16(device, odev_lo);
vst1_u16(device+4, odev_hi);
-
+
device += UNROLL;
alpha += UNROLL;
w -= UNROLL;
} while (w >= UNROLL);
}
-
+
/* residuals (which is everything if we have no neon) */
while (w > 0) {
*device = blend_compact(expanded32, SkExpand_rgb_16(*device),
@@ -464,7 +464,7 @@ void SkRGB16_Opaque_Blitter::blitMask(const SkMask& mask,
device = (uint16_t*)((char*)device + deviceRB);
alpha += maskRB;
} while (--height != 0);
-#undef UNROLL
+#undef UNROLL
#else // non-neon code
do {
int w = width;
@@ -482,7 +482,7 @@ void SkRGB16_Opaque_Blitter::blitMask(const SkMask& mask,
void SkRGB16_Opaque_Blitter::blitV(int x, int y, int height, SkAlpha alpha) {
uint16_t* SK_RESTRICT device = fDevice.getAddr16(x, y);
unsigned deviceRB = fDevice.rowBytes();
-
+
// TODO: respect fDoDither
unsigned scale5 = SkAlpha255To256(alpha) >> 3;
uint32_t src32 = fExpandedRaw16 * scale5;
@@ -821,7 +821,7 @@ SkRGB16_Shader_Blitter::SkRGB16_Shader_Blitter(const SkBitmap& device,
// compute SkBlitRow::Procs
unsigned flags = 0;
-
+
uint32_t shaderFlags = fShaderFlags;
// shaders take care of global alpha, so we never set it in SkBlitRow
if (!(shaderFlags & SkShader::kOpaqueAlpha_Flag)) {
@@ -1017,7 +1017,7 @@ void SkRGB16_Shader_Xfermode_Blitter::blitAntiH(int x, int y,
SkASSERT(count > 0);
aa = *antialias;
}
- }
+ }
}
///////////////////////////////////////////////////////////////////////////////
@@ -1060,6 +1060,6 @@ SkBlitter* SkBlitter_ChooseD565(const SkBitmap& device, const SkPaint& paint,
storageSize, (device, paint));
}
}
-
+
return blitter;
}
diff --git a/src/core/SkBuffer.h b/src/core/SkBuffer.h
index 34159ab3c5..6722eb8df3 100644
--- a/src/core/SkBuffer.h
+++ b/src/core/SkBuffer.h
@@ -17,7 +17,7 @@
Light weight class for reading data from a memory block.
The RBuffer is given the buffer to read from, with either a specified size
or no size (in which case no range checking is performed). It is iillegal
- to attempt to read a value from an empty RBuffer (data == null).
+ to attempt to read a value from an empty RBuffer (data == null).
*/
class SkRBuffer : SkNoncopyable {
public:
@@ -38,7 +38,7 @@ public:
fPos = (const char*)data;
fStop = (const char*)data + size;
}
-
+
/** Return the number of bytes that have been read from the beginning
of the data pointer.
*/
@@ -108,7 +108,7 @@ public:
fPos = (char*)data;
fStop = (char*)data + size;
}
-
+
size_t pos() const { return fPos - fData; }
void* skip(size_t size); // return start of skipped data
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 8b30897808..b7c06c3351 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -328,7 +328,7 @@ public:
} else {
return this->doNext(drawType);
}
- }
+ }
private:
SkLazyPaint fLazyPaint;
@@ -959,7 +959,7 @@ public:
SkBitmap* result, SkIPoint* offset) SK_OVERRIDE {
return fDevice->filterImage(filter, src, ctm, result, offset);
}
-
+
private:
SkDevice* fDevice;
};
@@ -997,18 +997,18 @@ void SkCanvas::internalDrawDevice(SkDevice* srcDev, int x, int y,
void SkCanvas::drawSprite(const SkBitmap& bitmap, int x, int y,
const SkPaint* paint) {
SkDEBUGCODE(bitmap.validate();)
-
+
if (reject_bitmap(bitmap)) {
return;
}
-
+
SkPaint tmp;
if (NULL == paint) {
paint = &tmp;
}
-
+
LOOPER_BEGIN_DRAWDEVICE(*paint, SkDrawFilter::kBitmap_Type)
-
+
while (iter.next()) {
paint = &looper.paint();
SkImageFilter* filter = paint->getImageFilter();
@@ -1165,11 +1165,11 @@ bool SkCanvas::clipPath(const SkPath& path, SkRegion::Op op, bool doAA) {
if (fMCRec->fRasterClip->isEmpty()) {
return false;
}
-
+
if (this->quickReject(path.getBounds())) {
fDeviceCMDirty = true;
fLocalBoundsCompareTypeDirty = true;
-
+
fClipStack.clipEmpty();
return fMCRec->fRasterClip->setEmpty();
}
@@ -1353,7 +1353,7 @@ bool SkCanvas::getClipBounds(SkRect* bounds) const {
// that can be larger than 32K in width or height).
r.iset(pinIntForScalar(ibounds.fLeft - inset),
pinIntForScalar(ibounds.fTop - inset),
- pinIntForScalar(ibounds.fRight + inset),
+ pinIntForScalar(ibounds.fRight + inset),
pinIntForScalar(ibounds.fBottom + inset));
inverse.mapRect(bounds, r);
}
@@ -1472,7 +1472,7 @@ void SkCanvas::drawPoints(PointMode mode, size_t count, const SkPoint pts[],
if (this->quickReject(paint.computeFastStrokeBounds(r, &storage))) {
return;
}
- }
+ }
SkASSERT(pts != NULL);
diff --git a/src/core/SkChunkAlloc.cpp b/src/core/SkChunkAlloc.cpp
index 8df38cb1ed..25ef4bcaf9 100644
--- a/src/core/SkChunkAlloc.cpp
+++ b/src/core/SkChunkAlloc.cpp
@@ -22,7 +22,7 @@ struct SkChunkAlloc::Block {
size_t fFreeSize;
char* fFreePtr;
// data[] follows
-
+
char* startOfData() {
return reinterpret_cast<char*>(this + 1);
}
@@ -34,7 +34,7 @@ struct SkChunkAlloc::Block {
block = next;
}
};
-
+
bool contains(const void* addr) const {
const char* ptr = reinterpret_cast<const char*>(addr);
return ptr >= (const char*)(this + 1) && ptr < fFreePtr;
@@ -80,10 +80,10 @@ SkChunkAlloc::Block* SkChunkAlloc::newBlock(size_t bytes, AllocFailType ftype) {
// block->fNext = fBlock;
block->fFreeSize = size;
block->fFreePtr = block->startOfData();
-
+
fTotalCapacity += size;
fBlockCount += 1;
-
+
fChunkSize = increase_next_size(fChunkSize);
}
return block;
diff --git a/src/core/SkClipStack.cpp b/src/core/SkClipStack.cpp
index e8ff6e8adc..3c9705dcae 100644
--- a/src/core/SkClipStack.cpp
+++ b/src/core/SkClipStack.cpp
@@ -13,7 +13,7 @@
// 0-2 are reserved for invalid, empty & wide-open
-int32_t SkClipStack::gGenID = 3;
+int32_t SkClipStack::gGenID = 3;
struct SkClipStack::Rec {
enum State {
@@ -30,13 +30,13 @@ struct SkClipStack::Rec {
bool fDoAA;
// fFiniteBoundType and fFiniteBound are used to incrementally update
- // the clip stack's bound. When fFiniteBoundType is kNormal_BoundsType,
- // fFiniteBound represents the conservative bounding box of the pixels
- // that aren't clipped (i.e., any pixels that can be drawn to are inside
- // the bound). When fFiniteBoundType is kInsideOut_BoundsType (which occurs
- // when a clip is inverse filled), fFiniteBound represents the
- // conservative bounding box of the pixels that _are_ clipped (i.e., any
- // pixels that cannot be drawn to are inside the bound). When
+ // the clip stack's bound. When fFiniteBoundType is kNormal_BoundsType,
+ // fFiniteBound represents the conservative bounding box of the pixels
+ // that aren't clipped (i.e., any pixels that can be drawn to are inside
+ // the bound). When fFiniteBoundType is kInsideOut_BoundsType (which occurs
+ // when a clip is inverse filled), fFiniteBound represents the
+ // conservative bounding box of the pixels that _are_ clipped (i.e., any
+ // pixels that cannot be drawn to are inside the bound). When
// fFiniteBoundType is kInsideOut_BoundsType the actual bound is
// the infinite plane. This behavior of fFiniteBoundType and
// fFiniteBound is required so that we can capture the cancelling out
@@ -48,13 +48,13 @@ struct SkClipStack::Rec {
int fGenID;
- Rec(int saveCount)
+ Rec(int saveCount)
: fGenID(kInvalidGenID) {
fSaveCount = saveCount;
this->setEmpty();
}
-
- Rec(int saveCount, const SkRect& rect, SkRegion::Op op, bool doAA)
+
+ Rec(int saveCount, const SkRect& rect, SkRegion::Op op, bool doAA)
: fRect(rect)
, fGenID(kInvalidGenID) {
fSaveCount = saveCount;
@@ -64,7 +64,7 @@ struct SkClipStack::Rec {
// bounding box members are updated in a following updateBound call
}
- Rec(int saveCount, const SkPath& path, SkRegion::Op op, bool doAA)
+ Rec(int saveCount, const SkPath& path, SkRegion::Op op, bool doAA)
: fPath(path)
, fGenID(kInvalidGenID) {
fRect.setEmpty();
@@ -91,8 +91,8 @@ struct SkClipStack::Rec {
}
bool operator==(const Rec& b) const {
- if (fSaveCount != b.fSaveCount ||
- fOp != b.fOp ||
+ if (fSaveCount != b.fSaveCount ||
+ fOp != b.fOp ||
fState != b.fState ||
fDoAA != b.fDoAA) {
return false;
@@ -124,7 +124,7 @@ struct SkClipStack::Rec {
}
// Only clips within the same save/restore frame (as captured by
// the save count) can be merged
- return fSaveCount == saveCount &&
+ return fSaveCount == saveCount &&
SkRegion::kIntersect_Op == op &&
(SkRegion::kIntersect_Op == fOp || SkRegion::kReplace_Op == fOp);
}
@@ -155,8 +155,8 @@ struct SkClipStack::Rec {
// So either the two overlap in some complex manner or newR contains oldR.
// In the first, case the edges will require different AA. In the second,
- // the AA setting that would be carried forward is incorrect (e.g., oldR
- // is AA while newR is BW but since newR contains oldR, oldR will be
+ // the AA setting that would be carried forward is incorrect (e.g., oldR
+ // is AA while newR is BW but since newR contains oldR, oldR will be
// drawn BW) since the new AA setting will predominate.
return false;
}
@@ -165,7 +165,7 @@ struct SkClipStack::Rec {
/**
* The different combination of fill & inverse fill when combining
* bounding boxes
- */
+ */
enum FillCombo {
kPrev_Cur_FillCombo,
kPrev_InvCur_FillCombo,
@@ -192,7 +192,7 @@ struct SkClipStack::Rec {
break;
case kPrev_InvCur_FillCombo:
// In this case everything outside of this clip's bound
- // is erased, so the only pixels that can remain set
+ // is erased, so the only pixels that can remain set
// occur w/in the intersection of the two finite bounds
if (!fFiniteBound.intersect(prevFinite)) {
fFiniteBound.setEmpty();
@@ -200,11 +200,11 @@ struct SkClipStack::Rec {
fFiniteBoundType = kNormal_BoundsType;
break;
case kPrev_Cur_FillCombo:
- // The most conservative result bound is that of the
- // prior clip. This could be wildly incorrect if the
- // second clip either exactly matches the first clip
+ // The most conservative result bound is that of the
+ // prior clip. This could be wildly incorrect if the
+ // second clip either exactly matches the first clip
// (which should yield the empty set) or reduces the
- // size of the prior bound (e.g., if the second clip
+ // size of the prior bound (e.g., if the second clip
// exactly matched the bottom half of the prior clip).
// We ignore these two possibilities.
fFiniteBound = prevFinite;
@@ -227,16 +227,16 @@ struct SkClipStack::Rec {
fFiniteBoundType = kInsideOut_BoundsType;
break;
case kInvPrev_InvCur_FillCombo:
- // The only pixels that can survive are within the
+ // The only pixels that can survive are within the
// union of the two bounding boxes since the extensions
// to infinity of both clips cancel out
// fall through!
case kPrev_Cur_FillCombo:
- // The most conservative bound for xor is the
+ // The most conservative bound for xor is the
// union of the two bounds. If the two clips exactly overlapped
- // the xor could yield the empty set. Similarly the xor
- // could reduce the size of the original clip's bound (e.g.,
- // if the second clip exactly matched the bottom half of the
+ // the xor could yield the empty set. Similarly the xor
+ // could reduce the size of the original clip's bound (e.g.,
+ // if the second clip exactly matched the bottom half of the
// first clip). We ignore these two cases.
fFiniteBound.join(prevFinite);
fFiniteBoundType = kNormal_BoundsType;
@@ -281,12 +281,12 @@ struct SkClipStack::Rec {
switch (combination) {
case kInvPrev_InvCur_FillCombo:
- // The only pixels that aren't writable in this case
+ // The only pixels that aren't writable in this case
// occur in the union of the two finite bounds
fFiniteBound.join(prevFinite);
fFiniteBoundType = kInsideOut_BoundsType;
break;
- case kInvPrev_Cur_FillCombo:
+ case kInvPrev_Cur_FillCombo:
// In this case the only pixels that will remain writeable
// are within the current clip
break;
@@ -312,7 +312,7 @@ struct SkClipStack::Rec {
switch (combination) {
case kInvPrev_InvCur_FillCombo:
- // The only pixels that can survive are in the
+ // The only pixels that can survive are in the
// previous bound since the extensions to infinity in
// both clips cancel out
fFiniteBound = prevFinite;
@@ -329,10 +329,10 @@ struct SkClipStack::Rec {
fFiniteBoundType = kInsideOut_BoundsType;
break;
case kPrev_Cur_FillCombo:
- // Fall through - as with the kDifference_Op case, the
+ // Fall through - as with the kDifference_Op case, the
// most conservative result bound is the bound of the
- // current clip. The prior clip could reduce the size of this
- // bound (as in the kDifference_Op case) but we are ignoring
+ // current clip. The prior clip could reduce the size of this
+ // bound (as in the kDifference_Op case) but we are ignoring
// those cases.
break;
default:
@@ -343,7 +343,7 @@ struct SkClipStack::Rec {
void updateBound(const Rec* prior) {
- // First, optimistically update the current Rec's bound information
+ // First, optimistically update the current Rec's bound information
// with the current clip's bound
fIsIntersectionOfRects = false;
if (kRect_State == fState) {
@@ -351,7 +351,7 @@ struct SkClipStack::Rec {
fFiniteBoundType = kNormal_BoundsType;
if (SkRegion::kReplace_Op == fOp ||
- (SkRegion::kIntersect_Op == fOp && NULL == prior) ||
+ (SkRegion::kIntersect_Op == fOp && NULL == prior) ||
(SkRegion::kIntersect_Op == fOp && prior->fIsIntersectionOfRects &&
prior->rectRectIntersectAllowed(fRect, fDoAA))) {
fIsIntersectionOfRects = true;
@@ -359,7 +359,7 @@ struct SkClipStack::Rec {
} else {
SkASSERT(kPath_State == fState);
-
+
fFiniteBound = fPath.getBounds();
if (fPath.isInverseFillType()) {
@@ -376,9 +376,9 @@ struct SkClipStack::Rec {
// Note: the left edge is handled slightly differently below. We
// are a bit more generous in the rounding since we don't want to
// risk missing the left pixels when fLeft is very close to .5
- fFiniteBound.set(SkIntToScalar(SkScalarFloorToInt(fFiniteBound.fLeft+0.45f)),
- SkIntToScalar(SkScalarRound(fFiniteBound.fTop)),
- SkIntToScalar(SkScalarRound(fFiniteBound.fRight)),
+ fFiniteBound.set(SkIntToScalar(SkScalarFloorToInt(fFiniteBound.fLeft+0.45f)),
+ SkIntToScalar(SkScalarRound(fFiniteBound.fTop)),
+ SkIntToScalar(SkScalarRound(fFiniteBound.fRight)),
SkIntToScalar(SkScalarRound(fFiniteBound.fBottom)));
}
@@ -404,9 +404,9 @@ struct SkClipStack::Rec {
combination = (FillCombo) (combination | 0x02);
}
- SkASSERT(kInvPrev_InvCur_FillCombo == combination ||
+ SkASSERT(kInvPrev_InvCur_FillCombo == combination ||
kInvPrev_Cur_FillCombo == combination ||
- kPrev_InvCur_FillCombo == combination ||
+ kPrev_InvCur_FillCombo == combination ||
kPrev_Cur_FillCombo == combination);
// Now integrate with clip with the prior clips
@@ -439,23 +439,23 @@ struct SkClipStack::Rec {
}
};
-// This constant determines how many Rec's are allocated together as a block in
+// This constant determines how many Rec's are allocated together as a block in
// the deque. As such it needs to balance allocating too much memory vs.
// incurring allocation/deallocation thrashing. It should roughly correspond to
// the deepest save/restore stack we expect to see.
static const int kDefaultRecordAllocCnt = 8;
-SkClipStack::SkClipStack()
+SkClipStack::SkClipStack()
: fDeque(sizeof(Rec), kDefaultRecordAllocCnt)
, fSaveCount(0) {
}
-SkClipStack::SkClipStack(const SkClipStack& b)
+SkClipStack::SkClipStack(const SkClipStack& b)
: fDeque(sizeof(Rec), kDefaultRecordAllocCnt) {
*this = b;
}
-SkClipStack::SkClipStack(const SkRect& r)
+SkClipStack::SkClipStack(const SkRect& r)
: fDeque(sizeof(Rec), kDefaultRecordAllocCnt)
, fSaveCount(0) {
if (!r.isEmpty()) {
@@ -463,7 +463,7 @@ SkClipStack::SkClipStack(const SkRect& r)
}
}
-SkClipStack::SkClipStack(const SkIRect& r)
+SkClipStack::SkClipStack(const SkIRect& r)
: fDeque(sizeof(Rec), kDefaultRecordAllocCnt)
, fSaveCount(0) {
if (!r.isEmpty()) {
@@ -495,7 +495,7 @@ SkClipStack& SkClipStack::operator=(const SkClipStack& b) {
}
bool SkClipStack::operator==(const SkClipStack& b) const {
- if (fSaveCount != b.fSaveCount ||
+ if (fSaveCount != b.fSaveCount ||
fDeque.count() != b.fDeque.count()) {
return false;
}
@@ -543,7 +543,7 @@ void SkClipStack::restore() {
}
}
-void SkClipStack::getBounds(SkRect* canvFiniteBound,
+void SkClipStack::getBounds(SkRect* canvFiniteBound,
BoundsType* boundType,
bool* isIntersectionOfRects) const {
SkASSERT(NULL != canvFiniteBound && NULL != boundType);
@@ -670,17 +670,17 @@ void SkClipStack::clipEmpty() {
}
}
new (fDeque.push_back()) Rec(fSaveCount);
-
+
if (rec && rec->fSaveCount == fSaveCount) {
this->purgeClip(rec);
}
}
-bool SkClipStack::isWideOpen() const {
+bool SkClipStack::isWideOpen() const {
if (0 == fDeque.count()) {
return true;
}
-
+
const Rec* back = (const Rec*) fDeque.back();
return kInsideOut_BoundsType == back->fFiniteBoundType &&
back->fFiniteBound.isEmpty();
@@ -766,10 +766,10 @@ const SkClipStack::Iter::Clip* SkClipStack::Iter::skipToTopmost(SkRegion::Op op)
if (op == rec->fOp) {
// The Deque's iterator is actually one pace ahead of the
- // returned value. So while "rec" is the element we want to
+ // returned value. So while "rec" is the element we want to
// return, the iterator is actually pointing at (and will
// return on the next "next" or "prev" call) the element
- // in front of it in the deque. Bump the iterator forward a
+ // in front of it in the deque. Bump the iterator forward a
// step so we get the expected result.
if (NULL == fIter.next()) {
// The reverse iterator has run off the front of the deque
@@ -803,12 +803,12 @@ void SkClipStack::getConservativeBounds(int offsetX,
bool* isIntersectionOfRects) const {
SkASSERT(NULL != devBounds);
- devBounds->setLTRB(0, 0,
+ devBounds->setLTRB(0, 0,
SkIntToScalar(maxWidth), SkIntToScalar(maxHeight));
SkRect temp;
SkClipStack::BoundsType boundType;
-
+
// temp starts off in canvas space here
this->getBounds(&temp, &boundType, isIntersectionOfRects);
if (SkClipStack::kInsideOut_BoundsType == boundType) {
diff --git a/src/core/SkColor.cpp b/src/core/SkColor.cpp
index fe7b8f865b..cb5f15cb7f 100644
--- a/src/core/SkColor.cpp
+++ b/src/core/SkColor.cpp
@@ -51,7 +51,7 @@ void SkRGBToHSV(U8CPU r, U8CPU g, U8CPU b, SkScalar hsv[3]) {
SkScalar s = ByteDivToScalar(delta, max);
SkASSERT(s >= 0 && s <= SK_Scalar1);
- SkScalar h;
+ SkScalar h;
if (r == max) {
h = ByteDivToScalar(g - b, delta);
} else if (g == max) {
@@ -92,12 +92,12 @@ SkColor SkHSVToColor(U8CPU a, const SkScalar hsv[3]) {
}
SkFixed hx = (hsv[0] < 0 || hsv[0] >= SkIntToScalar(360)) ? 0 : SkScalarToFixed(hsv[0]/60);
SkFixed f = hx & 0xFFFF;
-
+
unsigned v_scale = SkAlpha255To256(v);
unsigned p = SkAlphaMul(255 - s, v_scale);
unsigned q = SkAlphaMul(255 - (s * f >> 16), v_scale);
unsigned t = SkAlphaMul(255 - (s * (SK_Fixed1 - f) >> 16), v_scale);
-
+
unsigned r, g, b;
SkASSERT((unsigned)(hx >> 16) < 6);
diff --git a/src/core/SkColorFilter.cpp b/src/core/SkColorFilter.cpp
index 82a85f419e..fee34ed805 100644
--- a/src/core/SkColorFilter.cpp
+++ b/src/core/SkColorFilter.cpp
@@ -77,7 +77,7 @@ void SkFilterShader::flatten(SkFlattenableWriteBuffer& buffer) const {
uint32_t SkFilterShader::getFlags() {
uint32_t shaderF = fShader->getFlags();
uint32_t filterF = fFilter->getFlags();
-
+
// if the filter doesn't support 16bit, clear the matching bit in the shader
if (!(filterF & SkColorFilter::kHasFilter16_Flag)) {
shaderF &= ~SkShader::kHasSpan16_Flag;
diff --git a/src/core/SkCordic.cpp b/src/core/SkCordic.cpp
index 56cb4606c5..00dd76ebb5 100644
--- a/src/core/SkCordic.cpp
+++ b/src/core/SkCordic.cpp
@@ -18,7 +18,7 @@ const int32_t kATanDegrees[] = { 0x20000000,
const int32_t kFixedInvGain1 = 0x18bde0bb; // 0.607252935
-static void SkCircularRotation(int32_t* x0, int32_t* y0, int32_t* z0)
+static void SkCircularRotation(int32_t* x0, int32_t* y0, int32_t* z0)
{
int32_t t = 0;
int32_t x = *x0;
@@ -28,7 +28,7 @@ static void SkCircularRotation(int32_t* x0, int32_t* y0, int32_t* z0)
do {
int32_t x1 = y >> t;
int32_t y1 = x >> t;
- int32_t tan = *tanPtr++;
+ int32_t tan = *tanPtr++;
if (z >= 0) {
x -= x1;
y += y1;
@@ -49,7 +49,7 @@ SkFixed SkCordicSinCos(SkFixed radians, SkFixed* cosp)
int32_t scaledRadians = radians * 0x28be; // scale radians to 65536 / PI()
int quadrant = scaledRadians >> 30;
quadrant += 1;
- if (quadrant & 2)
+ if (quadrant & 2)
scaledRadians = -scaledRadians + 0x80000000;
/* |a| <= 90 degrees as a 1.31 number */
SkFixed sin = 0;
@@ -65,14 +65,14 @@ SkFixed SkCordicSinCos(SkFixed radians, SkFixed* cosp)
return sin;
}
-SkFixed SkCordicTan(SkFixed a)
+SkFixed SkCordicTan(SkFixed a)
{
int32_t cos;
int32_t sin = SkCordicSinCos(a, &cos);
return SkFixedDiv(sin, cos);
}
-static int32_t SkCircularVector(int32_t* y0, int32_t* x0, int32_t vecMode)
+static int32_t SkCircularVector(int32_t* y0, int32_t* x0, int32_t vecMode)
{
int32_t x = *x0;
int32_t y = *y0;
@@ -82,7 +82,7 @@ static int32_t SkCircularVector(int32_t* y0, int32_t* x0, int32_t vecMode)
do {
int32_t x1 = y >> t;
int32_t y1 = x >> t;
- int32_t tan = *tanPtr++;
+ int32_t tan = *tanPtr++;
if (y < vecMode) {
x -= x1;
y += y1;
@@ -133,7 +133,7 @@ SkFixed SkCordicATan2(SkFixed y, SkFixed x) {
return result;
}
-const int32_t kATanHDegrees[] = {
+const int32_t kATanHDegrees[] = {
0x1661788D, 0xA680D61, 0x51EA6FC, 0x28CBFDD, 0x1460E34,
0xA2FCE8, 0x517D2E, 0x28BE6E, 0x145F32,
0xA2F98, 0x517CC, 0x28BE6, 0x145F3, 0xA2F9, 0x517C,
@@ -142,7 +142,7 @@ const int32_t kATanHDegrees[] = {
const int32_t kFixedInvGain2 = 0x31330AAA; // 1.207534495
-static void SkHyperbolic(int32_t* x0, int32_t* y0, int32_t* z0, int mode)
+static void SkHyperbolic(int32_t* x0, int32_t* y0, int32_t* z0, int mode)
{
int32_t t = 1;
int32_t x = *x0;
@@ -153,7 +153,7 @@ static void SkHyperbolic(int32_t* x0, int32_t* y0, int32_t* z0, int mode)
do {
int32_t x1 = y >> t;
int32_t y1 = x >> t;
- int32_t tan = *tanPtr++;
+ int32_t tan = *tanPtr++;
int count = 2 + (k >> 31);
if (++k == 1)
k = -2;
diff --git a/src/core/SkCordic.h b/src/core/SkCordic.h
index b70f987c30..aa703ebf6f 100644
--- a/src/core/SkCordic.h
+++ b/src/core/SkCordic.h
@@ -25,5 +25,5 @@ SkFixed SkCordicTan(SkFixed a);
void SkCordic_UnitTest();
#endif
-#endif // SkCordic
+#endif // SkCordic
diff --git a/src/core/SkData.cpp b/src/core/SkData.cpp
index 5dbc206d8e..4274f2b8e2 100644
--- a/src/core/SkData.cpp
+++ b/src/core/SkData.cpp
@@ -212,7 +212,7 @@ SkDataSet::SkDataSet(const Pair array[], int count) {
pairs[uniqueCount].fKey = keyStorage;
keyStorage += len + 1;
keySize += len + 1;
-
+
pairs[uniqueCount].fValue = dupdata(array[i].fValue);
uniqueCount += 1;
}
@@ -231,7 +231,7 @@ SkDataSet::~SkDataSet() {
SkData* SkDataSet::find(const char key[]) const {
return findValue(key, fPairs, fCount);
}
-
+
void SkDataSet::writeToStream(SkWStream* stream) const {
stream->write32(fCount);
if (fCount > 0) {
@@ -260,9 +260,9 @@ SkDataSet::SkDataSet(SkStream* stream) {
fKeySize = stream->readU32();
fPairs = allocatePairStorage(fCount, fKeySize);
char* keyStorage = (char*)(fPairs + fCount);
-
+
stream->read(keyStorage, fKeySize);
-
+
for (int i = 0; i < fCount; ++i) {
fPairs[i].fKey = keyStorage;
keyStorage += strlen(keyStorage) + 1;
@@ -280,9 +280,9 @@ SkDataSet::SkDataSet(SkFlattenableReadBuffer& buffer) {
fKeySize = buffer.getArrayCount();
fPairs = allocatePairStorage(fCount, fKeySize);
char* keyStorage = (char*)(fPairs + fCount);
-
+
buffer.readByteArray(keyStorage);
-
+
for (int i = 0; i < fCount; ++i) {
fPairs[i].fKey = keyStorage;
keyStorage += strlen(keyStorage) + 1;
diff --git a/src/core/SkDeque.cpp b/src/core/SkDeque.cpp
index 83c9f9751e..d210dcf20b 100644
--- a/src/core/SkDeque.cpp
+++ b/src/core/SkDeque.cpp
@@ -216,14 +216,14 @@ void SkDeque::pop_back() {
}
}
-int SkDeque::numBlocksAllocated() const {
+int SkDeque::numBlocksAllocated() const {
int numBlocks = 0;
for (const Block* temp = fFrontBlock; temp; temp = temp->fNext) {
++numBlocks;
}
- return numBlocks;
+ return numBlocks;
}
SkDeque::Block* SkDeque::allocateBlock(int allocCount) {
diff --git a/src/core/SkDescriptor.h b/src/core/SkDescriptor.h
index 8675fa1e20..071a89c186 100644
--- a/src/core/SkDescriptor.h
+++ b/src/core/SkDescriptor.h
@@ -125,7 +125,7 @@ private:
size_t len = desc->fLength - sizeof(uint32_t);
return SkChecksum::Compute(ptr, len);
}
-
+
// private so no one can create one except our factories
SkDescriptor() {}
};
diff --git a/src/core/SkDevice.cpp b/src/core/SkDevice.cpp
index 4cd9310121..6146fd6c71 100644
--- a/src/core/SkDevice.cpp
+++ b/src/core/SkDevice.cpp
@@ -20,19 +20,19 @@ SK_DEFINE_INST_COUNT(SkDevice)
///////////////////////////////////////////////////////////////////////////////
-SkDevice::SkDevice(const SkBitmap& bitmap)
+SkDevice::SkDevice(const SkBitmap& bitmap)
: fBitmap(bitmap)
#ifdef SK_DEBUG
- , fAttachedToCanvas(false)
+ , fAttachedToCanvas(false)
#endif
{
fOrigin.setZero();
fMetaData = NULL;
}
-SkDevice::SkDevice(SkBitmap::Config config, int width, int height, bool isOpaque)
+SkDevice::SkDevice(SkBitmap::Config config, int width, int height, bool isOpaque)
#ifdef SK_DEBUG
- : fAttachedToCanvas(false)
+ : fAttachedToCanvas(false)
#endif
{
fOrigin.setZero();
diff --git a/src/core/SkDeviceProfile.cpp b/src/core/SkDeviceProfile.cpp
index f4f242a561..abb78acb52 100644
--- a/src/core/SkDeviceProfile.cpp
+++ b/src/core/SkDeviceProfile.cpp
@@ -70,7 +70,7 @@ SkDeviceProfile* SkDeviceProfile::RefGlobal() {
gGlobalProfile->ref();
return gGlobalProfile;
}
-
+
void SkDeviceProfile::SetGlobal(SkDeviceProfile* profile) {
SkAutoMutexAcquire amc(gMutex);
diff --git a/src/core/SkDither.cpp b/src/core/SkDither.cpp
index bdd8c2fe85..e733aad789 100644
--- a/src/core/SkDither.cpp
+++ b/src/core/SkDither.cpp
@@ -8,7 +8,7 @@
#include "SkDither.h"
/* The base dither matrix we use to derive optimized ones for 565 and 4444
-
+
{ 0, 32, 8, 40, 2, 34, 10, 42 },
{ 48, 16, 56, 24, 50, 18, 58, 26 },
{ 12, 44, 4, 36, 14, 46, 6, 38 },
diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp
index 9e8e9ef59c..e8d171e543 100644
--- a/src/core/SkDraw.cpp
+++ b/src/core/SkDraw.cpp
@@ -46,7 +46,7 @@ public:
fBlitter = SkBlitter::Choose(device, matrix, paint,
fStorage, sizeof(fStorage));
}
-
+
~SkAutoBlitterChoose();
SkBlitter* operator->() { return fBlitter; }
@@ -556,7 +556,7 @@ void SkDraw::drawPoints(SkCanvas::PointMode mode, size_t count,
if (!bounder_points(fBounder, mode, count, pts, paint, *fMatrix)) {
return;
}
-
+
// clear the bounder and call this again, so we don't invoke the bounder
// later if we happen to call ourselves for drawRect, drawPath, etc.
SkDraw noBounder(*this);
@@ -564,7 +564,7 @@ void SkDraw::drawPoints(SkCanvas::PointMode mode, size_t count,
noBounder.drawPoints(mode, count, pts, paint, forceUseDevice);
return;
}
-
+
PtProcRec rec;
if (!forceUseDevice && rec.init(mode, paint, fMatrix, fRC)) {
SkAutoBlitterChoose blitter(*fBitmap, *fMatrix, paint);
@@ -671,7 +671,7 @@ static bool easy_rect_join(const SkPaint& paint, const SkMatrix& matrix,
paint.getStrokeMiter() < SK_ScalarSqrt2) {
return false;
}
-
+
SkASSERT(matrix.rectStaysRect());
SkPoint pt = { paint.getStrokeWidth(), paint.getStrokeWidth() };
matrix.mapVectors(strokeSize, &pt, 1);
@@ -687,11 +687,11 @@ SkDraw::RectType SkDraw::ComputeRectType(const SkPaint& paint,
const SkScalar width = paint.getStrokeWidth();
const bool zeroWidth = (0 == width);
SkPaint::Style style = paint.getStyle();
-
+
if ((SkPaint::kStrokeAndFill_Style == style) && zeroWidth) {
style = SkPaint::kFill_Style;
}
-
+
if (paint.getPathEffect() || paint.getMaskFilter() ||
paint.getRasterizer() || !matrix.rectStaysRect() ||
SkPaint::kStrokeAndFill_Style == style) {
@@ -848,7 +848,7 @@ static bool xfermodeSupportsCoverageAsAlpha(SkXfermode* xfer) {
if (!SkXfermode::AsCoeff(xfer, NULL, &dc)) {
return false;
}
-
+
switch (dc) {
case SkXfermode::kOne_Coeff:
case SkXfermode::kISA_Coeff:
@@ -986,7 +986,7 @@ void SkDraw::drawPath(const SkPath& origSrcPath, const SkPaint& origPaint,
SkAutoBlitterChoose blitter(*fBitmap, *fMatrix, *paint);
if (paint->getMaskFilter()) {
- SkPaint::Style style = doFill ? SkPaint::kFill_Style :
+ SkPaint::Style style = doFill ? SkPaint::kFill_Style :
SkPaint::kStroke_Style;
if (paint->getMaskFilter()->filterPath(*devPathPtr, *fMatrix, *fRC,
fBounder, blitter.get(),
@@ -1359,9 +1359,9 @@ static void D1G_NoBounder_RectClip(const SkDraw1Glyph& state,
int right = left + glyph.fWidth;
int bottom = top + glyph.fHeight;
- SkMask mask;
- SkIRect storage;
- SkIRect* bounds = &mask.fBounds;
+ SkMask mask;
+ SkIRect storage;
+ SkIRect* bounds = &mask.fBounds;
mask.fBounds.set(left, top, right, bottom);
@@ -1410,7 +1410,7 @@ static void D1G_NoBounder_RgnClip(const SkDraw1Glyph& state,
if (NULL == aa) {
aa = (uint8_t*)state.fCache->findImage(glyph);
if (NULL == aa) {
- return;
+ return;
}
}
@@ -1430,15 +1430,15 @@ static void D1G_Bounder(const SkDraw1Glyph& state,
int left = SkFixedFloor(fx);
int top = SkFixedFloor(fy);
SkASSERT(glyph.fWidth > 0 && glyph.fHeight > 0);
-
+
SkMask mask;
-
+
left += glyph.fLeft;
top += glyph.fTop;
-
+
mask.fBounds.set(left, top, left + glyph.fWidth, top + glyph.fHeight);
SkRegion::Cliperator clipper(*state.fClip, mask.fBounds);
-
+
if (!clipper.done()) {
const SkIRect& cr = clipper.rect();
const uint8_t* aa = (const uint8_t*)glyph.fImage;
@@ -1447,8 +1447,8 @@ static void D1G_Bounder(const SkDraw1Glyph& state,
if (NULL == aa) {
return;
}
- }
-
+ }
+
// we need to pass the origin, which we approximate with our
// (unadjusted) left,top coordinates (the caller called fixedfloor)
if (state.fBounder->doIRectGlyph(cr,
@@ -1596,7 +1596,7 @@ void SkDraw::drawText(const char text[], size_t byteLength,
} else if (kY_SkAxisAlignment == baseline) {
fxMask = 0;
}
-
+
// apply bias here to avoid adding 1/2 the sampling frequency in the loop
fx += SK_FixedHalf >> SkGlyph::kSubBits;
fy += SK_FixedHalf >> SkGlyph::kSubBits;
@@ -1770,7 +1770,7 @@ void SkDraw::drawPosText(const char text[], size_t byteLength,
blitter = wrapper.getBlitter();
}
}
-
+
const char* stop = text + byteLength;
AlignProc alignProc = pick_align_proc(paint.getTextAlign());
SkDraw1Glyph d1g;
@@ -1855,7 +1855,7 @@ void SkDraw::drawPosText(const char text[], size_t byteLength,
while (text < stop) {
// the last 2 parameters are ignored
const SkGlyph& glyph = glyphCacheProc(cache, &text, 0, 0);
-
+
if (glyph.fWidth) {
tmsProc(tms, pos);
diff --git a/src/core/SkDrawProcs.h b/src/core/SkDrawProcs.h
index 2e26ecf44a..ba1a875aff 100644
--- a/src/core/SkDrawProcs.h
+++ b/src/core/SkDrawProcs.h
@@ -26,7 +26,7 @@ struct SkDraw1Glyph {
// i.e. half the sampling frequency has been added.
// e.g. 1/2 or 1/(2^(SkGlyph::kSubBits+1)) has already been added.
typedef void (*Proc)(const SkDraw1Glyph&, SkFixed x, SkFixed y, const SkGlyph&);
-
+
Proc init(const SkDraw* draw, SkBlitter* blitter, SkGlyphCache* cache);
};
@@ -35,9 +35,9 @@ struct SkDrawProcs {
};
/**
- * If the current paint is set to stroke and the stroke-width when applied to
+ * If the current paint is set to stroke and the stroke-width when applied to
* the matrix is <= 1.0, then this returns true, and sets coverage (simulating
- * a stroke by drawing a hairline with partial coverage). If any of these
+ * a stroke by drawing a hairline with partial coverage). If any of these
* conditions are false, then this returns false and coverage is ignored.
*/
bool SkDrawTreatAsHairline(const SkPaint&, const SkMatrix&, SkScalar* coverage);
diff --git a/src/core/SkEdge.cpp b/src/core/SkEdge.cpp
index d328ca315b..8a6d1710c9 100644
--- a/src/core/SkEdge.cpp
+++ b/src/core/SkEdge.cpp
@@ -225,7 +225,7 @@ int SkQuadraticEdge::setQuadratic(const SkPoint pts[3], int shift)
} else if (shift > MAX_COEFF_SHIFT) {
shift = MAX_COEFF_SHIFT;
}
-
+
fWinding = SkToS8(winding);
//fCubicDShift only set for cubics
fCurveCount = SkToS8(1 << shift);
diff --git a/src/core/SkEdge.h b/src/core/SkEdge.h
index 22a26d00c8..53678621c3 100644
--- a/src/core/SkEdge.h
+++ b/src/core/SkEdge.h
@@ -84,7 +84,7 @@ struct SkCubicEdge : public SkEdge {
int SkEdge::setLine(const SkPoint& p0, const SkPoint& p1, int shift) {
SkFDot6 x0, y0, x1, y1;
-
+
{
#ifdef SK_SCALAR_IS_FLOAT
float scale = float(1 << (shift + 6));
@@ -100,25 +100,25 @@ int SkEdge::setLine(const SkPoint& p0, const SkPoint& p1, int shift) {
y1 = p1.fY >> shift;
#endif
}
-
+
int winding = 1;
-
+
if (y0 > y1) {
SkTSwap(x0, x1);
SkTSwap(y0, y1);
winding = -1;
}
-
+
int top = SkFDot6Round(y0);
int bot = SkFDot6Round(y1);
-
+
// are we a zero-height line?
if (top == bot) {
return 0;
}
-
+
SkFixed slope = SkFDot6Div(x1 - x0, y1 - y0);
-
+
fX = SkFDot6ToFixed(x0 + SkFixedMul(slope, (32 - y0) & 63)); // + SK_Fixed1/2
fDX = slope;
fFirstY = top;
diff --git a/src/core/SkEdgeBuilder.cpp b/src/core/SkEdgeBuilder.cpp
index 74b412c12f..ad9eeb73a0 100644
--- a/src/core/SkEdgeBuilder.cpp
+++ b/src/core/SkEdgeBuilder.cpp
@@ -84,7 +84,7 @@ int SkEdgeBuilder::buildPoly(const SkPath& path, const SkIRect* iclip,
SkPath::Iter iter(path, true);
SkPoint pts[4];
SkPath::Verb verb;
-
+
int maxEdgeCount = path.countPoints();
if (iclip) {
// clipping can turn 1 line into (up to) kMaxClippedLineSegments, since
@@ -105,7 +105,7 @@ int SkEdgeBuilder::buildPoly(const SkPath& path, const SkIRect* iclip,
if (iclip) {
SkRect clip;
setShiftedClip(&clip, *iclip, shiftUp);
-
+
while ((verb = iter.next(pts, false)) != SkPath::kDone_Verb) {
switch (verb) {
case SkPath::kMove_Verb:
diff --git a/src/core/SkEdgeBuilder.h b/src/core/SkEdgeBuilder.h
index 714e2b9c86..b296f773c1 100644
--- a/src/core/SkEdgeBuilder.h
+++ b/src/core/SkEdgeBuilder.h
@@ -19,17 +19,17 @@ class SkPath;
class SkEdgeBuilder {
public:
SkEdgeBuilder();
-
+
// returns the number of built edges. The array of those edge pointers
// is returned from edgeList().
int build(const SkPath& path, const SkIRect* clip, int shiftUp);
-
+
SkEdge** edgeList() { return fEdgeList; }
-
+
private:
SkChunkAlloc fAlloc;
SkTDArray<SkEdge*> fList;
-
+
/*
* If we're in general mode, we allcoate the pointers in fList, and this
* will point at fList.begin(). If we're in polygon mode, fList will be
@@ -39,7 +39,7 @@ private:
SkEdge** fEdgeList;
int fShiftUp;
-
+
void addLine(const SkPoint pts[]);
void addQuad(const SkPoint pts[]);
void addCubic(const SkPoint pts[]);
diff --git a/src/core/SkEdgeClipper.cpp b/src/core/SkEdgeClipper.cpp
index 14afce5786..9fd6a0e1cb 100644
--- a/src/core/SkEdgeClipper.cpp
+++ b/src/core/SkEdgeClipper.cpp
@@ -54,7 +54,7 @@ static bool chopMonoQuadAt(SkScalar c0, SkScalar c1, SkScalar c2,
SkScalar A = c0 - c1 - c1 + c2;
SkScalar B = 2*(c1 - c0);
SkScalar C = c0 - target;
-
+
SkScalar roots[2]; // we only expect one, but make room for 2 for safety
int count = SkFindUnitQuadRoots(A, B, C, roots);
if (count) {
@@ -98,7 +98,7 @@ static void chop_quad_in_Y(SkPoint pts[3], const SkRect& clip) {
}
}
}
-
+
// are we partially below
if (pts[2].fY > clip.fBottom) {
if (chopMonoQuadAtY(pts, clip.fBottom, &t)) {
@@ -130,7 +130,7 @@ void SkEdgeClipper::clipMonoQuad(const SkPoint srcPts[3], const SkRect& clip) {
if (pts[2].fY <= clip.fTop || pts[0].fY >= clip.fBottom) {
return;
}
-
+
// Now chop so that pts is contained within clip in Y
chop_quad_in_Y(pts, clip);
@@ -173,7 +173,7 @@ void SkEdgeClipper::clipMonoQuad(const SkPoint srcPts[3], const SkRect& clip) {
return;
}
}
-
+
// are we partially to the right
if (pts[2].fX > clip.fRight) {
if (chopMonoQuadAtX(pts, clip.fRight, &t)) {
@@ -200,7 +200,7 @@ bool SkEdgeClipper::clipQuad(const SkPoint srcPts[3], const SkRect& clip) {
SkRect bounds;
bounds.set(srcPts, 3);
-
+
if (!quick_reject(bounds, clip)) {
SkPoint monoY[5];
int countY = SkChopQuadAtYExtrema(srcPts, monoY);
@@ -274,7 +274,7 @@ static bool chopMonoCubicAtX(SkPoint pts[4], SkScalar x, SkScalar* t) {
// Modify pts[] in place so that it is clipped in Y to the clip rect
static void chop_cubic_in_Y(SkPoint pts[4], const SkRect& clip) {
-
+
// are we partially above
if (pts[0].fY < clip.fTop) {
SkScalar t;
@@ -300,7 +300,7 @@ static void chop_cubic_in_Y(SkPoint pts[4], const SkRect& clip) {
}
}
}
-
+
// are we partially below
if (pts[3].fY > clip.fBottom) {
SkScalar t;
@@ -328,7 +328,7 @@ static void chop_cubic_in_Y(SkPoint pts[4], const SkRect& clip) {
void SkEdgeClipper::clipMonoCubic(const SkPoint src[4], const SkRect& clip) {
SkPoint pts[4];
bool reverse = sort_increasing_Y(pts, src, 4);
-
+
// are we completely above or below
if (pts[3].fY <= clip.fTop || pts[0].fY >= clip.fBottom) {
return;
@@ -342,9 +342,9 @@ void SkEdgeClipper::clipMonoCubic(const SkPoint src[4], const SkRect& clip) {
SkTSwap<SkPoint>(pts[1], pts[2]);
reverse = !reverse;
}
-
+
// Now chop in X has needed, and record the segments
-
+
if (pts[3].fX <= clip.fLeft) { // wholly to the left
this->appendVLine(clip.fLeft, pts[0].fY, pts[3].fY, reverse);
return;
@@ -379,7 +379,7 @@ void SkEdgeClipper::clipMonoCubic(const SkPoint src[4], const SkRect& clip) {
return;
}
}
-
+
// are we partially to the right
if (pts[3].fX > clip.fRight) {
SkScalar t;
@@ -405,10 +405,10 @@ void SkEdgeClipper::clipMonoCubic(const SkPoint src[4], const SkRect& clip) {
bool SkEdgeClipper::clipCubic(const SkPoint srcPts[4], const SkRect& clip) {
fCurrPoint = fPoints;
fCurrVerb = fVerbs;
-
+
SkRect bounds;
bounds.set(srcPts, 4);
-
+
if (!quick_reject(bounds, clip)) {
SkPoint monoY[10];
int countY = SkChopCubicAtYExtrema(srcPts, monoY);
@@ -425,7 +425,7 @@ bool SkEdgeClipper::clipCubic(const SkPoint srcPts[4], const SkRect& clip) {
}
}
}
-
+
*fCurrVerb = SkPath::kDone_Verb;
fCurrPoint = fPoints;
fCurrVerb = fVerbs;
@@ -437,7 +437,7 @@ bool SkEdgeClipper::clipCubic(const SkPoint srcPts[4], const SkRect& clip) {
void SkEdgeClipper::appendVLine(SkScalar x, SkScalar y0, SkScalar y1,
bool reverse) {
*fCurrVerb++ = SkPath::kLine_Verb;
-
+
if (reverse) {
SkTSwap<SkScalar>(y0, y1);
}
@@ -448,7 +448,7 @@ void SkEdgeClipper::appendVLine(SkScalar x, SkScalar y0, SkScalar y1,
void SkEdgeClipper::appendQuad(const SkPoint pts[3], bool reverse) {
*fCurrVerb++ = SkPath::kQuad_Verb;
-
+
if (reverse) {
fCurrPoint[0] = pts[2];
fCurrPoint[2] = pts[0];
@@ -462,7 +462,7 @@ void SkEdgeClipper::appendQuad(const SkPoint pts[3], bool reverse) {
void SkEdgeClipper::appendCubic(const SkPoint pts[4], bool reverse) {
*fCurrVerb++ = SkPath::kCubic_Verb;
-
+
if (reverse) {
for (int i = 0; i < 4; i++) {
fCurrPoint[i] = pts[3 - i];
diff --git a/src/core/SkEdgeClipper.h b/src/core/SkEdgeClipper.h
index a7eedd571e..e16ed552ca 100644
--- a/src/core/SkEdgeClipper.h
+++ b/src/core/SkEdgeClipper.h
@@ -21,11 +21,11 @@ public:
bool clipCubic(const SkPoint pts[4], const SkRect& clip);
SkPath::Verb next(SkPoint pts[]);
-
+
private:
SkPoint* fCurrPoint;
SkPath::Verb* fCurrVerb;
-
+
enum {
kMaxVerbs = 13,
kMaxPoints = 32
diff --git a/src/core/SkFilterProc.cpp b/src/core/SkFilterProc.cpp
index 8c24bb6893..290384903e 100644
--- a/src/core/SkFilterProc.cpp
+++ b/src/core/SkFilterProc.cpp
@@ -156,14 +156,14 @@ static uint32_t bilerptr00(const uint32_t* a00, const uint32_t* a01, const uint3
}
static uint32_t bilerptr01(const uint32_t* a00, const uint32_t* a01, const uint32_t* a10, const uint32_t* a11) {
uint32_t c00 = *a00;
- uint32_t c01 = *a01;
+ uint32_t c01 = *a01;
uint32_t lo = (3 * LO_PAIR(c00) + LO_PAIR(c01)) >> 2;
uint32_t hi = (3 * HI_PAIR(c00) + HI_PAIR(c01)) >> 2;
return COMBINE(lo, hi);
}
static uint32_t bilerptr02(const uint32_t* a00, const uint32_t* a01, const uint32_t* a10, const uint32_t* a11) {
uint32_t c00 = *a00;
- uint32_t c01 = *a01;
+ uint32_t c01 = *a01;
uint32_t lo = (LO_PAIR(c00) + LO_PAIR(c01)) >> 1;
uint32_t hi = (HI_PAIR(c00) + HI_PAIR(c01)) >> 1;
return COMBINE(lo, hi);
diff --git a/src/core/SkFilterProc.h b/src/core/SkFilterProc.h
index 2b515e25a1..4dfdf60f14 100644
--- a/src/core/SkFilterProc.h
+++ b/src/core/SkFilterProc.h
@@ -22,7 +22,7 @@ inline SkFilterProc SkGetBilinearFilterProc(const SkFilterProc* table,
SkFixed x, SkFixed y)
{
SkASSERT(table);
-
+
// convert to dot 2
x = (unsigned)(x << 16) >> 30;
y = (unsigned)(y << 16) >> 30;
@@ -33,7 +33,7 @@ inline SkFilterProc SkGetBilinearFilterProc22(const SkFilterProc* table,
unsigned x, unsigned y)
{
SkASSERT(table);
-
+
// extract low 2 bits
x = x << 30 >> 30;
y = y << 30 >> 30;
@@ -51,7 +51,7 @@ inline const SkFilterProc* SkGetBilinearFilterProc22Row(const SkFilterProc* tabl
inline SkFilterProc SkGetBilinearFilterProc22RowProc(const SkFilterProc* row,
unsigned x)
{
- SkASSERT(row);
+ SkASSERT(row);
// extract low 2 bits
return row[x << 30 >> 30];
}
@@ -67,7 +67,7 @@ inline SkFilter32Proc SkGetFilter32Proc22(const SkFilter32Proc* table,
unsigned x, unsigned y)
{
SkASSERT(table);
-
+
// extract low 2 bits
x = x << 30 >> 30;
y = y << 30 >> 30;
diff --git a/src/core/SkFloat.cpp b/src/core/SkFloat.cpp
index dffb0d7803..b5cc4f18e7 100644
--- a/src/core/SkFloat.cpp
+++ b/src/core/SkFloat.cpp
@@ -289,7 +289,7 @@ void SkFloat::UnitTest()
SkASSERT(n == -3);
d.setAdd(c, b);
- SkDebugf("SkFloat: %d + %d = %d\n", c.getInt(), b.getInt(), d.getInt());
+ SkDebugf("SkFloat: %d + %d = %d\n", c.getInt(), b.getInt(), d.getInt());
SkRandom rand;
diff --git a/src/core/SkFloat.h b/src/core/SkFloat.h
index fe41c2723e..74cd19e542 100644
--- a/src/core/SkFloat.h
+++ b/src/core/SkFloat.h
@@ -69,7 +69,7 @@ public:
float fFloat;
int32_t fPacked;
} tmp;
-
+
tmp.fFloat = f;
int d = tmp.fPacked - fPacked;
SkASSERT(SkAbs32(d) <= tolerance);
@@ -80,7 +80,7 @@ public:
float fFloat;
int32_t fPacked;
} tmp;
-
+
tmp.fPacked = fPacked;
return tmp.fFloat;
}
diff --git a/src/core/SkFloatBits.cpp b/src/core/SkFloatBits.cpp
index fe4a1b9ab8..54a1d20188 100644
--- a/src/core/SkFloatBits.cpp
+++ b/src/core/SkFloatBits.cpp
@@ -45,7 +45,7 @@ static inline int unpack_matissa_dirty(uint32_t packed) {
int32_t SkFloatBits_toIntCast(int32_t packed) {
int exp = unpack_exp(packed) - EXP_BIAS;
int value = unpack_matissa_dirty(packed) | MATISSA_MAGIC_BIG;
-
+
if (exp >= 0) {
if (exp > 7) { // overflow
value = SK_MaxS32;
@@ -68,7 +68,7 @@ int32_t SkFloatBits_toIntFloor(int32_t packed) {
if ((packed << 1) == 0) {
return 0;
}
-
+
int exp = unpack_exp(packed) - EXP_BIAS;
int value = unpack_matissa_dirty(packed) | MATISSA_MAGIC_BIG;
@@ -98,10 +98,10 @@ int32_t SkFloatBits_toIntRound(int32_t packed) {
if ((packed << 1) == 0) {
return 0;
}
-
+
int exp = unpack_exp(packed) - EXP_BIAS;
int value = unpack_matissa_dirty(packed) | MATISSA_MAGIC_BIG;
-
+
if (exp >= 0) {
if (exp > 7) { // overflow
value = SK_MaxS32;
@@ -128,10 +128,10 @@ int32_t SkFloatBits_toIntCeil(int32_t packed) {
if ((packed << 1) == 0) {
return 0;
}
-
+
int exp = unpack_exp(packed) - EXP_BIAS;
int value = unpack_matissa_dirty(packed) | MATISSA_MAGIC_BIG;
-
+
if (exp >= 0) {
if (exp > 7) { // overflow
value = SK_MaxS32;
@@ -158,11 +158,11 @@ float SkIntToFloatCast(int32_t value) {
}
int shift = EXP_BIAS;
-
+
// record the sign and make value positive
int sign = SkExtractSign(value);
value = SkApplySign(value, sign);
-
+
if (value >> 24) { // value is too big (has more than 24 bits set)
int bias = 8 - SkCLZ(value);
SkDebugf("value = %d, bias = %d\n", value, bias);
@@ -175,11 +175,11 @@ float SkIntToFloatCast(int32_t value) {
value <<= zeros;
shift -= zeros;
}
-
+
// now value is left-aligned to 24 bits
SkASSERT((value >> 23) == 1);
SkASSERT(shift >= 0 && shift <= 255);
-
+
SkFloatIntUnion data;
data.fSignBitInt = (sign << 31) | (shift << 23) | (value & ~MATISSA_MAGIC_BIG);
return data.fFloat;
@@ -191,15 +191,15 @@ float SkIntToFloatCast_NoOverflowCheck(int32_t value) {
}
int shift = EXP_BIAS;
-
+
// record the sign and make value positive
int sign = SkExtractSign(value);
value = SkApplySign(value, sign);
-
+
int zeros = SkCLZ(value << 8);
value <<= zeros;
shift -= zeros;
-
+
SkFloatIntUnion data;
data.fSignBitInt = (sign << 31) | (shift << 23) | (value & ~MATISSA_MAGIC_BIG);
return data.fFloat;
diff --git a/src/core/SkGeometry.cpp b/src/core/SkGeometry.cpp
index 77affa0c59..1c1a4f1045 100644
--- a/src/core/SkGeometry.cpp
+++ b/src/core/SkGeometry.cpp
@@ -204,7 +204,7 @@ static SkScalar eval_quad(const SkScalar src[], SkScalar t)
return SkScalarMulAdd(SkScalarMulAdd(A, t, B), t, C);
#else
SkScalar ab = SkScalarInterp(src[0], src[2], t);
- SkScalar bc = SkScalarInterp(src[2], src[4], t);
+ SkScalar bc = SkScalarInterp(src[2], src[4], t);
return SkScalarInterp(ab, bc, t);
#endif
}
@@ -316,7 +316,7 @@ int SkChopQuadAtYExtrema(const SkPoint src[3], SkPoint dst[5])
{
SkASSERT(src);
SkASSERT(dst);
-
+
#if 0
static bool once = true;
if (once)
@@ -324,16 +324,16 @@ int SkChopQuadAtYExtrema(const SkPoint src[3], SkPoint dst[5])
once = false;
SkPoint s[3] = { 0, 26398, 0, 26331, 0, 20621428 };
SkPoint d[6];
-
+
int n = SkChopQuadAtYExtrema(s, d);
SkDebugf("chop=%d, Y=[%x %x %x %x %x %x]\n", n, d[0].fY, d[1].fY, d[2].fY, d[3].fY, d[4].fY, d[5].fY);
}
#endif
-
+
SkScalar a = src[0].fY;
SkScalar b = src[1].fY;
SkScalar c = src[2].fY;
-
+
if (is_not_monotonic(a, b, c))
{
SkScalar tValue;
@@ -360,11 +360,11 @@ int SkChopQuadAtXExtrema(const SkPoint src[3], SkPoint dst[5])
{
SkASSERT(src);
SkASSERT(dst);
-
+
SkScalar a = src[0].fX;
SkScalar b = src[1].fX;
SkScalar c = src[2].fX;
-
+
if (is_not_monotonic(a, b, c)) {
SkScalar tValue;
if (valid_unit_divide(a - b, a - b - b + c, &tValue)) {
@@ -592,7 +592,7 @@ void SkChopCubicAt(const SkPoint src[4], SkPoint dst[7], SkScalar t)
}
/* http://code.google.com/p/skia/issues/detail?id=32
-
+
This test code would fail when we didn't check the return result of
valid_unit_divide in SkChopCubicAt(... tValues[], int roots). The reason is
that after the first chop, the parameters to valid_unit_divide are equal
@@ -699,7 +699,7 @@ int SkChopCubicAtYExtrema(const SkPoint src[4], SkPoint dst[10]) {
SkScalar tValues[2];
int roots = SkFindCubicExtrema(src[0].fY, src[1].fY, src[2].fY,
src[3].fY, tValues);
-
+
SkChopCubicAt(src, dst, tValues, roots);
if (dst && roots > 0) {
// we do some cleanup to ensure our Y extrema are flat
@@ -715,7 +715,7 @@ int SkChopCubicAtXExtrema(const SkPoint src[4], SkPoint dst[10]) {
SkScalar tValues[2];
int roots = SkFindCubicExtrema(src[0].fX, src[1].fX, src[2].fX,
src[3].fX, tValues);
-
+
SkChopCubicAt(src, dst, tValues, roots);
if (dst && roots > 0) {
// we do some cleanup to ensure our Y extrema are flat
@@ -899,7 +899,7 @@ static void test_collaps_duplicates() {
/* Solve coeff(t) == 0, returning the number of roots that
lie withing 0 < t < 1.
coeff[0]t^3 + coeff[1]t^2 + coeff[2]t + coeff[3]
-
+
Eliminates repeated roots (so that all tValues are distinct, and are always
in increasing order.
*/
@@ -984,7 +984,7 @@ static int solve_cubic_polynomial(const SkFP coeff[4], SkScalar tValues[3])
}
/* Looking for F' dot F'' == 0
-
+
A = b - a
B = c - 2b + a
C = d - 3c + 3b - a
@@ -1016,7 +1016,7 @@ static void formulate_F1DotF2(const SkScalar src[], SkFP coeff[4])
#define kMinTValueForChopping 0
/* Looking for F' dot F'' == 0
-
+
A = b - a
B = c - 2b + a
C = d - 3c + 3b - a
@@ -1238,7 +1238,7 @@ static bool quad_pt2OffCurve(const SkPoint quad[3], SkScalar x, SkScalar y, SkPo
catch the >= 1 roots (which given our caller, will basically mean
a root of 1, give-or-take numerical instability). If we are in the
>= 1 case, return the existing offCurve point.
-
+
The test below checks to see if we are close to the "end" of the
curve (near base[4]). Rather than specifying a tolerance, I just
check to see if value is on to the right/left of the middle point
@@ -1297,7 +1297,7 @@ int SkBuildQuadArc(const SkVector& uStart, const SkVector& uStop,
if (absY <= SK_ScalarNearlyZero && x > 0 &&
((y >= 0 && kCW_SkRotationDirection == dir) ||
(y <= 0 && kCCW_SkRotationDirection == dir))) {
-
+
// just return the start-point
quadPoints[0].set(SK_Scalar1, 0);
pointCount = 1;
diff --git a/src/core/SkGlyphCache.cpp b/src/core/SkGlyphCache.cpp
index e619419035..5904edd3c0 100644
--- a/src/core/SkGlyphCache.cpp
+++ b/src/core/SkGlyphCache.cpp
@@ -423,7 +423,7 @@ public:
SkDELETE(fMutex);
}
-
+
SkMutex* fMutex;
SkGlyphCache* fHead;
size_t fTotalMemoryUsed;
@@ -445,7 +445,7 @@ public:
static SkGlyphCache_Globals* FindTLS() {
return (SkGlyphCache_Globals*)SkTLS::Find(CreateTLS);
}
-
+
static SkGlyphCache_Globals& GetTLS() {
return *(SkGlyphCache_Globals*)SkTLS::Get(CreateTLS, DeleteTLS);
}
@@ -469,10 +469,10 @@ size_t SkGlyphCache_Globals::setFontCacheLimit(size_t newLimit) {
if (newLimit < minLimit) {
newLimit = minLimit;
}
-
+
size_t prevLimit = fFontCacheLimit;
fFontCacheLimit = newLimit;
-
+
size_t currUsed = fTotalMemoryUsed;
if (currUsed > newLimit) {
SkAutoMutexAcquire ac(fMutex);
@@ -631,7 +631,7 @@ SkGlyphCache* SkGlyphCache::FindTail(SkGlyphCache* cache) {
#ifdef SK_DEBUG
void SkGlyphCache_Globals::validate() const {
size_t computed = 0;
-
+
const SkGlyphCache* head = fHead;
while (head != NULL) {
computed += head->fMemoryUsed;
diff --git a/src/core/SkGraphics.cpp b/src/core/SkGraphics.cpp
index 5334c85016..d71a70e4a0 100644
--- a/src/core/SkGraphics.cpp
+++ b/src/core/SkGraphics.cpp
@@ -127,7 +127,7 @@ void SkGraphics::Term() {
///////////////////////////////////////////////////////////////////////////////
static const char kFontCacheLimitStr[] = "font-cache-limit";
-static const size_t kFontCacheLimitLen = sizeof(kFontCacheLimitStr) - 1;
+static const size_t kFontCacheLimitLen = sizeof(kFontCacheLimitStr) - 1;
static const struct {
const char* fStr;
diff --git a/src/core/SkLineClipper.cpp b/src/core/SkLineClipper.cpp
index b2560d69b3..7b7746f76f 100644
--- a/src/core/SkLineClipper.cpp
+++ b/src/core/SkLineClipper.cpp
@@ -36,7 +36,7 @@ static SkScalar sect_with_horizontal(const SkPoint src[2], SkScalar Y) {
double X1 = src[1].fX;
double Y1 = src[1].fY;
double result = X0 + ((double)Y - Y0) * (X1 - X0) / (Y1 - Y0);
-
+
// The computed X value might still exceed [X0..X1] due to quantum flux
// when the doubles were added and subtracted, so we have to pin the
// answer :(
@@ -87,7 +87,7 @@ static inline bool containsNoEmptyCheck(const SkRect& outer,
bool SkLineClipper::IntersectLine(const SkPoint src[2], const SkRect& clip,
SkPoint dst[2]) {
SkRect bounds;
-
+
bounds.set(src, 2);
if (containsNoEmptyCheck(clip, bounds)) {
if (src != dst) {
@@ -105,7 +105,7 @@ bool SkLineClipper::IntersectLine(const SkPoint src[2], const SkRect& clip,
}
int index0, index1;
-
+
if (src[0].fY < src[1].fY) {
index0 = 0;
index1 = 1;
@@ -124,7 +124,7 @@ bool SkLineClipper::IntersectLine(const SkPoint src[2], const SkRect& clip,
if (tmp[index1].fY > clip.fBottom) {
tmp[index1].set(sect_with_horizontal(src, clip.fBottom), clip.fBottom);
}
-
+
if (tmp[0].fX < tmp[1].fX) {
index0 = 0;
index1 = 1;
@@ -174,7 +174,7 @@ static bool is_between_unsorted(SkScalar value,
//
static void sect_with_horizontal_test_for_pin_results() {
const SkPoint pts[] = {
- { -540000, -720000 },
+ { -540000, -720000 },
{ SkFloatToScalar(-9.10000017e-05f), SkFloatToScalar(9.99999996e-13f) }
};
float x = sect_with_horizontal(pts, 0);
@@ -214,7 +214,7 @@ int SkLineClipper::ClipLine(const SkPoint pts[], const SkRect& clip,
if (pts[index0].fY >= clip.fBottom) { // we're below the clip
return 0;
}
-
+
// Chop in Y to produce a single segment, stored in tmp[0..1]
SkPoint tmp[2];
@@ -259,7 +259,7 @@ int SkLineClipper::ClipLine(const SkPoint pts[], const SkRect& clip,
} else {
result = resultStorage;
SkPoint* r = result;
-
+
if (tmp[index0].fX < clip.fLeft) {
r->set(clip.fLeft, tmp[index0].fY);
r += 1;
diff --git a/src/core/SkMallocPixelRef.cpp b/src/core/SkMallocPixelRef.cpp
index 758cbf2e02..71e672b841 100644
--- a/src/core/SkMallocPixelRef.cpp
+++ b/src/core/SkMallocPixelRef.cpp
@@ -20,7 +20,7 @@ SkMallocPixelRef::SkMallocPixelRef(void* storage, size_t size,
fCTable = ctable;
SkSafeRef(ctable);
fOwnPixels = ownPixels;
-
+
this->setPreLocked(fStorage, fCTable);
}
diff --git a/src/core/SkMask.cpp b/src/core/SkMask.cpp
index 36047fea17..c290b574f0 100644
--- a/src/core/SkMask.cpp
+++ b/src/core/SkMask.cpp
@@ -68,7 +68,7 @@ void* SkMask::getAddr(int x, int y) const {
SkASSERT(kBW_Format != fFormat);
SkASSERT(fBounds.contains(x, y));
SkASSERT(fImage);
-
+
char* addr = (char*)fImage;
addr += (y - fBounds.fTop) * fRowBytes;
addr += (x - fBounds.fLeft) << maskFormatToShift(fFormat);
diff --git a/src/core/SkMaskGamma.h b/src/core/SkMaskGamma.h
index 7d8b9e310b..37c69f73fd 100644
--- a/src/core/SkMaskGamma.h
+++ b/src/core/SkMaskGamma.h
@@ -160,7 +160,7 @@ private:
#define MacroComma ,
SK_DEFINE_INST_COUNT_TEMPLATE(
- template <int R_LUM_BITS MacroComma int G_LUM_BITS MacroComma int B_LUM_BITS>,
+ template <int R_LUM_BITS MacroComma int G_LUM_BITS MacroComma int B_LUM_BITS>,
SkTMaskGamma<R_LUM_BITS MacroComma G_LUM_BITS MacroComma B_LUM_BITS>);
/**
diff --git a/src/core/SkMath.cpp b/src/core/SkMath.cpp
index a149625297..ccd96e939a 100644
--- a/src/core/SkMath.cpp
+++ b/src/core/SkMath.cpp
@@ -20,7 +20,7 @@
#define sub_shift(zeros, x, n) \
zeros -= n; \
x >>= n
-
+
int SkCLZ_portable(uint32_t x) {
if (x == 0) {
return 32;
@@ -229,7 +229,7 @@ SkFixed SkFixedFastInvert(SkFixed x) {
int lz = SkCLZ(a);
a = a << lz >> 16;
- // compute 1/a approximation (0.5 <= a < 1.0)
+ // compute 1/a approximation (0.5 <= a < 1.0)
uint32_t r = 0x17400 - a; // (2.90625 (~2.914) - 2*a) >> 1
// Newton-Raphson iteration:
@@ -253,13 +253,13 @@ SkFixed SkFixedFastInvert(SkFixed x) {
case n: \
if ((numer = (numer << 1) - denom) >= 0) \
result |= 1 << (n - 1); else numer += denom
-
+
int32_t SkDivBits(int32_t numer, int32_t denom, int shift_bias) {
SkASSERT(denom != 0);
if (numer == 0) {
return 0;
}
-
+
// make numer and denom positive, and sign hold the resulting sign
int32_t sign = SkExtractSign(numer ^ denom);
numer = SkAbs32(numer);
@@ -278,16 +278,16 @@ int32_t SkDivBits(int32_t numer, int32_t denom, int shift_bias) {
denom <<= dbits;
numer <<= nbits;
-
+
SkFixed result = 0;
-
+
// do the first one
if ((numer -= denom) >= 0) {
result = 1;
} else {
numer += denom;
}
-
+
// Now fall into our switch statement if there are more bits to compute
if (bits > 0) {
// make room for the rest of the answer bits
@@ -324,7 +324,7 @@ SkFixed SkFixedMod(SkFixed numer, SkFixed denom) {
numer = SkApplySign(numer, sn);
denom = SkApplySign(denom, sd);
-
+
if (numer < denom) {
return SkApplySign(numer, sn);
} else if (numer == denom) {
@@ -387,7 +387,7 @@ int32_t SkCubeRootBits(int32_t value, int bits) {
SkFixed SkFixedMean(SkFixed a, SkFixed b) {
Sk64 tmp;
-
+
tmp.setMul(a, b);
return tmp.getSqrt();
}
diff --git a/src/core/SkMathPriv.h b/src/core/SkMathPriv.h
index 6fac1248a9..11ad1ba45a 100644
--- a/src/core/SkMathPriv.h
+++ b/src/core/SkMathPriv.h
@@ -42,7 +42,7 @@ static inline unsigned SkClampUMax(unsigned value, unsigned max) {
int diff = max - value;
// clear diff if diff is positive
diff &= diff >> 31;
-
+
return value + diff;
#endif
}
diff --git a/src/core/SkMatrix.cpp b/src/core/SkMatrix.cpp
index 12d8d8bafb..51450faee7 100644
--- a/src/core/SkMatrix.cpp
+++ b/src/core/SkMatrix.cpp
@@ -30,7 +30,7 @@
void SkMatrix::reset() {
fMat[kMScaleX] = fMat[kMScaleY] = SK_Scalar1;
- fMat[kMSkewX] = fMat[kMSkewY] =
+ fMat[kMSkewX] = fMat[kMSkewY] =
fMat[kMTransX] = fMat[kMTransY] =
fMat[kMPersp0] = fMat[kMPersp1] = 0;
fMat[kMPersp2] = kMatrix22Elem;
@@ -69,9 +69,9 @@ uint8_t SkMatrix::computePerspectiveTypeMask() const {
// that result.
if (fMat[kMPersp0] != 0 || fMat[kMPersp1] != 0 ||
fMat[kMPersp2] != kMatrix22Elem) {
- // If this is a perspective transform, we return true for all other
+ // If this is a perspective transform, we return true for all other
// transform flags - this does not disable any optimizations, respects
- // the rule that the type mask must be conservative, and speeds up
+ // the rule that the type mask must be conservative, and speeds up
// type mask computation.
return SkToU8(kORableMasks);
}
@@ -140,7 +140,7 @@ uint8_t SkMatrix::computeTypeMask() const {
mask |= kScale_Mask;
}
- // Not affine, therefore we already know secondary diagonal is
+ // Not affine, therefore we already know secondary diagonal is
// all zeros, so we just need to check that primary diagonal is
// all non-zero.
@@ -178,7 +178,7 @@ void SkMatrix::setTranslate(SkScalar dx, SkScalar dy) {
fMat[kMTransY] = dy;
fMat[kMScaleX] = fMat[kMScaleY] = SK_Scalar1;
- fMat[kMSkewX] = fMat[kMSkewY] =
+ fMat[kMSkewX] = fMat[kMSkewY] =
fMat[kMPersp0] = fMat[kMPersp1] = 0;
fMat[kMPersp2] = kMatrix22Elem;
@@ -194,7 +194,7 @@ bool SkMatrix::preTranslate(SkScalar dx, SkScalar dy) {
m.setTranslate(dx, dy);
return this->preConcat(m);
}
-
+
if (SkScalarToCompareType(dx) || SkScalarToCompareType(dy)) {
fMat[kMTransX] += SkScalarMul(fMat[kMScaleX], dx) +
SkScalarMul(fMat[kMSkewX], dy);
@@ -212,7 +212,7 @@ bool SkMatrix::postTranslate(SkScalar dx, SkScalar dy) {
m.setTranslate(dx, dy);
return this->postConcat(m);
}
-
+
if (SkScalarToCompareType(dx) || SkScalarToCompareType(dy)) {
fMat[kMTransX] += dx;
fMat[kMTransY] += dy;
@@ -233,9 +233,9 @@ void SkMatrix::setScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py) {
fMat[kMTransY] = py - SkScalarMul(sy, py);
fMat[kMPersp2] = kMatrix22Elem;
- fMat[kMSkewX] = fMat[kMSkewY] =
+ fMat[kMSkewX] = fMat[kMSkewY] =
fMat[kMPersp0] = fMat[kMPersp1] = 0;
-
+
this->setTypeMask(kScale_Mask | kTranslate_Mask | kRectStaysRect_Mask);
}
}
@@ -249,7 +249,7 @@ void SkMatrix::setScale(SkScalar sx, SkScalar sy) {
fMat[kMPersp2] = kMatrix22Elem;
fMat[kMTransX] = fMat[kMTransY] =
- fMat[kMSkewX] = fMat[kMSkewY] =
+ fMat[kMSkewX] = fMat[kMSkewY] =
fMat[kMPersp0] = fMat[kMPersp1] = 0;
this->setTypeMask(kScale_Mask | kRectStaysRect_Mask);
@@ -322,7 +322,7 @@ bool SkMatrix::postScale(SkScalar sx, SkScalar sy) {
int ds = denom >> 31;
numer = (numer ^ ns) - ns;
denom = (denom ^ ds) - ds;
-
+
SkFixed answer = (numer + (denom >> 1)) / denom;
int as = ns ^ ds;
return (answer ^ as) - as;
@@ -351,7 +351,7 @@ bool SkMatrix::postIDiv(int divx, int divy) {
fMat[kMScaleX] *= invX;
fMat[kMSkewX] *= invX;
fMat[kMTransX] *= invX;
-
+
fMat[kMScaleY] *= invY;
fMat[kMSkewY] *= invY;
fMat[kMTransY] *= invY;
@@ -377,7 +377,7 @@ void SkMatrix::setSinCos(SkScalar sinV, SkScalar cosV,
fMat[kMPersp0] = fMat[kMPersp1] = 0;
fMat[kMPersp2] = kMatrix22Elem;
-
+
this->setTypeMask(kUnknown_Mask | kOnlyPerspectiveValid_Mask);
}
@@ -525,7 +525,7 @@ bool SkMatrix::setRectToRect(const SkRect& src, const SkRect& dst,
} else {
diff = dst.height() - SkScalarMul(src.height(), sy);
}
-
+
if (align == kCenter_ScaleToFit) {
diff = SkScalarHalf(diff);
}
@@ -541,7 +541,7 @@ bool SkMatrix::setRectToRect(const SkRect& src, const SkRect& dst,
fMat[kMScaleY] = sy;
fMat[kMTransX] = tx;
fMat[kMTransY] = ty;
- fMat[kMSkewX] = fMat[kMSkewY] =
+ fMat[kMSkewX] = fMat[kMSkewY] =
fMat[kMPersp0] = fMat[kMPersp1] = 0;
this->setTypeMask(kScale_Mask | kTranslate_Mask | kRectStaysRect_Mask);
@@ -866,7 +866,7 @@ bool SkMatrix::invert(SkMatrix* inv) const {
inv->fMat[kMScaleY] = SkScalarMulShift(SkPerspMul(fMat[kMScaleX], fMat[kMPersp2]) - SkPerspMul(fMat[kMTransX], fMat[kMPersp0]), scale, shift);
inv->fMat[kMTransY] = SkScalarMulShift(SkScalarMul(fMat[kMTransX], fMat[kMSkewY]) - SkScalarMul(fMat[kMScaleX], fMat[kMTransY]), scale, shift);
- inv->fMat[kMPersp0] = SkScalarMulShift(SkScalarMul(fMat[kMSkewY], fMat[kMPersp1]) - SkScalarMul(fMat[kMScaleY], fMat[kMPersp0]), scale, shift);
+ inv->fMat[kMPersp0] = SkScalarMulShift(SkScalarMul(fMat[kMSkewY], fMat[kMPersp1]) - SkScalarMul(fMat[kMScaleY], fMat[kMPersp0]), scale, shift);
inv->fMat[kMPersp1] = SkScalarMulShift(SkScalarMul(fMat[kMSkewX], fMat[kMPersp0]) - SkScalarMul(fMat[kMScaleX], fMat[kMPersp1]), scale, shift);
inv->fMat[kMPersp2] = SkScalarMulShift(SkScalarMul(fMat[kMScaleX], fMat[kMScaleY]) - SkScalarMul(fMat[kMSkewX], fMat[kMSkewY]), scale, shift);
#ifdef SK_SCALAR_IS_FIXED
@@ -915,7 +915,7 @@ bool SkMatrix::invert(SkMatrix* inv) const {
inv->fMat[kMScaleX] = SkMulShift(fMat[kMScaleY], scale, fixedShift);
inv->fMat[kMSkewX] = SkMulShift(-fMat[kMSkewX], scale, fixedShift);
inv->fMat[kMTransX] = SkMulShift(tx.getShiftRight(33 - clzNumer), scale, sk64shift);
-
+
inv->fMat[kMSkewY] = SkMulShift(-fMat[kMSkewY], scale, fixedShift);
inv->fMat[kMScaleY] = SkMulShift(fMat[kMScaleX], scale, fixedShift);
inv->fMat[kMTransY] = SkMulShift(ty.getShiftRight(33 - clzNumer), scale, sk64shift);
@@ -924,7 +924,7 @@ bool SkMatrix::invert(SkMatrix* inv) const {
inv->fMat[kMSkewX] = SkDoubleToFloat(-fMat[kMSkewX] * scale);
inv->fMat[kMTransX] = mul_diff_scale(fMat[kMSkewX], fMat[kMTransY],
fMat[kMScaleY], fMat[kMTransX], scale);
-
+
inv->fMat[kMSkewY] = SkDoubleToFloat(-fMat[kMSkewY] * scale);
inv->fMat[kMScaleY] = SkDoubleToFloat(fMat[kMScaleX] * scale);
inv->fMat[kMTransY] = mul_diff_scale(fMat[kMSkewY], fMat[kMTransX],
@@ -933,7 +933,7 @@ bool SkMatrix::invert(SkMatrix* inv) const {
inv->fMat[kMPersp0] = 0;
inv->fMat[kMPersp1] = 0;
inv->fMat[kMPersp2] = kMatrix22Elem;
-
+
}
inv->setTypeMask(fTypeMask);
@@ -1197,7 +1197,7 @@ static SkFixed fixmuladdmul(SkFixed a, SkFixed b, SkFixed c, SkFixed d) {
void SkMatrix::RotTrans_xy(const SkMatrix& m, SkScalar sx, SkScalar sy,
SkPoint* pt) {
SkASSERT((m.getType() & (kAffine_Mask | kPerspective_Mask)) == kAffine_Mask);
-
+
#ifdef SK_SCALAR_IS_FIXED
pt->fX = fixmuladdmul(sx, m.fMat[kMScaleX], sy, m.fMat[kMSkewX]) +
m.fMat[kMTransX];
@@ -1232,7 +1232,7 @@ void SkMatrix::ScaleTrans_xy(const SkMatrix& m, SkScalar sx, SkScalar sy,
SkPoint* pt) {
SkASSERT((m.getType() & (kScale_Mask | kAffine_Mask | kPerspective_Mask))
== kScale_Mask);
-
+
pt->fX = SkScalarMulAdd(sx, m.fMat[kMScaleX], m.fMat[kMTransX]);
pt->fY = SkScalarMulAdd(sy, m.fMat[kMScaleY], m.fMat[kMTransY]);
}
@@ -1333,7 +1333,7 @@ SkPerspIter::SkPerspIter(const SkMatrix& m, SkScalar x0, SkScalar y0, int count)
int SkPerspIter::next() {
int n = fCount;
-
+
if (0 == n) {
return 0;
}
@@ -1364,7 +1364,7 @@ int SkPerspIter::next() {
*p++ = x; x += dx;
*p++ = y; y += dy;
}
-
+
fCount -= n;
return n;
}
diff --git a/src/core/SkMemory_stdlib.cpp b/src/core/SkMemory_stdlib.cpp
index 033b331013..17bf6a9ac6 100644
--- a/src/core/SkMemory_stdlib.cpp
+++ b/src/core/SkMemory_stdlib.cpp
@@ -50,7 +50,7 @@ struct SkBlockHeader {
// data goes here. The offset to this point must be a multiple of 8
char fTrailer[sizeof(kBlockTrailerTag)];
- void* add(size_t realSize)
+ void* add(size_t realSize)
{
SkAutoMutexAcquire ac(get_block_mutex());
InMutexValidate();
@@ -69,7 +69,7 @@ struct SkBlockHeader {
memcpy(trailer, kBlockTrailerTag, sizeof(kBlockTrailerTag));
return result;
}
-
+
static void Dump()
{
SkAutoMutexAcquire ac(get_block_mutex());
@@ -128,7 +128,7 @@ struct SkBlockHeader {
const char* trailer = fTrailer + fSize;
SkASSERT(memcmp(trailer, kBlockTrailerTag, sizeof(kBlockTrailerTag)) == 0);
}
-
+
static void Validate()
{
SkAutoMutexAcquire ac(get_block_mutex());
@@ -188,7 +188,7 @@ void* sk_realloc_throw(void* addr, size_t size)
addr = header;
}
size_t realSize = size;
- if (size)
+ if (size)
size += sizeof(SkBlockHeader);
#endif
@@ -221,7 +221,7 @@ void sk_free(void* p)
{
ValidateHeap();
#ifdef SK_TAG_BLOCKS
- SkBlockHeader* header = (SkBlockHeader*)
+ SkBlockHeader* header = (SkBlockHeader*)
((char*)p - SK_OFFSETOF(SkBlockHeader, fTrailer));
header->remove();
#ifdef SK_TRACK_ALLOC
@@ -244,7 +244,7 @@ void* sk_malloc_flags(size_t size, unsigned flags)
size_t realSize = size;
size += sizeof(SkBlockHeader);
#endif
-
+
void* p = malloc(size);
if (p == NULL)
{
diff --git a/src/core/SkPackBits.cpp b/src/core/SkPackBits.cpp
index 8edd4c0940..7a1444b14c 100644
--- a/src/core/SkPackBits.cpp
+++ b/src/core/SkPackBits.cpp
@@ -88,7 +88,7 @@ static void register_memset_count(int n) {
SkASSERT((unsigned)n <= 128);
gMemSetBuckets[n] += 1;
gCounter += 1;
-
+
if ((gCounter & 0xFF) == 0) {
SkDebugf("----- packbits memset stats: ");
for (size_t i = 0; i < SK_ARRAY_COUNT(gMemSetBuckets); i++) {
@@ -102,7 +102,7 @@ static void register_memcpy_count(int n) {
SkASSERT((unsigned)n <= 128);
gMemCpyBuckets[n] += 1;
gCounter += 1;
-
+
if ((gCounter & 0x1FF) == 0) {
SkDebugf("----- packbits memcpy stats: ");
for (size_t i = 0; i < SK_ARRAY_COUNT(gMemCpyBuckets); i++) {
@@ -207,10 +207,10 @@ size_t SkPackBits::Pack16(const uint16_t* SK_RESTRICT src, int count,
*dst++ = (uint8_t)*src;
return dst - origDst;
}
-
+
unsigned value = *src;
const uint16_t* s = src + 1;
-
+
if (*s == value) { // accumulate same values...
do {
s++;
@@ -249,10 +249,10 @@ size_t SkPackBits::Pack8(const uint8_t* SK_RESTRICT src, int count,
*dst++ = *src;
return dst - origDst;
}
-
+
unsigned value = *src;
const uint8_t* s = src + 1;
-
+
if (*s == value) { // accumulate same values...
do {
s++;
@@ -283,7 +283,7 @@ int SkPackBits::Unpack16(const uint8_t* SK_RESTRICT src, size_t srcSize,
uint16_t* SK_RESTRICT dst) {
uint16_t* origDst = dst;
const uint8_t* stop = src + srcSize;
-
+
while (src < stop) {
unsigned n = *src++;
if (n <= 127) { // repeat count (n + 1)
@@ -305,7 +305,7 @@ int SkPackBits::Unpack8(const uint8_t* SK_RESTRICT src, size_t srcSize,
uint8_t* SK_RESTRICT dst) {
uint8_t* origDst = dst;
const uint8_t* stop = src + srcSize;
-
+
while (src < stop) {
unsigned n = *src++;
if (n <= 127) { // repeat count (n + 1)
@@ -336,7 +336,7 @@ void SkPackBits::Unpack8(uint8_t* SK_RESTRICT dst, size_t dstSkip,
UnpackState state = CLEAN_STATE;
size_t stateCount = 0;
-
+
// state 1: do the skip-loop
while (dstSkip > 0) {
unsigned n = *src++;
@@ -361,7 +361,7 @@ void SkPackBits::Unpack8(uint8_t* SK_RESTRICT dst, size_t dstSkip,
}
dstSkip -= n;
}
-
+
// stage 2: perform any catchup from the skip-stage
if (stateCount > dstWrite) {
stateCount = dstWrite;
diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp
index 06058ab004..9c810be214 100644
--- a/src/core/SkPaint.cpp
+++ b/src/core/SkPaint.cpp
@@ -600,7 +600,7 @@ static const SkGlyph& sk_getMetrics_utf16_next(SkGlyphCache* cache,
const char** text) {
SkASSERT(cache != NULL);
SkASSERT(text != NULL);
-
+
return cache->getUnicharMetrics(SkUTF16_NextUnichar((const uint16_t**)text));
}
@@ -608,7 +608,7 @@ static const SkGlyph& sk_getMetrics_utf16_prev(SkGlyphCache* cache,
const char** text) {
SkASSERT(cache != NULL);
SkASSERT(text != NULL);
-
+
return cache->getUnicharMetrics(SkUTF16_PrevUnichar((const uint16_t**)text));
}
@@ -627,7 +627,7 @@ static const SkGlyph& sk_getMetrics_utf32_prev(SkGlyphCache* cache,
const char** text) {
SkASSERT(cache != NULL);
SkASSERT(text != NULL);
-
+
const int32_t* ptr = *(const int32_t**)text;
SkUnichar uni = *--ptr;
*text = (const char*)ptr;
@@ -694,7 +694,7 @@ static const SkGlyph& sk_getAdvance_utf32_next(SkGlyphCache* cache,
const char** text) {
SkASSERT(cache != NULL);
SkASSERT(text != NULL);
-
+
const int32_t* ptr = *(const int32_t**)text;
SkUnichar uni = *ptr++;
*text = (const char*)ptr;
@@ -705,7 +705,7 @@ static const SkGlyph& sk_getAdvance_utf32_prev(SkGlyphCache* cache,
const char** text) {
SkASSERT(cache != NULL);
SkASSERT(text != NULL);
-
+
const int32_t* ptr = *(const int32_t**)text;
SkUnichar uni = *--ptr;
*text = (const char*)ptr;
@@ -812,7 +812,7 @@ static const SkGlyph& sk_getMetrics_utf32_00(SkGlyphCache* cache,
const char** text, SkFixed, SkFixed) {
SkASSERT(cache != NULL);
SkASSERT(text != NULL);
-
+
const int32_t* ptr = *(const int32_t**)text;
SkUnichar uni = *ptr++;
*text = (const char*)ptr;
@@ -823,7 +823,7 @@ static const SkGlyph& sk_getMetrics_utf32_xy(SkGlyphCache* cache,
const char** text, SkFixed x, SkFixed y) {
SkASSERT(cache != NULL);
SkASSERT(text != NULL);
-
+
const int32_t* ptr = *(const int32_t**)text;
SkUnichar uni = *--ptr;
*text = (const char*)ptr;
@@ -1603,7 +1603,7 @@ void SkScalerContext::MakeRec(const SkPaint& paint,
#endif
rec->setContrast(SkFloatToScalar(SK_GAMMA_CONTRAST));
rec->fReservedAlign = 0;
-
+
/* Allow the fonthost to modify our rec before we use it as a key into the
cache. This way if we're asking for something that they will ignore,
they can modify our rec up front, so we don't create duplicate cache
@@ -1702,13 +1702,13 @@ void SkScalerContext::PostMakeRec(const SkPaint& paint, SkScalerContext::Rec* re
case SkMask::kA8_Format: {
// filter down the luminance to a single component, since A8 can't
// use per-component information
-
+
SkColor color = rec->getLuminanceColor();
SkAutoMutexAcquire ama(gMaskGammaCacheMutex);
U8CPU lum = cachedPaintLuminance(rec->getPaintGamma())->computeLuminance(color);
// HACK: Prevents green from being pre-blended as white.
lum -= ((255 - lum) * lum) / 255;
-
+
// reduce to our finite number of bits
SkMaskGamma* maskGamma = cachedMaskGamma(rec->getContrast(),
rec->getPaintGamma(),
@@ -1780,7 +1780,7 @@ void SkPaint::descriptorProc(const SkMatrix* deviceMatrix,
///////////////////////////////////////////////////////////////////////////
// Now that we're done tweaking the rec, call the PostMakeRec cleanup
SkScalerContext::PostMakeRec(*this, &rec);
-
+
descSize += SkDescriptor::ComputeOverhead(entryCount);
SkAutoDescriptor ad(descSize);
@@ -1814,15 +1814,15 @@ void SkPaint::descriptorProc(const SkMatrix* deviceMatrix,
SkAutoDescriptor ad2(descSize);
SkDescriptor* desc1 = ad1.getDesc();
SkDescriptor* desc2 = ad2.getDesc();
-
+
memset(desc1, 0x00, descSize);
memset(desc2, 0xFF, descSize);
-
+
desc1->init();
desc2->init();
desc1->addEntry(kRec_SkDescriptorTag, sizeof(rec), &rec);
desc2->addEntry(kRec_SkDescriptorTag, sizeof(rec), &rec);
-
+
if (pe) {
add_flattenable(desc1, kPathEffect_SkDescriptorTag, &peBuffer);
add_flattenable(desc2, kPathEffect_SkDescriptorTag, &peBuffer);
@@ -1835,7 +1835,7 @@ void SkPaint::descriptorProc(const SkMatrix* deviceMatrix,
add_flattenable(desc1, kRasterizer_SkDescriptorTag, &raBuffer);
add_flattenable(desc2, kRasterizer_SkDescriptorTag, &raBuffer);
}
-
+
SkASSERT(descSize == desc1->getLength());
SkASSERT(descSize == desc2->getLength());
desc1->computeChecksum();
@@ -1844,7 +1844,7 @@ void SkPaint::descriptorProc(const SkMatrix* deviceMatrix,
SkASSERT(!memcmp(desc, desc2, descSize));
}
#endif
-
+
proc(desc, context);
}
@@ -2327,7 +2327,7 @@ bool SkDrawLooper::canComputeFastBounds(const SkPaint& paint) {
void SkDrawLooper::computeFastBounds(const SkPaint& paint, const SkRect& src,
SkRect* dst) {
SkCanvas canvas;
-
+
this->init(&canvas);
for (bool firstTime = true;; firstTime = false) {
SkPaint p(paint);
diff --git a/src/core/SkPath.cpp b/src/core/SkPath.cpp
index 8184345a5b..0b1444ca11 100644
--- a/src/core/SkPath.cpp
+++ b/src/core/SkPath.cpp
@@ -138,7 +138,7 @@ static bool compute_pt_bounds(SkRect* bounds, const SkTDArray<SkPoint>& pts) {
// flag to require a moveTo if we begin with something else, like lineTo etc.
#define INITIAL_LASTMOVETOINDEX_VALUE ~0
-SkPath::SkPath()
+SkPath::SkPath()
: fFillType(kWinding_FillType)
, fBoundsIsDirty(true) {
fConvexity = kUnknown_Convexity;
@@ -265,7 +265,7 @@ bool SkPath::isEmpty() const {
bool SkPath::isLine(SkPoint line[2]) const {
int verbCount = fVerbs.count();
int ptCount = fPts.count();
-
+
if (2 == verbCount && 2 == ptCount) {
const uint8_t* verbs = fVerbs.begin();
if (kMove_Verb == verbs[0] && kLine_Verb == verbs[1]) {
@@ -283,13 +283,13 @@ bool SkPath::isLine(SkPoint line[2]) const {
/*
Determines if path is a rect by keeping track of changes in direction
and looking for a loop either clockwise or counterclockwise.
-
+
The direction is computed such that:
0: vertical up
1: horizontal right
2: vertical down
3: horizontal left
-
+
A rectangle cycles up/right/down/left or up/left/down/right.
The test fails if:
@@ -303,11 +303,11 @@ The test fails if:
The path contains a quadratic or cubic.
The path contains fewer than four points.
The final point isn't equal to the first point.
-
+
It's OK if the path has:
Several colinear line segments composing a rectangle side.
Single points on the rectangle side.
-
+
The direction takes advantage of the corners found since opposite sides
must travel in opposite directions.
@@ -934,7 +934,7 @@ static int build_arc_points(const SkRect& oval, SkScalar startAngle,
SkScalar sweepAngle,
SkPoint pts[kSkBuildQuadArcStorage]) {
- if (0 == sweepAngle &&
+ if (0 == sweepAngle &&
(0 == startAngle || SkIntToScalar(360) == startAngle)) {
// Chrome uses this path to move into and out of ovals. If not
// treated as a special case the moves can distort the oval's
@@ -1926,14 +1926,14 @@ struct Convexicator {
SkASSERT(fPtCount > 2);
this->addVec(vec);
}
-
+
int sx = sign(vec.fX);
int sy = sign(vec.fY);
fDx += (sx != fSx);
fDy += (sy != fSy);
fSx = sx;
fSy = sy;
-
+
if (fDx > 3 || fDy > 3) {
fConvexity = SkPath::kConcave_Convexity;
}
@@ -2035,7 +2035,7 @@ private:
ContourIter::ContourIter(const SkTDArray<uint8_t>& verbs,
const SkTDArray<SkPoint>& pts) {
fStopVerbs = verbs.begin() + verbs.count();
-
+
fDone = false;
fCurrPt = pts.begin();
fCurrVerb = verbs.begin();
@@ -2291,7 +2291,7 @@ bool SkPath::cheapComputeDirection(Direction* dir) const {
// Its possible that we can't find two non-degenerate vectors, so
// we have to guard our search (e.g. all the pts could be in the
// same place).
-
+
// we pass n - 1 instead of -1 so we don't foul up % operator by
// passing it a negative LH argument.
int prev = find_diff_pt(pts, index, n, n - 1);
@@ -2309,7 +2309,7 @@ bool SkPath::cheapComputeDirection(Direction* dir) const {
cross = pts[index].fX - pts[next].fX;
}
}
-
+
if (cross) {
// record our best guess so far
ymax = pts[index].fY;
@@ -2344,12 +2344,12 @@ static bool chopMonoCubicAt(SkScalar c0, SkScalar c1, SkScalar c2, SkScalar c3,
SkScalar target, SkScalar* t) {
// SkASSERT(c0 <= c1 && c1 <= c2 && c2 <= c3);
SkASSERT(c0 < target && target < c3);
-
+
SkScalar D = c0 - target;
SkScalar A = c3 + 3*(c1 - c2) - c0;
SkScalar B = 3*(c2 - c1 - c1 + c0);
SkScalar C = 3*(c1 - c0);
-
+
const SkScalar TOLERANCE = SK_Scalar1 / 4096;
SkScalar minT = 0;
SkScalar maxT = SK_Scalar1;
@@ -2386,7 +2386,7 @@ template <size_t N> static void find_minmax(const SkPoint pts[],
static int winding_mono_cubic(const SkPoint pts[], SkScalar x, SkScalar y) {
SkPoint storage[4];
-
+
int dir = 1;
if (pts[0].fY > pts[3].fY) {
storage[0] = pts[3];
@@ -2399,7 +2399,7 @@ static int winding_mono_cubic(const SkPoint pts[], SkScalar x, SkScalar y) {
if (y < pts[0].fY || y >= pts[3].fY) {
return 0;
}
-
+
// quickreject or quickaccept
SkScalar min, max;
find_minmax<4>(pts, &min, &max);
@@ -2409,7 +2409,7 @@ static int winding_mono_cubic(const SkPoint pts[], SkScalar x, SkScalar y) {
if (x > max) {
return dir;
}
-
+
// compute the actual x(t) value
SkScalar t, xt;
if (chopMonoCubicAt(pts[0].fY, pts[1].fY, pts[2].fY, pts[3].fY, y, &t)) {
@@ -2434,7 +2434,7 @@ static int winding_cubic(const SkPoint pts[], SkScalar x, SkScalar y) {
static int winding_mono_quad(const SkPoint pts[], SkScalar x, SkScalar y) {
SkScalar y0 = pts[0].fY;
SkScalar y2 = pts[2].fY;
-
+
int dir = 1;
if (y0 > y2) {
SkTSwap(y0, y2);
@@ -2443,14 +2443,14 @@ static int winding_mono_quad(const SkPoint pts[], SkScalar x, SkScalar y) {
if (y < y0 || y >= y2) {
return 0;
}
-
+
// bounds check on X (not required. is it faster?)
#if 0
if (pts[0].fX > x && pts[1].fX > x && pts[2].fX > x) {
return 0;
}
#endif
-
+
SkScalar roots[2];
int n = SkFindUnitQuadRoots(pts[0].fY - 2 * pts[1].fY + pts[2].fY,
2 * (pts[1].fY - pts[0].fY),
@@ -2488,7 +2488,7 @@ static bool is_mono_quad(SkScalar y0, SkScalar y1, SkScalar y2) {
static int winding_quad(const SkPoint pts[], SkScalar x, SkScalar y) {
SkPoint dst[5];
int n = 0;
-
+
if (!is_mono_quad(pts[0].fY, pts[1].fY, pts[2].fY)) {
n = SkChopQuadAtYExtrema(pts, dst);
pts = dst;
@@ -2505,9 +2505,9 @@ static int winding_line(const SkPoint pts[], SkScalar x, SkScalar y) {
SkScalar y0 = pts[0].fY;
SkScalar x1 = pts[1].fX;
SkScalar y1 = pts[1].fY;
-
+
SkScalar dy = y1 - y0;
-
+
int dir = 1;
if (y0 > y1) {
SkTSwap(y0, y1);
@@ -2516,10 +2516,10 @@ static int winding_line(const SkPoint pts[], SkScalar x, SkScalar y) {
if (y < y0 || y >= y1) {
return 0;
}
-
+
SkScalar cross = SkScalarMul(x1 - x0, y - pts[0].fY) -
SkScalarMul(dy, x - pts[0].fX);
-
+
if (SkScalarSignAsInt(cross) == dir) {
dir = 0;
}
@@ -2531,12 +2531,12 @@ bool SkPath::contains(SkScalar x, SkScalar y) const {
if (this->isEmpty()) {
return isInverse;
}
-
+
const SkRect& bounds = this->getBounds();
if (!bounds.contains(x, y)) {
return isInverse;
}
-
+
SkPath::Iter iter(*this, true);
bool done = false;
int w = 0;
@@ -2560,7 +2560,7 @@ bool SkPath::contains(SkScalar x, SkScalar y) const {
break;
}
} while (!done);
-
+
switch (this->getFillType()) {
case SkPath::kEvenOdd_FillType:
case SkPath::kInverseEvenOdd_FillType:
diff --git a/src/core/SkPathHeap.cpp b/src/core/SkPathHeap.cpp
index 3add392ca1..bd5269d327 100644
--- a/src/core/SkPathHeap.cpp
+++ b/src/core/SkPathHeap.cpp
@@ -52,7 +52,7 @@ int SkPathHeap::append(const SkPath& path) {
void SkPathHeap::flatten(SkFlattenableWriteBuffer& buffer) const {
int count = fPaths.count();
-
+
buffer.writeInt(count);
SkPath** iter = fPaths.begin();
SkPath** stop = fPaths.end();
diff --git a/src/core/SkPathHeap.h b/src/core/SkPathHeap.h
index 32adbc0839..f043222027 100644
--- a/src/core/SkPathHeap.h
+++ b/src/core/SkPathHeap.h
@@ -29,15 +29,15 @@ public:
this newly added (copied) path.
*/
int append(const SkPath&);
-
+
// called during picture-playback
int count() const { return fPaths.count(); }
const SkPath& operator[](int index) const {
return *fPaths[index];
}
-
+
void flatten(SkFlattenableWriteBuffer&) const;
-
+
private:
// we store the paths in the heap (placement new)
SkChunkAlloc fHeap;
diff --git a/src/core/SkPathMeasure.cpp b/src/core/SkPathMeasure.cpp
index b591aacb94..8b1ec2d7f8 100644
--- a/src/core/SkPathMeasure.cpp
+++ b/src/core/SkPathMeasure.cpp
@@ -201,7 +201,7 @@ void SkPathMeasure::buildSegments() {
case SkPath::kClose_Verb:
isClosed = true;
break;
-
+
case SkPath::kDone_Verb:
done = true;
break;
@@ -436,7 +436,7 @@ bool SkPathMeasure::getPosTan(SkScalar distance, SkPoint* pos,
} else if (distance > length) {
distance = length;
}
-
+
SkScalar t;
const Segment* seg = this->distanceToSegment(distance, &t);
diff --git a/src/core/SkPerspIter.h b/src/core/SkPerspIter.h
index 7f6add289c..821f153462 100644
--- a/src/core/SkPerspIter.h
+++ b/src/core/SkPerspIter.h
@@ -21,7 +21,7 @@ public:
@param count The number of points (x,y) (x+1,y) (x+2,y) ... we will eventually map
*/
SkPerspIter(const SkMatrix& m, SkScalar x, SkScalar y, int count);
-
+
/** Return the buffer of [x,y] fixed point values we will be filling.
This always returns the same value, so it can be saved across calls to
next().
@@ -32,7 +32,7 @@ public:
When this returns 0, the iterator is finished.
*/
int next();
-
+
private:
enum {
kShift = 4,
diff --git a/src/core/SkPictureFlat.cpp b/src/core/SkPictureFlat.cpp
index c66689fa79..8f6e0895d7 100644
--- a/src/core/SkPictureFlat.cpp
+++ b/src/core/SkPictureFlat.cpp
@@ -32,7 +32,7 @@ void SkTypefacePlayback::reset(const SkRefCntSet* rec) {
fArray[i]->unref();
}
SkDELETE_ARRAY(fArray);
-
+
if (rec!= NULL && rec->count() > 0) {
fCount = rec->count();
fArray = SkNEW_ARRAY(SkRefCnt*, fCount);
@@ -48,7 +48,7 @@ void SkTypefacePlayback::reset(const SkRefCntSet* rec) {
void SkTypefacePlayback::setCount(int count) {
this->reset(NULL);
-
+
fCount = count;
fArray = SkNEW_ARRAY(SkRefCnt*, count);
sk_bzero(fArray, count * sizeof(SkRefCnt*));
@@ -105,7 +105,7 @@ SkFlatData* SkFlatData::Create(SkFlatController* controller, const void* obj,
buffer.setTypefaceRecorder(controller->getTypefaceSet());
buffer.setNamedFactoryRecorder(controller->getNamedFactorySet());
buffer.setFlags(controller->getWriteBufferFlags());
-
+
flattenProc(buffer, obj);
uint32_t size = buffer.size();
SkASSERT(SkIsAlign4(size));
diff --git a/src/core/SkPictureFlat.h b/src/core/SkPictureFlat.h
index b4f0625631..75e6672a14 100644
--- a/src/core/SkPictureFlat.h
+++ b/src/core/SkPictureFlat.h
@@ -89,9 +89,9 @@ class SkTypefacePlayback {
public:
SkTypefacePlayback();
virtual ~SkTypefacePlayback();
-
+
int count() const { return fCount; }
-
+
void reset(const SkRefCntSet*);
void setCount(int count);
@@ -100,7 +100,7 @@ public:
void setupBuffer(SkOrderedReadBuffer& buffer) const {
buffer.setTypefaceArray((SkTypeface**)fArray, fCount);
}
-
+
protected:
int fCount;
SkRefCnt** fArray;
@@ -115,13 +115,13 @@ public:
~SkFactoryPlayback() {
SkDELETE_ARRAY(fArray);
}
-
+
SkFlattenable::Factory* base() const { return fArray; }
void setupBuffer(SkOrderedReadBuffer& buffer) const {
buffer.setFactoryPlayback(fArray, fCount);
}
-
+
private:
int fCount;
SkFlattenable::Factory* fArray;
@@ -283,7 +283,7 @@ public:
SkASSERT(b_ptr < b->dataStop());
return (*a_ptr < *b_ptr) ? -1 : 1;
}
-
+
int index() const { return fIndex; }
const void* data() const { return (const char*)this + sizeof(*this); }
void* data() { return (char*)this + sizeof(*this); }
@@ -491,21 +491,21 @@ private:
}
}
-
+
SkFlatController * const fController;
int fNextIndex;
SkTDArray<const SkFlatData*> fData;
const SkFlatData* findAndReturnFlat(const T& element) {
SkFlatData* flat = SkFlatData::Create(fController, &element, fNextIndex, fFlattenProc);
-
+
int hashIndex = ChecksumToHashIndex(flat->checksum());
const SkFlatData* candidate = fHash[hashIndex];
if (candidate && !SkFlatData::Compare(flat, candidate)) {
fController->unalloc(flat);
return candidate;
}
-
+
int index = SkTSearch<SkFlatData>((const SkFlatData**) fData.begin(),
fData.count(), flat, sizeof(flat),
&SkFlatData::Compare);
@@ -514,7 +514,7 @@ private:
fHash[hashIndex] = fData[index];
return fData[index];
}
-
+
index = ~index;
*fData.insert(index) = flat;
SkASSERT(fData.count() == fNextIndex);
@@ -523,7 +523,7 @@ private:
fHash[hashIndex] = flat;
return flat;
}
-
+
enum {
// Determined by trying diff values on picture-recording benchmarks
@@ -535,7 +535,7 @@ private:
HASH_COUNT = 1 << HASH_BITS
};
const SkFlatData* fHash[HASH_COUNT];
-
+
static int ChecksumToHashIndex(uint32_t checksum) {
int n = checksum;
if (HASH_BITS < 32) {
@@ -548,7 +548,7 @@ private:
n ^= n >> 4;
}
return n & HASH_MASK;
- }
+ }
};
///////////////////////////////////////////////////////////////////////////////
diff --git a/src/core/SkPicturePlayback.cpp b/src/core/SkPicturePlayback.cpp
index 01e52c4888..40297dc4fb 100644
--- a/src/core/SkPicturePlayback.cpp
+++ b/src/core/SkPicturePlayback.cpp
@@ -125,7 +125,7 @@ template <typename T> T* SafeRefReturn(T* obj) {
}
return obj;
}
-
+
SkPicturePlayback::SkPicturePlayback(const SkPicturePlayback& src) {
this->init();
@@ -262,7 +262,7 @@ void SkPicturePlayback::flattenToBuffer(SkOrderedWriteBuffer& buffer) const {
buffer.writeBitmap((*fBitmaps)[i]);
}
}
-
+
if ((n = SafeCount(fMatrices)) > 0) {
writeTagSize(buffer, PICT_MATRIX_BUFFER_TAG, n);
for (i = 0; i < n; i++) {
@@ -270,19 +270,19 @@ void SkPicturePlayback::flattenToBuffer(SkOrderedWriteBuffer& buffer) const {
}
}
-
+
if ((n = SafeCount(fPaints)) > 0) {
writeTagSize(buffer, PICT_PAINT_BUFFER_TAG, n);
for (i = 0; i < n; i++) {
buffer.writePaint((*fPaints)[i]);
}
}
-
+
if ((n = SafeCount(fPathHeap)) > 0) {
writeTagSize(buffer, PICT_PATH_BUFFER_TAG, n);
fPathHeap->flatten(buffer);
}
-
+
if ((n = SafeCount(fRegions)) > 0) {
writeTagSize(buffer, PICT_REGION_BUFFER_TAG, n);
for (i = 0; i < n; i++) {
@@ -344,7 +344,7 @@ static uint32_t pictInfoFlagsToReadBufferFlags(uint32_t pictInfoFlags) {
{ SkPictInfo::kScalarIsFloat_Flag, SkFlattenableReadBuffer::kScalarIsFloat_Flag },
{ SkPictInfo::kPtrIs64Bit_Flag, SkFlattenableReadBuffer::kPtrIs64Bit_Flag },
};
-
+
uint32_t rbMask = 0;
for (size_t i = 0; i < SK_ARRAY_COUNT(gSD); ++i) {
if (pictInfoFlags & gSD[i].fSrc) {
@@ -402,13 +402,13 @@ bool SkPicturePlayback::parseStreamTag(SkStream* stream, const SkPictInfo& info,
case PICT_BUFFER_SIZE_TAG: {
SkAutoMalloc storage(size);
stream->read(storage.get(), size);
-
+
SkOrderedReadBuffer buffer(storage.get(), size);
buffer.setFlags(pictInfoFlagsToReadBufferFlags(info.fFlags));
fFactoryPlayback->setupBuffer(buffer);
fTFPlayback.setupBuffer(buffer);
-
+
while (!buffer.eof()) {
tag = buffer.readUInt();
size = buffer.readUInt();
diff --git a/src/core/SkPicturePlayback.h b/src/core/SkPicturePlayback.h
index 9cc2fd34cd..077719f00b 100644
--- a/src/core/SkPicturePlayback.h
+++ b/src/core/SkPicturePlayback.h
@@ -35,7 +35,7 @@ struct SkPictInfo {
kScalarIsFloat_Flag = 1 << 1,
kPtrIs64Bit_Flag = 1 << 2,
};
-
+
uint32_t fVersion;
uint32_t fWidth;
uint32_t fHeight;
@@ -165,14 +165,14 @@ private: // these help us with reading/writing
bool parseStreamTag(SkStream*, const SkPictInfo&, uint32_t tag, size_t size);
bool parseBufferTag(SkOrderedReadBuffer&, uint32_t tag, size_t size);
void flattenToBuffer(SkOrderedWriteBuffer&) const;
-
+
private:
SkPathHeap* fPathHeap; // reference counted
SkTRefArray<SkBitmap>* fBitmaps;
SkTRefArray<SkMatrix>* fMatrices;
SkTRefArray<SkPaint>* fPaints;
SkTRefArray<SkRegion>* fRegions;
-
+
SkData* fOpData; // opcodes and parameters
SkPicture** fPictureRefs;
diff --git a/src/core/SkPictureRecord.cpp b/src/core/SkPictureRecord.cpp
index fb4f991f51..3d124c4882 100644
--- a/src/core/SkPictureRecord.cpp
+++ b/src/core/SkPictureRecord.cpp
@@ -211,7 +211,7 @@ void SkPictureRecord::recordRestoreOffsetPlaceholder(SkRegion::Op op) {
// The RestoreOffset field is initially filled with a placeholder
// value that points to the offset of the previous RestoreOffset
// in the current stack level, thus forming a linked list so that
- // the restore offsets can be filled in when the corresponding
+ // the restore offsets can be filled in when the corresponding
// restore command is recorded.
addInt(fRestoreOffsetStack.top());
fRestoreOffsetStack.top() = offset;
diff --git a/src/core/SkPixelRef.cpp b/src/core/SkPixelRef.cpp
index d02f504895..f71458b7dd 100644
--- a/src/core/SkPixelRef.cpp
+++ b/src/core/SkPixelRef.cpp
@@ -116,7 +116,7 @@ void SkPixelRef::lockPixels() {
void SkPixelRef::unlockPixels() {
SkASSERT(!fPreLocked || SKPIXELREF_PRELOCKED_LOCKCOUNT == fLockCount);
-
+
if (!fPreLocked) {
SkAutoMutexAcquire ac(*fMutex);
diff --git a/src/core/SkPoint.cpp b/src/core/SkPoint.cpp
index 488bacb3dd..ebbe3a4f1f 100644
--- a/src/core/SkPoint.cpp
+++ b/src/core/SkPoint.cpp
@@ -31,21 +31,21 @@ void SkIPoint::rotateCCW(SkIPoint* dst) const {
void SkPoint::setIRectFan(int l, int t, int r, int b, size_t stride) {
SkASSERT(stride >= sizeof(SkPoint));
-
- ((SkPoint*)((intptr_t)this + 0 * stride))->set(SkIntToScalar(l),
+
+ ((SkPoint*)((intptr_t)this + 0 * stride))->set(SkIntToScalar(l),
SkIntToScalar(t));
- ((SkPoint*)((intptr_t)this + 1 * stride))->set(SkIntToScalar(l),
+ ((SkPoint*)((intptr_t)this + 1 * stride))->set(SkIntToScalar(l),
SkIntToScalar(b));
- ((SkPoint*)((intptr_t)this + 2 * stride))->set(SkIntToScalar(r),
+ ((SkPoint*)((intptr_t)this + 2 * stride))->set(SkIntToScalar(r),
SkIntToScalar(b));
- ((SkPoint*)((intptr_t)this + 3 * stride))->set(SkIntToScalar(r),
+ ((SkPoint*)((intptr_t)this + 3 * stride))->set(SkIntToScalar(r),
SkIntToScalar(t));
}
void SkPoint::setRectFan(SkScalar l, SkScalar t, SkScalar r, SkScalar b,
size_t stride) {
SkASSERT(stride >= sizeof(SkPoint));
-
+
((SkPoint*)((intptr_t)this + 0 * stride))->set(l, t);
((SkPoint*)((intptr_t)this + 1 * stride))->set(l, b);
((SkPoint*)((intptr_t)this + 2 * stride))->set(r, b);
@@ -254,7 +254,7 @@ static unsigned fast_invsqrt(uint32_t x) {
SkASSERT(top >= 8 && top <= 63);
SkASSERT(top - 8 < SK_ARRAY_COUNT(gInvSqrt14GuessTable));
unsigned U = gInvSqrt14GuessTable[top - 8];
-
+
U = invsqrt_iter(V, U);
return invsqrt_iter(V, U);
}
@@ -285,7 +285,7 @@ bool SkPoint::setLength(SkFixed ox, SkFixed oy, SkFixed length) {
// make x,y 1.14 values so our fast sqr won't overflow
if (zeros > 17) {
x <<= zeros - 17;
- y <<= zeros - 17;
+ y <<= zeros - 17;
} else {
x >>= 17 - zeros;
y >>= 17 - zeros;
@@ -410,7 +410,7 @@ bool SkPoint::setLength(SkFixed ox, SkFixed oy, SkFixed length) {
x = SkFixedMul(x, length);
y = SkFixedMul(y, length);
}
-
+
this->set(x, y);
return true;
}
@@ -426,7 +426,7 @@ SkScalar SkPoint::distanceToLineBetweenSqd(const SkPoint& a,
SkVector u = b - a;
SkVector v = *this - a;
-
+
SkScalar uLengthSqd = u.lengthSqd();
SkScalar det = u.cross(v);
if (NULL != side) {
@@ -441,7 +441,7 @@ SkScalar SkPoint::distanceToLineBetweenSqd(const SkPoint& a,
SkScalar SkPoint::distanceToLineSegmentBetweenSqd(const SkPoint& a,
const SkPoint& b) const {
// See comments to distanceToLineBetweenSqd. If the projection of c onto
- // u is between a and b then this returns the same result as that
+ // u is between a and b then this returns the same result as that
// function. Otherwise, it returns the distance to the closer of a and
// b. Let the projection of v onto u be v'. There are three cases:
// 1. v' points opposite to u. c is not between a and b and is closer
@@ -451,17 +451,17 @@ SkScalar SkPoint::distanceToLineSegmentBetweenSqd(const SkPoint& a,
// to the line ab.
// 3. v' points along u and has greater magnitude than u. c is not
// not between a and b and is closer to b than a.
- // v' = (u dot v) * u / |u|. So if (u dot v)/|u| is less than zero we're
+ // v' = (u dot v) * u / |u|. So if (u dot v)/|u| is less than zero we're
// in case 1. If (u dot v)/|u| is > |u| we are in case 3. Otherwise
- // we're in case 2. We actually compare (u dot v) to 0 and |u|^2 to
+ // we're in case 2. We actually compare (u dot v) to 0 and |u|^2 to
// avoid a sqrt to compute |u|.
-
+
SkVector u = b - a;
SkVector v = *this - a;
-
+
SkScalar uLengthSqd = u.lengthSqd();
SkScalar uDotV = SkPoint::DotProduct(u, v);
-
+
if (uDotV <= 0) {
return v.lengthSqd();
} else if (uDotV > uLengthSqd) {
diff --git a/src/core/SkPtrRecorder.cpp b/src/core/SkPtrRecorder.cpp
index 6ee58f886a..896e62d7fb 100644
--- a/src/core/SkPtrRecorder.cpp
+++ b/src/core/SkPtrRecorder.cpp
@@ -29,11 +29,11 @@ uint32_t SkPtrSet::find(void* ptr) const {
if (NULL == ptr) {
return 0;
}
-
+
int count = fList.count();
Pair pair;
pair.fPtr = ptr;
-
+
int index = SkTSearch<Pair, Cmp>(fList.begin(), count, pair, sizeof(pair));
if (index < 0) {
return 0;
diff --git a/src/core/SkPtrRecorder.h b/src/core/SkPtrRecorder.h
index c4c0bd8832..00e75b433f 100644
--- a/src/core/SkPtrRecorder.h
+++ b/src/core/SkPtrRecorder.h
@@ -37,7 +37,7 @@ public:
* If the ptr is NULL, it is not added, and 0 is returned.
*/
uint32_t add(void*);
-
+
/**
* Return the number of (non-null) ptrs in the set.
*/
@@ -73,9 +73,9 @@ private:
// ptr and its ID/fIndex explicitly, since the ptr's position in the array
// is not related to its "index".
SkTDArray<Pair> fList;
-
+
static int Cmp(const Pair* a, const Pair* b);
-
+
typedef SkRefCnt INHERITED;
};
@@ -91,7 +91,7 @@ public:
uint32_t add(T ptr) {
return this->INHERITED::add((void*)ptr);
}
-
+
void copyToArray(T* array) const {
this->INHERITED::copyToArray((void**)array);
}
@@ -108,7 +108,7 @@ private:
class SkRefCntSet : public SkTPtrSet<SkRefCnt*> {
public:
virtual ~SkRefCntSet();
-
+
protected:
// overrides
virtual void incPtr(void*);
@@ -126,14 +126,14 @@ public:
SK_DECLARE_INST_COUNT(SkNamedFactorySet)
SkNamedFactorySet();
-
+
/**
* Find the specified Factory in the set. If it is not already in the set,
* and has registered its name, add it to the set, and return its index.
* If the Factory has no registered name, return 0.
*/
uint32_t find(SkFlattenable::Factory);
-
+
/**
* If new Factorys have been added to the set, return the name of the first
* Factory added after the Factory name returned by the last call to this
diff --git a/src/core/SkQuadClipper.cpp b/src/core/SkQuadClipper.cpp
index 0c9c9add09..9e048878c9 100644
--- a/src/core/SkQuadClipper.cpp
+++ b/src/core/SkQuadClipper.cpp
@@ -42,7 +42,7 @@ static bool chopMonoQuadAt(SkScalar c0, SkScalar c1, SkScalar c2,
SkScalar A = c0 - c1 - c1 + c2;
SkScalar B = 2*(c1 - c0);
SkScalar C = c0 - target;
-
+
SkScalar roots[2]; // we only expect one, but make room for 2 for safety
int count = SkFindUnitQuadRoots(A, B, C, roots);
if (count) {
@@ -64,7 +64,7 @@ static bool chopMonoQuadAtY(SkPoint pts[3], SkScalar y, SkScalar* t) {
*/
bool SkQuadClipper::clipQuad(const SkPoint srcPts[3], SkPoint dst[3]) {
bool reverse;
-
+
// we need the data to be monotonically increasing in Y
if (srcPts[0].fY > srcPts[2].fY) {
dst[0] = srcPts[2];
@@ -75,17 +75,17 @@ bool SkQuadClipper::clipQuad(const SkPoint srcPts[3], SkPoint dst[3]) {
memcpy(dst, srcPts, 3 * sizeof(SkPoint));
reverse = false;
}
-
+
// are we completely above or below
const SkScalar ctop = fClip.fTop;
const SkScalar cbot = fClip.fBottom;
if (dst[2].fY <= ctop || dst[0].fY >= cbot) {
return false;
}
-
+
SkScalar t;
SkPoint tmp[5]; // for SkChopQuadAt
-
+
// are we partially above
if (dst[0].fY < ctop) {
if (chopMonoQuadAtY(dst, ctop, &t)) {
@@ -103,7 +103,7 @@ bool SkQuadClipper::clipQuad(const SkPoint srcPts[3], SkPoint dst[3]) {
}
}
}
-
+
// are we partially below
if (dst[2].fY > cbot) {
if (chopMonoQuadAtY(dst, cbot, &t)) {
@@ -120,7 +120,7 @@ bool SkQuadClipper::clipQuad(const SkPoint srcPts[3], SkPoint dst[3]) {
}
}
}
-
+
if (reverse) {
SkTSwap<SkPoint>(dst[0], dst[2]);
}
diff --git a/src/core/SkQuadClipper.h b/src/core/SkQuadClipper.h
index be0cea0349..c0b8695c91 100644
--- a/src/core/SkQuadClipper.h
+++ b/src/core/SkQuadClipper.h
@@ -14,16 +14,16 @@
/** This class is initialized with a clip rectangle, and then can be fed quads,
which must already be monotonic in Y.
-
+
In the future, it might return a series of segments, allowing it to clip
also in X, to ensure that all segments fit in a finite coordinate system.
*/
class SkQuadClipper {
public:
SkQuadClipper();
-
+
void setClip(const SkIRect& clip);
-
+
bool clipQuad(const SkPoint src[3], SkPoint dst[3]);
private:
@@ -40,11 +40,11 @@ public:
bool clipCubic(const SkPoint pts[4], const SkRect& clip);
SkPath::Verb next(SkPoint pts[]);
-
+
private:
SkPoint* fCurrPoint;
SkPath::Verb* fCurrVerb;
-
+
enum {
kMaxVerbs = 13,
kMaxPoints = 32
diff --git a/src/core/SkRasterClip.cpp b/src/core/SkRasterClip.cpp
index aea731e1af..4312717a44 100644
--- a/src/core/SkRasterClip.cpp
+++ b/src/core/SkRasterClip.cpp
@@ -17,7 +17,7 @@ SkRasterClip::SkRasterClip() {
SkRasterClip::SkRasterClip(const SkRasterClip& src) {
AUTO_RASTERCLIP_VALIDATE(src);
-
+
fIsBW = src.fIsBW;
if (fIsBW) {
fBW = src.fBW;
@@ -62,7 +62,7 @@ bool SkRasterClip::setEmpty() {
bool SkRasterClip::setRect(const SkIRect& rect) {
AUTO_RASTERCLIP_VALIDATE(*this);
-
+
fIsBW = true;
fAA.setEmpty();
fIsRect = fBW.setRect(rect);
@@ -108,14 +108,14 @@ bool SkRasterClip::setPath(const SkPath& path, const SkRasterClip& clip,
bool SkRasterClip::op(const SkIRect& rect, SkRegion::Op op) {
AUTO_RASTERCLIP_VALIDATE(*this);
-
+
fIsBW ? fBW.op(rect, op) : fAA.op(rect, op);
return this->updateCacheAndReturnNonEmpty();
}
bool SkRasterClip::op(const SkRegion& rgn, SkRegion::Op op) {
AUTO_RASTERCLIP_VALIDATE(*this);
-
+
if (fIsBW) {
(void)fBW.op(rgn, op);
} else {
@@ -165,7 +165,7 @@ static bool nearly_integral(SkScalar x) {
bool SkRasterClip::op(const SkRect& r, SkRegion::Op op, bool doAA) {
AUTO_RASTERCLIP_VALIDATE(*this);
-
+
if (fIsBW && doAA) {
// check that the rect really needs aa, or is it close enought to
// integer boundaries that we can just treat it as a BW rect?
@@ -194,7 +194,7 @@ void SkRasterClip::translate(int dx, int dy, SkRasterClip* dst) const {
}
AUTO_RASTERCLIP_VALIDATE(*this);
-
+
if (this->isEmpty()) {
dst->setEmpty();
return;
@@ -223,7 +223,7 @@ bool SkRasterClip::quickContains(const SkIRect& ir) const {
const SkRegion& SkRasterClip::forceGetBW() {
AUTO_RASTERCLIP_VALIDATE(*this);
-
+
if (!fIsBW) {
fBW.setRect(fAA.getBounds());
}
@@ -232,7 +232,7 @@ const SkRegion& SkRasterClip::forceGetBW() {
void SkRasterClip::convertToAA() {
AUTO_RASTERCLIP_VALIDATE(*this);
-
+
SkASSERT(fIsBW);
fAA.setRegion(fBW);
fIsBW = false;
diff --git a/src/core/SkRasterClip.h b/src/core/SkRasterClip.h
index 0ac7ff4d8a..7e015aacec 100644
--- a/src/core/SkRasterClip.h
+++ b/src/core/SkRasterClip.h
@@ -57,7 +57,7 @@ public:
bool quickContains(int left, int top, int right, int bottom) const {
return quickContains(SkIRect::MakeLTRB(left, top, right, bottom));
}
-
+
/**
* Return true if this region is empty, or if the specified rectangle does
* not intersect the region. Returning false is not a guarantee that they
@@ -67,7 +67,7 @@ public:
return this->isEmpty() || rect.isEmpty() ||
!SkIRect::Intersects(this->getBounds(), rect);
}
-
+
// hack for SkCanvas::getTotalClip
const SkRegion& forceGetBW();
@@ -92,7 +92,7 @@ private:
bool computeIsRect() const {
return fIsBW ? fBW.isRect() : false;
}
-
+
bool updateCacheAndReturnNonEmpty() {
fIsEmpty = this->computeIsEmpty();
fIsRect = this->computeIsRect();
@@ -136,7 +136,7 @@ public:
SkAAClipBlitterWrapper();
SkAAClipBlitterWrapper(const SkRasterClip&, SkBlitter*);
SkAAClipBlitterWrapper(const SkAAClip*, SkBlitter*);
-
+
void init(const SkRasterClip&, SkBlitter*);
const SkIRect& getBounds() const {
@@ -151,7 +151,7 @@ public:
SkASSERT(fBlitter);
return fBlitter;
}
-
+
private:
const SkAAClip* fAAClip;
SkRegion fBWRgn;
diff --git a/src/core/SkRasterizer.cpp b/src/core/SkRasterizer.cpp
index e5625bff0a..c6ddc086ca 100644
--- a/src/core/SkRasterizer.cpp
+++ b/src/core/SkRasterizer.cpp
@@ -18,11 +18,11 @@ bool SkRasterizer::rasterize(const SkPath& fillPath, const SkMatrix& matrix,
const SkIRect* clipBounds, SkMaskFilter* filter,
SkMask* mask, SkMask::CreateMode mode) {
SkIRect storage;
-
- if (clipBounds && filter && SkMask::kJustRenderImage_CreateMode != mode) {
+
+ if (clipBounds && filter && SkMask::kJustRenderImage_CreateMode != mode) {
SkIPoint margin;
SkMask srcM, dstM;
-
+
srcM.fFormat = SkMask::kA8_Format;
srcM.fBounds.set(0, 0, 1, 1);
srcM.fImage = NULL;
@@ -33,7 +33,7 @@ bool SkRasterizer::rasterize(const SkPath& fillPath, const SkMatrix& matrix,
storage.inset(-margin.fX, -margin.fY);
clipBounds = &storage;
}
-
+
return this->onRasterize(fillPath, matrix, clipBounds, mask, mode);
}
@@ -43,7 +43,7 @@ bool SkRasterizer::onRasterize(const SkPath& fillPath, const SkMatrix& matrix,
const SkIRect* clipBounds,
SkMask* mask, SkMask::CreateMode mode) {
SkPath devPath;
-
+
fillPath.transform(matrix, &devPath);
return SkDraw::DrawToMask(devPath, clipBounds, NULL, NULL, mask, mode,
SkPaint::kFill_Style);
diff --git a/src/core/SkRect.cpp b/src/core/SkRect.cpp
index 55dbe3d6e0..1d8a13e085 100644
--- a/src/core/SkRect.cpp
+++ b/src/core/SkRect.cpp
@@ -72,7 +72,7 @@ void SkRect::toQuad(SkPoint quad[4]) const {
bool SkRect::setBoundsCheck(const SkPoint pts[], int count) {
SkASSERT((pts && count > 0) || count == 0);
-
+
bool isFinite = true;
if (count <= 0) {
@@ -126,7 +126,7 @@ bool SkRect::setBoundsCheck(const SkPoint pts[], int count) {
this->set(l, t, r, b);
#endif
}
-
+
return isFinite;
}
diff --git a/src/core/SkRefDict.h b/src/core/SkRefDict.h
index 67511217bb..55b9bfe0cf 100644
--- a/src/core/SkRefDict.h
+++ b/src/core/SkRefDict.h
@@ -26,7 +26,7 @@ public:
* is found. The reference-count of the entry is not affected.
*/
SkRefCnt* find(const char name[]) const;
-
+
/**
* If data is NULL, remove (if present) the entry matching name and call
* prev_data->unref() on the data for the matching entry.
diff --git a/src/core/SkRegion.cpp b/src/core/SkRegion.cpp
index ce5ed8af2d..0dcacd849e 100644
--- a/src/core/SkRegion.cpp
+++ b/src/core/SkRegion.cpp
@@ -57,10 +57,10 @@ bool SkRegion::RunsAreARect(const SkRegion::RunType runs[], int count,
assert_sentinel(runs[4], false); // right
assert_sentinel(runs[5], true);
assert_sentinel(runs[6], true);
-
+
SkASSERT(runs[0] < runs[1]); // valid height
SkASSERT(runs[3] < runs[4]); // valid width
-
+
bounds->set(runs[3], runs[0], runs[4], runs[1]);
return true;
}
@@ -242,7 +242,7 @@ bool SkRegion::setRuns(RunType runs[], int count) {
assert_sentinel(runs[0], false); // top
assert_sentinel(runs[1], false); // bottom
// runs[2] is uncomputed intervalCount
-
+
if (runs[3] == SkRegion::kRunTypeSentinel) { // should be first left...
runs += 3; // skip empty initial span
runs[0] = runs[-2]; // set new top to prev bottom
@@ -274,14 +274,14 @@ bool SkRegion::setRuns(RunType runs[], int count) {
if (SkRegion::RunsAreARect(runs, count, &fBounds)) {
return this->setRect(fBounds);
}
-
+
// if we get here, we need to become a complex region
if (!fRunHead->isComplex() || fRunHead->fRunCount != count) {
this->freeRuns();
this->allocateRuns(count);
}
-
+
// must call this before we can write directly into runs()
// in case we are sharing the buffer with another region (copy on write)
fRunHead = fRunHead->ensureWritable();
@@ -319,7 +319,7 @@ bool SkRegion::contains(int32_t x, int32_t y) const {
// Skip the Bottom and IntervalCount
runs += 2;
-
+
// Just walk this scanline, checking each interval. The X-sentinel will
// appear as a left-inteval (runs[0]) and should abort the search.
//
@@ -367,10 +367,10 @@ bool SkRegion::contains(const SkIRect& r) const {
if (this->isRect()) {
return true;
}
-
+
SkASSERT(this->isComplex());
const RunType* scanline = fRunHead->findScanline(r.fTop);
-
+
do {
if (!scanline_contains(scanline, r.fLeft, r.fRight)) {
return false;
@@ -438,11 +438,11 @@ static bool scanline_intersects(const SkRegion::RunType runs[],
bool SkRegion::intersects(const SkIRect& r) const {
SkDEBUGCODE(this->validate();)
-
+
if (this->isEmpty() || r.isEmpty()) {
return false;
}
-
+
SkIRect sect;
if (!sect.intersect(fBounds, r)) {
return false;
@@ -450,7 +450,7 @@ bool SkRegion::intersects(const SkIRect& r) const {
if (this->isRect()) {
return true;
}
-
+
const RunType* scanline = fRunHead->findScanline(sect.fTop);
do {
if (scanline_intersects(scanline, sect.fLeft, sect.fRight)) {
@@ -465,11 +465,11 @@ bool SkRegion::intersects(const SkRegion& rgn) const {
if (this->isEmpty() || rgn.isEmpty()) {
return false;
}
-
+
if (!SkIRect::Intersects(fBounds, rgn.fBounds)) {
return false;
}
-
+
bool weAreARect = this->isRect();
bool theyAreARect = rgn.isRect();
@@ -482,7 +482,7 @@ bool SkRegion::intersects(const SkRegion& rgn) const {
if (theyAreARect) {
return this->intersects(rgn.getBounds());
}
-
+
// both of us are complex
return Oper(*this, rgn, kIntersect_Op, NULL);
}
@@ -499,7 +499,7 @@ bool SkRegion::operator==(const SkRegion& b) const {
if (fBounds != b.fBounds) {
return false;
}
-
+
const SkRegion::RunHead* ah = fRunHead;
const SkRegion::RunHead* bh = b.fRunHead;
@@ -538,7 +538,7 @@ void SkRegion::translate(int dx, int dy, SkRegion* dst) const {
}
dst->fBounds.offset(dx, dy);
-
+
const RunType* sruns = fRunHead->readonly_runs();
RunType* druns = dst->fRunHead->writable_runs();
@@ -604,7 +604,7 @@ struct spanRec {
const SkRegion::RunType* fB_runs;
int fA_left, fA_rite, fB_left, fB_rite;
int fLeft, fRite, fInside;
-
+
void init(const SkRegion::RunType a_runs[],
const SkRegion::RunType b_runs[]) {
fA_left = *a_runs++;
@@ -615,7 +615,7 @@ struct spanRec {
fA_runs = a_runs;
fB_runs = b_runs;
}
-
+
bool done() const {
SkASSERT(fA_left <= SkRegion::kRunTypeSentinel);
SkASSERT(fB_left <= SkRegion::kRunTypeSentinel);
@@ -630,7 +630,7 @@ struct spanRec {
int inside, left, rite SK_INIT_TO_AVOID_WARNING;
bool a_flush = false;
bool b_flush = false;
-
+
int a_left = fA_left;
int a_rite = fA_rite;
int b_left = fB_left;
@@ -677,13 +677,13 @@ struct spanRec {
}
SkASSERT(left <= rite);
-
+
// now update our state
fA_left = a_left;
fA_rite = a_rite;
fB_left = b_left;
fB_rite = b_rite;
-
+
fLeft = left;
fRite = rite;
fInside = inside;
@@ -696,15 +696,15 @@ static SkRegion::RunType* operate_on_span(const SkRegion::RunType a_runs[],
int min, int max) {
spanRec rec;
bool firstInterval = true;
-
+
rec.init(a_runs, b_runs);
while (!rec.done()) {
rec.next();
-
+
int left = rec.fLeft;
int rite = rec.fRite;
-
+
// add left,rite to our dst buffer (checking for coincidence
if ((unsigned)(rec.fInside - min) <= (unsigned)(max - min) &&
left < rite) { // skip if equal
@@ -782,7 +782,7 @@ public:
}
}
}
-
+
int flush() {
fStartDst[0] = fTop;
fPrevDst[fPrevLen] = SkRegion::kRunTypeSentinel;
@@ -837,10 +837,10 @@ static int operate(const SkRegion::RunType a_runs[],
assert_sentinel(b_bot, false);
RgnOper oper(SkMin32(a_top, b_top), dst, op);
-
+
bool firstInterval = true;
int prevBot = SkRegion::kRunTypeSentinel; // so we fail the first test
-
+
while (a_bot < SkRegion::kRunTypeSentinel ||
b_bot < SkRegion::kRunTypeSentinel) {
int top, bot SK_INIT_TO_AVOID_WARNING;
@@ -880,7 +880,7 @@ static int operate(const SkRegion::RunType a_runs[],
b_flush = true;
}
}
-
+
if (top > prevBot) {
oper.addSpan(top, gSentinel, gSentinel);
}
@@ -909,7 +909,7 @@ static int operate(const SkRegion::RunType a_runs[],
b_top = b_bot;
}
}
-
+
prevBot = bot;
}
return oper.flush();
@@ -920,7 +920,7 @@ static int operate(const SkRegion::RunType a_runs[],
/* Given count RunTypes in a complex region, return the worst case number of
logical intervals that represents (i.e. number of rects that would be
returned from the iterator).
-
+
We could just return count/2, since there must be at least 2 values per
interval, but we can first trim off the const overhead of the initial TOP
value, plus the final BOTTOM + 2 sentinels.
@@ -934,7 +934,7 @@ static int count_to_intervals(int count) {
/* Given a number of intervals, what is the worst case representation of that
many intervals?
-
+
Worst case (from a storage perspective), is a vertical stack of single
intervals: TOP + N * (BOTTOM INTERVALCOUNT LEFT RIGHT SENTINEL) + SENTINEL
*/
@@ -967,11 +967,11 @@ static bool setRegionCheck(SkRegion* result, const SkRegion& rgn) {
bool SkRegion::Oper(const SkRegion& rgnaOrig, const SkRegion& rgnbOrig, Op op,
SkRegion* result) {
SkASSERT((unsigned)op < kOpCount);
-
+
if (kReplace_Op == op) {
return setRegionCheck(result, rgnbOrig);
}
-
+
// swith to using pointers, so we can swap them as needed
const SkRegion* rgna = &rgnaOrig;
const SkRegion* rgnb = &rgnbOrig;
@@ -1113,14 +1113,14 @@ uint32_t SkRegion::readFromMemory(const void* storage) {
SkRBuffer buffer(storage);
SkRegion tmp;
int32_t count;
-
+
count = buffer.readS32();
if (count >= 0) {
buffer.read(&tmp.fBounds, sizeof(tmp.fBounds));
if (count == 0) {
tmp.fRunHead = SkRegion_gRectRunHeadPtr;
} else {
- int32_t ySpanCount = buffer.readS32();
+ int32_t ySpanCount = buffer.readS32();
int32_t intervalCount = buffer.readS32();
tmp.allocateRuns(count, ySpanCount, intervalCount);
buffer.read(tmp.fRunHead->writable_runs(), count * sizeof(RunType));
@@ -1148,7 +1148,7 @@ static const SkRegion::RunType* skip_intervals_slow(const SkRegion::RunType runs
// contains().
//
SkRegion::RunType prevR = -SkRegion::kRunTypeSentinel;
-
+
while (runs[0] < SkRegion::kRunTypeSentinel) {
SkASSERT(prevR < runs[0]);
SkASSERT(runs[0] < runs[1]);
@@ -1163,32 +1163,32 @@ static void compute_bounds(const SkRegion::RunType runs[], int count,
SkIRect* bounds, int* ySpanCountPtr,
int* intervalCountPtr) {
assert_sentinel(runs[0], false); // top
-
+
int left = SK_MaxS32;
int rite = SK_MinS32;
int bot;
int ySpanCount = 0;
int intervalCount = 0;
-
+
bounds->fTop = *runs++;
do {
bot = *runs++;
SkASSERT(SkRegion::kRunTypeSentinel > bot);
ySpanCount += 1;
-
+
runs += 1; // skip intervalCount for now
if (*runs < SkRegion::kRunTypeSentinel) {
if (left > *runs) {
left = *runs;
}
-
+
const SkRegion::RunType* prev = runs;
runs = skip_intervals_slow(runs);
int intervals = (runs - prev) >> 1;
SkASSERT(prev[-1] == intervals);
intervalCount += intervals;
-
+
if (rite < runs[-1]) {
rite = runs[-1];
}
@@ -1198,7 +1198,7 @@ static void compute_bounds(const SkRegion::RunType runs[], int count,
SkASSERT(SkRegion::kRunTypeSentinel == *runs);
runs += 1;
} while (SkRegion::kRunTypeSentinel != *runs);
-
+
bounds->fLeft = left;
bounds->fRight = rite;
bounds->fBottom = bot;
@@ -1311,7 +1311,7 @@ void SkRegion::Iterator::next() {
} else {
fRect.fTop = fRect.fBottom;
}
-
+
fRect.fBottom = runs[0];
assert_sentinel(runs[2], false);
assert_sentinel(runs[3], false);
@@ -1450,7 +1450,7 @@ bool SkRegion::Spanerator::next(int* left, int* right) {
bool SkRegion::debugSetRuns(const RunType runs[], int count) {
// we need to make a copy, since the real method may modify the array, and
// so it cannot be const.
-
+
SkAutoTArray<RunType> storage(count);
memcpy(storage.get(), runs, count * sizeof(RunType));
return this->setRuns(storage.get(), count);
diff --git a/src/core/SkRegionPriv.h b/src/core/SkRegionPriv.h
index 84c726d0e0..91b3a2e75a 100644
--- a/src/core/SkRegionPriv.h
+++ b/src/core/SkRegionPriv.h
@@ -39,7 +39,7 @@ private:
public:
int32_t fRefCnt;
int32_t fRunCount;
-
+
/**
* Number of spans with different Y values. This does not count the initial
* Top value, nor does it count the final Y-Sentinel value. In the logical
@@ -62,9 +62,9 @@ public:
static RunHead* Alloc(int count) {
//SkDEBUGCODE(sk_atomic_inc(&gRgnAllocCounter);)
//SkDEBUGF(("************** gRgnAllocCounter::alloc %d\n", gRgnAllocCounter));
-
+
SkASSERT(count >= SkRegion::kRectRegionRuns);
-
+
RunHead* head = (RunHead*)sk_malloc_throw(sizeof(RunHead) + count * sizeof(RunType));
head->fRefCnt = 1;
head->fRunCount = count;
@@ -73,7 +73,7 @@ public:
head->fIntervalCount = 0;
return head;
}
-
+
static RunHead* Alloc(int count, int yspancount, int intervalCount) {
SkASSERT(yspancount > 0);
SkASSERT(intervalCount > 1);
@@ -83,7 +83,7 @@ public:
head->fIntervalCount = intervalCount;
return head;
}
-
+
bool isComplex() const {
return this != SkRegion_gEmptyRunHeadPtr && this != SkRegion_gRectRunHeadPtr;
}
@@ -98,15 +98,15 @@ public:
SkASSERT(this->isComplex());
return (const SkRegion::RunType*)(this + 1);
}
-
+
RunHead* ensureWritable() {
SkASSERT(this->isComplex());
-
+
RunHead* writable = this;
if (fRefCnt > 1) {
// We need to alloc & copy the current region before we call
// sk_atomic_dec because it could be freed in the meantime,
- // otherwise.
+ // otherwise.
writable = Alloc(fRunCount, fYSpanCount, fIntervalCount);
memcpy(writable->writable_runs(), this->readonly_runs(),
fRunCount * sizeof(RunType));
@@ -120,7 +120,7 @@ public:
}
return writable;
}
-
+
/**
* Given a scanline (including its Bottom value at runs[0]), return the next
* scanline. Asserts that there is one (i.e. runs[0] < Sentinel)
@@ -128,7 +128,7 @@ public:
static SkRegion::RunType* SkipEntireScanline(const SkRegion::RunType runs[]) {
// we are not the Y Sentinel
SkASSERT(runs[0] < SkRegion::kRunTypeSentinel);
-
+
const int intervals = runs[1];
SkASSERT(runs[2 + intervals * 2] == SkRegion::kRunTypeSentinel);
#ifdef SK_DEBUG
@@ -142,8 +142,8 @@ public:
runs += 1 + 1 + intervals * 2 + 1;
return const_cast<SkRegion::RunType*>(runs);
}
-
-
+
+
/**
* Return the scanline that contains the Y value. This requires that the Y
* value is already known to be contained within the bounds of the region,
@@ -156,7 +156,7 @@ public:
// if the top-check fails, we didn't do a quick check on the bounds
SkASSERT(y >= runs[0]);
-
+
runs += 1; // skip top-Y
for (;;) {
int bottom = runs[0];
@@ -175,7 +175,7 @@ public:
void computeRunBounds(SkIRect* bounds) {
RunType* runs = this->writable_runs();
bounds->fTop = *runs++;
-
+
int bot;
int ySpanCount = 0;
int intervalCount = 0;
@@ -186,7 +186,7 @@ public:
bot = *runs++;
SkASSERT(bot < SkRegion::kRunTypeSentinel);
ySpanCount += 1;
-
+
const int intervals = *runs++;
SkASSERT(intervals >= 0);
SkASSERT(intervals < SkRegion::kRunTypeSentinel);
@@ -203,14 +203,14 @@ public:
if (left > L) {
left = L;
}
-
+
runs += intervals * 2;
RunType R = runs[-1];
SkASSERT(R < SkRegion::kRunTypeSentinel);
if (rite < R) {
rite = R;
}
-
+
intervalCount += intervals;
}
SkASSERT(SkRegion::kRunTypeSentinel == *runs);
@@ -218,13 +218,13 @@ public:
// test Y-sentinel
} while (SkRegion::kRunTypeSentinel > *runs);
-
+
#ifdef SK_DEBUG
// +1 to skip the last Y-sentinel
int runCount = runs - this->writable_runs() + 1;
SkASSERT(runCount == fRunCount);
#endif
-
+
fYSpanCount = ySpanCount;
fIntervalCount = intervalCount;
diff --git a/src/core/SkRegion_path.cpp b/src/core/SkRegion_path.cpp
index 5ea792afb7..58812eb37f 100644
--- a/src/core/SkRegion_path.cpp
+++ b/src/core/SkRegion_path.cpp
@@ -16,7 +16,7 @@
class SkRgnBuilder : public SkBlitter {
public:
virtual ~SkRgnBuilder();
-
+
// returns true if it could allocate the working storage needed
bool init(int maxHeight, int maxTransitions);
@@ -79,7 +79,7 @@ private:
// points at next avialable x[] in fCurrScanline
SkRegion::RunType* fCurrXPtr;
SkRegion::RunType fTop; // first Y value
-
+
int fStorageCount;
bool collapsWithPrev() {
@@ -290,7 +290,7 @@ bool SkRegion::setPath(const SkPath& path, const SkRegion& clip) {
int pathTransitions = count_path_runtype_values(path, &pathTop, &pathBot);
int clipTop, clipBot;
int clipTransitions;
-
+
clipTransitions = clip.count_runtype_values(&clipTop, &clipBot);
int top = SkMax32(pathTop, clipTop);
@@ -300,7 +300,7 @@ bool SkRegion::setPath(const SkPath& path, const SkRegion& clip) {
return this->setEmpty();
SkRgnBuilder builder;
-
+
if (!builder.init(bot - top, SkMax32(pathTransitions, clipTransitions))) {
// can't allocate working space, so return false
return this->setEmpty();
@@ -334,7 +334,7 @@ struct Edge {
enum {
kY0Link = 0x01,
kY1Link = 0x02,
-
+
kCompleteLink = (kY0Link | kY1Link)
};
@@ -342,7 +342,7 @@ struct Edge {
SkRegion::RunType fY0, fY1;
uint8_t fFlags;
Edge* fNext;
-
+
void set(int x, int y0, int y1) {
SkASSERT(y0 != y1);
@@ -352,7 +352,7 @@ struct Edge {
fFlags = 0;
SkDEBUGCODE(fNext = NULL;)
}
-
+
int top() const {
return SkFastMin32(fY0, fY1);
}
@@ -383,7 +383,7 @@ static void find_link(Edge* base, Edge* stop) {
}
}
}
-
+
e = base;
if ((base->fFlags & Edge::kY1Link) == 0) {
for (;;) {
@@ -396,7 +396,7 @@ static void find_link(Edge* base, Edge* stop) {
}
}
}
-
+
base->fFlags = Edge::kCompleteLink;
}
@@ -448,7 +448,7 @@ bool SkRegion::getBoundaryPath(SkPath* path) const {
const SkIRect& bounds = this->getBounds();
if (this->isRect()) {
- SkRect r;
+ SkRect r;
r.set(bounds); // this converts the ints to scalars
path->addRect(r);
return true;
@@ -456,14 +456,14 @@ bool SkRegion::getBoundaryPath(SkPath* path) const {
SkRegion::Iterator iter(*this);
SkTDArray<Edge> edges;
-
+
for (const SkIRect& r = iter.rect(); !iter.done(); iter.next()) {
Edge* edge = edges.append(2);
edge[0].set(r.fLeft, r.fBottom, r.fTop);
edge[1].set(r.fRight, r.fTop, r.fBottom);
}
qsort(edges.begin(), edges.count(), sizeof(Edge), SkCastForQSort(EdgeProc));
-
+
int count = edges.count();
Edge* start = edges.begin();
Edge* stop = start + count;
diff --git a/src/core/SkRegion_rects.cpp b/src/core/SkRegion_rects.cpp
index 1777a1e16f..4121080c41 100644
--- a/src/core/SkRegion_rects.cpp
+++ b/src/core/SkRegion_rects.cpp
@@ -15,12 +15,12 @@
struct VEdge {
VEdge* fPrev;
VEdge* fNext;
-
+
SkRegion::RunType fX;
SkRegion::RunType fTop;
SkRegion::RunType fBottom;
int fWinding;
-
+
void removeFromList() {
fPrev->fNext = fNext;
fNext->fPrev = fPrev;
@@ -34,7 +34,7 @@ struct VEdge {
// remove prev from the list
prev->fPrev->fNext = next;
next->fPrev = prev->fPrev;
-
+
// insert prev after next
prev->fNext = next->fNext;
next->fNext->fPrev = prev;
@@ -48,7 +48,7 @@ struct VEdge {
edges[0].fTop = r.fTop;
edges[0].fBottom = r.fBottom;
edges[0].fWinding = -1;
-
+
edges[1].fX = r.fRight;
edges[1].fTop = r.fTop;
edges[1].fBottom = r.fBottom;
@@ -60,12 +60,12 @@ class Accumulator {
public:
Accumulator(SkRegion::RunType top, int numRects);
~Accumulator() {}
-
+
SkRegion::RunType append(SkRegion::RunType top, const VEdge* edge);
-
+
int count() const { return fTotalCount; }
void copyTo(SkRegion::RunType dst[]);
-
+
private:
struct Row {
SkRegion::RunType* fPtr;
@@ -94,7 +94,7 @@ SkRegion::RunType Accumulator::append(SkRegion::RunType currY, const VEdge* edge
size_t size = fRectCount * 2 * sizeof(SkRegion::RunType);
SkRegion::RunType* row = (SkRegion::RunType*)fAlloc.allocThrow(size);
SkRegion::RunType* rowHead = row;
-
+
SkRegion::RunType nextY = SkRegion::kRunTypeSentinel;
int winding = edge->fWinding;
@@ -123,7 +123,7 @@ SkRegion::RunType Accumulator::append(SkRegion::RunType currY, const VEdge* edge
*row++ = edge->fX;
TRACE_ROW(SkDebugf(" %d] [%d", currR, edge->fX);)
}
-
+
nextY = SkMin32(nextY, edge->fBottom);
edge = edge->fNext;
}
@@ -132,7 +132,7 @@ SkRegion::RunType Accumulator::append(SkRegion::RunType currY, const VEdge* edge
TRACE_ROW(SkDebugf(" %d]\n", currR);)
}
int rowCount = row - rowHead;
-
+
// now see if we have already seen this row, or if its unique
Row* r = fRows.count() ? &fRows[fRows.count() - 1] : NULL;
@@ -148,15 +148,15 @@ SkRegion::RunType Accumulator::append(SkRegion::RunType currY, const VEdge* edge
r->fCount = rowCount;
fTotalCount += 1 + rowCount + 1;
}
-
+
return nextY;
}
void Accumulator::copyTo(SkRegion::RunType dst[]) {
SkDEBUGCODE(SkRegion::RunType* startDst = dst;)
-
+
*dst++ = fTop;
-
+
const Row* curr = fRows.begin();
const Row* stop = fRows.end();
while (curr < stop) {
@@ -207,7 +207,7 @@ static VEdge* sort_edges(VEdge** edgePtr, VEdge edge[], const SkIRect rects[],
*ptr++ = edge++;
}
}
-
+
int edgeCount = ptr - edgePtr;
if (0 == edgeCount) {
// all the rects[] were empty
@@ -251,7 +251,7 @@ bool SkRegion::setRects(const SkIRect rects[], int rectCount) {
headEdge.fTop = SK_MinS32;
headEdge.fX = SK_MinS32;
head->fPrev = &headEdge;
-
+
tailEdge.fPrev = tail;
tailEdge.fNext = NULL;
tailEdge.fTop = SK_MaxS32;
@@ -259,7 +259,7 @@ bool SkRegion::setRects(const SkIRect rects[], int rectCount) {
int32_t currY = head->fTop;
Accumulator accum(currY, rectCount);
-
+
while (head->fNext) {
VEdge* edge = head;
// accumulate the current
diff --git a/src/core/SkScalerContext.cpp b/src/core/SkScalerContext.cpp
index a1473be55c..10729057c6 100644
--- a/src/core/SkScalerContext.cpp
+++ b/src/core/SkScalerContext.cpp
@@ -340,12 +340,12 @@ template<bool APPLY_PREBLEND>
static void pack3xHToLCD16(const SkBitmap& src, const SkMask& dst, SkMaskGamma::PreBlend* maskPreBlend) {
SkASSERT(SkBitmap::kA8_Config == src.config());
SkASSERT(SkMask::kLCD16_Format == dst.fFormat);
-
+
const int width = dst.fBounds.width();
const int height = dst.fBounds.height();
uint16_t* dstP = (uint16_t*)dst.fImage;
size_t dstRB = dst.fRowBytes;
-
+
const uint8_t* maskPreBlendR = NULL;
const uint8_t* maskPreBlendG = NULL;
const uint8_t* maskPreBlendB = NULL;
@@ -371,12 +371,12 @@ template<bool APPLY_PREBLEND>
static void pack3xHToLCD32(const SkBitmap& src, const SkMask& dst, SkMaskGamma::PreBlend* maskPreBlend) {
SkASSERT(SkBitmap::kA8_Config == src.config());
SkASSERT(SkMask::kLCD32_Format == dst.fFormat);
-
+
const int width = dst.fBounds.width();
const int height = dst.fBounds.height();
SkPMColor* dstP = (SkPMColor*)dst.fImage;
size_t dstRB = dst.fRowBytes;
-
+
const uint8_t* maskPreBlendR = NULL;
const uint8_t* maskPreBlendG = NULL;
const uint8_t* maskPreBlendB = NULL;
@@ -385,7 +385,7 @@ static void pack3xHToLCD32(const SkBitmap& src, const SkMask& dst, SkMaskGamma::
maskPreBlendG = maskPreBlend->fG;
maskPreBlendB = maskPreBlend->fB;
}
-
+
for (int y = 0; y < height; ++y) {
const uint8_t* srcP = src.getAddr8(0, y);
for (int x = 0; x < width; ++x) {
@@ -446,7 +446,7 @@ static void generateMask(const SkMask& mask, const SkPath& path, SkMaskGamma::Pr
bm.setPixels(mask.fImage);
}
sk_bzero(bm.getPixels(), bm.getSafeSize());
-
+
SkDraw draw;
sk_bzero(&draw, sizeof(draw));
draw.fRC = &clip;
@@ -454,7 +454,7 @@ static void generateMask(const SkMask& mask, const SkPath& path, SkMaskGamma::Pr
draw.fMatrix = &matrix;
draw.fBitmap = &bm;
draw.drawPath(path, paint);
-
+
if (0 == dstRB) {
switch (mask.fFormat) {
case SkMask::kLCD16_Format:
@@ -480,7 +480,7 @@ static void generateMask(const SkMask& mask, const SkPath& path, SkMaskGamma::Pr
static void applyLUTToA8Glyph(const SkGlyph& glyph, const uint8_t* lut) {
uint8_t* SK_RESTRICT dst = (uint8_t*)glyph.fImage;
unsigned rowBytes = glyph.rowBytes();
-
+
for (int y = glyph.fHeight - 1; y >= 0; --y) {
for (int x = glyph.fWidth - 1; x >= 0; --x) {
dst[x] = lut[dst[x]];
@@ -493,7 +493,7 @@ void SkScalerContext::getImage(const SkGlyph& origGlyph) {
const SkGlyph* glyph = &origGlyph;
SkGlyph tmpGlyph;
SkMaskGamma::PreBlend* maskPreBlend = &fMaskPreBlend;
-
+
if (fMaskFilter) { // restore the prefilter bounds
tmpGlyph.init(origGlyph.fID);
@@ -631,7 +631,7 @@ void SkScalerContext::internalGetPath(const SkGlyph& glyph, SkPath* fillPath,
// now localPath is only affected by the paint settings, and not the canvas matrix
SkStrokeRec rec(SkStrokeRec::kFill_InitStyle);
-
+
if (fRec.fFrameWidth > 0) {
rec.setStrokeStyle(fRec.fFrameWidth,
SkToBool(fRec.fFlags & kFrameAndFill_Flag));
@@ -641,7 +641,7 @@ void SkScalerContext::internalGetPath(const SkGlyph& glyph, SkPath* fillPath,
(SkPaint::Join)fRec.fStrokeJoin,
fRec.fMiterLimit);
}
-
+
if (fPathEffect) {
SkPath effectPath;
if (fPathEffect->filterPath(&effectPath, localPath, &rec)) {
@@ -718,7 +718,7 @@ void SkScalerContextRec::getSingleMatrix(SkMatrix* m) const {
SkAxisAlignment SkComputeAxisAlignmentForHText(const SkMatrix& matrix) {
SkASSERT(!matrix.hasPerspective());
-
+
if (0 == matrix[SkMatrix::kMSkewY]) {
return kX_SkAxisAlignment;
}
diff --git a/src/core/SkScalerContext.h b/src/core/SkScalerContext.h
index eee52a57e8..085e31d959 100644
--- a/src/core/SkScalerContext.h
+++ b/src/core/SkScalerContext.h
@@ -34,14 +34,14 @@ struct SkScalerContextRec {
SkScalar fTextSize, fPreScaleX, fPreSkewX;
SkScalar fPost2x2[2][2];
SkScalar fFrameWidth, fMiterLimit;
-
+
//These describe the parameters to create (uniquely identify) the pre-blend.
uint32_t fLumBits;
uint8_t fDeviceGamma; //2.6, (0.0, 4.0) gamma, 0.0 for sRGB
uint8_t fPaintGamma; //2.6, (0.0, 4.0) gamma, 0.0 for sRGB
uint8_t fContrast; //0.8+1, [0.0, 1.0] artificial contrast
uint8_t fReservedAlign;
-
+
SkScalar getDeviceGamma() const {
return SkIntToScalar(fDeviceGamma) / (1 << 6);
}
@@ -49,7 +49,7 @@ struct SkScalerContextRec {
SkASSERT(0 <= dg && dg < SkIntToScalar(4));
fDeviceGamma = SkScalarFloorToInt(dg * (1 << 6));
}
-
+
SkScalar getPaintGamma() const {
return SkIntToScalar(fPaintGamma) / (1 << 6);
}
@@ -57,7 +57,7 @@ struct SkScalerContextRec {
SkASSERT(0 <= pg && pg < SkIntToScalar(4));
fPaintGamma = SkScalarFloorToInt(pg * (1 << 6));
}
-
+
SkScalar getContrast() const {
return SkIntToScalar(fContrast) / ((1 << 8) - 1);
}
@@ -65,7 +65,7 @@ struct SkScalerContextRec {
SkASSERT(0 <= c && c <= SK_Scalar1);
fContrast = SkScalarRoundToInt(c * ((1 << 8) - 1));
}
-
+
/**
* Causes the luminance color and contrast to be ignored, and the
* paint and device gamma to be effectively 1.0.
@@ -76,7 +76,7 @@ struct SkScalerContextRec {
setDeviceGamma(SK_Scalar1);
setContrast(0);
}
-
+
uint8_t fMaskFormat;
uint8_t fStrokeJoin;
uint16_t fFlags;
@@ -84,22 +84,22 @@ struct SkScalerContextRec {
// must be a multiple of 4. SkDescriptor requires that its arguments be
// multiples of four and this structure is put in an SkDescriptor in
// SkPaint::MakeRec.
-
+
void getMatrixFrom2x2(SkMatrix*) const;
void getLocalMatrix(SkMatrix*) const;
void getSingleMatrix(SkMatrix*) const;
-
+
inline SkPaint::Hinting getHinting() const;
inline void setHinting(SkPaint::Hinting);
-
+
SkMask::Format getFormat() const {
return static_cast<SkMask::Format>(fMaskFormat);
}
-
+
SkColor getLuminanceColor() const {
return fLumBits;
}
-
+
void setLuminanceColor(SkColor c) {
fLumBits = c;
}
@@ -138,7 +138,7 @@ public:
// Perhaps we can store this (instead) in fMaskFormat, in hight bit?
kGenA8FromLCD_Flag = 0x0800,
};
-
+
// computed values
enum {
kHinting_Mask = kHintingBit1_Flag | kHintingBit2_Flag,
@@ -155,7 +155,7 @@ public:
bool isSubpixel() const {
return SkToBool(fRec.fFlags & kSubpixelPositioning_Flag);
}
-
+
// remember our glyph offset/base
void setBaseGlyphCount(unsigned baseGlyphCount) {
fBaseGlyphCount = baseGlyphCount;
diff --git a/src/core/SkScan.cpp b/src/core/SkScan.cpp
index cee328f63e..30626f7640 100644
--- a/src/core/SkScan.cpp
+++ b/src/core/SkScan.cpp
@@ -21,7 +21,7 @@ void SkScan::FillIRect(const SkIRect& r, const SkRegion* clip,
if (clip) {
if (clip->isRect()) {
const SkIRect& clipBounds = clip->getBounds();
-
+
if (clipBounds.contains(r)) {
blitrect(blitter, r);
} else {
@@ -33,7 +33,7 @@ void SkScan::FillIRect(const SkIRect& r, const SkRegion* clip,
} else {
SkRegion::Cliperator cliper(*clip, r);
const SkIRect& rr = cliper.rect();
-
+
while (!cliper.done()) {
blitrect(blitter, rr);
cliper.next();
@@ -48,7 +48,7 @@ void SkScan::FillIRect(const SkIRect& r, const SkRegion* clip,
void SkScan::FillXRect(const SkXRect& xr, const SkRegion* clip,
SkBlitter* blitter) {
SkIRect r;
-
+
XRect_round(xr, &r);
SkScan::FillIRect(r, clip, blitter);
}
@@ -58,7 +58,7 @@ void SkScan::FillXRect(const SkXRect& xr, const SkRegion* clip,
void SkScan::FillRect(const SkRect& r, const SkRegion* clip,
SkBlitter* blitter) {
SkIRect ir;
-
+
r.round(&ir);
SkScan::FillIRect(ir, clip, blitter);
}
@@ -72,7 +72,7 @@ void SkScan::FillIRect(const SkIRect& r, const SkRasterClip& clip,
if (clip.isEmpty() || r.isEmpty()) {
return;
}
-
+
if (clip.isBW()) {
FillIRect(r, &clip.bwRgn(), blitter);
return;
@@ -87,7 +87,7 @@ void SkScan::FillXRect(const SkXRect& xr, const SkRasterClip& clip,
if (clip.isEmpty() || xr.isEmpty()) {
return;
}
-
+
if (clip.isBW()) {
FillXRect(xr, &clip.bwRgn(), blitter);
return;
@@ -104,7 +104,7 @@ void SkScan::FillRect(const SkRect& r, const SkRasterClip& clip,
if (clip.isEmpty() || r.isEmpty()) {
return;
}
-
+
if (clip.isBW()) {
FillRect(r, &clip.bwRgn(), blitter);
return;
diff --git a/src/core/SkScan.h b/src/core/SkScan.h
index 61ba1b0d55..5989435d29 100644
--- a/src/core/SkScan.h
+++ b/src/core/SkScan.h
@@ -85,7 +85,7 @@ private:
static void AntiFillPath(const SkPath&, const SkRegion& clip, SkBlitter*,
bool forceRLE = false);
static void FillTriangle(const SkPoint pts[], const SkRegion*, SkBlitter*);
-
+
static void AntiFrameRect(const SkRect&, const SkPoint& strokeSize,
const SkRegion*, SkBlitter*);
static void HairLineRgn(const SkPoint&, const SkPoint&, const SkRegion*,
diff --git a/src/core/SkScan_AntiPath.cpp b/src/core/SkScan_AntiPath.cpp
index 153778e0a6..fdd0c8e676 100644
--- a/src/core/SkScan_AntiPath.cpp
+++ b/src/core/SkScan_AntiPath.cpp
@@ -85,7 +85,7 @@ BaseSuperBlitter::BaseSuperBlitter(SkBlitter* realBlitter, const SkIRect& ir,
*/
const int left = clip.getBounds().fLeft;
const int right = clip.getBounds().fRight;
-
+
fLeft = left;
fSuperLeft = left << SHIFT;
fWidth = right - left;
@@ -197,7 +197,7 @@ void SuperBlitter::blitH(int x, int y, int width) {
fOffsetX = 0;
fCurrY = y;
}
-
+
if (iy != fCurrIY) { // new scanline
this->flush();
fCurrIY = iy;
@@ -422,7 +422,7 @@ MaskSuperBlitter::MaskSuperBlitter(SkBlitter* realBlitter, const SkIRect& ir,
fMask.fBounds = ir;
fMask.fRowBytes = ir.width();
fMask.fFormat = SkMask::kA8_Format;
-
+
fClipRect = ir;
fClipRect.intersect(clip.getBounds());
@@ -714,13 +714,13 @@ void SkScan::FillPath(const SkPath& path, const SkRasterClip& clip,
if (clip.isEmpty()) {
return;
}
-
+
if (clip.isBW()) {
FillPath(path, clip.bwRgn(), blitter);
} else {
SkRegion tmp;
SkAAClipBlitter aaBlitter;
-
+
tmp.setRect(clip.getBounds());
aaBlitter.init(blitter, &clip.aaRgn());
SkScan::FillPath(path, tmp, &aaBlitter);
diff --git a/src/core/SkScan_Antihair.cpp b/src/core/SkScan_Antihair.cpp
index ec23a2b525..92245d4f33 100644
--- a/src/core/SkScan_Antihair.cpp
+++ b/src/core/SkScan_Antihair.cpp
@@ -106,7 +106,7 @@ static SkFixed hline(int x, int stopx, SkFixed fy, SkFixed /*slope*/,
if (ma) {
call_hline_blitter(blitter, x, y - 1, count, ma);
}
-
+
return fy - SK_Fixed1/2;
}
@@ -145,7 +145,7 @@ static SkFixed horish(int x, int stopx, SkFixed fy, SkFixed dy,
}
fy += dy;
} while (++x < stopx);
-
+
return fy - SK_Fixed1/2;
}
@@ -165,7 +165,7 @@ static SkFixed vline(int y, int stopy, SkFixed fx, SkFixed /*slope*/,
if (ma) {
blitter->blitV(x - 1, y, stopy - y, ApplyGamma(gGammaTable, ma));
}
-
+
return fx - SK_Fixed1/2;
}
@@ -267,7 +267,7 @@ static void do_anti_hairline(SkFDot6 x0, SkFDot6 y0, SkFDot6 x1, SkFDot6 y1,
int scaleStart, scaleStop;
int istart, istop;
- SkFixed fstart, slope;
+ SkFixed fstart, slope;
LineProc proc;
if (SkAbs32(x1 - x0) > SkAbs32(y1 - y0)) { // mostly horizontal
@@ -288,7 +288,7 @@ static void do_anti_hairline(SkFDot6 x0, SkFDot6 y0, SkFDot6 x1, SkFDot6 y1,
fstart += (slope * (32 - (x0 & 63)) + 32) >> 6;
proc = horish;
}
-
+
SkASSERT(istop > istart);
if (istop - istart == 1) {
scaleStart = x1 - x0;
@@ -368,7 +368,7 @@ static void do_anti_hairline(SkFDot6 x0, SkFDot6 y0, SkFDot6 x1, SkFDot6 y1,
scaleStart = 64 - (y0 & 63);
scaleStop = y1 & 63;
}
-
+
if (clip) {
if (istart >= clip->fBottom || istop <= clip->fTop) {
return;
@@ -414,7 +414,7 @@ static void do_anti_hairline(SkFDot6 x0, SkFDot6 y0, SkFDot6 x1, SkFDot6 y1,
rectClipper.init(blitter, *clip);
blitter = &rectClipper;
}
-
+
fstart = proc(istart, istart + 1, fstart, slope, blitter, scaleStart);
istart += 1;
int fullSpans = istop - istart - (scaleStop > 0);
@@ -471,7 +471,7 @@ void SkScan::AntiHairLineRgn(const SkPoint& pt0, const SkPoint& pt1,
return;
}
}
-
+
SkFDot6 x0 = SkScalarToFDot6(pts[0].fX);
SkFDot6 y0 = SkScalarToFDot6(pts[0].fY);
SkFDot6 x1 = SkScalarToFDot6(pts[1].fX);
@@ -533,14 +533,14 @@ static inline FDot8 SkFixedToFDot8(SkFixed x) {
static void do_scanline(FDot8 L, int top, FDot8 R, U8CPU alpha,
SkBlitter* blitter) {
SkASSERT(L < R);
-
+
if ((L >> 8) == ((R - 1) >> 8)) { // 1x1 pixel
blitter->blitV(L >> 8, top, 1, SkAlphaMul(alpha, R - L));
return;
}
-
+
int left = L >> 8;
-
+
if (L & 0xFF) {
blitter->blitV(left, top, 1, SkAlphaMul(alpha, 256 - (L & 0xFF)));
left += 1;
@@ -567,12 +567,12 @@ static void antifilldot8(FDot8 L, FDot8 T, FDot8 R, FDot8 B, SkBlitter* blitter,
do_scanline(L, top, R, B - T - 1, blitter);
return;
}
-
+
if (T & 0xFF) {
do_scanline(L, top, R, 256 - (T & 0xFF), blitter);
top += 1;
}
-
+
int bot = B >> 8;
int height = bot - top;
if (height > 0) {
@@ -594,7 +594,7 @@ static void antifilldot8(FDot8 L, FDot8 T, FDot8 R, FDot8 B, SkBlitter* blitter,
}
}
}
-
+
if (B & 0xFF) {
do_scanline(L, bot, R, B & 0xFF, blitter);
}
@@ -632,10 +632,10 @@ void SkScan::AntiFillXRect(const SkXRect& xr, const SkRegion* clip,
} else {
SkRegion::Cliperator clipper(*clip, outerBounds);
const SkIRect& rr = clipper.rect();
-
+
while (!clipper.done()) {
SkXRect tmpR;
-
+
// this keeps our original edges fractional
XRect_set(&tmpR, rr);
if (tmpR.intersect(xr)) {
@@ -674,7 +674,7 @@ void SkScan::AntiFillXRect(const SkXRect& xr, const SkRasterClip& clip,
*/
static void antifillrect(const SkRect& r, SkBlitter* blitter) {
SkXRect xr;
-
+
XRect_set(&xr, r);
antifillrect(xr, blitter);
}
@@ -682,7 +682,7 @@ static void antifillrect(const SkRect& r, SkBlitter* blitter) {
/* We repeat the clipping logic of AntiFillXRect because the float rect might
overflow if we blindly converted it to an XRect. This sucks that we have to
repeat the clipping logic, but I don't see how to share the code/logic.
-
+
We clip r (as needed) into one or more (smaller) float rects, and then pass
those to our version of antifillrect, which converts it into an XRect and
then calls the blit.
@@ -698,7 +698,7 @@ void SkScan::AntiFillRect(const SkRect& origR, const SkRegion* clip,
SkIRect outerBounds;
newR.roundOut(&outerBounds);
-
+
if (clip->isRect()) {
antifillrect(newR, blitter);
} else {
@@ -765,24 +765,24 @@ static inline U8CPU InvAlphaMul(U8CPU a, U8CPU b) {
static void inner_scanline(FDot8 L, int top, FDot8 R, U8CPU alpha,
SkBlitter* blitter) {
SkASSERT(L < R);
-
+
if ((L >> 8) == ((R - 1) >> 8)) { // 1x1 pixel
blitter->blitV(L >> 8, top, 1, InvAlphaMul(alpha, R - L));
return;
}
-
+
int left = L >> 8;
if (L & 0xFF) {
blitter->blitV(left, top, 1, InvAlphaMul(alpha, L & 0xFF));
left += 1;
}
-
+
int rite = R >> 8;
int width = rite - left;
if (width > 0) {
call_hline_blitter(blitter, left, top, width, alpha);
}
-
+
if (R & 0xFF) {
blitter->blitV(rite, top, 1, InvAlphaMul(alpha, ~R & 0xFF));
}
@@ -801,12 +801,12 @@ static void innerstrokedot8(FDot8 L, FDot8 T, FDot8 R, FDot8 B,
}
return;
}
-
+
if (T & 0xFF) {
inner_scanline(L, top, R, T & 0xFF, blitter);
top += 1;
}
-
+
int bot = B >> 8;
int height = bot - top;
if (height > 0) {
@@ -817,7 +817,7 @@ static void innerstrokedot8(FDot8 L, FDot8 T, FDot8 R, FDot8 B,
blitter->blitV(R >> 8, top, height, ~R & 0xFF);
}
}
-
+
if (B & 0xFF) {
inner_scanline(L, bot, R, ~B & 0xFF, blitter);
}
@@ -850,7 +850,7 @@ void SkScan::AntiFrameRect(const SkRect& r, const SkPoint& strokeSize,
}
// now we can ignore clip for the rest of the function
}
-
+
// stroke the outer hull
antifilldot8(L, T, R, B, blitter, false);
diff --git a/src/core/SkScan_Hairline.cpp b/src/core/SkScan_Hairline.cpp
index 2a9660a154..69095c0c6d 100644
--- a/src/core/SkScan_Hairline.cpp
+++ b/src/core/SkScan_Hairline.cpp
@@ -71,7 +71,7 @@ void SkScan::HairLineRgn(const SkPoint& pt0, const SkPoint& pt1,
SkFDot6 y0 = SkScalarToFDot6(pts[0].fY);
SkFDot6 x1 = SkScalarToFDot6(pts[1].fX);
SkFDot6 y1 = SkScalarToFDot6(pts[1].fY);
-
+
SkASSERT(canConvertFDot6ToFixed(x0));
SkASSERT(canConvertFDot6ToFixed(y0));
SkASSERT(canConvertFDot6ToFixed(x1));
@@ -171,7 +171,7 @@ void SkScan::HairRect(const SkRect& rect, const SkRasterClip& clip,
int width = r.width();
int height = r.height();
-
+
if ((width | height) == 0) {
return;
}
@@ -415,7 +415,7 @@ void SkScan::AntiHairLine(const SkPoint& p0, const SkPoint& p1,
r.sort();
r.roundOut(&ir);
ir.inset(-1, -1);
-
+
SkAAClipBlitterWrapper wrap;
if (!clip.quickContains(ir)) {
wrap.init(clip, blitter);
diff --git a/src/core/SkScan_Path.cpp b/src/core/SkScan_Path.cpp
index bf747b7a1a..68ac7ff51f 100644
--- a/src/core/SkScan_Path.cpp
+++ b/src/core/SkScan_Path.cpp
@@ -221,9 +221,9 @@ static void walk_convex_edges(SkEdge* prevHead, SkPath::FillType,
PrePostProc proc) {
static int gCalls;
gCalls++;
-
+
validate_sort(prevHead->fNext);
-
+
SkEdge* leftE = prevHead->fNext;
SkEdge* riteE = leftE->fNext;
SkEdge* currE = riteE->fNext;
@@ -237,7 +237,7 @@ static void walk_convex_edges(SkEdge* prevHead, SkPath::FillType,
int local_top = SkMax32(leftE->fFirstY, riteE->fFirstY);
#endif
SkASSERT(local_top >= start_y);
-
+
int gLoops = 0;
for (;;) {
gLoops++;
@@ -249,11 +249,11 @@ static void walk_convex_edges(SkEdge* prevHead, SkPath::FillType,
leftE->fDX > riteE->fDX)) {
SkTSwap(leftE, riteE);
}
-
+
int local_bot = SkMin32(leftE->fLastY, riteE->fLastY);
local_bot = SkMin32(local_bot, stop_y - 1);
SkASSERT(local_top <= local_bot);
-
+
SkFixed left = leftE->fX;
SkFixed dLeft = leftE->fDX;
SkFixed rite = riteE->fX;
@@ -300,7 +300,7 @@ static void walk_convex_edges(SkEdge* prevHead, SkPath::FillType,
riteE = currE;
currE = currE->fNext;
}
-
+
SkASSERT(leftE);
SkASSERT(riteE);
@@ -403,12 +403,12 @@ extern "C" {
static bool operator<(const SkEdge& a, const SkEdge& b) {
int valuea = a.fFirstY;
int valueb = b.fFirstY;
-
+
if (valuea == valueb) {
valuea = a.fX;
valueb = b.fX;
}
-
+
return valuea < valueb;
}
#endif
diff --git a/src/core/SkShader.cpp b/src/core/SkShader.cpp
index 92a5d3f92b..40fe838f98 100644
--- a/src/core/SkShader.cpp
+++ b/src/core/SkShader.cpp
@@ -201,7 +201,7 @@ SkShader::GradientType SkShader::asAGradient(GradientInfo* info) const {
return kNone_GradientType;
}
-GrCustomStage* SkShader::asNewCustomStage(GrContext* context,
+GrCustomStage* SkShader::asNewCustomStage(GrContext* context,
GrSamplerState* sampler) const {
return NULL;
}
diff --git a/src/core/SkSpriteBlitter_RGB16.cpp b/src/core/SkSpriteBlitter_RGB16.cpp
index 2c38f71f02..1a8404f066 100644
--- a/src/core/SkSpriteBlitter_RGB16.cpp
+++ b/src/core/SkSpriteBlitter_RGB16.cpp
@@ -98,14 +98,14 @@ public:
} while (0)
#define SkSPRITE_CLASSNAME Sprite_D16_S4444_Opaque
-#define SkSPRITE_ARGS
-#define SkSPRITE_FIELDS
-#define SkSPRITE_INIT
+#define SkSPRITE_ARGS
+#define SkSPRITE_FIELDS
+#define SkSPRITE_INIT
#define SkSPRITE_DST_TYPE uint16_t
#define SkSPRITE_SRC_TYPE SkPMColor16
#define SkSPRITE_DST_GETADDR getAddr16
#define SkSPRITE_SRC_GETADDR getAddr16
-#define SkSPRITE_PREAMBLE(srcBM, x, y)
+#define SkSPRITE_PREAMBLE(srcBM, x, y)
#define SkSPRITE_BLIT_PIXEL(dst, src) D16_S4444_Opaque(dst, src)
#define SkSPRITE_NEXT_ROW
#define SkSPRITE_POSTAMBLE(srcBM)
@@ -260,15 +260,15 @@ class Sprite_D16_S32_BlitRowProc : public SkSpriteBlitter {
public:
Sprite_D16_S32_BlitRowProc(const SkBitmap& source)
: SkSpriteBlitter(source) {}
-
+
// overrides
-
+
virtual void setup(const SkBitmap& device, int left, int top,
const SkPaint& paint) {
this->INHERITED::setup(device, left, top, paint);
-
+
unsigned flags = 0;
-
+
if (paint.getAlpha() < 0xFF) {
flags |= SkBlitRow::kGlobalAlpha_Flag;
}
@@ -280,7 +280,7 @@ public:
}
fProc = SkBlitRow::Factory(flags, SkBitmap::kRGB_565_Config);
}
-
+
virtual void blitRect(int x, int y, int width, int height) {
uint16_t* SK_RESTRICT dst = fDevice->getAddr16(x, y);
const SkPMColor* SK_RESTRICT src = fSource->getAddr32(x - fLeft,
@@ -289,7 +289,7 @@ public:
unsigned srcRB = fSource->rowBytes();
SkBlitRow::Proc proc = fProc;
U8CPU alpha = fPaint->getAlpha();
-
+
while (--height >= 0) {
proc(dst, src, width, alpha, x, y);
y += 1;
@@ -297,10 +297,10 @@ public:
src = (const SkPMColor* SK_RESTRICT)((const char*)src + srcRB);
}
}
-
+
private:
SkBlitRow::Proc fProc;
-
+
typedef SkSpriteBlitter INHERITED;
};
diff --git a/src/core/SkStream.cpp b/src/core/SkStream.cpp
index ff2202d5ae..f7b1fb4f65 100644
--- a/src/core/SkStream.cpp
+++ b/src/core/SkStream.cpp
@@ -80,7 +80,7 @@ SkScalar SkStream::readScalar() {
#define SK_BYTE_SENTINEL_FOR_U32 0xFF
size_t SkStream::readPackedUInt() {
- uint8_t byte;
+ uint8_t byte;
if (!this->read(&byte, 1)) {
return 0;
}
@@ -194,7 +194,7 @@ bool SkWStream::writePackedUInt(size_t value) {
bool SkWStream::writeStream(SkStream* stream, size_t length) {
char scratch[1024];
const size_t MAX = sizeof(scratch);
-
+
while (length != 0) {
size_t n = length;
if (n > MAX) {
@@ -590,14 +590,14 @@ struct SkDynamicMemoryWStream::Block {
char* start() { return (char*)(this + 1); }
size_t avail() const { return fStop - fCurr; }
size_t written() const { return fCurr - this->start(); }
-
+
void init(size_t size)
{
fNext = NULL;
fCurr = this->start();
fStop = this->start() + size;
}
-
+
const void* append(const void* data, size_t size)
{
SkASSERT((size_t)(fStop - fCurr) >= size);
@@ -620,9 +620,9 @@ SkDynamicMemoryWStream::~SkDynamicMemoryWStream()
void SkDynamicMemoryWStream::reset()
{
this->invalidateCopy();
-
+
Block* block = fHead;
-
+
while (block != NULL) {
Block* next = block->fNext;
sk_free(block);
@@ -638,23 +638,23 @@ bool SkDynamicMemoryWStream::write(const void* buffer, size_t count)
this->invalidateCopy();
fBytesWritten += count;
-
+
size_t size;
-
+
if (fTail != NULL && fTail->avail() > 0) {
size = SkMin32(fTail->avail(), count);
buffer = fTail->append(buffer, size);
SkASSERT(count >= size);
- count -= size;
+ count -= size;
if (count == 0)
return true;
}
-
+
size = SkMax32(count, SkDynamicMemoryWStream_MinBlockSize);
Block* block = (Block*)sk_malloc_throw(sizeof(Block) + size);
block->init(size);
block->append(buffer, count);
-
+
if (fTail != NULL)
fTail->fNext = block;
else
@@ -671,7 +671,7 @@ bool SkDynamicMemoryWStream::write(const void* buffer, size_t offset, size_t cou
}
this->invalidateCopy();
-
+
Block* block = fHead;
while (block != NULL) {
size_t size = block->written();
@@ -716,7 +716,7 @@ void SkDynamicMemoryWStream::copyTo(void* dst) const
memcpy(dst, fCopy->data(), fBytesWritten);
} else {
Block* block = fHead;
-
+
while (block != NULL) {
size_t size = block->written();
memcpy(dst, block->start(), size);
diff --git a/src/core/SkStroke.cpp b/src/core/SkStroke.cpp
index 107a691e6a..0ab1016a46 100644
--- a/src/core/SkStroke.cpp
+++ b/src/core/SkStroke.cpp
@@ -319,7 +319,7 @@ DRAW_LINE:
this->cubic_to(&tmp[3], norm, unit, &dummy, &unitDummy, subDivide);
} else {
SkVector normalB, normalC;
-
+
// need normals to inset/outset the off-curve pts B and C
if (0) { // this is normal to the line between our adjacent pts
@@ -585,13 +585,13 @@ public:
fSwapWithSrc = false;
}
}
-
+
~AutoTmpPath() {
if (fSwapWithSrc) {
fTmpDst.swap(*const_cast<SkPath*>(&fSrc));
}
}
-
+
private:
SkPath fTmpDst;
const SkPath& fSrc;
@@ -608,7 +608,7 @@ void SkStroke::strokePath(const SkPath& src, SkPath* dst) const {
if (radius <= 0) {
return;
}
-
+
#ifdef SK_SCALAR_IS_FIXED
void (*proc)(SkPoint pts[], int count) = identity_proc;
if (needs_to_shrink(src)) {
@@ -686,7 +686,7 @@ void SkStroke::strokePath(const SkPath& src, SkPath* dst) const {
paint.setStrokeWidth(7);
paint.setStrokeCap(SkPaint::kRound_Cap);
canvas->drawLine(pts[0].fX, pts[0].fY, pts[1].fX, pts[1].fY, paint);
- }
+ }
#endif
#if 0
if (2 == src.countPoints()) {
diff --git a/src/core/SkStrokerPriv.cpp b/src/core/SkStrokerPriv.cpp
index 85aae0291d..0a0a581e8e 100644
--- a/src/core/SkStrokerPriv.cpp
+++ b/src/core/SkStrokerPriv.cpp
@@ -180,7 +180,7 @@ static void MiterJoiner(SkPath* outer, SkPath* inner, const SkVector& beforeUnit
currIsLine = false;
goto DO_BLUNT;
}
-
+
ccw = !is_clockwise(before, after);
if (ccw)
{
@@ -188,7 +188,7 @@ static void MiterJoiner(SkPath* outer, SkPath* inner, const SkVector& beforeUnit
before.negate();
after.negate();
}
-
+
/* Before we enter the world of square-roots and divides,
check if we're trying to join an upright right angle
(common case for stroking rectangles). If so, special case
diff --git a/src/core/SkTLS.cpp b/src/core/SkTLS.cpp
index 2d84d6b23d..e4f61881b0 100755
--- a/src/core/SkTLS.cpp
+++ b/src/core/SkTLS.cpp
@@ -65,7 +65,7 @@ void* SkTLS::Get(CreateProc createProc, DeleteProc deleteProc) {
} while ((rec = rec->fNext) != NULL);
// not found, so create a new one
}
-
+
// add a new head of our change
SkTLSRec* rec = new SkTLSRec;
rec->fNext = (SkTLSRec*)ptr;
@@ -82,7 +82,7 @@ void* SkTLS::Find(CreateProc createProc) {
if (NULL == createProc) {
return NULL;
}
-
+
void* ptr = SkTLS::PlatformGetSpecific(false);
if (ptr) {
@@ -100,9 +100,9 @@ void SkTLS::Delete(CreateProc createProc) {
if (NULL == createProc) {
return;
}
-
+
void* ptr = SkTLS::PlatformGetSpecific(false);
-
+
SkTLSRec* curr = (SkTLSRec*)ptr;
SkTLSRec* prev = NULL;
while (curr) {
diff --git a/src/core/SkTLS.h b/src/core/SkTLS.h
index 5d0e1a649d..ad5daa7c1f 100644
--- a/src/core/SkTLS.h
+++ b/src/core/SkTLS.h
@@ -1,6 +1,6 @@
//
// SkTLS.h
-//
+//
//
// Created by Mike Reed on 4/21/12.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
@@ -18,7 +18,7 @@ class SkTLS {
public:
typedef void* (*CreateProc)();
typedef void (*DeleteProc)(void*);
-
+
/**
* If Get() has previously been called with this CreateProc, then this
* returns its cached data, otherwise it returns NULL. The CreateProc is
@@ -26,7 +26,7 @@ public:
* cache.
*/
static void* Find(CreateProc);
-
+
/**
* Return the cached data that was returned by the CreateProc. This proc
* is only called the first time Get is called, and there after it is
diff --git a/src/core/SkTRefArray.h b/src/core/SkTRefArray.h
index 8c2c7fdc46..9692adba00 100755
--- a/src/core/SkTRefArray.h
+++ b/src/core/SkTRefArray.h
@@ -26,7 +26,7 @@ template <typename T> class SkTRefArray : public SkRefCnt {
// space for us, and our [count] elements
size_t size = sizeof(SkTRefArray<T>) + count * sizeof(T);
SkTRefArray<T>* obj = (SkTRefArray<T>*)sk_malloc_throw(size);
-
+
SkNEW_PLACEMENT(obj, SkTRefArray<T>);
obj->fCount = count;
return obj;
@@ -46,7 +46,7 @@ public:
}
return obj;
}
-
+
/**
* Return a new array with 'count' elements, initialized from the provided
* src array. To change them to some other value, use writableBegin/End or
@@ -60,7 +60,7 @@ public:
}
return obj;
}
-
+
int count() const { return fCount; }
const T* begin() const { return (const T*)(this + 1); }
const T* end() const { return this->begin() + fCount; }
@@ -89,12 +89,12 @@ protected:
virtual void internal_dispose() const SK_OVERRIDE {
T* array = const_cast<T*>(this->begin());
int n = fCount;
-
+
for (int i = 0; i < n; ++i) {
array->~T();
array += 1;
}
-
+
this->internal_dispose_restore_refcnt_to_1();
this->~SkTRefArray<T>();
sk_free((void*)this);
diff --git a/src/core/SkTSearch.cpp b/src/core/SkTSearch.cpp
index a48820d01d..801c0d6ef5 100644
--- a/src/core/SkTSearch.cpp
+++ b/src/core/SkTSearch.cpp
@@ -93,7 +93,7 @@ SkAutoAsciiToLC::SkAutoAsciiToLC(const char str[], size_t len)
lc = (char*)sk_malloc_throw(len + 1);
}
fLC = lc;
-
+
// convert any asii to lower-case. we let non-ascii (utf8) chars pass
// through unchanged
for (int i = (int)(len - 1); i >= 0; --i) {
diff --git a/src/core/SkUnPreMultiply.cpp b/src/core/SkUnPreMultiply.cpp
index 5f32da665c..ad87f8af14 100644
--- a/src/core/SkUnPreMultiply.cpp
+++ b/src/core/SkUnPreMultiply.cpp
@@ -56,18 +56,18 @@ const uint32_t SkUnPreMultiply::gTable[] = {
void SkUnPreMultiply_BuildTable() {
for (unsigned i = 0; i <= 255; i++) {
uint32_t scale;
-
+
if (0 == i) {
scale = 0;
} else {
scale = ((255 << 24) + (i >> 1)) / i;
}
-
+
SkDebugf(" 0x%08X,", scale);
if ((i & 7) == 7) {
SkDebugf("\n");
}
-
+
// test the result
for (int j = 1; j <= i; j++) {
uint32_t test = (j * scale + (1 << 23)) >> 24;
diff --git a/src/core/SkUtils.cpp b/src/core/SkUtils.cpp
index 3f1c65e777..fe498ceba1 100644
--- a/src/core/SkUtils.cpp
+++ b/src/core/SkUtils.cpp
@@ -207,7 +207,7 @@ SkUnichar SkUTF8_NextUnichar(const char** ptr) {
const uint8_t* p = (const uint8_t*)*ptr;
int c = *p;
int hic = c << 24;
-
+
assert_utf8_leadingbyte(c);
if (hic < 0) {
@@ -227,7 +227,7 @@ SkUnichar SkUTF8_PrevUnichar(const char** ptr) {
SkASSERT(NULL != ptr && NULL != *ptr);
const char* p = *ptr;
-
+
if (*--p & 0x80) {
while (*--p & 0x40) {
;
@@ -314,15 +314,15 @@ int SkUTF16_CountUnichars(const uint16_t src[], int numberOf16BitValues) {
SkUnichar SkUTF16_NextUnichar(const uint16_t** srcPtr) {
SkASSERT(srcPtr && *srcPtr);
-
+
const uint16_t* src = *srcPtr;
SkUnichar c = *src++;
-
+
SkASSERT(!SkUTF16_IsLowSurrogate(c));
if (SkUTF16_IsHighSurrogate(c)) {
unsigned c2 = *src++;
SkASSERT(SkUTF16_IsLowSurrogate(c2));
-
+
// c = ((c & 0x3FF) << 10) + (c2 & 0x3FF) + 0x10000
// c = (((c & 0x3FF) + 64) << 10) + (c2 & 0x3FF)
c = (c << 10) + c2 + (0x10000 - (0xD800 << 10) - 0xDC00);
@@ -333,10 +333,10 @@ SkUnichar SkUTF16_NextUnichar(const uint16_t** srcPtr) {
SkUnichar SkUTF16_PrevUnichar(const uint16_t** srcPtr) {
SkASSERT(srcPtr && *srcPtr);
-
+
const uint16_t* src = *srcPtr;
SkUnichar c = *--src;
-
+
SkASSERT(!SkUTF16_IsHighSurrogate(c));
if (SkUTF16_IsLowSurrogate(c)) {
unsigned c2 = *--src;
@@ -358,7 +358,7 @@ size_t SkUTF16_FromUnichar(SkUnichar uni, uint16_t dst[]) {
// dst[0] = SkToU16(0xD800 | ((uni >> 10) - 64));
dst[0] = SkToU16((0xD800 - 64) + (uni >> 10));
dst[1] = SkToU16(0xDC00 | (uni & 0x3FF));
-
+
SkASSERT(SkUTF16_IsHighSurrogate(dst[0]));
SkASSERT(SkUTF16_IsLowSurrogate(dst[1]));
} else {
@@ -378,10 +378,10 @@ size_t SkUTF16_ToUTF8(const uint16_t utf16[], int numberOf16BitValues,
}
SkASSERT(utf16 != NULL);
-
+
const uint16_t* stop = utf16 + numberOf16BitValues;
size_t size = 0;
-
+
if (utf8 == NULL) { // just count
while (utf16 < stop) {
size += SkUTF8_FromUnichar(SkUTF16_NextUnichar(&utf16), NULL);
diff --git a/src/core/SkUtilsArm.cpp b/src/core/SkUtilsArm.cpp
index e48457642d..1c49316d9e 100644
--- a/src/core/SkUtilsArm.cpp
+++ b/src/core/SkUtilsArm.cpp
@@ -68,7 +68,7 @@ static bool sk_cpu_arm_check_neon(void) {
/*
Processor : ARMv7 Processor rev 2 (v7l)
BogoMIPS : 994.65
- Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3
+ Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x2
diff --git a/src/core/SkWriter32.cpp b/src/core/SkWriter32.cpp
index 926a4303ec..636af360c4 100644
--- a/src/core/SkWriter32.cpp
+++ b/src/core/SkWriter32.cpp
@@ -11,11 +11,11 @@ struct SkWriter32::Block {
Block* fNext;
size_t fSize; // total space allocated (after this)
size_t fAllocated; // space used so far
-
+
size_t available() const { return fSize - fAllocated; }
char* base() { return (char*)(this + 1); }
const char* base() const { return (const char*)(this + 1); }
-
+
uint32_t* alloc(size_t size) {
SkASSERT(SkAlign4(size) == size);
SkASSERT(this->available() >= size);
@@ -24,7 +24,7 @@ struct SkWriter32::Block {
SkASSERT(fAllocated <= fSize);
return (uint32_t*)ptr;
}
-
+
uint32_t* peek32(size_t offset) {
SkASSERT(offset <= fAllocated + 4);
void* ptr = this->base() + offset;
@@ -45,7 +45,7 @@ struct SkWriter32::Block {
block->fAllocated = 0;
return block;
}
-
+
static Block* CreateFromStorage(void* storage, size_t size) {
SkASSERT(SkIsAlign4((intptr_t)storage));
Block* block = (Block*)storage;
@@ -54,7 +54,7 @@ struct SkWriter32::Block {
block->fAllocated = 0;
return block;
}
-
+
};
#define MIN_BLOCKSIZE (sizeof(SkWriter32::Block) + sizeof(intptr_t))
@@ -83,7 +83,7 @@ SkWriter32::~SkWriter32() {
void SkWriter32::reset() {
Block* block = fHead;
-
+
if (fHeadIsExternalStorage) {
SkASSERT(block);
// don't 'free' the first block, since it is owned by the caller
@@ -133,7 +133,7 @@ uint32_t* SkWriter32::reserve(size_t size) {
block->fNext = fTail;
block = fTail;
}
-
+
fSize += size;
return block->alloc(size);
@@ -149,7 +149,7 @@ uint32_t* SkWriter32::peek32(size_t offset) {
Block* block = fHead;
SkASSERT(NULL != block);
-
+
while (offset >= block->fAllocated) {
offset -= block->fAllocated;
block = block->fNext;
@@ -209,7 +209,7 @@ size_t SkWriter32::readFromStream(SkStream* stream, size_t length) {
char scratch[1024];
const size_t MAX = sizeof(scratch);
size_t remaining = length;
-
+
while (remaining != 0) {
size_t n = remaining;
if (n > MAX) {
@@ -230,7 +230,7 @@ bool SkWriter32::writeToStream(SkWStream* stream) {
return stream->write(fSingleBlock, fSize);
}
- const Block* block = fHead;
+ const Block* block = fHead;
while (block) {
if (!stream->write(block->base(), block->fAllocated)) {
return false;
diff --git a/src/effects/Sk1DPathEffect.cpp b/src/effects/Sk1DPathEffect.cpp
index a176cf87e6..6536826d61 100644
--- a/src/effects/Sk1DPathEffect.cpp
+++ b/src/effects/Sk1DPathEffect.cpp
@@ -29,7 +29,7 @@ bool Sk1DPathEffect::filterPath(SkPath* dst, const SkPath& src, SkStrokeRec*) {
///////////////////////////////////////////////////////////////////////////////
-SkPath1DPathEffect::SkPath1DPathEffect(const SkPath& path, SkScalar advance,
+SkPath1DPathEffect::SkPath1DPathEffect(const SkPath& path, SkScalar advance,
SkScalar phase, Style style) : fPath(path)
{
if (advance <= 0 || path.isEmpty()) {
@@ -59,7 +59,7 @@ SkPath1DPathEffect::SkPath1DPathEffect(const SkPath& path, SkScalar advance,
fAdvance = advance;
fInitialOffset = phase;
-
+
if ((unsigned)style >= kStyleCount) {
SkDEBUGF(("SkPath1DPathEffect style enum out of range %d\n", style));
}
@@ -81,17 +81,17 @@ static bool morphpoints(SkPoint dst[], const SkPoint src[], int count,
for (int i = 0; i < count; i++) {
SkPoint pos;
SkVector tangent;
-
+
SkScalar sx = src[i].fX;
SkScalar sy = src[i].fY;
-
+
if (!meas.getPosTan(dist + sx, &pos, &tangent)) {
return false;
}
-
+
SkMatrix matrix;
SkPoint pt;
-
+
pt.set(sx, sy);
matrix.setSinCos(tangent.fY, tangent.fX, 0, 0);
matrix.preTranslate(-sx, 0);
diff --git a/src/effects/SkBlurDrawLooper.cpp b/src/effects/SkBlurDrawLooper.cpp
index 9ec2aff97f..8ba2cfc42c 100644
--- a/src/effects/SkBlurDrawLooper.cpp
+++ b/src/effects/SkBlurDrawLooper.cpp
@@ -24,11 +24,11 @@ SkBlurDrawLooper::SkBlurDrawLooper(SkScalar radius, SkScalar dx, SkScalar dy,
SkBlurMaskFilter::kNone_BlurFlag;
blurFlags |= flags & kHighQuality_BlurFlag ?
- SkBlurMaskFilter::kHighQuality_BlurFlag :
+ SkBlurMaskFilter::kHighQuality_BlurFlag :
SkBlurMaskFilter::kNone_BlurFlag;
fBlur = SkBlurMaskFilter::Create(radius,
- SkBlurMaskFilter::kNormal_BlurStyle,
+ SkBlurMaskFilter::kNormal_BlurStyle,
blurFlags);
} else {
fBlur = NULL;
diff --git a/src/effects/SkBlurMask.cpp b/src/effects/SkBlurMask.cpp
index 95a1e6b2e5..f545d8c928 100644
--- a/src/effects/SkBlurMask.cpp
+++ b/src/effects/SkBlurMask.cpp
@@ -24,10 +24,10 @@
src values at their position, plus all values above and to the left.
When we sample into this buffer, we need an initial row and column of 0s,
so we have an index correspondence as follows:
-
+
src[i, j] == sum[i+1, j+1]
sum[0, j] == sum[i, 0] == 0
-
+
We assume that the sum buffer's stride == its width
*/
static void build_sum_buffer(uint32_t sum[], int srcW, int srcH,
diff --git a/src/effects/SkBlurMaskFilter.cpp b/src/effects/SkBlurMaskFilter.cpp
index cc5f679275..4af3bfc039 100644
--- a/src/effects/SkBlurMaskFilter.cpp
+++ b/src/effects/SkBlurMaskFilter.cpp
@@ -33,7 +33,7 @@ private:
SkBlurMaskFilterImpl(SkFlattenableReadBuffer&);
virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
-
+
typedef SkMaskFilter INHERITED;
};
@@ -41,7 +41,7 @@ SkMaskFilter* SkBlurMaskFilter::Create(SkScalar radius,
SkBlurMaskFilter::BlurStyle style,
uint32_t flags) {
// use !(radius > 0) instead of radius <= 0 to reject NaN values
- if (!(radius > 0) || (unsigned)style >= SkBlurMaskFilter::kBlurStyleCount
+ if (!(radius > 0) || (unsigned)style >= SkBlurMaskFilter::kBlurStyleCount
|| flags > SkBlurMaskFilter::kAll_BlurFlag) {
return NULL;
}
@@ -89,7 +89,7 @@ bool SkBlurMaskFilterImpl::filterMask(SkMask* dst, const SkMask& src,
static const SkScalar MAX_RADIUS = SkIntToScalar(128);
radius = SkMinScalar(radius, MAX_RADIUS);
SkBlurMask::Quality blurQuality =
- (fBlurFlags & SkBlurMaskFilter::kHighQuality_BlurFlag) ?
+ (fBlurFlags & SkBlurMaskFilter::kHighQuality_BlurFlag) ?
SkBlurMask::kHigh_Quality : SkBlurMask::kLow_Quality;
return SkBlurMask::Blur(dst, src, radius, (SkBlurMask::Style)fBlurStyle,
diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/SkColorFilterImageFilter.cpp
index 474a4e6978..03e2be46dd 100755
--- a/src/effects/SkColorFilterImageFilter.cpp
+++ b/src/effects/SkColorFilterImageFilter.cpp
@@ -22,7 +22,7 @@ SkColorFilterImageFilter::SkColorFilterImageFilter(SkFlattenableReadBuffer& buff
void SkColorFilterImageFilter::flatten(SkFlattenableWriteBuffer& buffer) const {
this->INHERITED::flatten(buffer);
-
+
buffer.writeFlattenable(fColorFilter);
}
diff --git a/src/effects/SkColorFilters.cpp b/src/effects/SkColorFilters.cpp
index 2862f8bfb8..aae7868c3c 100644
--- a/src/effects/SkColorFilters.cpp
+++ b/src/effects/SkColorFilters.cpp
@@ -34,7 +34,7 @@ public:
SkXfermode::Mode getMode() const { return fMode; }
bool isModeValid() const { return ILLEGAL_XFERMODE_MODE != fMode; }
SkPMColor getPMColor() const { return fPMColor; }
-
+
virtual bool asColorMode(SkColor* color, SkXfermode::Mode* mode) SK_OVERRIDE {
if (ILLEGAL_XFERMODE_MODE == fMode) {
return false;
@@ -52,29 +52,29 @@ public:
virtual uint32_t getFlags() SK_OVERRIDE {
return fProc16 ? (kAlphaUnchanged_Flag | kHasFilter16_Flag) : 0;
}
-
+
virtual void filterSpan(const SkPMColor shader[], int count,
SkPMColor result[]) SK_OVERRIDE {
SkPMColor color = fPMColor;
SkXfermodeProc proc = fProc;
-
+
for (int i = 0; i < count; i++) {
result[i] = proc(color, shader[i]);
}
}
-
+
virtual void filterSpan16(const uint16_t shader[], int count,
uint16_t result[]) SK_OVERRIDE {
SkASSERT(this->getFlags() & kHasFilter16_Flag);
-
+
SkPMColor color = fPMColor;
SkXfermodeProc16 proc16 = fProc16;
-
+
for (int i = 0; i < count; i++) {
result[i] = proc16(color, shader[i]);
}
}
-
+
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkModeColorFilter)
protected:
@@ -97,13 +97,13 @@ private:
SkPMColor fPMColor;
SkXfermodeProc fProc;
SkXfermodeProc16 fProc16;
-
+
void updateCache() {
fPMColor = SkPreMultiplyColor(fColor);
fProc = SkXfermode::GetProc(fMode);
fProc16 = SkXfermode::GetProc16(fMode, fColor);
}
-
+
typedef SkColorFilter INHERITED;
};
diff --git a/src/effects/SkColorMatrix.cpp b/src/effects/SkColorMatrix.cpp
index 5f6cfd4777..98e2865601 100644
--- a/src/effects/SkColorMatrix.cpp
+++ b/src/effects/SkColorMatrix.cpp
@@ -46,7 +46,7 @@ void SkColorMatrix::setSinCos(Axis axis, SkScalar sine, SkScalar cosine) {
0, 1, 5, 6,
};
const uint8_t* index = gRotateIndex + axis * 4;
-
+
this->setIdentity();
fMat[index[0]] = cosine;
fMat[index[1]] = sine;
@@ -76,14 +76,14 @@ void SkColorMatrix::setConcat(const SkColorMatrix& matA,
if (&matA == this || &matB == this) {
result = tmp;
}
-
+
const SkScalar* a = matA.fMat;
const SkScalar* b = matB.fMat;
int index = 0;
for (int j = 0; j < 20; j += 5) {
for (int i = 0; i < 4; i++) {
- result[index++] = SkScalarMul(a[j + 0], b[i + 0]) +
+ result[index++] = SkScalarMul(a[j + 0], b[i + 0]) +
SkScalarMul(a[j + 1], b[i + 5]) +
SkScalarMul(a[j + 2], b[i + 10]) +
SkScalarMul(a[j + 3], b[i + 15]);
@@ -94,7 +94,7 @@ void SkColorMatrix::setConcat(const SkColorMatrix& matA,
SkScalarMul(a[j + 3], b[19]) +
a[j + 4];
}
-
+
if (fMat != result) {
memcpy(fMat, result, sizeof(fMat));
}
@@ -139,7 +139,7 @@ static const SkScalar kB2V = SkFloatToScalar(-0.08131f);
void SkColorMatrix::setRGB2YUV() {
memset(fMat, 0, sizeof(fMat));
-
+
setrow(fMat + 0, kR2Y, kG2Y, kB2Y);
setrow(fMat + 5, kR2U, kG2U, kB2U);
setrow(fMat + 10, kR2V, kG2V, kB2V);
@@ -153,7 +153,7 @@ static const SkScalar kU2B = SkFloatToScalar(1.772f);
void SkColorMatrix::setYUV2RGB() {
memset(fMat, 0, sizeof(fMat));
-
+
setrow(fMat + 0, SK_Scalar1, 0, kV2R);
setrow(fMat + 5, SK_Scalar1, kU2G, kV2G);
setrow(fMat + 10, SK_Scalar1, kU2B, 0);
diff --git a/src/effects/SkCornerPathEffect.cpp b/src/effects/SkCornerPathEffect.cpp
index 8c7383c554..bc5165ac8b 100644
--- a/src/effects/SkCornerPathEffect.cpp
+++ b/src/effects/SkCornerPathEffect.cpp
@@ -25,7 +25,7 @@ static bool ComputeStep(const SkPoint& a, const SkPoint& b, SkScalar radius,
SkScalar dist = SkPoint::Distance(a, b);
step->set(b.fX - a.fX, b.fY - a.fY);
-
+
if (dist <= radius * 2) {
step->scale(SK_ScalarHalf);
return false;
diff --git a/src/effects/SkDashPathEffect.cpp b/src/effects/SkDashPathEffect.cpp
index 165ad9556a..3299c63581 100644
--- a/src/effects/SkDashPathEffect.cpp
+++ b/src/effects/SkDashPathEffect.cpp
@@ -96,12 +96,12 @@ public:
if (rec->isHairlineStyle() || !src.isLine(fPts)) {
return false;
}
-
+
// can relax this in the future, if we handle square and round caps
if (SkPaint::kButt_Cap != rec->getCap()) {
return false;
}
-
+
fTangent = fPts[1] - fPts[0];
if (fTangent.isZero()) {
return false;
@@ -115,13 +115,13 @@ public:
// now estimate how many quads will be added to the path
// resulting segments = pathLen * intervalCount / intervalLen
// resulting points = 4 * segments
-
+
SkScalar ptCount = SkScalarMulDiv(pathLength,
SkIntToScalar(intervalCount),
intervalLength);
int n = SkScalarCeilToInt(ptCount) << 2;
dst->incReserve(n);
-
+
// we will take care of the stroking
rec->setFillStyle();
return true;
@@ -175,7 +175,7 @@ bool SkDashPathEffect::filterPath(SkPath* dst, const SkPath& src,
SkScalar length = meas.getLength();
int index = fInitialDashIndex;
SkScalar scale = SK_Scalar1;
-
+
if (fScaleToFit) {
if (fIntervalLength >= length) {
scale = SkScalarDiv(length, fIntervalLength);
@@ -194,7 +194,7 @@ bool SkDashPathEffect::filterPath(SkPath* dst, const SkPath& src,
addedSegment = false;
if (is_even(index) && dlen > 0 && !skipFirstSegment) {
addedSegment = true;
-
+
if (specialLine) {
lineRec.addSegment(distance, distance + dlen, dst);
} else {
@@ -251,7 +251,7 @@ SkDashPathEffect::SkDashPathEffect(SkFlattenableReadBuffer& buffer) : INHERITED(
fInitialDashLength = buffer.readScalar();
fIntervalLength = buffer.readScalar();
fScaleToFit = buffer.readBool();
-
+
fCount = buffer.getArrayCount();
fIntervals = (SkScalar*)sk_malloc_throw(sizeof(SkScalar) * fCount);
buffer.readScalarArray(fIntervals);
diff --git a/src/effects/SkDiscretePathEffect.cpp b/src/effects/SkDiscretePathEffect.cpp
index 0cbe4615ab..d331cdbfbc 100644
--- a/src/effects/SkDiscretePathEffect.cpp
+++ b/src/effects/SkDiscretePathEffect.cpp
@@ -50,7 +50,7 @@ bool SkDiscretePathEffect::filterPath(SkPath* dst, const SkPath& src,
n -= 1;
distance += delta/2;
}
-
+
if (meas.getPosTan(distance, &p, &v)) {
Perterb(&p, v, SkScalarMul(rand.nextSScalar1(), scale));
dst->moveTo(p);
diff --git a/src/effects/SkEmbossMaskFilter.cpp b/src/effects/SkEmbossMaskFilter.cpp
index 5ed981a2cf..5ced463b2b 100644
--- a/src/effects/SkEmbossMaskFilter.cpp
+++ b/src/effects/SkEmbossMaskFilter.cpp
@@ -36,11 +36,11 @@ SkMaskFilter* SkBlurMaskFilter::CreateEmboss(const SkScalar direction[3],
int sp = pin2byte(SkScalarToFixed(specular) >> 12);
SkEmbossMaskFilter::Light light;
-
+
memcpy(light.fDirection, direction, sizeof(light.fDirection));
light.fAmbient = SkToU8(am);
light.fSpecular = SkToU8(sp);
-
+
return SkNEW_ARGS(SkEmbossMaskFilter, (light, blurRadius));
}
diff --git a/src/effects/SkEmbossMask_Table.h b/src/effects/SkEmbossMask_Table.h
index fc29a15f1c..0d331ee19c 100644
--- a/src/effects/SkEmbossMask_Table.h
+++ b/src/effects/SkEmbossMask_Table.h
@@ -10,1029 +10,1029 @@
#include "SkTypes.h"
static const uint16_t gInvSqrtTable[128 * 128] = {
- 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0787, 0x0787, 0x0787, 0x071C, 0x071C, 0x06BC, 0x0666, 0x0666, 0x0618, 0x0618,
- 0x05D1, 0x0590, 0x0555, 0x0555, 0x051E, 0x04EC, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03C3,
- 0x03A8, 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C,
- 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
- 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199,
- 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
- 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0787, 0x0787, 0x0787, 0x071C, 0x071C, 0x06BC, 0x0666, 0x0666, 0x0618, 0x0618,
- 0x05D1, 0x0590, 0x0555, 0x0555, 0x051E, 0x04EC, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03C3,
- 0x03A8, 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C,
- 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
- 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199,
- 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
- 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0787, 0x0787, 0x071C, 0x071C, 0x071C, 0x06BC, 0x0666, 0x0666, 0x0618, 0x05D1,
- 0x05D1, 0x0590, 0x0555, 0x0555, 0x051E, 0x04EC, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03C3,
- 0x03A8, 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C,
- 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
- 0x01F0, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199,
- 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
- 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0787, 0x0787, 0x0787, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0618, 0x05D1,
- 0x05D1, 0x0590, 0x0555, 0x051E, 0x051E, 0x04EC, 0x04BD, 0x0492, 0x0469, 0x0469, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03A8,
- 0x03A8, 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C,
- 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
- 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199,
- 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
- 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0787, 0x0787, 0x0787, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x0666, 0x0618, 0x0618, 0x05D1,
- 0x05D1, 0x0590, 0x0555, 0x051E, 0x051E, 0x04EC, 0x04BD, 0x0492, 0x0469, 0x0469, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03A8,
- 0x038E, 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02AA, 0x029C,
- 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
- 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199,
- 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
- 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x0800, 0x0800, 0x0800, 0x0787, 0x0787, 0x0787, 0x0787, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0618, 0x0618, 0x05D1,
- 0x0590, 0x0590, 0x0555, 0x051E, 0x04EC, 0x04EC, 0x04BD, 0x0492, 0x0469, 0x0444, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03A8,
- 0x038E, 0x0375, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x02AA, 0x029C,
- 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
- 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199,
- 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
- 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x0787, 0x0787, 0x0787, 0x0787, 0x0787, 0x0787, 0x071C, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0618, 0x05D1, 0x05D1,
- 0x0590, 0x0555, 0x0555, 0x051E, 0x04EC, 0x04BD, 0x04BD, 0x0492, 0x0469, 0x0444, 0x0421, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03A8,
- 0x038E, 0x0375, 0x035E, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F,
- 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
- 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199,
- 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
- 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x0787, 0x0787, 0x0787, 0x0787, 0x0787, 0x071C, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0618, 0x0618, 0x05D1, 0x0590,
- 0x0590, 0x0555, 0x051E, 0x051E, 0x04EC, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03E0, 0x03C3, 0x03A8,
- 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F,
- 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
- 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x019E, 0x0199,
- 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
- 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x0787, 0x0787, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0618, 0x0618, 0x05D1, 0x05D1, 0x0590,
- 0x0555, 0x0555, 0x051E, 0x04EC, 0x04EC, 0x04BD, 0x0492, 0x0469, 0x0469, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03C3, 0x03A8,
- 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F,
- 0x0282, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
- 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194,
- 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
- 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0666, 0x0618, 0x0618, 0x05D1, 0x0590, 0x0590,
- 0x0555, 0x051E, 0x051E, 0x04EC, 0x04BD, 0x04BD, 0x0492, 0x0469, 0x0444, 0x0421, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03A8, 0x038E,
- 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F,
- 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
- 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194,
- 0x018F, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
- 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x071C, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0666, 0x0618, 0x0618, 0x05D1, 0x05D1, 0x0590, 0x0555,
- 0x0555, 0x051E, 0x04EC, 0x04EC, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0444, 0x0421, 0x0400, 0x0400, 0x03E0, 0x03C3, 0x03A8, 0x038E,
- 0x0375, 0x035E, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F,
- 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
- 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194,
- 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
- 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x06BC, 0x06BC, 0x06BC, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0666, 0x0618, 0x0618, 0x0618, 0x05D1, 0x05D1, 0x0590, 0x0590, 0x0555,
- 0x051E, 0x051E, 0x04EC, 0x04BD, 0x04BD, 0x0492, 0x0469, 0x0444, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03C3, 0x03A8, 0x038E,
- 0x0375, 0x035E, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x029C, 0x028F,
- 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8,
- 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194,
- 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0158, 0x0155,
- 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x0666, 0x0666, 0x0666, 0x0666, 0x0666, 0x0666, 0x0666, 0x0618, 0x0618, 0x0618, 0x05D1, 0x05D1, 0x0590, 0x0590, 0x0555, 0x051E,
- 0x051E, 0x04EC, 0x04EC, 0x04BD, 0x0492, 0x0469, 0x0469, 0x0444, 0x0421, 0x0400, 0x0400, 0x03E0, 0x03C3, 0x03A8, 0x038E, 0x038E,
- 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282,
- 0x0276, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0,
- 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194,
- 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151,
- 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x0666, 0x0666, 0x0666, 0x0666, 0x0618, 0x0618, 0x0618, 0x0618, 0x05D1, 0x05D1, 0x05D1, 0x0590, 0x0590, 0x0555, 0x0555, 0x051E,
- 0x04EC, 0x04EC, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0444, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03E0, 0x03C3, 0x03A8, 0x038E, 0x0375,
- 0x035E, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282,
- 0x0276, 0x026A, 0x025E, 0x0253, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0,
- 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194,
- 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151,
- 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x0618, 0x0618, 0x0618, 0x0618, 0x0618, 0x0618, 0x05D1, 0x05D1, 0x05D1, 0x0590, 0x0590, 0x0590, 0x0555, 0x0555, 0x051E, 0x04EC,
- 0x04EC, 0x04BD, 0x04BD, 0x0492, 0x0469, 0x0469, 0x0444, 0x0421, 0x0400, 0x0400, 0x03E0, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x0375,
- 0x035E, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282,
- 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0,
- 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194,
- 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151,
- 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121,
- 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x0618, 0x0618, 0x05D1, 0x05D1, 0x05D1, 0x05D1, 0x05D1, 0x0590, 0x0590, 0x0590, 0x0555, 0x0555, 0x051E, 0x051E, 0x04EC, 0x04EC,
- 0x04BD, 0x04BD, 0x0492, 0x0469, 0x0469, 0x0444, 0x0421, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03C3, 0x03A8, 0x038E, 0x0375, 0x0375,
- 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282,
- 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0,
- 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x0194,
- 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151,
- 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121,
- 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x05D1, 0x05D1, 0x05D1, 0x05D1, 0x05D1, 0x0590, 0x0590, 0x0590, 0x0555, 0x0555, 0x0555, 0x051E, 0x051E, 0x04EC, 0x04EC, 0x04BD,
- 0x04BD, 0x0492, 0x0492, 0x0469, 0x0444, 0x0444, 0x0421, 0x0400, 0x0400, 0x03E0, 0x03C3, 0x03A8, 0x038E, 0x038E, 0x0375, 0x035E,
- 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0276,
- 0x026A, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01F0,
- 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F,
- 0x018A, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151,
- 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121,
- 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
- 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0555, 0x0555, 0x0555, 0x051E, 0x051E, 0x051E, 0x04EC, 0x04EC, 0x04BD, 0x04BD,
- 0x0492, 0x0492, 0x0469, 0x0444, 0x0444, 0x0421, 0x0400, 0x0400, 0x03E0, 0x03C3, 0x03C3, 0x03A8, 0x038E, 0x0375, 0x035E, 0x035E,
- 0x0348, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0276,
- 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9,
- 0x01E1, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F,
- 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151,
- 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121,
- 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
- 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x051E, 0x051E, 0x051E, 0x04EC, 0x04EC, 0x04EC, 0x04BD, 0x04BD, 0x0492,
- 0x0492, 0x0469, 0x0444, 0x0444, 0x0421, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03C3, 0x03A8, 0x038E, 0x038E, 0x0375, 0x035E, 0x0348,
- 0x0333, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0282, 0x0276,
- 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9,
- 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F,
- 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E,
- 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121,
- 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
- 0x0555, 0x0555, 0x0555, 0x051E, 0x051E, 0x051E, 0x051E, 0x051E, 0x04EC, 0x04EC, 0x04EC, 0x04BD, 0x04BD, 0x0492, 0x0492, 0x0469,
- 0x0469, 0x0444, 0x0444, 0x0421, 0x0421, 0x0400, 0x03E0, 0x03E0, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x0375, 0x035E, 0x035E, 0x0348,
- 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0276, 0x026A,
- 0x025E, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01E9,
- 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0194, 0x018F,
- 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E,
- 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121,
- 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
- 0x051E, 0x051E, 0x051E, 0x051E, 0x051E, 0x04EC, 0x04EC, 0x04EC, 0x04EC, 0x04BD, 0x04BD, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0469,
- 0x0444, 0x0444, 0x0421, 0x0421, 0x0400, 0x03E0, 0x03E0, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x0375, 0x0375, 0x035E, 0x0348, 0x0333,
- 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x026A,
- 0x025E, 0x0253, 0x0249, 0x023E, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1,
- 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A,
- 0x0186, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E,
- 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0121,
- 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
- 0x04EC, 0x04EC, 0x04EC, 0x04EC, 0x04EC, 0x04EC, 0x04BD, 0x04BD, 0x04BD, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0469, 0x0469, 0x0444,
- 0x0444, 0x0421, 0x0421, 0x0400, 0x03E0, 0x03E0, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x0375, 0x0375, 0x035E, 0x0348, 0x0348, 0x0333,
- 0x031F, 0x030C, 0x02FA, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0276, 0x026A, 0x026A,
- 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1,
- 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A,
- 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E,
- 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F,
- 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
- 0x04BD, 0x04BD, 0x04BD, 0x04BD, 0x04BD, 0x04BD, 0x04BD, 0x0492, 0x0492, 0x0492, 0x0492, 0x0469, 0x0469, 0x0444, 0x0444, 0x0421,
- 0x0421, 0x0400, 0x0400, 0x03E0, 0x03E0, 0x03C3, 0x03C3, 0x03A8, 0x038E, 0x038E, 0x0375, 0x035E, 0x0348, 0x0348, 0x0333, 0x031F,
- 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x026A, 0x025E,
- 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1,
- 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A,
- 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E,
- 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F,
- 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
- 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0469, 0x0469, 0x0469, 0x0444, 0x0444, 0x0444, 0x0421, 0x0421,
- 0x0400, 0x0400, 0x03E0, 0x03E0, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x038E, 0x0375, 0x035E, 0x035E, 0x0348, 0x0333, 0x031F, 0x031F,
- 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0276, 0x026A, 0x026A, 0x025E,
- 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01E1,
- 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x0194, 0x018F, 0x018A,
- 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A,
- 0x0147, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F,
- 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC,
- 0x0492, 0x0492, 0x0492, 0x0469, 0x0469, 0x0469, 0x0469, 0x0469, 0x0469, 0x0444, 0x0444, 0x0444, 0x0421, 0x0421, 0x0400, 0x0400,
- 0x0400, 0x03E0, 0x03C3, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x038E, 0x0375, 0x035E, 0x035E, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C,
- 0x02FA, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253,
- 0x0249, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA,
- 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186,
- 0x0181, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A,
- 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F,
- 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC,
- 0x0469, 0x0469, 0x0469, 0x0469, 0x0469, 0x0444, 0x0444, 0x0444, 0x0444, 0x0421, 0x0421, 0x0421, 0x0400, 0x0400, 0x0400, 0x03E0,
- 0x03E0, 0x03C3, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x038E, 0x0375, 0x035E, 0x035E, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x030C,
- 0x02FA, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x029C, 0x028F, 0x0282, 0x0276, 0x026A, 0x026A, 0x025E, 0x0253,
- 0x0249, 0x023E, 0x0234, 0x022B, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E1, 0x01DA,
- 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186,
- 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A,
- 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F,
- 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC,
- 0x0444, 0x0444, 0x0444, 0x0444, 0x0444, 0x0444, 0x0421, 0x0421, 0x0421, 0x0421, 0x0400, 0x0400, 0x0400, 0x03E0, 0x03E0, 0x03C3,
- 0x03C3, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x0375, 0x0375, 0x035E, 0x035E, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA,
- 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249,
- 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4,
- 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186,
- 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A,
- 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C,
- 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC,
- 0x0421, 0x0421, 0x0421, 0x0421, 0x0421, 0x0421, 0x0421, 0x0400, 0x0400, 0x0400, 0x0400, 0x03E0, 0x03E0, 0x03E0, 0x03C3, 0x03C3,
- 0x03A8, 0x03A8, 0x038E, 0x038E, 0x0375, 0x0375, 0x035E, 0x035E, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8,
- 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249,
- 0x023E, 0x0234, 0x022B, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4,
- 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181,
- 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147,
- 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C,
- 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC,
- 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x03E0, 0x03E0, 0x03E0, 0x03E0, 0x03C3, 0x03C3, 0x03C3, 0x03A8, 0x03A8,
- 0x038E, 0x038E, 0x038E, 0x0375, 0x0375, 0x035E, 0x0348, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02E8,
- 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x029C, 0x028F, 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E,
- 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4,
- 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181,
- 0x017D, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147,
- 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C,
- 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA,
- 0x03E0, 0x03E0, 0x03E0, 0x03E0, 0x03E0, 0x03E0, 0x03E0, 0x03E0, 0x03C3, 0x03C3, 0x03C3, 0x03C3, 0x03A8, 0x03A8, 0x03A8, 0x038E,
- 0x038E, 0x0375, 0x0375, 0x035E, 0x035E, 0x0348, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8,
- 0x02C8, 0x02C8, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0253, 0x0249, 0x023E,
- 0x0234, 0x022B, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD,
- 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181,
- 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147,
- 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C,
- 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA,
- 0x03C3, 0x03C3, 0x03C3, 0x03C3, 0x03C3, 0x03C3, 0x03C3, 0x03C3, 0x03C3, 0x03A8, 0x03A8, 0x03A8, 0x038E, 0x038E, 0x038E, 0x0375,
- 0x0375, 0x035E, 0x035E, 0x035E, 0x0348, 0x0348, 0x0333, 0x031F, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8,
- 0x02C8, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234,
- 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01D4, 0x01CD,
- 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D,
- 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x014A, 0x0147,
- 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A,
- 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA,
- 0x03C3, 0x03C3, 0x03C3, 0x03A8, 0x03A8, 0x03A8, 0x03A8, 0x03A8, 0x03A8, 0x038E, 0x038E, 0x038E, 0x038E, 0x0375, 0x0375, 0x0375,
- 0x035E, 0x035E, 0x0348, 0x0348, 0x0333, 0x0333, 0x031F, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02C8,
- 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x026A, 0x026A, 0x025E, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234,
- 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7,
- 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D,
- 0x0178, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144,
- 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A,
- 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA,
- 0x03A8, 0x03A8, 0x03A8, 0x03A8, 0x038E, 0x038E, 0x038E, 0x038E, 0x038E, 0x038E, 0x0375, 0x0375, 0x0375, 0x035E, 0x035E, 0x035E,
- 0x0348, 0x0348, 0x0333, 0x0333, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02C8, 0x02B9,
- 0x02AA, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x0253, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B,
- 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01C7,
- 0x01C0, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0186, 0x0181, 0x017D,
- 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144,
- 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A,
- 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA,
- 0x038E, 0x038E, 0x038E, 0x038E, 0x038E, 0x0375, 0x0375, 0x0375, 0x0375, 0x0375, 0x035E, 0x035E, 0x035E, 0x035E, 0x0348, 0x0348,
- 0x0333, 0x0333, 0x0333, 0x031F, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02AA,
- 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x0253, 0x0253, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B,
- 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C7,
- 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178,
- 0x0174, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x014A, 0x0147, 0x0144,
- 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A,
- 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8,
- 0x0375, 0x0375, 0x0375, 0x0375, 0x0375, 0x0375, 0x035E, 0x035E, 0x035E, 0x035E, 0x035E, 0x0348, 0x0348, 0x0348, 0x0333, 0x0333,
- 0x0333, 0x031F, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02AA, 0x02AA,
- 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x023E, 0x023E, 0x0234, 0x022B, 0x0222,
- 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0,
- 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178,
- 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141,
- 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118,
- 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8,
- 0x035E, 0x035E, 0x035E, 0x035E, 0x035E, 0x035E, 0x035E, 0x0348, 0x0348, 0x0348, 0x0348, 0x0333, 0x0333, 0x0333, 0x0333, 0x031F,
- 0x031F, 0x030C, 0x030C, 0x030C, 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x029C,
- 0x028F, 0x028F, 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x022B, 0x022B, 0x0222,
- 0x0219, 0x0210, 0x0208, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0,
- 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178,
- 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141,
- 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118,
- 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8,
- 0x0348, 0x0348, 0x0348, 0x0348, 0x0348, 0x0348, 0x0348, 0x0333, 0x0333, 0x0333, 0x0333, 0x0333, 0x031F, 0x031F, 0x031F, 0x030C,
- 0x030C, 0x030C, 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x028F,
- 0x028F, 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x022B, 0x022B, 0x0222, 0x0219,
- 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA,
- 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174,
- 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141,
- 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118,
- 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8,
- 0x0333, 0x0333, 0x0333, 0x0333, 0x0333, 0x0333, 0x0333, 0x0333, 0x031F, 0x031F, 0x031F, 0x031F, 0x030C, 0x030C, 0x030C, 0x02FA,
- 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x029C, 0x029C, 0x028F, 0x028F,
- 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0219, 0x0219,
- 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA,
- 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174,
- 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E,
- 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115,
- 0x0113, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6,
- 0x031F, 0x031F, 0x031F, 0x031F, 0x031F, 0x031F, 0x031F, 0x031F, 0x030C, 0x030C, 0x030C, 0x030C, 0x030C, 0x02FA, 0x02FA, 0x02FA,
- 0x02E8, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x029C, 0x028F, 0x028F, 0x0282,
- 0x0276, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0219, 0x0219, 0x0210,
- 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4,
- 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170,
- 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E,
- 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115,
- 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6,
- 0x030C, 0x030C, 0x030C, 0x030C, 0x030C, 0x030C, 0x030C, 0x030C, 0x030C, 0x02FA, 0x02FA, 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02E8,
- 0x02D8, 0x02D8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x029C, 0x028F, 0x028F, 0x0282, 0x0282, 0x0276,
- 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0208,
- 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01BA, 0x01B4,
- 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0170,
- 0x016C, 0x0168, 0x0164, 0x0160, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013E,
- 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0115,
- 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6,
- 0x02FA, 0x02FA, 0x02FA, 0x02FA, 0x02FA, 0x02FA, 0x02FA, 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02D8,
- 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x029C, 0x028F, 0x028F, 0x0282, 0x0282, 0x0276, 0x026A,
- 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0208, 0x0208,
- 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01AF,
- 0x01A9, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x0170,
- 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B,
- 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113,
- 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4,
- 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02C8, 0x02C8,
- 0x02C8, 0x02B9, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x029C, 0x028F, 0x028F, 0x0282, 0x0282, 0x0276, 0x0276, 0x026A, 0x026A,
- 0x025E, 0x0253, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200,
- 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF,
- 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C,
- 0x0168, 0x0164, 0x0160, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B,
- 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113,
- 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4,
- 0x02E8, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02B9, 0x02B9,
- 0x02B9, 0x02AA, 0x02AA, 0x02AA, 0x029C, 0x029C, 0x028F, 0x028F, 0x028F, 0x0282, 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x025E,
- 0x0253, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8,
- 0x01F8, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01A9,
- 0x01A4, 0x019E, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x016C,
- 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138,
- 0x0135, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113,
- 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4,
- 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02B9, 0x02B9, 0x02B9, 0x02B9, 0x02AA,
- 0x02AA, 0x02AA, 0x029C, 0x029C, 0x028F, 0x028F, 0x028F, 0x0282, 0x0282, 0x0276, 0x0276, 0x026A, 0x026A, 0x025E, 0x025E, 0x0253,
- 0x0253, 0x0249, 0x023E, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8,
- 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A9,
- 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168,
- 0x0164, 0x0160, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138,
- 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111,
- 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2,
- 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02B9, 0x02B9, 0x02B9, 0x02B9, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x02AA, 0x02AA, 0x029C,
- 0x029C, 0x029C, 0x028F, 0x028F, 0x028F, 0x0282, 0x0282, 0x0276, 0x0276, 0x026A, 0x026A, 0x025E, 0x025E, 0x0253, 0x0253, 0x0249,
- 0x0249, 0x023E, 0x023E, 0x0234, 0x022B, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0,
- 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4,
- 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168,
- 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0138,
- 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111,
- 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2,
- 0x02B9, 0x02B9, 0x02B9, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x02AA, 0x02AA, 0x02AA, 0x02AA, 0x029C, 0x029C, 0x029C, 0x029C, 0x028F,
- 0x028F, 0x028F, 0x0282, 0x0282, 0x0282, 0x0276, 0x0276, 0x026A, 0x026A, 0x026A, 0x025E, 0x025E, 0x0253, 0x0253, 0x0249, 0x0249,
- 0x023E, 0x0234, 0x0234, 0x022B, 0x022B, 0x0222, 0x0219, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01E9,
- 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E,
- 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164,
- 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135,
- 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111,
- 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2,
- 0x02AA, 0x02AA, 0x02AA, 0x02AA, 0x02AA, 0x02AA, 0x029C, 0x029C, 0x029C, 0x029C, 0x029C, 0x029C, 0x028F, 0x028F, 0x028F, 0x028F,
- 0x0282, 0x0282, 0x0282, 0x0276, 0x0276, 0x026A, 0x026A, 0x026A, 0x025E, 0x025E, 0x0253, 0x0253, 0x0249, 0x0249, 0x023E, 0x023E,
- 0x0234, 0x0234, 0x022B, 0x022B, 0x0222, 0x0219, 0x0219, 0x0210, 0x0208, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9,
- 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E,
- 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0168, 0x0164,
- 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135,
- 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E,
- 0x010C, 0x010A, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0,
- 0x029C, 0x029C, 0x029C, 0x029C, 0x029C, 0x029C, 0x028F, 0x028F, 0x028F, 0x028F, 0x028F, 0x028F, 0x0282, 0x0282, 0x0282, 0x0282,
- 0x0276, 0x0276, 0x0276, 0x026A, 0x026A, 0x026A, 0x025E, 0x025E, 0x0253, 0x0253, 0x0249, 0x0249, 0x023E, 0x023E, 0x0234, 0x0234,
- 0x022B, 0x022B, 0x0222, 0x0222, 0x0219, 0x0219, 0x0210, 0x0208, 0x0208, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E9, 0x01E1,
- 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x019E, 0x0199,
- 0x0194, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160,
- 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132,
- 0x012F, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E,
- 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0,
- 0x028F, 0x028F, 0x028F, 0x028F, 0x028F, 0x028F, 0x028F, 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, 0x0276, 0x0276, 0x0276, 0x0276,
- 0x026A, 0x026A, 0x026A, 0x025E, 0x025E, 0x025E, 0x0253, 0x0253, 0x0249, 0x0249, 0x0249, 0x023E, 0x023E, 0x0234, 0x0234, 0x022B,
- 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0208, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA,
- 0x01DA, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0199,
- 0x0194, 0x018F, 0x018A, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160,
- 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0132,
- 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010E,
- 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0,
- 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, 0x0276, 0x0276, 0x0276, 0x0276, 0x0276, 0x0276, 0x026A, 0x026A, 0x026A,
- 0x026A, 0x025E, 0x025E, 0x025E, 0x0253, 0x0253, 0x0249, 0x0249, 0x0249, 0x023E, 0x023E, 0x0234, 0x0234, 0x022B, 0x022B, 0x0222,
- 0x0222, 0x0219, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01DA,
- 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0194,
- 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0168, 0x0164, 0x0160, 0x015C,
- 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F,
- 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C,
- 0x010A, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF,
- 0x0276, 0x0276, 0x0276, 0x0276, 0x0276, 0x0276, 0x0276, 0x0276, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x025E, 0x025E, 0x025E,
- 0x025E, 0x0253, 0x0253, 0x0253, 0x0249, 0x0249, 0x0249, 0x023E, 0x023E, 0x0234, 0x0234, 0x022B, 0x022B, 0x022B, 0x0222, 0x0222,
- 0x0219, 0x0210, 0x0210, 0x0208, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4,
- 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F,
- 0x018F, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C,
- 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x012F,
- 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C,
- 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF,
- 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x0253, 0x0253, 0x0253,
- 0x0253, 0x0249, 0x0249, 0x0249, 0x023E, 0x023E, 0x023E, 0x0234, 0x0234, 0x022B, 0x022B, 0x022B, 0x0222, 0x0222, 0x0219, 0x0219,
- 0x0210, 0x0210, 0x0208, 0x0208, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD,
- 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0194, 0x0194, 0x018F,
- 0x018A, 0x0186, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x0158,
- 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C,
- 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A,
- 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00EF,
- 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x0253, 0x0253, 0x0253, 0x0253, 0x0253, 0x0249, 0x0249,
- 0x0249, 0x023E, 0x023E, 0x023E, 0x023E, 0x0234, 0x0234, 0x022B, 0x022B, 0x022B, 0x0222, 0x0222, 0x0219, 0x0219, 0x0210, 0x0210,
- 0x0208, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01CD,
- 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018A,
- 0x0186, 0x0186, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0158,
- 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012C,
- 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A,
- 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED,
- 0x0253, 0x0253, 0x0253, 0x0253, 0x0253, 0x0253, 0x0253, 0x0253, 0x0253, 0x0249, 0x0249, 0x0249, 0x0249, 0x0249, 0x023E, 0x023E,
- 0x023E, 0x023E, 0x0234, 0x0234, 0x0234, 0x022B, 0x022B, 0x022B, 0x0222, 0x0222, 0x0219, 0x0219, 0x0210, 0x0210, 0x0210, 0x0208,
- 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01C7,
- 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018A, 0x018A,
- 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155,
- 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x012C,
- 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108,
- 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED,
- 0x0249, 0x0249, 0x0249, 0x0249, 0x0249, 0x0249, 0x0249, 0x0249, 0x0249, 0x023E, 0x023E, 0x023E, 0x023E, 0x023E, 0x0234, 0x0234,
- 0x0234, 0x0234, 0x022B, 0x022B, 0x022B, 0x0222, 0x0222, 0x0222, 0x0219, 0x0219, 0x0210, 0x0210, 0x0210, 0x0208, 0x0208, 0x0200,
- 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0,
- 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018A, 0x018A, 0x0186,
- 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151,
- 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129,
- 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108,
- 0x0106, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00ED,
- 0x023E, 0x023E, 0x023E, 0x023E, 0x023E, 0x023E, 0x023E, 0x023E, 0x023E, 0x023E, 0x0234, 0x0234, 0x0234, 0x0234, 0x0234, 0x022B,
- 0x022B, 0x022B, 0x0222, 0x0222, 0x0222, 0x0219, 0x0219, 0x0219, 0x0210, 0x0210, 0x0210, 0x0208, 0x0208, 0x0200, 0x0200, 0x01F8,
- 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA,
- 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181,
- 0x0181, 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151,
- 0x014E, 0x014A, 0x0147, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129,
- 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108,
- 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB,
- 0x0234, 0x0234, 0x0234, 0x0234, 0x0234, 0x0234, 0x0234, 0x0234, 0x0234, 0x0234, 0x022B, 0x022B, 0x022B, 0x022B, 0x022B, 0x0222,
- 0x0222, 0x0222, 0x0222, 0x0219, 0x0219, 0x0219, 0x0210, 0x0210, 0x0210, 0x0208, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F8,
- 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01BA,
- 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x0181,
- 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x0168, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E,
- 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0127,
- 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106,
- 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB,
- 0x022B, 0x022B, 0x022B, 0x022B, 0x022B, 0x022B, 0x022B, 0x022B, 0x022B, 0x022B, 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0219,
- 0x0219, 0x0219, 0x0219, 0x0210, 0x0210, 0x0210, 0x0208, 0x0208, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F8, 0x01F0, 0x01F0,
- 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4,
- 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D,
- 0x0178, 0x0178, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E,
- 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0127,
- 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106,
- 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA,
- 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0219, 0x0219, 0x0219, 0x0219, 0x0210,
- 0x0210, 0x0210, 0x0210, 0x0208, 0x0208, 0x0208, 0x0200, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E9,
- 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01B4, 0x01AF,
- 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0186, 0x0181, 0x017D, 0x0178,
- 0x0178, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x0160, 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014A,
- 0x0147, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0124,
- 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104,
- 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA,
- 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210,
- 0x0208, 0x0208, 0x0208, 0x0200, 0x0200, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01E1,
- 0x01DA, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9,
- 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0186, 0x0181, 0x017D, 0x0178, 0x0178,
- 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x014A,
- 0x0147, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124,
- 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104,
- 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA,
- 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208,
- 0x0200, 0x0200, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01E1, 0x01DA,
- 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A9,
- 0x01A4, 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0186, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174,
- 0x0170, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147,
- 0x0144, 0x0141, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0121,
- 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102,
- 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8,
- 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200,
- 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01DA, 0x01D4,
- 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x01A4,
- 0x019E, 0x019E, 0x0199, 0x0194, 0x0194, 0x018F, 0x018A, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170,
- 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144,
- 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F,
- 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102,
- 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8,
- 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F8, 0x01F8,
- 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01CD,
- 0x01CD, 0x01C7, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x019E,
- 0x0199, 0x0199, 0x0194, 0x0194, 0x018F, 0x018A, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170, 0x0170,
- 0x016C, 0x0168, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0147, 0x0144,
- 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F,
- 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
- 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6,
- 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01F0, 0x01F0,
- 0x01F0, 0x01E9, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01C7,
- 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x019E, 0x019E, 0x0199,
- 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C,
- 0x0168, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0147, 0x0144, 0x0141,
- 0x013E, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C,
- 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100,
- 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6,
- 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E9, 0x01E9,
- 0x01E9, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C7,
- 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0194,
- 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168,
- 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014A, 0x014A, 0x0147, 0x0144, 0x0141, 0x0141,
- 0x013E, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C,
- 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
- 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5,
- 0x01F0, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01E1, 0x01E1,
- 0x01E1, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C7, 0x01C0, 0x01C0,
- 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x0194,
- 0x018F, 0x018F, 0x018A, 0x0186, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0168,
- 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014A, 0x014A, 0x0147, 0x0144, 0x0141, 0x0141, 0x013E,
- 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A,
- 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE,
- 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5,
- 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01DA,
- 0x01DA, 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01C0, 0x01BA, 0x01BA,
- 0x01B4, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018F,
- 0x018A, 0x018A, 0x0186, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0168, 0x0164,
- 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B,
- 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A,
- 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC,
- 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3,
- 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01D4,
- 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01B4,
- 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x0194, 0x018F, 0x018F, 0x018A,
- 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160,
- 0x015C, 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x013B,
- 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118,
- 0x0115, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC,
- 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3,
- 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01CD,
- 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01AF,
- 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x0194, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186,
- 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C,
- 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138,
- 0x0135, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0118,
- 0x0115, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA,
- 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E3,
- 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C7,
- 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01AF, 0x01A9,
- 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x0194, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186, 0x0181,
- 0x0181, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x015C,
- 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0135,
- 0x0135, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115,
- 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA,
- 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E1,
- 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C0, 0x01C0,
- 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A9, 0x01A4,
- 0x01A4, 0x019E, 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x0194, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186, 0x0186, 0x0181, 0x0181,
- 0x017D, 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158,
- 0x0155, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0147, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0135, 0x0135,
- 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113,
- 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8,
- 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E1,
- 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01BA, 0x01BA,
- 0x01BA, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x019E,
- 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x0194, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186, 0x0186, 0x0181, 0x0181, 0x017D, 0x017D,
- 0x0178, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0168, 0x0164, 0x0160, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155,
- 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0147, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132,
- 0x012F, 0x012F, 0x012C, 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113,
- 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8,
- 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E0,
- 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01B4, 0x01B4,
- 0x01B4, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x0199,
- 0x0199, 0x0199, 0x0194, 0x0194, 0x018F, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186, 0x0186, 0x0181, 0x0181, 0x017D, 0x017D, 0x0178,
- 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x0160, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151,
- 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x012F,
- 0x012F, 0x012C, 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111,
- 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6,
- 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00E0,
- 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01AF, 0x01AF,
- 0x01AF, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x019E, 0x0199, 0x0199, 0x0199,
- 0x0194, 0x0194, 0x018F, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186, 0x0186, 0x0181, 0x0181, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174,
- 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x0160, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x0151,
- 0x014E, 0x014A, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x012F, 0x012F,
- 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111,
- 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6,
- 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00DE,
- 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01A9,
- 0x01A9, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x019E, 0x0199, 0x0199, 0x0199, 0x0194, 0x0194, 0x0194,
- 0x018F, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186, 0x0186, 0x0181, 0x0181, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174, 0x0174, 0x0170,
- 0x0170, 0x016C, 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E,
- 0x014A, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C,
- 0x0129, 0x0129, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E,
- 0x010C, 0x010A, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F4,
- 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00E0, 0x00DE,
- 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A4,
- 0x01A4, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x019E, 0x019E, 0x0199, 0x0199, 0x0199, 0x0199, 0x0194, 0x0194, 0x0194, 0x018F, 0x018F,
- 0x018A, 0x018A, 0x018A, 0x0186, 0x0186, 0x0181, 0x0181, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174, 0x0174, 0x0170, 0x0170,
- 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A,
- 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129,
- 0x0129, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010C,
- 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F4,
- 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DD,
- 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x019E,
- 0x019E, 0x019E, 0x019E, 0x019E, 0x0199, 0x0199, 0x0199, 0x0194, 0x0194, 0x0194, 0x0194, 0x018F, 0x018F, 0x018F, 0x018A, 0x018A,
- 0x0186, 0x0186, 0x0186, 0x0181, 0x0181, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x016C,
- 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147,
- 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129,
- 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C,
- 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2,
- 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD,
- 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x019E, 0x019E, 0x019E, 0x019E, 0x019E, 0x0199,
- 0x0199, 0x0199, 0x0199, 0x0199, 0x0194, 0x0194, 0x0194, 0x0194, 0x018F, 0x018F, 0x018F, 0x018A, 0x018A, 0x018A, 0x0186, 0x0186,
- 0x0186, 0x0181, 0x0181, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x016C, 0x0168, 0x0168,
- 0x0164, 0x0164, 0x0160, 0x0160, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0147,
- 0x0144, 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127,
- 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A,
- 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0,
- 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DB,
- 0x019E, 0x019E, 0x019E, 0x019E, 0x019E, 0x019E, 0x019E, 0x019E, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0194,
- 0x0194, 0x0194, 0x0194, 0x0194, 0x018F, 0x018F, 0x018F, 0x018F, 0x018A, 0x018A, 0x018A, 0x0186, 0x0186, 0x0186, 0x0181, 0x0181,
- 0x0181, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0164,
- 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144,
- 0x0141, 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124,
- 0x0124, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x010A,
- 0x0108, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0,
- 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DB, 0x00DB,
- 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194,
- 0x018F, 0x018F, 0x018F, 0x018F, 0x018A, 0x018A, 0x018A, 0x018A, 0x0186, 0x0186, 0x0186, 0x0181, 0x0181, 0x0181, 0x017D, 0x017D,
- 0x017D, 0x0178, 0x0178, 0x0178, 0x0174, 0x0174, 0x0170, 0x0170, 0x0170, 0x016C, 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160,
- 0x0160, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141,
- 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0124,
- 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x010A, 0x0108,
- 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF,
- 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA,
- 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x018F, 0x018F, 0x018F, 0x018F, 0x018F, 0x018F, 0x018F,
- 0x018A, 0x018A, 0x018A, 0x018A, 0x0186, 0x0186, 0x0186, 0x0186, 0x0181, 0x0181, 0x0181, 0x0181, 0x017D, 0x017D, 0x017D, 0x0178,
- 0x0178, 0x0174, 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x0160, 0x015C,
- 0x015C, 0x0158, 0x0158, 0x0155, 0x0155, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E,
- 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121,
- 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0106,
- 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF,
- 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA,
- 0x018F, 0x018F, 0x018F, 0x018F, 0x018F, 0x018F, 0x018F, 0x018F, 0x018F, 0x018A, 0x018A, 0x018A, 0x018A, 0x018A, 0x018A, 0x018A,
- 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0181, 0x0181, 0x0181, 0x0181, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0178, 0x0174,
- 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x0160, 0x015C, 0x015C, 0x0158,
- 0x0158, 0x0155, 0x0155, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E,
- 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F,
- 0x011F, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106,
- 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00EF, 0x00ED,
- 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00D9,
- 0x018A, 0x018A, 0x018A, 0x018A, 0x018A, 0x018A, 0x018A, 0x018A, 0x018A, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186,
- 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x017D, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0178, 0x0174, 0x0174, 0x0174, 0x0170,
- 0x0170, 0x0170, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x0158, 0x0158,
- 0x0155, 0x0155, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013B, 0x013B,
- 0x0138, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011F,
- 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104,
- 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00ED,
- 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00D9, 0x00D7,
- 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181,
- 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0178, 0x0178, 0x0174, 0x0174, 0x0174, 0x0170, 0x0170, 0x0170, 0x016C,
- 0x016C, 0x016C, 0x0168, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0155,
- 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x013B, 0x0138,
- 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011C,
- 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102,
- 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB,
- 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7,
- 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x017D,
- 0x017D, 0x0178, 0x0178, 0x0178, 0x0178, 0x0174, 0x0174, 0x0174, 0x0174, 0x0170, 0x0170, 0x0170, 0x0170, 0x016C, 0x016C, 0x016C,
- 0x0168, 0x0168, 0x0164, 0x0164, 0x0164, 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0155, 0x0151, 0x0151,
- 0x014E, 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135,
- 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A,
- 0x0118, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0102,
- 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA,
- 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D6,
- 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178,
- 0x0178, 0x0174, 0x0174, 0x0174, 0x0174, 0x0170, 0x0170, 0x0170, 0x0170, 0x016C, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0168,
- 0x0164, 0x0164, 0x0164, 0x0160, 0x0160, 0x015C, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x014E,
- 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132,
- 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118,
- 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100,
- 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA,
- 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6,
- 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174,
- 0x0174, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x016C, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0168, 0x0164, 0x0164, 0x0164,
- 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A,
- 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x0132,
- 0x012F, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0118,
- 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE,
- 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00E8,
- 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D4,
- 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170,
- 0x0170, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0168, 0x0168, 0x0164, 0x0164, 0x0164, 0x0160, 0x0160, 0x0160,
- 0x015C, 0x015C, 0x015C, 0x0158, 0x0158, 0x0158, 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x014A, 0x0147,
- 0x0147, 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012F,
- 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115,
- 0x0113, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE,
- 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8,
- 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4,
- 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C,
- 0x016C, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0164, 0x0164, 0x0164, 0x0164, 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x015C,
- 0x015C, 0x0158, 0x0158, 0x0155, 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144,
- 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C,
- 0x012C, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113,
- 0x0111, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC,
- 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6,
- 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D3,
- 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168,
- 0x0168, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0160, 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x015C, 0x015C, 0x0158, 0x0158,
- 0x0158, 0x0155, 0x0155, 0x0155, 0x0151, 0x0151, 0x014E, 0x014E, 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144,
- 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129,
- 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111,
- 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA,
- 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5,
- 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D4, 0x00D3, 0x00D3,
- 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164,
- 0x0164, 0x0164, 0x0160, 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x015C, 0x015C, 0x0158, 0x0158, 0x0158, 0x0158, 0x0155, 0x0155,
- 0x0155, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E, 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141,
- 0x013E, 0x013E, 0x013B, 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127,
- 0x0127, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x0111,
- 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00FA,
- 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5,
- 0x00E3, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2,
- 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160,
- 0x0160, 0x0160, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x0158, 0x0158, 0x0158, 0x0158, 0x0155, 0x0155, 0x0155, 0x0151, 0x0151,
- 0x0151, 0x014E, 0x014E, 0x014E, 0x014A, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E,
- 0x013B, 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0127,
- 0x0124, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x010E,
- 0x010C, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8,
- 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3,
- 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D2, 0x00D0,
- 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C,
- 0x015C, 0x015C, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0155, 0x0155, 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E,
- 0x014E, 0x014A, 0x014A, 0x014A, 0x0147, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x013B,
- 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0124,
- 0x0121, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C,
- 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6,
- 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E1,
- 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0,
- 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158,
- 0x0158, 0x0158, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E, 0x014E, 0x014A, 0x014A,
- 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x013B, 0x013B, 0x0138,
- 0x0138, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121,
- 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A,
- 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F6,
- 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1,
- 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00CF,
- 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0155, 0x0155, 0x0155, 0x0155,
- 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E, 0x014E, 0x014E, 0x014A, 0x014A, 0x014A, 0x014A, 0x0147,
- 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E, 0x013E, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138, 0x0135,
- 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F,
- 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x010A,
- 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4,
- 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0,
- 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D0, 0x00CF, 0x00CF,
- 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x0151,
- 0x0151, 0x0151, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014A, 0x014A, 0x014A, 0x014A, 0x0147, 0x0147, 0x0147, 0x0147, 0x0144,
- 0x0144, 0x0144, 0x0141, 0x0141, 0x0141, 0x013E, 0x013E, 0x013E, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132,
- 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C,
- 0x011C, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108,
- 0x0106, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2,
- 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00E0,
- 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE,
- 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E, 0x014E, 0x014E,
- 0x014E, 0x014E, 0x014E, 0x014A, 0x014A, 0x014A, 0x014A, 0x0147, 0x0147, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0144, 0x0141,
- 0x0141, 0x0141, 0x013E, 0x013E, 0x013E, 0x013B, 0x013B, 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F,
- 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011C, 0x011C,
- 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106,
- 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0,
- 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00E0, 0x00DE,
- 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00CF, 0x00CE, 0x00CC,
- 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014A, 0x014A, 0x014A, 0x014A,
- 0x014A, 0x014A, 0x014A, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x0141, 0x013E,
- 0x013E, 0x013E, 0x013B, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012F,
- 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x011A,
- 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104,
- 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0,
- 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DD,
- 0x00DB, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC,
- 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x0147, 0x0147, 0x0147, 0x0147,
- 0x0147, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x0141, 0x0141, 0x013E, 0x013E, 0x013E, 0x013B,
- 0x013B, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C,
- 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0118,
- 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104,
- 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF,
- 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD,
- 0x00DB, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CB,
- 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0144,
- 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x013E, 0x013E, 0x013E, 0x013E, 0x013B, 0x013B, 0x013B, 0x013B,
- 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129,
- 0x0127, 0x0127, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115,
- 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0102,
- 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED,
- 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB,
- 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CC, 0x00CB, 0x00CB,
- 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x0141,
- 0x0141, 0x0141, 0x0141, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013B, 0x013B, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138, 0x0138,
- 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x0132, 0x012F, 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127,
- 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113,
- 0x0113, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100,
- 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED,
- 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA,
- 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA,
- 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x013E, 0x013E, 0x013E,
- 0x013E, 0x013E, 0x013E, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0135, 0x0135,
- 0x0132, 0x0132, 0x0132, 0x012F, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124,
- 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111,
- 0x0111, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE,
- 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB,
- 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA,
- 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CA, 0x00C9,
- 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013B, 0x013B, 0x013B,
- 0x013B, 0x013B, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x0132,
- 0x012F, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121, 0x0121,
- 0x0121, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111,
- 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC,
- 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA,
- 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9,
- 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9,
- 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138,
- 0x0138, 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x0132, 0x0132, 0x012F, 0x012F, 0x012F,
- 0x012C, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x0121, 0x011F,
- 0x011F, 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x010E, 0x010E,
- 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC,
- 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8,
- 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7,
- 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00C9, 0x00C7,
- 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0135,
- 0x0135, 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x012F, 0x012F, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C,
- 0x012C, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127, 0x0127, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011F, 0x011C,
- 0x011C, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010C,
- 0x010A, 0x010A, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA,
- 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E8,
- 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7,
- 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00C9, 0x00C7, 0x00C7,
- 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x0132,
- 0x0132, 0x0132, 0x0132, 0x0132, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129, 0x0129,
- 0x0129, 0x0127, 0x0127, 0x0127, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x0121, 0x011F, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A,
- 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A,
- 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8,
- 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6,
- 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6,
- 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6,
- 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x012F, 0x012F,
- 0x012F, 0x012F, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127, 0x0127,
- 0x0127, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x0121, 0x011F, 0x011F, 0x011F, 0x011C, 0x011C, 0x011C, 0x011A, 0x011A, 0x0118,
- 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108,
- 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6,
- 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5,
- 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4,
- 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA, 0x00C9, 0x00C9, 0x00C7, 0x00C6, 0x00C5,
- 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012C, 0x012C,
- 0x012C, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127, 0x0127, 0x0127, 0x0124, 0x0124, 0x0124,
- 0x0124, 0x0121, 0x0121, 0x0121, 0x011F, 0x011F, 0x011F, 0x011C, 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0118,
- 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0106,
- 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6,
- 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5,
- 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D3,
- 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA, 0x00C9, 0x00C9, 0x00C7, 0x00C6, 0x00C5, 0x00C5,
- 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129,
- 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127, 0x0127, 0x0127, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121,
- 0x0121, 0x011F, 0x011F, 0x011F, 0x011F, 0x011C, 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0115,
- 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104,
- 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4,
- 0x00F2, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E3,
- 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3,
- 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C6, 0x00C6, 0x00C5, 0x00C4,
- 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127,
- 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x0121, 0x0121, 0x011F, 0x011F,
- 0x011F, 0x011C, 0x011C, 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0113,
- 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104,
- 0x0102, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2,
- 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1,
- 0x00E0, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2,
- 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C6, 0x00C6, 0x00C5, 0x00C4, 0x00C3,
- 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0124, 0x0124,
- 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x011F, 0x011F, 0x011F, 0x011F, 0x011C, 0x011C,
- 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0118, 0x0115, 0x0115, 0x0115, 0x0113, 0x0113, 0x0113, 0x0111, 0x0111,
- 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102,
- 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0,
- 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0,
- 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D0,
- 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C6, 0x00C6, 0x00C5, 0x00C4, 0x00C3, 0x00C3,
- 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121,
- 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011C, 0x011C, 0x011C, 0x011C, 0x011A, 0x011A,
- 0x011A, 0x011A, 0x0118, 0x0118, 0x0118, 0x0115, 0x0115, 0x0115, 0x0113, 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E,
- 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100,
- 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF,
- 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00E0,
- 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0,
- 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C4, 0x00C4, 0x00C3, 0x00C1,
- 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x011F, 0x011F,
- 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118,
- 0x0118, 0x0118, 0x0115, 0x0115, 0x0115, 0x0113, 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010E, 0x010C, 0x010C,
- 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE,
- 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF,
- 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE,
- 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF,
- 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C4, 0x00C4, 0x00C3, 0x00C1, 0x00C0,
- 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011C,
- 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0118, 0x0118, 0x0115, 0x0115,
- 0x0115, 0x0115, 0x0113, 0x0113, 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A,
- 0x010A, 0x0108, 0x0108, 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC,
- 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED,
- 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD,
- 0x00DB, 0x00DB, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE,
- 0x00CE, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C4, 0x00C4, 0x00C3, 0x00C1, 0x00C0, 0x00C0,
- 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011A,
- 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0113,
- 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010C, 0x010A, 0x010A, 0x010A, 0x0108,
- 0x0108, 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA,
- 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EB,
- 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB,
- 0x00DB, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CE,
- 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C4, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF,
- 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x0118,
- 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0113, 0x0113, 0x0113, 0x0113, 0x0111,
- 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010C, 0x010A, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0106,
- 0x0106, 0x0104, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8,
- 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA,
- 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA,
- 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC,
- 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BE,
- 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0115,
- 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x0111, 0x010E,
- 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010C, 0x010A, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0106, 0x0104,
- 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8,
- 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00E8,
- 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA,
- 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB,
- 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BE, 0x00BE,
- 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0113,
- 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010E, 0x010E, 0x010C,
- 0x010C, 0x010C, 0x010C, 0x010A, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0104, 0x0102,
- 0x0102, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6,
- 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6,
- 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00DA, 0x00D9,
- 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA,
- 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD,
- 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0111,
- 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010C, 0x010C, 0x010A,
- 0x010A, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100,
- 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4,
- 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6,
- 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00D9, 0x00D9, 0x00D7,
- 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA, 0x00CA,
- 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BC,
- 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x010E,
- 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010A, 0x010A, 0x010A, 0x010A, 0x0108,
- 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0104, 0x0102, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100,
- 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2,
- 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5,
- 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6,
- 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9,
- 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BC, 0x00BC,
- 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E,
- 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108,
- 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0104, 0x0104, 0x0102, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE,
- 0x00FC, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0,
- 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E3,
- 0x00E1, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D6,
- 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7,
- 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB,
- 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C,
- 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106,
- 0x0104, 0x0104, 0x0104, 0x0104, 0x0102, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FC,
- 0x00FA, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00F0, 0x00EF,
- 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1,
- 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D4,
- 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7,
- 0x00C6, 0x00C5, 0x00C4, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BA,
- 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A,
- 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0104, 0x0104,
- 0x0102, 0x0102, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00FA,
- 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED,
- 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0,
- 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D4, 0x00D3,
- 0x00D2, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00C9, 0x00C9, 0x00C7, 0x00C6, 0x00C6,
- 0x00C5, 0x00C4, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BA, 0x00BA,
- 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108,
- 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0102, 0x0102, 0x0102, 0x0102,
- 0x0100, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00FA, 0x00F8, 0x00F8,
- 0x00F6, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB,
- 0x00EB, 0x00EA, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE,
- 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2,
- 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00C9, 0x00C9, 0x00C7, 0x00C6, 0x00C6, 0x00C5,
- 0x00C4, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BA, 0x00BA, 0x00B9,
- 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106,
- 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x0100,
- 0x00FE, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6,
- 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA,
- 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DE,
- 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0,
- 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00C9, 0x00C9, 0x00C7, 0x00C6, 0x00C6, 0x00C5, 0x00C4,
- 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BA, 0x00BA, 0x00B9, 0x00B8,
- 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104,
- 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE, 0x00FE,
- 0x00FC, 0x00FC, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F6, 0x00F4, 0x00F4,
- 0x00F4, 0x00F2, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00EA,
- 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DD,
- 0x00DB, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00D0,
- 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C6, 0x00C5, 0x00C4, 0x00C4,
- 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB, 0x00BA, 0x00BA, 0x00B9, 0x00B8, 0x00B8,
- 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102,
- 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FC, 0x00FC,
- 0x00FC, 0x00FA, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F4, 0x00F2, 0x00F2,
- 0x00F2, 0x00F0, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00EA, 0x00E8, 0x00E8,
- 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00E0, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DB,
- 0x00DA, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00CF, 0x00CF,
- 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C3,
- 0x00C1, 0x00C0, 0x00C0, 0x00BF, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB, 0x00BA, 0x00BA, 0x00B9, 0x00B8, 0x00B8, 0x00B7,
- 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
- 0x00FE, 0x00FE, 0x00FE, 0x00FE, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FC, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00FA, 0x00FA,
- 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F2, 0x00F0, 0x00F0,
- 0x00F0, 0x00EF, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6,
- 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DB, 0x00DA,
- 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CF, 0x00CE,
- 0x00CC, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00C9, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C3, 0x00C1,
+ 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0787, 0x0787, 0x0787, 0x071C, 0x071C, 0x06BC, 0x0666, 0x0666, 0x0618, 0x0618,
+ 0x05D1, 0x0590, 0x0555, 0x0555, 0x051E, 0x04EC, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03C3,
+ 0x03A8, 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C,
+ 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
+ 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199,
+ 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
+ 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0787, 0x0787, 0x0787, 0x071C, 0x071C, 0x06BC, 0x0666, 0x0666, 0x0618, 0x0618,
+ 0x05D1, 0x0590, 0x0555, 0x0555, 0x051E, 0x04EC, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03C3,
+ 0x03A8, 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C,
+ 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
+ 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199,
+ 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
+ 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0787, 0x0787, 0x071C, 0x071C, 0x071C, 0x06BC, 0x0666, 0x0666, 0x0618, 0x05D1,
+ 0x05D1, 0x0590, 0x0555, 0x0555, 0x051E, 0x04EC, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03C3,
+ 0x03A8, 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C,
+ 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
+ 0x01F0, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199,
+ 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
+ 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0787, 0x0787, 0x0787, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0618, 0x05D1,
+ 0x05D1, 0x0590, 0x0555, 0x051E, 0x051E, 0x04EC, 0x04BD, 0x0492, 0x0469, 0x0469, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03A8,
+ 0x03A8, 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C,
+ 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
+ 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199,
+ 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
+ 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x0800, 0x0800, 0x0800, 0x0800, 0x0800, 0x0787, 0x0787, 0x0787, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x0666, 0x0618, 0x0618, 0x05D1,
+ 0x05D1, 0x0590, 0x0555, 0x051E, 0x051E, 0x04EC, 0x04BD, 0x0492, 0x0469, 0x0469, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03A8,
+ 0x038E, 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02AA, 0x029C,
+ 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
+ 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199,
+ 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
+ 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x0800, 0x0800, 0x0800, 0x0787, 0x0787, 0x0787, 0x0787, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0618, 0x0618, 0x05D1,
+ 0x0590, 0x0590, 0x0555, 0x051E, 0x04EC, 0x04EC, 0x04BD, 0x0492, 0x0469, 0x0444, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03A8,
+ 0x038E, 0x0375, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x02AA, 0x029C,
+ 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
+ 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199,
+ 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
+ 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x0787, 0x0787, 0x0787, 0x0787, 0x0787, 0x0787, 0x071C, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0618, 0x05D1, 0x05D1,
+ 0x0590, 0x0555, 0x0555, 0x051E, 0x04EC, 0x04BD, 0x04BD, 0x0492, 0x0469, 0x0444, 0x0421, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03A8,
+ 0x038E, 0x0375, 0x035E, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F,
+ 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
+ 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199,
+ 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
+ 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x0787, 0x0787, 0x0787, 0x0787, 0x0787, 0x071C, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0618, 0x0618, 0x05D1, 0x0590,
+ 0x0590, 0x0555, 0x051E, 0x051E, 0x04EC, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03E0, 0x03C3, 0x03A8,
+ 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F,
+ 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
+ 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x019E, 0x0199,
+ 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
+ 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x0787, 0x0787, 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0618, 0x0618, 0x05D1, 0x05D1, 0x0590,
+ 0x0555, 0x0555, 0x051E, 0x04EC, 0x04EC, 0x04BD, 0x0492, 0x0469, 0x0469, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03C3, 0x03A8,
+ 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F,
+ 0x0282, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
+ 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194,
+ 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
+ 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x071C, 0x071C, 0x071C, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0666, 0x0618, 0x0618, 0x05D1, 0x0590, 0x0590,
+ 0x0555, 0x051E, 0x051E, 0x04EC, 0x04BD, 0x04BD, 0x0492, 0x0469, 0x0444, 0x0421, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03A8, 0x038E,
+ 0x038E, 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F,
+ 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
+ 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194,
+ 0x018F, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
+ 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x071C, 0x071C, 0x071C, 0x06BC, 0x06BC, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0666, 0x0618, 0x0618, 0x05D1, 0x05D1, 0x0590, 0x0555,
+ 0x0555, 0x051E, 0x04EC, 0x04EC, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0444, 0x0421, 0x0400, 0x0400, 0x03E0, 0x03C3, 0x03A8, 0x038E,
+ 0x0375, 0x035E, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F,
+ 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8,
+ 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194,
+ 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155,
+ 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x06BC, 0x06BC, 0x06BC, 0x06BC, 0x06BC, 0x0666, 0x0666, 0x0666, 0x0618, 0x0618, 0x0618, 0x05D1, 0x05D1, 0x0590, 0x0590, 0x0555,
+ 0x051E, 0x051E, 0x04EC, 0x04BD, 0x04BD, 0x0492, 0x0469, 0x0444, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03C3, 0x03A8, 0x038E,
+ 0x0375, 0x035E, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x029C, 0x028F,
+ 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8,
+ 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194,
+ 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0158, 0x0155,
+ 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x0666, 0x0666, 0x0666, 0x0666, 0x0666, 0x0666, 0x0666, 0x0618, 0x0618, 0x0618, 0x05D1, 0x05D1, 0x0590, 0x0590, 0x0555, 0x051E,
+ 0x051E, 0x04EC, 0x04EC, 0x04BD, 0x0492, 0x0469, 0x0469, 0x0444, 0x0421, 0x0400, 0x0400, 0x03E0, 0x03C3, 0x03A8, 0x038E, 0x038E,
+ 0x0375, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282,
+ 0x0276, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0,
+ 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194,
+ 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151,
+ 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x0666, 0x0666, 0x0666, 0x0666, 0x0618, 0x0618, 0x0618, 0x0618, 0x05D1, 0x05D1, 0x05D1, 0x0590, 0x0590, 0x0555, 0x0555, 0x051E,
+ 0x04EC, 0x04EC, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0444, 0x0444, 0x0421, 0x0400, 0x03E0, 0x03E0, 0x03C3, 0x03A8, 0x038E, 0x0375,
+ 0x035E, 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282,
+ 0x0276, 0x026A, 0x025E, 0x0253, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0,
+ 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194,
+ 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151,
+ 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x0618, 0x0618, 0x0618, 0x0618, 0x0618, 0x0618, 0x05D1, 0x05D1, 0x05D1, 0x0590, 0x0590, 0x0590, 0x0555, 0x0555, 0x051E, 0x04EC,
+ 0x04EC, 0x04BD, 0x04BD, 0x0492, 0x0469, 0x0469, 0x0444, 0x0421, 0x0400, 0x0400, 0x03E0, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x0375,
+ 0x035E, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282,
+ 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0,
+ 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194,
+ 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151,
+ 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121,
+ 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x0618, 0x0618, 0x05D1, 0x05D1, 0x05D1, 0x05D1, 0x05D1, 0x0590, 0x0590, 0x0590, 0x0555, 0x0555, 0x051E, 0x051E, 0x04EC, 0x04EC,
+ 0x04BD, 0x04BD, 0x0492, 0x0469, 0x0469, 0x0444, 0x0421, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03C3, 0x03A8, 0x038E, 0x0375, 0x0375,
+ 0x035E, 0x0348, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282,
+ 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0,
+ 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x0194,
+ 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151,
+ 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121,
+ 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x05D1, 0x05D1, 0x05D1, 0x05D1, 0x05D1, 0x0590, 0x0590, 0x0590, 0x0555, 0x0555, 0x0555, 0x051E, 0x051E, 0x04EC, 0x04EC, 0x04BD,
+ 0x04BD, 0x0492, 0x0492, 0x0469, 0x0444, 0x0444, 0x0421, 0x0400, 0x0400, 0x03E0, 0x03C3, 0x03A8, 0x038E, 0x038E, 0x0375, 0x035E,
+ 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0276,
+ 0x026A, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01F0,
+ 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F,
+ 0x018A, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151,
+ 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121,
+ 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
+ 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0590, 0x0555, 0x0555, 0x0555, 0x051E, 0x051E, 0x051E, 0x04EC, 0x04EC, 0x04BD, 0x04BD,
+ 0x0492, 0x0492, 0x0469, 0x0444, 0x0444, 0x0421, 0x0400, 0x0400, 0x03E0, 0x03C3, 0x03C3, 0x03A8, 0x038E, 0x0375, 0x035E, 0x035E,
+ 0x0348, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0276,
+ 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9,
+ 0x01E1, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F,
+ 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151,
+ 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121,
+ 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
+ 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x0555, 0x051E, 0x051E, 0x051E, 0x04EC, 0x04EC, 0x04EC, 0x04BD, 0x04BD, 0x0492,
+ 0x0492, 0x0469, 0x0444, 0x0444, 0x0421, 0x0421, 0x0400, 0x03E0, 0x03C3, 0x03C3, 0x03A8, 0x038E, 0x038E, 0x0375, 0x035E, 0x0348,
+ 0x0333, 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0282, 0x0276,
+ 0x026A, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9,
+ 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F,
+ 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E,
+ 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121,
+ 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
+ 0x0555, 0x0555, 0x0555, 0x051E, 0x051E, 0x051E, 0x051E, 0x051E, 0x04EC, 0x04EC, 0x04EC, 0x04BD, 0x04BD, 0x0492, 0x0492, 0x0469,
+ 0x0469, 0x0444, 0x0444, 0x0421, 0x0421, 0x0400, 0x03E0, 0x03E0, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x0375, 0x035E, 0x035E, 0x0348,
+ 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0276, 0x026A,
+ 0x025E, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01E9,
+ 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0194, 0x018F,
+ 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E,
+ 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121,
+ 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
+ 0x051E, 0x051E, 0x051E, 0x051E, 0x051E, 0x04EC, 0x04EC, 0x04EC, 0x04EC, 0x04BD, 0x04BD, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0469,
+ 0x0444, 0x0444, 0x0421, 0x0421, 0x0400, 0x03E0, 0x03E0, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x0375, 0x0375, 0x035E, 0x0348, 0x0333,
+ 0x0333, 0x031F, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x026A,
+ 0x025E, 0x0253, 0x0249, 0x023E, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1,
+ 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A,
+ 0x0186, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E,
+ 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0121,
+ 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
+ 0x04EC, 0x04EC, 0x04EC, 0x04EC, 0x04EC, 0x04EC, 0x04BD, 0x04BD, 0x04BD, 0x04BD, 0x0492, 0x0492, 0x0469, 0x0469, 0x0469, 0x0444,
+ 0x0444, 0x0421, 0x0421, 0x0400, 0x03E0, 0x03E0, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x0375, 0x0375, 0x035E, 0x0348, 0x0348, 0x0333,
+ 0x031F, 0x030C, 0x02FA, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0276, 0x026A, 0x026A,
+ 0x025E, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1,
+ 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A,
+ 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E,
+ 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F,
+ 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
+ 0x04BD, 0x04BD, 0x04BD, 0x04BD, 0x04BD, 0x04BD, 0x04BD, 0x0492, 0x0492, 0x0492, 0x0492, 0x0469, 0x0469, 0x0444, 0x0444, 0x0421,
+ 0x0421, 0x0400, 0x0400, 0x03E0, 0x03E0, 0x03C3, 0x03C3, 0x03A8, 0x038E, 0x038E, 0x0375, 0x035E, 0x0348, 0x0348, 0x0333, 0x031F,
+ 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x026A, 0x025E,
+ 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1,
+ 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A,
+ 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E,
+ 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F,
+ 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
+ 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0492, 0x0469, 0x0469, 0x0469, 0x0444, 0x0444, 0x0444, 0x0421, 0x0421,
+ 0x0400, 0x0400, 0x03E0, 0x03E0, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x038E, 0x0375, 0x035E, 0x035E, 0x0348, 0x0333, 0x031F, 0x031F,
+ 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0276, 0x026A, 0x026A, 0x025E,
+ 0x0253, 0x0249, 0x023E, 0x0234, 0x022B, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01E1,
+ 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x0194, 0x018F, 0x018A,
+ 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A,
+ 0x0147, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F,
+ 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC,
+ 0x0492, 0x0492, 0x0492, 0x0469, 0x0469, 0x0469, 0x0469, 0x0469, 0x0469, 0x0444, 0x0444, 0x0444, 0x0421, 0x0421, 0x0400, 0x0400,
+ 0x0400, 0x03E0, 0x03C3, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x038E, 0x0375, 0x035E, 0x035E, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C,
+ 0x02FA, 0x02FA, 0x02E8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253,
+ 0x0249, 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA,
+ 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186,
+ 0x0181, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A,
+ 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F,
+ 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC,
+ 0x0469, 0x0469, 0x0469, 0x0469, 0x0469, 0x0444, 0x0444, 0x0444, 0x0444, 0x0421, 0x0421, 0x0421, 0x0400, 0x0400, 0x0400, 0x03E0,
+ 0x03E0, 0x03C3, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x038E, 0x0375, 0x035E, 0x035E, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x030C,
+ 0x02FA, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x029C, 0x028F, 0x0282, 0x0276, 0x026A, 0x026A, 0x025E, 0x0253,
+ 0x0249, 0x023E, 0x0234, 0x022B, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E1, 0x01DA,
+ 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186,
+ 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A,
+ 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F,
+ 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC,
+ 0x0444, 0x0444, 0x0444, 0x0444, 0x0444, 0x0444, 0x0421, 0x0421, 0x0421, 0x0421, 0x0400, 0x0400, 0x0400, 0x03E0, 0x03E0, 0x03C3,
+ 0x03C3, 0x03C3, 0x03A8, 0x03A8, 0x038E, 0x0375, 0x0375, 0x035E, 0x035E, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA,
+ 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249,
+ 0x0249, 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4,
+ 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186,
+ 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A,
+ 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C,
+ 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC,
+ 0x0421, 0x0421, 0x0421, 0x0421, 0x0421, 0x0421, 0x0421, 0x0400, 0x0400, 0x0400, 0x0400, 0x03E0, 0x03E0, 0x03E0, 0x03C3, 0x03C3,
+ 0x03A8, 0x03A8, 0x038E, 0x038E, 0x0375, 0x0375, 0x035E, 0x035E, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8,
+ 0x02E8, 0x02D8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249,
+ 0x023E, 0x0234, 0x022B, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4,
+ 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181,
+ 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147,
+ 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C,
+ 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC,
+ 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x0400, 0x03E0, 0x03E0, 0x03E0, 0x03E0, 0x03C3, 0x03C3, 0x03C3, 0x03A8, 0x03A8,
+ 0x038E, 0x038E, 0x038E, 0x0375, 0x0375, 0x035E, 0x0348, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02E8,
+ 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02AA, 0x029C, 0x029C, 0x028F, 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x0253, 0x0249, 0x023E,
+ 0x023E, 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4,
+ 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181,
+ 0x017D, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147,
+ 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C,
+ 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA,
+ 0x03E0, 0x03E0, 0x03E0, 0x03E0, 0x03E0, 0x03E0, 0x03E0, 0x03E0, 0x03C3, 0x03C3, 0x03C3, 0x03C3, 0x03A8, 0x03A8, 0x03A8, 0x038E,
+ 0x038E, 0x0375, 0x0375, 0x035E, 0x035E, 0x0348, 0x0348, 0x0333, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8,
+ 0x02C8, 0x02C8, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x028F, 0x0282, 0x0282, 0x0276, 0x026A, 0x025E, 0x0253, 0x0253, 0x0249, 0x023E,
+ 0x0234, 0x022B, 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD,
+ 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181,
+ 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147,
+ 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C,
+ 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA,
+ 0x03C3, 0x03C3, 0x03C3, 0x03C3, 0x03C3, 0x03C3, 0x03C3, 0x03C3, 0x03C3, 0x03A8, 0x03A8, 0x03A8, 0x038E, 0x038E, 0x038E, 0x0375,
+ 0x0375, 0x035E, 0x035E, 0x035E, 0x0348, 0x0348, 0x0333, 0x031F, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8,
+ 0x02C8, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x023E, 0x0234,
+ 0x0234, 0x022B, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01D4, 0x01CD,
+ 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D,
+ 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x014A, 0x0147,
+ 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A,
+ 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA,
+ 0x03C3, 0x03C3, 0x03C3, 0x03A8, 0x03A8, 0x03A8, 0x03A8, 0x03A8, 0x03A8, 0x038E, 0x038E, 0x038E, 0x038E, 0x0375, 0x0375, 0x0375,
+ 0x035E, 0x035E, 0x0348, 0x0348, 0x0333, 0x0333, 0x031F, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02C8,
+ 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x026A, 0x026A, 0x025E, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234,
+ 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7,
+ 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D,
+ 0x0178, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144,
+ 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A,
+ 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA,
+ 0x03A8, 0x03A8, 0x03A8, 0x03A8, 0x038E, 0x038E, 0x038E, 0x038E, 0x038E, 0x038E, 0x0375, 0x0375, 0x0375, 0x035E, 0x035E, 0x035E,
+ 0x0348, 0x0348, 0x0333, 0x0333, 0x0333, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02C8, 0x02B9,
+ 0x02AA, 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x0253, 0x0253, 0x0249, 0x023E, 0x0234, 0x022B,
+ 0x022B, 0x0222, 0x0219, 0x0210, 0x0208, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01C7,
+ 0x01C0, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0186, 0x0181, 0x017D,
+ 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144,
+ 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A,
+ 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA,
+ 0x038E, 0x038E, 0x038E, 0x038E, 0x038E, 0x0375, 0x0375, 0x0375, 0x0375, 0x0375, 0x035E, 0x035E, 0x035E, 0x035E, 0x0348, 0x0348,
+ 0x0333, 0x0333, 0x0333, 0x031F, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02AA,
+ 0x02AA, 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x0253, 0x0253, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B,
+ 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C7,
+ 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178,
+ 0x0174, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x014A, 0x0147, 0x0144,
+ 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A,
+ 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8,
+ 0x0375, 0x0375, 0x0375, 0x0375, 0x0375, 0x0375, 0x035E, 0x035E, 0x035E, 0x035E, 0x035E, 0x0348, 0x0348, 0x0348, 0x0333, 0x0333,
+ 0x0333, 0x031F, 0x031F, 0x030C, 0x030C, 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02AA, 0x02AA,
+ 0x029C, 0x028F, 0x028F, 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x023E, 0x023E, 0x0234, 0x022B, 0x0222,
+ 0x0222, 0x0219, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0,
+ 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178,
+ 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141,
+ 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118,
+ 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8,
+ 0x035E, 0x035E, 0x035E, 0x035E, 0x035E, 0x035E, 0x035E, 0x0348, 0x0348, 0x0348, 0x0348, 0x0333, 0x0333, 0x0333, 0x0333, 0x031F,
+ 0x031F, 0x030C, 0x030C, 0x030C, 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x029C,
+ 0x028F, 0x028F, 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x022B, 0x022B, 0x0222,
+ 0x0219, 0x0210, 0x0208, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0,
+ 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178,
+ 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141,
+ 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118,
+ 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8,
+ 0x0348, 0x0348, 0x0348, 0x0348, 0x0348, 0x0348, 0x0348, 0x0333, 0x0333, 0x0333, 0x0333, 0x0333, 0x031F, 0x031F, 0x031F, 0x030C,
+ 0x030C, 0x030C, 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x028F,
+ 0x028F, 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x022B, 0x022B, 0x0222, 0x0219,
+ 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA,
+ 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174,
+ 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141,
+ 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118,
+ 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8,
+ 0x0333, 0x0333, 0x0333, 0x0333, 0x0333, 0x0333, 0x0333, 0x0333, 0x031F, 0x031F, 0x031F, 0x031F, 0x030C, 0x030C, 0x030C, 0x02FA,
+ 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x029C, 0x029C, 0x028F, 0x028F,
+ 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0219, 0x0219,
+ 0x0210, 0x0208, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA,
+ 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174,
+ 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E,
+ 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115,
+ 0x0113, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6,
+ 0x031F, 0x031F, 0x031F, 0x031F, 0x031F, 0x031F, 0x031F, 0x031F, 0x030C, 0x030C, 0x030C, 0x030C, 0x030C, 0x02FA, 0x02FA, 0x02FA,
+ 0x02E8, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x029C, 0x028F, 0x028F, 0x0282,
+ 0x0276, 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0219, 0x0219, 0x0210,
+ 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01B4,
+ 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170,
+ 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E,
+ 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115,
+ 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6,
+ 0x030C, 0x030C, 0x030C, 0x030C, 0x030C, 0x030C, 0x030C, 0x030C, 0x030C, 0x02FA, 0x02FA, 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02E8,
+ 0x02D8, 0x02D8, 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x029C, 0x028F, 0x028F, 0x0282, 0x0282, 0x0276,
+ 0x0276, 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0208,
+ 0x0208, 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01BA, 0x01B4,
+ 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0170,
+ 0x016C, 0x0168, 0x0164, 0x0160, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013E,
+ 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0115,
+ 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6,
+ 0x02FA, 0x02FA, 0x02FA, 0x02FA, 0x02FA, 0x02FA, 0x02FA, 0x02FA, 0x02FA, 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02D8,
+ 0x02D8, 0x02C8, 0x02C8, 0x02B9, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x029C, 0x028F, 0x028F, 0x0282, 0x0282, 0x0276, 0x026A,
+ 0x026A, 0x025E, 0x025E, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0208, 0x0208,
+ 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01AF,
+ 0x01A9, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x0170,
+ 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B,
+ 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113,
+ 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4,
+ 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02C8, 0x02C8,
+ 0x02C8, 0x02B9, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x029C, 0x029C, 0x028F, 0x028F, 0x0282, 0x0282, 0x0276, 0x0276, 0x026A, 0x026A,
+ 0x025E, 0x0253, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200,
+ 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF,
+ 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0194, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C,
+ 0x0168, 0x0164, 0x0160, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B,
+ 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113,
+ 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4,
+ 0x02E8, 0x02E8, 0x02E8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02B9, 0x02B9,
+ 0x02B9, 0x02AA, 0x02AA, 0x02AA, 0x029C, 0x029C, 0x028F, 0x028F, 0x028F, 0x0282, 0x0282, 0x0276, 0x0276, 0x026A, 0x025E, 0x025E,
+ 0x0253, 0x0253, 0x0249, 0x0249, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x01F8,
+ 0x01F8, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01A9,
+ 0x01A4, 0x019E, 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x016C,
+ 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138,
+ 0x0135, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113,
+ 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4,
+ 0x02D8, 0x02D8, 0x02D8, 0x02D8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02B9, 0x02B9, 0x02B9, 0x02B9, 0x02AA,
+ 0x02AA, 0x02AA, 0x029C, 0x029C, 0x028F, 0x028F, 0x028F, 0x0282, 0x0282, 0x0276, 0x0276, 0x026A, 0x026A, 0x025E, 0x025E, 0x0253,
+ 0x0253, 0x0249, 0x023E, 0x023E, 0x0234, 0x0234, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8,
+ 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A9,
+ 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168,
+ 0x0164, 0x0160, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138,
+ 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111,
+ 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2,
+ 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02C8, 0x02B9, 0x02B9, 0x02B9, 0x02B9, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x02AA, 0x02AA, 0x029C,
+ 0x029C, 0x029C, 0x028F, 0x028F, 0x028F, 0x0282, 0x0282, 0x0276, 0x0276, 0x026A, 0x026A, 0x025E, 0x025E, 0x0253, 0x0253, 0x0249,
+ 0x0249, 0x023E, 0x023E, 0x0234, 0x022B, 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0,
+ 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4,
+ 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168,
+ 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0138,
+ 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111,
+ 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2,
+ 0x02B9, 0x02B9, 0x02B9, 0x02B9, 0x02B9, 0x02AA, 0x02AA, 0x02AA, 0x02AA, 0x02AA, 0x02AA, 0x029C, 0x029C, 0x029C, 0x029C, 0x028F,
+ 0x028F, 0x028F, 0x0282, 0x0282, 0x0282, 0x0276, 0x0276, 0x026A, 0x026A, 0x026A, 0x025E, 0x025E, 0x0253, 0x0253, 0x0249, 0x0249,
+ 0x023E, 0x0234, 0x0234, 0x022B, 0x022B, 0x0222, 0x0219, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01E9,
+ 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x019E,
+ 0x019E, 0x0199, 0x0194, 0x018F, 0x018A, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164,
+ 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135,
+ 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111,
+ 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2,
+ 0x02AA, 0x02AA, 0x02AA, 0x02AA, 0x02AA, 0x02AA, 0x029C, 0x029C, 0x029C, 0x029C, 0x029C, 0x029C, 0x028F, 0x028F, 0x028F, 0x028F,
+ 0x0282, 0x0282, 0x0282, 0x0276, 0x0276, 0x026A, 0x026A, 0x026A, 0x025E, 0x025E, 0x0253, 0x0253, 0x0249, 0x0249, 0x023E, 0x023E,
+ 0x0234, 0x0234, 0x022B, 0x022B, 0x0222, 0x0219, 0x0219, 0x0210, 0x0208, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9,
+ 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E,
+ 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0168, 0x0164,
+ 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135,
+ 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E,
+ 0x010C, 0x010A, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0,
+ 0x029C, 0x029C, 0x029C, 0x029C, 0x029C, 0x029C, 0x028F, 0x028F, 0x028F, 0x028F, 0x028F, 0x028F, 0x0282, 0x0282, 0x0282, 0x0282,
+ 0x0276, 0x0276, 0x0276, 0x026A, 0x026A, 0x026A, 0x025E, 0x025E, 0x0253, 0x0253, 0x0249, 0x0249, 0x023E, 0x023E, 0x0234, 0x0234,
+ 0x022B, 0x022B, 0x0222, 0x0222, 0x0219, 0x0219, 0x0210, 0x0208, 0x0208, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E9, 0x01E1,
+ 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x019E, 0x0199,
+ 0x0194, 0x0194, 0x018F, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160,
+ 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132,
+ 0x012F, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E,
+ 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0,
+ 0x028F, 0x028F, 0x028F, 0x028F, 0x028F, 0x028F, 0x028F, 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, 0x0276, 0x0276, 0x0276, 0x0276,
+ 0x026A, 0x026A, 0x026A, 0x025E, 0x025E, 0x025E, 0x0253, 0x0253, 0x0249, 0x0249, 0x0249, 0x023E, 0x023E, 0x0234, 0x0234, 0x022B,
+ 0x022B, 0x0222, 0x0222, 0x0219, 0x0210, 0x0210, 0x0208, 0x0208, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA,
+ 0x01DA, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x0199, 0x0199,
+ 0x0194, 0x018F, 0x018A, 0x018A, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160,
+ 0x015C, 0x0158, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0132,
+ 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010E,
+ 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0,
+ 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, 0x0282, 0x0276, 0x0276, 0x0276, 0x0276, 0x0276, 0x0276, 0x026A, 0x026A, 0x026A,
+ 0x026A, 0x025E, 0x025E, 0x025E, 0x0253, 0x0253, 0x0249, 0x0249, 0x0249, 0x023E, 0x023E, 0x0234, 0x0234, 0x022B, 0x022B, 0x0222,
+ 0x0222, 0x0219, 0x0219, 0x0210, 0x0210, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01DA,
+ 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0194,
+ 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0168, 0x0164, 0x0160, 0x015C,
+ 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F,
+ 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C,
+ 0x010A, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF,
+ 0x0276, 0x0276, 0x0276, 0x0276, 0x0276, 0x0276, 0x0276, 0x0276, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x025E, 0x025E, 0x025E,
+ 0x025E, 0x0253, 0x0253, 0x0253, 0x0249, 0x0249, 0x0249, 0x023E, 0x023E, 0x0234, 0x0234, 0x022B, 0x022B, 0x022B, 0x0222, 0x0222,
+ 0x0219, 0x0210, 0x0210, 0x0208, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4,
+ 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0194, 0x018F,
+ 0x018F, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C,
+ 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x012F,
+ 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C,
+ 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF,
+ 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x026A, 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x0253, 0x0253, 0x0253,
+ 0x0253, 0x0249, 0x0249, 0x0249, 0x023E, 0x023E, 0x023E, 0x0234, 0x0234, 0x022B, 0x022B, 0x022B, 0x0222, 0x0222, 0x0219, 0x0219,
+ 0x0210, 0x0210, 0x0208, 0x0208, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD,
+ 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0194, 0x0194, 0x018F,
+ 0x018A, 0x0186, 0x0186, 0x0181, 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x0158,
+ 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C,
+ 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A,
+ 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00EF,
+ 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x025E, 0x0253, 0x0253, 0x0253, 0x0253, 0x0253, 0x0249, 0x0249,
+ 0x0249, 0x023E, 0x023E, 0x023E, 0x023E, 0x0234, 0x0234, 0x022B, 0x022B, 0x022B, 0x0222, 0x0222, 0x0219, 0x0219, 0x0210, 0x0210,
+ 0x0208, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01CD,
+ 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018A,
+ 0x0186, 0x0186, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170, 0x016C, 0x0168, 0x0168, 0x0164, 0x0160, 0x015C, 0x0158, 0x0158,
+ 0x0155, 0x0151, 0x014E, 0x014A, 0x0147, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012C,
+ 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A,
+ 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED,
+ 0x0253, 0x0253, 0x0253, 0x0253, 0x0253, 0x0253, 0x0253, 0x0253, 0x0253, 0x0249, 0x0249, 0x0249, 0x0249, 0x0249, 0x023E, 0x023E,
+ 0x023E, 0x023E, 0x0234, 0x0234, 0x0234, 0x022B, 0x022B, 0x022B, 0x0222, 0x0222, 0x0219, 0x0219, 0x0210, 0x0210, 0x0210, 0x0208,
+ 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01C7,
+ 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018A, 0x018A,
+ 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155,
+ 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x012C,
+ 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108,
+ 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED,
+ 0x0249, 0x0249, 0x0249, 0x0249, 0x0249, 0x0249, 0x0249, 0x0249, 0x0249, 0x023E, 0x023E, 0x023E, 0x023E, 0x023E, 0x0234, 0x0234,
+ 0x0234, 0x0234, 0x022B, 0x022B, 0x022B, 0x0222, 0x0222, 0x0222, 0x0219, 0x0219, 0x0210, 0x0210, 0x0210, 0x0208, 0x0208, 0x0200,
+ 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0,
+ 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018A, 0x018A, 0x0186,
+ 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151,
+ 0x0151, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129,
+ 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108,
+ 0x0106, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00ED,
+ 0x023E, 0x023E, 0x023E, 0x023E, 0x023E, 0x023E, 0x023E, 0x023E, 0x023E, 0x023E, 0x0234, 0x0234, 0x0234, 0x0234, 0x0234, 0x022B,
+ 0x022B, 0x022B, 0x0222, 0x0222, 0x0222, 0x0219, 0x0219, 0x0219, 0x0210, 0x0210, 0x0210, 0x0208, 0x0208, 0x0200, 0x0200, 0x01F8,
+ 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA,
+ 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181,
+ 0x0181, 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151,
+ 0x014E, 0x014A, 0x0147, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129,
+ 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108,
+ 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB,
+ 0x0234, 0x0234, 0x0234, 0x0234, 0x0234, 0x0234, 0x0234, 0x0234, 0x0234, 0x0234, 0x022B, 0x022B, 0x022B, 0x022B, 0x022B, 0x0222,
+ 0x0222, 0x0222, 0x0222, 0x0219, 0x0219, 0x0219, 0x0210, 0x0210, 0x0210, 0x0208, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F8,
+ 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01BA, 0x01BA,
+ 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x0181,
+ 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x0168, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x014E,
+ 0x014E, 0x014A, 0x0147, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0127,
+ 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106,
+ 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB,
+ 0x022B, 0x022B, 0x022B, 0x022B, 0x022B, 0x022B, 0x022B, 0x022B, 0x022B, 0x022B, 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0219,
+ 0x0219, 0x0219, 0x0219, 0x0210, 0x0210, 0x0210, 0x0208, 0x0208, 0x0208, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F8, 0x01F0, 0x01F0,
+ 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4,
+ 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D,
+ 0x0178, 0x0178, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x0160, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E,
+ 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0127,
+ 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106,
+ 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA,
+ 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0222, 0x0219, 0x0219, 0x0219, 0x0219, 0x0210,
+ 0x0210, 0x0210, 0x0210, 0x0208, 0x0208, 0x0208, 0x0200, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01E9, 0x01E9,
+ 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01B4, 0x01B4, 0x01AF,
+ 0x01AF, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0186, 0x0181, 0x017D, 0x0178,
+ 0x0178, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0160, 0x0160, 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014A,
+ 0x0147, 0x0147, 0x0144, 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0124,
+ 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104,
+ 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA,
+ 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0219, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210,
+ 0x0208, 0x0208, 0x0208, 0x0200, 0x0200, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01E1,
+ 0x01DA, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01A9,
+ 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0186, 0x0181, 0x017D, 0x0178, 0x0178,
+ 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x014E, 0x014A, 0x014A,
+ 0x0147, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124,
+ 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104,
+ 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA,
+ 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0210, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208,
+ 0x0200, 0x0200, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01E1, 0x01DA,
+ 0x01DA, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A9,
+ 0x01A4, 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0186, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174,
+ 0x0170, 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147,
+ 0x0144, 0x0141, 0x0141, 0x013E, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0121,
+ 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102,
+ 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8,
+ 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0208, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200,
+ 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01DA, 0x01D4,
+ 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A4, 0x01A4,
+ 0x019E, 0x019E, 0x0199, 0x0194, 0x0194, 0x018F, 0x018A, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170,
+ 0x0170, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0144,
+ 0x0144, 0x0141, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F,
+ 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102,
+ 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8,
+ 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x0200, 0x01F8, 0x01F8, 0x01F8, 0x01F8,
+ 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01CD,
+ 0x01CD, 0x01C7, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x019E,
+ 0x0199, 0x0199, 0x0194, 0x0194, 0x018F, 0x018A, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170, 0x0170,
+ 0x016C, 0x0168, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0147, 0x0144,
+ 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F,
+ 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100,
+ 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6,
+ 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01F0, 0x01F0,
+ 0x01F0, 0x01E9, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01C7,
+ 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x019E, 0x019E, 0x0199,
+ 0x0199, 0x0194, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C,
+ 0x0168, 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x0147, 0x0147, 0x0144, 0x0141,
+ 0x013E, 0x013E, 0x013B, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C,
+ 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100,
+ 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6,
+ 0x01F8, 0x01F8, 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E9, 0x01E9,
+ 0x01E9, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C7,
+ 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0194,
+ 0x0194, 0x018F, 0x018F, 0x018A, 0x0186, 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168,
+ 0x0168, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014A, 0x014A, 0x0147, 0x0144, 0x0141, 0x0141,
+ 0x013E, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C,
+ 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE,
+ 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5,
+ 0x01F0, 0x01F0, 0x01F0, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01E1, 0x01E1,
+ 0x01E1, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C7, 0x01C0, 0x01C0,
+ 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x0194,
+ 0x018F, 0x018F, 0x018A, 0x0186, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0168,
+ 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014A, 0x014A, 0x0147, 0x0144, 0x0141, 0x0141, 0x013E,
+ 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A,
+ 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE,
+ 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5,
+ 0x01E9, 0x01E9, 0x01E9, 0x01E9, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01DA,
+ 0x01DA, 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01C0, 0x01BA, 0x01BA,
+ 0x01B4, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x018F, 0x018F,
+ 0x018A, 0x018A, 0x0186, 0x0186, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0168, 0x0164,
+ 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B,
+ 0x013B, 0x0138, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A,
+ 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC,
+ 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3,
+ 0x01E1, 0x01E1, 0x01E1, 0x01E1, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01D4,
+ 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01B4, 0x01B4,
+ 0x01B4, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x0194, 0x018F, 0x018F, 0x018A,
+ 0x018A, 0x0186, 0x0181, 0x0181, 0x017D, 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160,
+ 0x015C, 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013B, 0x013B,
+ 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118,
+ 0x0115, 0x0115, 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC,
+ 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3,
+ 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01DA, 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01CD,
+ 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01AF, 0x01AF,
+ 0x01AF, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x0194, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186,
+ 0x0186, 0x0181, 0x0181, 0x017D, 0x0178, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C,
+ 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138,
+ 0x0135, 0x0135, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011A, 0x0118, 0x0118,
+ 0x0115, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA,
+ 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E3,
+ 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01D4, 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C7,
+ 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01AF, 0x01A9,
+ 0x01A9, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x0194, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186, 0x0181,
+ 0x0181, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174, 0x0170, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x015C,
+ 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0135,
+ 0x0135, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115,
+ 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA,
+ 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E1,
+ 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01CD, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C0, 0x01C0,
+ 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A9, 0x01A4,
+ 0x01A4, 0x019E, 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x0194, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186, 0x0186, 0x0181, 0x0181,
+ 0x017D, 0x017D, 0x0178, 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158,
+ 0x0155, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0147, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0135, 0x0135,
+ 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113,
+ 0x0113, 0x0111, 0x010E, 0x010C, 0x010A, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8,
+ 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E1,
+ 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C7, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01BA, 0x01BA,
+ 0x01BA, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x019E,
+ 0x019E, 0x019E, 0x0199, 0x0199, 0x0194, 0x0194, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186, 0x0186, 0x0181, 0x0181, 0x017D, 0x017D,
+ 0x0178, 0x0178, 0x0174, 0x0174, 0x0170, 0x016C, 0x016C, 0x0168, 0x0168, 0x0164, 0x0160, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155,
+ 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0147, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132,
+ 0x012F, 0x012F, 0x012C, 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113,
+ 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8,
+ 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E0,
+ 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01C0, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01B4, 0x01B4,
+ 0x01B4, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x0199,
+ 0x0199, 0x0199, 0x0194, 0x0194, 0x018F, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186, 0x0186, 0x0181, 0x0181, 0x017D, 0x017D, 0x0178,
+ 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x016C, 0x0168, 0x0164, 0x0164, 0x0160, 0x0160, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151,
+ 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x012F,
+ 0x012F, 0x012C, 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111,
+ 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6,
+ 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00E0,
+ 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01BA, 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01AF, 0x01AF,
+ 0x01AF, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x019E, 0x0199, 0x0199, 0x0199,
+ 0x0194, 0x0194, 0x018F, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186, 0x0186, 0x0181, 0x0181, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174,
+ 0x0174, 0x0170, 0x0170, 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x0160, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x0151,
+ 0x014E, 0x014A, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x012F, 0x012F,
+ 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111,
+ 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6,
+ 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00DE,
+ 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01B4, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01A9,
+ 0x01A9, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x019E, 0x0199, 0x0199, 0x0199, 0x0194, 0x0194, 0x0194,
+ 0x018F, 0x018F, 0x018F, 0x018A, 0x018A, 0x0186, 0x0186, 0x0181, 0x0181, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174, 0x0174, 0x0170,
+ 0x0170, 0x016C, 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E,
+ 0x014A, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C,
+ 0x0129, 0x0129, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E,
+ 0x010C, 0x010A, 0x010A, 0x0108, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F4,
+ 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00E0, 0x00DE,
+ 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01AF, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A4,
+ 0x01A4, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x019E, 0x019E, 0x0199, 0x0199, 0x0199, 0x0199, 0x0194, 0x0194, 0x0194, 0x018F, 0x018F,
+ 0x018A, 0x018A, 0x018A, 0x0186, 0x0186, 0x0181, 0x0181, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174, 0x0174, 0x0170, 0x0170,
+ 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x0160, 0x015C, 0x015C, 0x0158, 0x0155, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A,
+ 0x014A, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129,
+ 0x0129, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010C,
+ 0x010C, 0x010A, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F4,
+ 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DD,
+ 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A9, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x019E,
+ 0x019E, 0x019E, 0x019E, 0x019E, 0x0199, 0x0199, 0x0199, 0x0194, 0x0194, 0x0194, 0x0194, 0x018F, 0x018F, 0x018F, 0x018A, 0x018A,
+ 0x0186, 0x0186, 0x0186, 0x0181, 0x0181, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x016C,
+ 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0155, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147,
+ 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129,
+ 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C,
+ 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2,
+ 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD,
+ 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x01A4, 0x019E, 0x019E, 0x019E, 0x019E, 0x019E, 0x019E, 0x019E, 0x0199,
+ 0x0199, 0x0199, 0x0199, 0x0199, 0x0194, 0x0194, 0x0194, 0x0194, 0x018F, 0x018F, 0x018F, 0x018A, 0x018A, 0x018A, 0x0186, 0x0186,
+ 0x0186, 0x0181, 0x0181, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x016C, 0x0168, 0x0168,
+ 0x0164, 0x0164, 0x0160, 0x0160, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0147,
+ 0x0144, 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127,
+ 0x0124, 0x0124, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A,
+ 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0,
+ 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DB,
+ 0x019E, 0x019E, 0x019E, 0x019E, 0x019E, 0x019E, 0x019E, 0x019E, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0194,
+ 0x0194, 0x0194, 0x0194, 0x0194, 0x018F, 0x018F, 0x018F, 0x018F, 0x018A, 0x018A, 0x018A, 0x0186, 0x0186, 0x0186, 0x0181, 0x0181,
+ 0x0181, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0164,
+ 0x0164, 0x0160, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0155, 0x0151, 0x0151, 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144,
+ 0x0141, 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124,
+ 0x0124, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x010A,
+ 0x0108, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0,
+ 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DB, 0x00DB,
+ 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0199, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194,
+ 0x018F, 0x018F, 0x018F, 0x018F, 0x018A, 0x018A, 0x018A, 0x018A, 0x0186, 0x0186, 0x0186, 0x0181, 0x0181, 0x0181, 0x017D, 0x017D,
+ 0x017D, 0x0178, 0x0178, 0x0178, 0x0174, 0x0174, 0x0170, 0x0170, 0x0170, 0x016C, 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160,
+ 0x0160, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x014A, 0x0147, 0x0144, 0x0144, 0x0141,
+ 0x0141, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0124,
+ 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010A, 0x010A, 0x0108,
+ 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00EF,
+ 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA,
+ 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x0194, 0x018F, 0x018F, 0x018F, 0x018F, 0x018F, 0x018F, 0x018F,
+ 0x018A, 0x018A, 0x018A, 0x018A, 0x0186, 0x0186, 0x0186, 0x0186, 0x0181, 0x0181, 0x0181, 0x0181, 0x017D, 0x017D, 0x017D, 0x0178,
+ 0x0178, 0x0174, 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x0160, 0x015C,
+ 0x015C, 0x0158, 0x0158, 0x0155, 0x0155, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E,
+ 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121,
+ 0x011F, 0x011F, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0106,
+ 0x0106, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF,
+ 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA,
+ 0x018F, 0x018F, 0x018F, 0x018F, 0x018F, 0x018F, 0x018F, 0x018F, 0x018F, 0x018A, 0x018A, 0x018A, 0x018A, 0x018A, 0x018A, 0x018A,
+ 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0181, 0x0181, 0x0181, 0x0181, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0178, 0x0174,
+ 0x0174, 0x0174, 0x0170, 0x0170, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x0160, 0x015C, 0x015C, 0x0158,
+ 0x0158, 0x0155, 0x0155, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E,
+ 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F,
+ 0x011F, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106,
+ 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00EF, 0x00ED,
+ 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00D9,
+ 0x018A, 0x018A, 0x018A, 0x018A, 0x018A, 0x018A, 0x018A, 0x018A, 0x018A, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186,
+ 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x017D, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0178, 0x0174, 0x0174, 0x0174, 0x0170,
+ 0x0170, 0x0170, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x0158, 0x0158,
+ 0x0155, 0x0155, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013B, 0x013B,
+ 0x0138, 0x0138, 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011F,
+ 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104,
+ 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00ED,
+ 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00D9, 0x00D7,
+ 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181,
+ 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0178, 0x0178, 0x0174, 0x0174, 0x0174, 0x0170, 0x0170, 0x0170, 0x016C,
+ 0x016C, 0x016C, 0x0168, 0x0168, 0x0168, 0x0164, 0x0164, 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0155,
+ 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x013B, 0x0138,
+ 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011C,
+ 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102,
+ 0x0102, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB,
+ 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7,
+ 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x0181, 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x017D,
+ 0x017D, 0x0178, 0x0178, 0x0178, 0x0178, 0x0174, 0x0174, 0x0174, 0x0174, 0x0170, 0x0170, 0x0170, 0x0170, 0x016C, 0x016C, 0x016C,
+ 0x0168, 0x0168, 0x0164, 0x0164, 0x0164, 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0155, 0x0151, 0x0151,
+ 0x014E, 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135,
+ 0x0135, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A,
+ 0x0118, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0102,
+ 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EA,
+ 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D6,
+ 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x017D, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178,
+ 0x0178, 0x0174, 0x0174, 0x0174, 0x0174, 0x0170, 0x0170, 0x0170, 0x0170, 0x016C, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0168,
+ 0x0164, 0x0164, 0x0164, 0x0160, 0x0160, 0x015C, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x014E,
+ 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0141, 0x013E, 0x013E, 0x013B, 0x013B, 0x0138, 0x0138, 0x0135, 0x0132,
+ 0x0132, 0x012F, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118,
+ 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100,
+ 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA,
+ 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6,
+ 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0178, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174,
+ 0x0174, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x016C, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0168, 0x0164, 0x0164, 0x0164,
+ 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x015C, 0x0158, 0x0158, 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A,
+ 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x013B, 0x0138, 0x0135, 0x0135, 0x0132, 0x0132,
+ 0x012F, 0x012F, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0118,
+ 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE,
+ 0x00FE, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00E8,
+ 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D4,
+ 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0174, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170,
+ 0x0170, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0168, 0x0168, 0x0164, 0x0164, 0x0164, 0x0160, 0x0160, 0x0160,
+ 0x015C, 0x015C, 0x015C, 0x0158, 0x0158, 0x0158, 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x014A, 0x0147,
+ 0x0147, 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x012F, 0x012F,
+ 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115,
+ 0x0113, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE,
+ 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8,
+ 0x00E6, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4,
+ 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x0170, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C,
+ 0x016C, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0164, 0x0164, 0x0164, 0x0164, 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x015C,
+ 0x015C, 0x0158, 0x0158, 0x0155, 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144,
+ 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C,
+ 0x012C, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113,
+ 0x0111, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC,
+ 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6,
+ 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D3,
+ 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x016C, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168,
+ 0x0168, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0160, 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x015C, 0x015C, 0x0158, 0x0158,
+ 0x0158, 0x0155, 0x0155, 0x0155, 0x0151, 0x0151, 0x014E, 0x014E, 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144,
+ 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012C, 0x012C, 0x0129,
+ 0x0129, 0x0127, 0x0127, 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111,
+ 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA,
+ 0x00FA, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5,
+ 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D4, 0x00D3, 0x00D3,
+ 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0168, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164,
+ 0x0164, 0x0164, 0x0160, 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x015C, 0x015C, 0x0158, 0x0158, 0x0158, 0x0158, 0x0155, 0x0155,
+ 0x0155, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E, 0x014E, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141,
+ 0x013E, 0x013E, 0x013B, 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0127,
+ 0x0127, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011C, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x0111,
+ 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00FA,
+ 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5,
+ 0x00E3, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2,
+ 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0164, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160,
+ 0x0160, 0x0160, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x0158, 0x0158, 0x0158, 0x0158, 0x0155, 0x0155, 0x0155, 0x0151, 0x0151,
+ 0x0151, 0x014E, 0x014E, 0x014E, 0x014A, 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E,
+ 0x013B, 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0127,
+ 0x0124, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x010E,
+ 0x010C, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8,
+ 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3,
+ 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D2, 0x00D0,
+ 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x0160, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C,
+ 0x015C, 0x015C, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0155, 0x0155, 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E,
+ 0x014E, 0x014A, 0x014A, 0x014A, 0x0147, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x013B,
+ 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0124, 0x0124,
+ 0x0121, 0x0121, 0x011F, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C,
+ 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6,
+ 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E1,
+ 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0,
+ 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x015C, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158,
+ 0x0158, 0x0158, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E, 0x014E, 0x014A, 0x014A,
+ 0x014A, 0x014A, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x0141, 0x013E, 0x013E, 0x013B, 0x013B, 0x013B, 0x0138,
+ 0x0138, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121,
+ 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x011A, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A,
+ 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F6,
+ 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1,
+ 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00CF,
+ 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0158, 0x0155, 0x0155, 0x0155, 0x0155,
+ 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E, 0x014E, 0x014E, 0x014A, 0x014A, 0x014A, 0x014A, 0x0147,
+ 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x013E, 0x013E, 0x013E, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138, 0x0135,
+ 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F,
+ 0x011F, 0x011C, 0x011C, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x010A,
+ 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4,
+ 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0,
+ 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D0, 0x00CF, 0x00CF,
+ 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0155, 0x0151, 0x0151, 0x0151, 0x0151,
+ 0x0151, 0x0151, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014A, 0x014A, 0x014A, 0x014A, 0x0147, 0x0147, 0x0147, 0x0147, 0x0144,
+ 0x0144, 0x0144, 0x0141, 0x0141, 0x0141, 0x013E, 0x013E, 0x013E, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132,
+ 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121, 0x011F, 0x011F, 0x011C,
+ 0x011C, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108,
+ 0x0106, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2,
+ 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00E0,
+ 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE,
+ 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x0151, 0x014E, 0x014E, 0x014E, 0x014E,
+ 0x014E, 0x014E, 0x014E, 0x014A, 0x014A, 0x014A, 0x014A, 0x0147, 0x0147, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0144, 0x0141,
+ 0x0141, 0x0141, 0x013E, 0x013E, 0x013E, 0x013B, 0x013B, 0x013B, 0x0138, 0x0138, 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F,
+ 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011C, 0x011C,
+ 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106,
+ 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0,
+ 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00E0, 0x00DE,
+ 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00CF, 0x00CE, 0x00CC,
+ 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014E, 0x014A, 0x014A, 0x014A, 0x014A,
+ 0x014A, 0x014A, 0x014A, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x0141, 0x013E,
+ 0x013E, 0x013E, 0x013B, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x012F, 0x012F, 0x012F,
+ 0x012C, 0x012C, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x011A,
+ 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104,
+ 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F0, 0x00F0,
+ 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DD,
+ 0x00DB, 0x00DB, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC,
+ 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x014A, 0x0147, 0x0147, 0x0147, 0x0147,
+ 0x0147, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x0141, 0x0141, 0x013E, 0x013E, 0x013E, 0x013B,
+ 0x013B, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0132, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C,
+ 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011F, 0x011C, 0x011A, 0x011A, 0x0118, 0x0118,
+ 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104,
+ 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF,
+ 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD,
+ 0x00DB, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CB,
+ 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0147, 0x0144, 0x0144, 0x0144, 0x0144,
+ 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x013E, 0x013E, 0x013E, 0x013E, 0x013B, 0x013B, 0x013B, 0x013B,
+ 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x0132, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129,
+ 0x0127, 0x0127, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115,
+ 0x0115, 0x0113, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0102,
+ 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED,
+ 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB,
+ 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CC, 0x00CB, 0x00CB,
+ 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0144, 0x0141, 0x0141, 0x0141,
+ 0x0141, 0x0141, 0x0141, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013B, 0x013B, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138, 0x0138,
+ 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x0132, 0x012F, 0x012F, 0x012F, 0x012C, 0x012C, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127,
+ 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113,
+ 0x0113, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100,
+ 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED,
+ 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA,
+ 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA,
+ 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x0141, 0x013E, 0x013E, 0x013E,
+ 0x013E, 0x013E, 0x013E, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0135, 0x0135,
+ 0x0132, 0x0132, 0x0132, 0x012F, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124,
+ 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111,
+ 0x0111, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE,
+ 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB,
+ 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA,
+ 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CA, 0x00C9,
+ 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013E, 0x013B, 0x013B, 0x013B,
+ 0x013B, 0x013B, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x0132,
+ 0x012F, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127, 0x0127, 0x0124, 0x0124, 0x0121, 0x0121,
+ 0x0121, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111,
+ 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC,
+ 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA,
+ 0x00EA, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9,
+ 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9,
+ 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x013B, 0x0138, 0x0138, 0x0138,
+ 0x0138, 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x0132, 0x0132, 0x012F, 0x012F, 0x012F,
+ 0x012C, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x0121, 0x011F,
+ 0x011F, 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x010E, 0x010E,
+ 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC,
+ 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8,
+ 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7,
+ 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00C9, 0x00C7,
+ 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0138, 0x0135, 0x0135, 0x0135,
+ 0x0135, 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x012F, 0x012F, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C,
+ 0x012C, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127, 0x0127, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x011F, 0x011F, 0x011F, 0x011C,
+ 0x011C, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010C,
+ 0x010A, 0x010A, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA,
+ 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E8,
+ 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7,
+ 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00C9, 0x00C7, 0x00C7,
+ 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0135, 0x0132, 0x0132, 0x0132,
+ 0x0132, 0x0132, 0x0132, 0x0132, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129, 0x0129,
+ 0x0129, 0x0127, 0x0127, 0x0127, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x0121, 0x011F, 0x011F, 0x011F, 0x011C, 0x011C, 0x011A,
+ 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A,
+ 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8,
+ 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6,
+ 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6,
+ 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6,
+ 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x0132, 0x012F, 0x012F,
+ 0x012F, 0x012F, 0x012F, 0x012F, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127, 0x0127,
+ 0x0127, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x0121, 0x011F, 0x011F, 0x011F, 0x011C, 0x011C, 0x011C, 0x011A, 0x011A, 0x0118,
+ 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108,
+ 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6,
+ 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5,
+ 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4,
+ 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA, 0x00C9, 0x00C9, 0x00C7, 0x00C6, 0x00C5,
+ 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012F, 0x012C, 0x012C,
+ 0x012C, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127, 0x0127, 0x0127, 0x0124, 0x0124, 0x0124,
+ 0x0124, 0x0121, 0x0121, 0x0121, 0x011F, 0x011F, 0x011F, 0x011C, 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0118,
+ 0x0115, 0x0115, 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0106,
+ 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6,
+ 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5,
+ 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D3,
+ 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA, 0x00C9, 0x00C9, 0x00C7, 0x00C6, 0x00C5, 0x00C5,
+ 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x012C, 0x0129, 0x0129,
+ 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127, 0x0127, 0x0127, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121,
+ 0x0121, 0x011F, 0x011F, 0x011F, 0x011F, 0x011C, 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0115, 0x0115, 0x0115,
+ 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104,
+ 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4,
+ 0x00F2, 0x00F2, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E3,
+ 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3,
+ 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C6, 0x00C6, 0x00C5, 0x00C4,
+ 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0129, 0x0127, 0x0127,
+ 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x0121, 0x0121, 0x011F, 0x011F,
+ 0x011F, 0x011C, 0x011C, 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0118, 0x0115, 0x0115, 0x0113, 0x0113, 0x0113,
+ 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104,
+ 0x0102, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2,
+ 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1,
+ 0x00E0, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2,
+ 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C6, 0x00C6, 0x00C5, 0x00C4, 0x00C3,
+ 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0127, 0x0124, 0x0124,
+ 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x011F, 0x011F, 0x011F, 0x011F, 0x011C, 0x011C,
+ 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0118, 0x0115, 0x0115, 0x0115, 0x0113, 0x0113, 0x0113, 0x0111, 0x0111,
+ 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102,
+ 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0,
+ 0x00F0, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0,
+ 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D0,
+ 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C6, 0x00C6, 0x00C5, 0x00C4, 0x00C3, 0x00C3,
+ 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0124, 0x0121, 0x0121,
+ 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011C, 0x011C, 0x011C, 0x011C, 0x011A, 0x011A,
+ 0x011A, 0x011A, 0x0118, 0x0118, 0x0118, 0x0115, 0x0115, 0x0115, 0x0113, 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E,
+ 0x010E, 0x010C, 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100,
+ 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF,
+ 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00E0,
+ 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0,
+ 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C4, 0x00C4, 0x00C3, 0x00C1,
+ 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x0121, 0x011F, 0x011F,
+ 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118,
+ 0x0118, 0x0118, 0x0115, 0x0115, 0x0115, 0x0113, 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010E, 0x010C, 0x010C,
+ 0x010C, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE,
+ 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF,
+ 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE,
+ 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF,
+ 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C4, 0x00C4, 0x00C3, 0x00C1, 0x00C0,
+ 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011F, 0x011C,
+ 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0118, 0x0118, 0x0115, 0x0115,
+ 0x0115, 0x0115, 0x0113, 0x0113, 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010A, 0x010A,
+ 0x010A, 0x0108, 0x0108, 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC,
+ 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED,
+ 0x00EB, 0x00EB, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD,
+ 0x00DB, 0x00DB, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE,
+ 0x00CE, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C4, 0x00C4, 0x00C3, 0x00C1, 0x00C0, 0x00C0,
+ 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011C, 0x011A,
+ 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0113,
+ 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010C, 0x010A, 0x010A, 0x010A, 0x0108,
+ 0x0108, 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA,
+ 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EB,
+ 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB,
+ 0x00DB, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CE,
+ 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C4, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF,
+ 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x011A, 0x0118,
+ 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0113, 0x0113, 0x0113, 0x0113, 0x0111,
+ 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010C, 0x010A, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0106,
+ 0x0106, 0x0104, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8,
+ 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA,
+ 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA,
+ 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC,
+ 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BE,
+ 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0118, 0x0115,
+ 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x0111, 0x010E,
+ 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010C, 0x010A, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0106, 0x0104,
+ 0x0104, 0x0104, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8,
+ 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00E8,
+ 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA,
+ 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB,
+ 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BE, 0x00BE,
+ 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0115, 0x0113,
+ 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010E, 0x010E, 0x010C,
+ 0x010C, 0x010C, 0x010C, 0x010A, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0104, 0x0102,
+ 0x0102, 0x0102, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6,
+ 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E6,
+ 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00DA, 0x00D9,
+ 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA,
+ 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD,
+ 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0113, 0x0111,
+ 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010C, 0x010C, 0x010A,
+ 0x010A, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0104, 0x0102, 0x0102, 0x0100,
+ 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4,
+ 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6,
+ 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00D9, 0x00D9, 0x00D7,
+ 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA, 0x00CA,
+ 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BC,
+ 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x0111, 0x010E,
+ 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010A, 0x010A, 0x010A, 0x010A, 0x0108,
+ 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0104, 0x0102, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100,
+ 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2,
+ 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5,
+ 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6,
+ 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9,
+ 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BC, 0x00BC,
+ 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E, 0x010E,
+ 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108,
+ 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0104, 0x0104, 0x0102, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE,
+ 0x00FC, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0,
+ 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E3, 0x00E3,
+ 0x00E1, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D6,
+ 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7,
+ 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB,
+ 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C, 0x010C,
+ 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106,
+ 0x0104, 0x0104, 0x0104, 0x0104, 0x0102, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FC,
+ 0x00FA, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00F0, 0x00EF,
+ 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1,
+ 0x00E1, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D4,
+ 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7,
+ 0x00C6, 0x00C5, 0x00C4, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BA,
+ 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A, 0x010A,
+ 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0104, 0x0104,
+ 0x0102, 0x0102, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00FA,
+ 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED,
+ 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0,
+ 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D4, 0x00D3,
+ 0x00D2, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00C9, 0x00C9, 0x00C7, 0x00C6, 0x00C6,
+ 0x00C5, 0x00C4, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BA, 0x00BA,
+ 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108, 0x0108,
+ 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0102, 0x0102, 0x0102, 0x0102,
+ 0x0100, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00FA, 0x00F8, 0x00F8,
+ 0x00F6, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB,
+ 0x00EB, 0x00EA, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00DE,
+ 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2,
+ 0x00D2, 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00C9, 0x00C9, 0x00C7, 0x00C6, 0x00C6, 0x00C5,
+ 0x00C4, 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BA, 0x00BA, 0x00B9,
+ 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106, 0x0106,
+ 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x0100,
+ 0x00FE, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6,
+ 0x00F6, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA,
+ 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DE,
+ 0x00DD, 0x00DD, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0,
+ 0x00D0, 0x00CF, 0x00CF, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00C9, 0x00C9, 0x00C7, 0x00C6, 0x00C6, 0x00C5, 0x00C4,
+ 0x00C4, 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BD, 0x00BC, 0x00BB, 0x00BA, 0x00BA, 0x00B9, 0x00B8,
+ 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104, 0x0104,
+ 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE, 0x00FE,
+ 0x00FC, 0x00FC, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F6, 0x00F4, 0x00F4,
+ 0x00F4, 0x00F2, 0x00F2, 0x00F2, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00EA,
+ 0x00E8, 0x00E8, 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DD,
+ 0x00DB, 0x00DB, 0x00DA, 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00D0,
+ 0x00CF, 0x00CE, 0x00CE, 0x00CC, 0x00CC, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C6, 0x00C5, 0x00C4, 0x00C4,
+ 0x00C3, 0x00C1, 0x00C1, 0x00C0, 0x00BF, 0x00BF, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB, 0x00BA, 0x00BA, 0x00B9, 0x00B8, 0x00B8,
+ 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102, 0x0102,
+ 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x00FE, 0x00FE, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FC, 0x00FC,
+ 0x00FC, 0x00FA, 0x00FA, 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F4, 0x00F2, 0x00F2,
+ 0x00F2, 0x00F0, 0x00F0, 0x00F0, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00EA, 0x00E8, 0x00E8,
+ 0x00E6, 0x00E6, 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00E0, 0x00E0, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DB,
+ 0x00DA, 0x00DA, 0x00D9, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D2, 0x00D0, 0x00CF, 0x00CF,
+ 0x00CE, 0x00CE, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00CA, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C3,
+ 0x00C1, 0x00C0, 0x00C0, 0x00BF, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB, 0x00BA, 0x00BA, 0x00B9, 0x00B8, 0x00B8, 0x00B7,
+ 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100, 0x0100,
+ 0x00FE, 0x00FE, 0x00FE, 0x00FE, 0x00FE, 0x00FE, 0x00FE, 0x00FC, 0x00FC, 0x00FC, 0x00FC, 0x00FC, 0x00FA, 0x00FA, 0x00FA, 0x00FA,
+ 0x00FA, 0x00F8, 0x00F8, 0x00F8, 0x00F8, 0x00F6, 0x00F6, 0x00F6, 0x00F4, 0x00F4, 0x00F4, 0x00F2, 0x00F2, 0x00F2, 0x00F0, 0x00F0,
+ 0x00F0, 0x00EF, 0x00EF, 0x00EF, 0x00ED, 0x00ED, 0x00ED, 0x00EB, 0x00EB, 0x00EA, 0x00EA, 0x00EA, 0x00E8, 0x00E8, 0x00E6, 0x00E6,
+ 0x00E5, 0x00E5, 0x00E3, 0x00E3, 0x00E3, 0x00E1, 0x00E1, 0x00E0, 0x00E0, 0x00DE, 0x00DE, 0x00DD, 0x00DD, 0x00DB, 0x00DB, 0x00DA,
+ 0x00DA, 0x00D9, 0x00D7, 0x00D7, 0x00D6, 0x00D6, 0x00D4, 0x00D4, 0x00D3, 0x00D3, 0x00D2, 0x00D0, 0x00D0, 0x00CF, 0x00CF, 0x00CE,
+ 0x00CC, 0x00CC, 0x00CB, 0x00CB, 0x00CA, 0x00C9, 0x00C9, 0x00C7, 0x00C7, 0x00C6, 0x00C5, 0x00C5, 0x00C4, 0x00C3, 0x00C3, 0x00C1,
0x00C0, 0x00C0, 0x00BF, 0x00BE, 0x00BE, 0x00BD, 0x00BC, 0x00BC, 0x00BB, 0x00BA, 0x00BA, 0x00B9, 0x00B8, 0x00B8, 0x00B7, 0x00B6
};
#define kDeltaUsedToBuildTable 32
diff --git a/src/effects/SkKernel33MaskFilter.cpp b/src/effects/SkKernel33MaskFilter.cpp
index 9426dd9037..1568a4fe0b 100644
--- a/src/effects/SkKernel33MaskFilter.cpp
+++ b/src/effects/SkKernel33MaskFilter.cpp
@@ -20,18 +20,18 @@ bool SkKernel33ProcMaskFilter::filterMask(SkMask* dst, const SkMask& src,
dst->fBounds = src.fBounds;
dst->fBounds.inset(-1, -1);
dst->fFormat = SkMask::kA8_Format;
-
+
if (NULL == src.fImage) {
return true;
}
-
+
dst->fRowBytes = dst->fBounds.width();
size_t size = dst->computeImageSize();
if (0 == size) {
return false; // too big to allocate, abort
}
dst->fImage = SkMask::AllocImage(size);
-
+
const int h = src.fBounds.height();
const int w = src.fBounds.width();
const int srcRB = src.fRowBytes;
@@ -40,13 +40,13 @@ bool SkKernel33ProcMaskFilter::filterMask(SkMask* dst, const SkMask& src,
uint8_t* srcRows[3];
uint8_t storage[3][3];
-
+
srcRows[0] = storage[0];
srcRows[1] = storage[1];
srcRows[2] = storage[2];
unsigned scale = fPercent256;
-
+
for (int y = -1; y <= h; y++) {
uint8_t* dstRow = dstImage;
for (int x = -1; x <= w; x++) {
@@ -61,9 +61,9 @@ bool SkKernel33ProcMaskFilter::filterMask(SkMask* dst, const SkMask& src,
}
storagePtr++;
}
- }
+ }
int value = this->computeValue(srcRows);
-
+
if (scale < 256) {
value = SkAlphaBlend(value, srcRows[1][1], scale);
}
@@ -94,7 +94,7 @@ uint8_t SkKernel33MaskFilter::computeValue(uint8_t* const* srcRows) {
value += fKernel[i][j] * srcRows[i][j];
}
}
-
+
value >>= fShift;
if (value < 0) {
diff --git a/src/effects/SkLayerDrawLooper.cpp b/src/effects/SkLayerDrawLooper.cpp
index a32cf9ba31..e4aef186eb 100644
--- a/src/effects/SkLayerDrawLooper.cpp
+++ b/src/effects/SkLayerDrawLooper.cpp
@@ -199,7 +199,7 @@ void SkLayerDrawLooper::flatten(SkFlattenableWriteBuffer& buffer) const {
#endif
buffer.writeInt(fCount);
-
+
Rec* rec = fRecs;
for (int i = 0; i < fCount; i++) {
buffer.writeInt(rec->fInfo.fFlagsMask);
@@ -232,7 +232,7 @@ SkLayerDrawLooper::SkLayerDrawLooper(SkFlattenableReadBuffer& buffer)
// we're in reverse order, so fix it now
fRecs = Rec::Reverse(fRecs);
-
+
#ifdef SK_DEBUG
{
Rec* rec = fRecs;
diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/SkLightingImageFilter.cpp
index 9700249347..c73e884703 100644
--- a/src/effects/SkLightingImageFilter.cpp
+++ b/src/effects/SkLightingImageFilter.cpp
@@ -730,7 +730,7 @@ SkImageFilter* SkLightingImageFilter::CreateSpotLitDiffuse(
SkImageFilter* SkLightingImageFilter::CreateDistantLitSpecular(
const SkPoint3& direction, SkColor lightColor, SkScalar surfaceScale,
SkScalar ks, SkScalar shininess) {
- return SkNEW_ARGS(SkSpecularLightingImageFilter,
+ return SkNEW_ARGS(SkSpecularLightingImageFilter,
(SkNEW_ARGS(SkDistantLight, (direction, lightColor)), surfaceScale, ks, shininess));
}
@@ -927,7 +927,7 @@ SkLight* create_random_light(SkRandom* random) {
return SkNEW_ARGS(SkSpotLight, (random_point3(random),
random_point3(random),
random->nextUScalar1(),
- random->nextUScalar1(),
+ random->nextUScalar1(),
random->nextU()));
}
default:
diff --git a/src/effects/SkMorphologyImageFilter.cpp b/src/effects/SkMorphologyImageFilter.cpp
index cbfa5cf0e4..4bde3f018f 100644
--- a/src/effects/SkMorphologyImageFilter.cpp
+++ b/src/effects/SkMorphologyImageFilter.cpp
@@ -444,7 +444,7 @@ GrTexture* apply_morphology(GrTexture* srcTexture,
GrContext* context = srcTexture->getContext();
srcTexture->ref();
GrContext::AutoMatrix avm(context, GrMatrix::I());
- GrContext::AutoClip acs(context, GrRect::MakeWH(SkIntToScalar(srcTexture->width()),
+ GrContext::AutoClip acs(context, GrRect::MakeWH(SkIntToScalar(srcTexture->width()),
SkIntToScalar(srcTexture->height())));
GrTextureDesc desc;
desc.fFlags = kRenderTarget_GrTextureFlagBit | kNoStencil_GrTextureFlagBit;
@@ -457,9 +457,9 @@ GrTexture* apply_morphology(GrTexture* srcTexture,
apply_morphology_pass(context, srcTexture, rect, radius.fWidth,
morphType, Gr1DKernelEffect::kX_Direction);
SkIRect clearRect = SkIRect::MakeXYWH(
- SkScalarFloorToInt(rect.fLeft),
+ SkScalarFloorToInt(rect.fLeft),
SkScalarFloorToInt(rect.fBottom),
- SkScalarFloorToInt(rect.width()),
+ SkScalarFloorToInt(rect.width()),
radius.fHeight);
context->clear(&clearRect, 0x0);
srcTexture->unref();
diff --git a/src/effects/SkTableColorFilter.cpp b/src/effects/SkTableColorFilter.cpp
index f316c5296d..fcfb444a3f 100644
--- a/src/effects/SkTableColorFilter.cpp
+++ b/src/effects/SkTableColorFilter.cpp
@@ -65,37 +65,37 @@ private:
};
static const uint8_t gIdentityTable[] = {
- 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
- 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
- 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
- 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
- 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
- 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
- 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
- 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
- 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
- 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
- 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
- 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
- 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
- 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
- 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
- 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
- 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
- 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7,
- 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
- 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
- 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
- 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
- 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
- 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
- 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
- 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
+ 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+ 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
+ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+ 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+ 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
+ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+ 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+ 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
+ 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
+ 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
+ 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7,
+ 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
+ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
+ 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
+ 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
+ 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF
};
@@ -161,7 +161,7 @@ void SkTable_ColorFilter::flatten(SkFlattenableWriteBuffer& buffer) const {
SkASSERT(size <= sizeof(storage));
// SkDebugf("raw %d packed %d\n", count * 256, size);
-
+
buffer.writeInt(fFlags);
buffer.writeByteArray(storage, size);
}
diff --git a/src/effects/SkTableMaskFilter.cpp b/src/effects/SkTableMaskFilter.cpp
index 495affb188..d1fe134586 100644
--- a/src/effects/SkTableMaskFilter.cpp
+++ b/src/effects/SkTableMaskFilter.cpp
@@ -36,16 +36,16 @@ bool SkTableMaskFilter::filterMask(SkMask* dst, const SkMask& src,
dst->fRowBytes = SkAlign4(dst->fBounds.width());
dst->fFormat = SkMask::kA8_Format;
dst->fImage = NULL;
-
+
if (src.fImage) {
dst->fImage = SkMask::AllocImage(dst->computeImageSize());
-
+
const uint8_t* srcP = src.fImage;
uint8_t* dstP = dst->fImage;
const uint8_t* table = fTable;
int dstWidth = dst->fBounds.width();
int extraZeros = dst->fRowBytes - dstWidth;
-
+
for (int y = dst->fBounds.height() - 1; y >= 0; --y) {
for (int x = dstWidth - 1; x >= 0; --x) {
dstP[x] = table[srcP[x]];
diff --git a/src/effects/SkTestImageFilters.cpp b/src/effects/SkTestImageFilters.cpp
index e67976d4bd..aeb5d798ed 100755
--- a/src/effects/SkTestImageFilters.cpp
+++ b/src/effects/SkTestImageFilters.cpp
@@ -24,7 +24,7 @@ bool SkOffsetImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& src,
SkIPoint* loc) {
SkVector vec;
matrix.mapVectors(&vec, &fOffset, 1);
-
+
loc->fX += SkScalarRoundToInt(vec.fX);
loc->fY += SkScalarRoundToInt(vec.fY);
*result = src;
@@ -65,11 +65,11 @@ bool SkComposeImageFilter::onFilterImage(Proxy* proxy,
if (!fOuter && !fInner) {
return false;
}
-
+
if (!fOuter || !fInner) {
return (fOuter ? fOuter : fInner)->filterImage(proxy, src, ctm, result, loc);
}
-
+
SkBitmap tmp;
return fInner->filterImage(proxy, src, ctm, &tmp, loc) &&
fOuter->filterImage(proxy, tmp, ctm, result, loc);
@@ -81,11 +81,11 @@ bool SkComposeImageFilter::onFilterBounds(const SkIRect& src,
if (!fOuter && !fInner) {
return false;
}
-
+
if (!fOuter || !fInner) {
return (fOuter ? fOuter : fInner)->filterBounds(src, ctm, dst);
}
-
+
SkIRect tmp;
return fInner->filterBounds(src, ctm, &tmp) &&
fOuter->filterBounds(tmp, ctm, dst);
@@ -170,7 +170,7 @@ bool SkMergeImageFilter::onFilterBounds(const SkIRect& src, const SkMatrix& ctm,
}
SkIRect totalBounds;
-
+
for (int i = 0; i < fCount; ++i) {
SkImageFilter* filter = fFilters[i];
SkIRect r;
@@ -231,7 +231,7 @@ bool SkMergeImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& src,
} else {
srcPtr = &src;
}
-
+
if (fModes) {
paint.setXfermodeMode((SkXfermode::Mode)fModes[i]);
} else {
@@ -291,7 +291,7 @@ bool SkDownSampleImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& src,
if (scale > SK_Scalar1 || scale <= 0) {
return false;
}
-
+
int dstW = SkScalarRoundToInt(src.width() * scale);
int dstH = SkScalarRoundToInt(src.height() * scale);
if (dstW < 1) {
@@ -336,7 +336,7 @@ bool SkDownSampleImageFilter::onFilterImage(Proxy* proxy, const SkBitmap& src,
void SkDownSampleImageFilter::flatten(SkFlattenableWriteBuffer& buffer) const {
this->INHERITED::flatten(buffer);
-
+
buffer.writeScalar(fScale);
}
diff --git a/src/effects/gradients/SkClampRange.cpp b/src/effects/gradients/SkClampRange.cpp
index 1f7cce355b..c4bf8b1906 100644
--- a/src/effects/gradients/SkClampRange.cpp
+++ b/src/effects/gradients/SkClampRange.cpp
@@ -116,7 +116,7 @@ void SkClampRange::init(SkFixed fx0, SkFixed dx0, int count, int v0, int v1) {
extraCount = originalCount - count;
ex = fx + dx * count;
}
-
+
bool doSwap = dx < 0;
if (doSwap) {
diff --git a/src/effects/gradients/SkGradientShader.cpp b/src/effects/gradients/SkGradientShader.cpp
index be5b1b01d1..6bcc1ba9db 100644
--- a/src/effects/gradients/SkGradientShader.cpp
+++ b/src/effects/gradients/SkGradientShader.cpp
@@ -620,7 +620,7 @@ SkShader* SkGradientShader::CreateTwoPointRadial(const SkPoint& start,
return NULL;
}
EXPAND_1_COLOR(colorCount);
-
+
return SkNEW_ARGS(SkTwoPointRadialGradient,
(start, startRadius, end, endRadius, colors, pos,
colorCount, mode, mapper));
@@ -698,8 +698,8 @@ void GrGLGradientStage::setData(const GrGLUniformManager& uman,
}
}
-void GrGLGradientStage::emitColorLookup(GrGLShaderBuilder* builder,
- const char* tName,
+void GrGLGradientStage::emitColorLookup(GrGLShaderBuilder* builder,
+ const char* tName,
const char* outputColor,
const char* samplerName) {
builder->fSampleCoords.printf("vec2(%s, %s)", tName,
@@ -710,7 +710,7 @@ void GrGLGradientStage::emitColorLookup(GrGLShaderBuilder* builder,
/////////////////////////////////////////////////////////////////////
-GrGradientEffect::GrGradientEffect(GrContext* ctx,
+GrGradientEffect::GrGradientEffect(GrContext* ctx,
const SkGradientShaderBase& shader,
GrSamplerState* sampler)
: fTexture (NULL)
@@ -731,7 +731,7 @@ GrGradientEffect::GrGradientEffect(GrContext* ctx,
desc.fConfig = SkBitmapConfig2GrPixelConfig(bitmap.config());
fAtlas = GrTextureStripAtlas::GetAtlas(desc);
GrAssert(NULL != fAtlas);
-
+
fRow = fAtlas->lockRow(bitmap);
if (-1 != fRow) {
fYCoord = fAtlas->getYOffset(fRow) + GR_ScalarHalf *
@@ -741,7 +741,7 @@ GrGradientEffect::GrGradientEffect(GrContext* ctx,
fTexture = GrLockCachedBitmapTexture(ctx, bitmap, sampler->textureParams());
SkSafeRef(fTexture);
fYCoord = GR_ScalarHalf;
-
+
// Unlock immediately, this is not great, but we don't have a way of
// knowing when else to unlock it currently, so it may get purged from
// the cache, but it'll still be ref'd until it's no longer being used.
@@ -761,7 +761,7 @@ unsigned int GrGradientEffect::numTextures() const {
return fUseTexture ? 1 : 0;
}
-GrTexture* GrGradientEffect::texture(unsigned int index)
+GrTexture* GrGradientEffect::texture(unsigned int index)
const {
GrAssert(fUseTexture && 0 == index);
return fTexture;
diff --git a/src/effects/gradients/SkGradientShaderPriv.h b/src/effects/gradients/SkGradientShaderPriv.h
index 4c3b6c777f..37959678a2 100644
--- a/src/effects/gradients/SkGradientShaderPriv.h
+++ b/src/effects/gradients/SkGradientShaderPriv.h
@@ -201,7 +201,7 @@ class GrProgramStageFactory;
* The intepretation of the texture matrix depends on the sample mode. The
* texture matrix is applied both when the texture coordinates are explicit
* and when vertex positions are used as texture coordinates. In the latter
- * case the texture matrix is applied to the pre-view-matrix position
+ * case the texture matrix is applied to the pre-view-matrix position
* values.
*
* Normal SampleMode
@@ -212,8 +212,8 @@ class GrProgramStageFactory;
* (0,0) in the post-matrix space is center of the radial gradient.
* Radial2Gradient
* Matrix transforms to space where first circle is centered at the
- * origin. The second circle will be centered (x, 0) where x may be
- * 0 and is provided by setRadial2Params. The post-matrix space is
+ * origin. The second circle will be centered (x, 0) where x may be
+ * 0 and is provided by setRadial2Params. The post-matrix space is
* normalized such that 1 is the second radius - first radius.
* SweepGradient
* The angle from the origin of texture coordinates in post-matrix space
@@ -226,7 +226,7 @@ class GrProgramStageFactory;
class GrGradientEffect : public GrCustomStage {
public:
- GrGradientEffect(GrContext* ctx, const SkGradientShaderBase& shader,
+ GrGradientEffect(GrContext* ctx, const SkGradientShaderBase& shader,
GrSamplerState* sampler);
virtual ~GrGradientEffect();
@@ -287,7 +287,7 @@ public:
// emit code that gets a fragment's color from an expression for t; for now
// this always uses the texture, but for simpler cases we'll be able to lerp
- void emitColorLookup(GrGLShaderBuilder* builder, const char* t,
+ void emitColorLookup(GrGLShaderBuilder* builder, const char* t,
const char* outputColor, const char* samplerName);
private:
diff --git a/src/effects/gradients/SkLinearGradient.cpp b/src/effects/gradients/SkLinearGradient.cpp
index ef397682d9..357d1db7cb 100644
--- a/src/effects/gradients/SkLinearGradient.cpp
+++ b/src/effects/gradients/SkLinearGradient.cpp
@@ -63,10 +63,10 @@ static void pts_to_unit_matrix(const SkPoint pts[2], SkMatrix* matrix) {
///////////////////////////////////////////////////////////////////////////////
SkLinearGradient::SkLinearGradient(const SkPoint pts[2],
- const SkColor colors[],
- const SkScalar pos[],
+ const SkColor colors[],
+ const SkScalar pos[],
int colorCount,
- SkShader::TileMode mode,
+ SkShader::TileMode mode,
SkUnitMapper* mapper)
: SkGradientShaderBase(colors, pos, colorCount, mode, mapper)
, fStart(pts[0])
@@ -120,7 +120,7 @@ typedef void (*LinearShadeProc)(TileProc proc, SkFixed dx, SkFixed fx,
SkPMColor* dstC, const SkPMColor* cache,
int toggle, int count);
-// This function is deprecated, and will be replaced by
+// This function is deprecated, and will be replaced by
// shadeSpan_linear_vertical_lerp() once Chrome has been weaned off of it.
void shadeSpan_linear_vertical(TileProc proc, SkFixed dx, SkFixed fx,
SkPMColor* SK_RESTRICT dstC,
diff --git a/src/effects/gradients/SkLinearGradient.h b/src/effects/gradients/SkLinearGradient.h
index 705c37c348..129a56aadc 100644
--- a/src/effects/gradients/SkLinearGradient.h
+++ b/src/effects/gradients/SkLinearGradient.h
@@ -22,7 +22,7 @@ public:
virtual void shadeSpan16(int x, int y, uint16_t dstC[], int count) SK_OVERRIDE;
virtual BitmapType asABitmap(SkBitmap*, SkMatrix*, TileMode*) const SK_OVERRIDE;
virtual GradientType asAGradient(GradientInfo* info) const SK_OVERRIDE;
- virtual GrCustomStage* asNewCustomStage(GrContext* context,
+ virtual GrCustomStage* asNewCustomStage(GrContext* context,
GrSamplerState* sampler) const SK_OVERRIDE;
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLinearGradient)
diff --git a/src/effects/gradients/SkRadialGradient.cpp b/src/effects/gradients/SkRadialGradient.cpp
index dbde95a17e..e11356a931 100644
--- a/src/effects/gradients/SkRadialGradient.cpp
+++ b/src/effects/gradients/SkRadialGradient.cpp
@@ -221,7 +221,7 @@ void SkRadialGradient::shadeSpan16(int x, int y, uint16_t* dstCParam,
}
}
-SkShader::BitmapType SkRadialGradient::asABitmap(SkBitmap* bitmap,
+SkShader::BitmapType SkRadialGradient::asABitmap(SkBitmap* bitmap,
SkMatrix* matrix, SkShader::TileMode* xy) const {
if (bitmap) {
this->getGradientTableBitmap(bitmap);
@@ -500,7 +500,7 @@ private:
class GrRadialGradient : public GrGradientEffect {
public:
- GrRadialGradient(GrContext* ctx,
+ GrRadialGradient(GrContext* ctx,
const SkRadialGradient& shader,
GrSamplerState* sampler)
: INHERITED(ctx, shader, sampler) {
diff --git a/src/effects/gradients/SkRadialGradient_Table.h b/src/effects/gradients/SkRadialGradient_Table.h
index 7db23dfd04..9a8a5f816e 100644
--- a/src/effects/gradients/SkRadialGradient_Table.h
+++ b/src/effects/gradients/SkRadialGradient_Table.h
@@ -8,132 +8,132 @@
static const uint8_t gSqrt8Table[] = {
- 0x00, 0x05, 0x08, 0x09, 0x0B, 0x0C, 0x0D, 0x0E, 0x10, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x15,
- 0x16, 0x17, 0x18, 0x18, 0x19, 0x19, 0x1A, 0x1B, 0x1B, 0x1C, 0x1C, 0x1D, 0x1D, 0x1E, 0x1E, 0x1F,
- 0x20, 0x20, 0x20, 0x21, 0x21, 0x22, 0x22, 0x23, 0x23, 0x24, 0x24, 0x25, 0x25, 0x25, 0x26, 0x26,
- 0x27, 0x27, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x2A, 0x2A, 0x2B, 0x2B, 0x2B, 0x2C, 0x2C, 0x2C,
- 0x2D, 0x2D, 0x2D, 0x2E, 0x2E, 0x2E, 0x2F, 0x2F, 0x30, 0x30, 0x30, 0x30, 0x31, 0x31, 0x31, 0x32,
- 0x32, 0x32, 0x33, 0x33, 0x33, 0x34, 0x34, 0x34, 0x35, 0x35, 0x35, 0x35, 0x36, 0x36, 0x36, 0x37,
- 0x37, 0x37, 0x38, 0x38, 0x38, 0x38, 0x39, 0x39, 0x39, 0x39, 0x3A, 0x3A, 0x3A, 0x3B, 0x3B, 0x3B,
- 0x3B, 0x3C, 0x3C, 0x3C, 0x3C, 0x3D, 0x3D, 0x3D, 0x3D, 0x3E, 0x3E, 0x3E, 0x3E, 0x3F, 0x3F, 0x3F,
- 0x40, 0x40, 0x40, 0x40, 0x40, 0x41, 0x41, 0x41, 0x41, 0x42, 0x42, 0x42, 0x42, 0x43, 0x43, 0x43,
- 0x43, 0x44, 0x44, 0x44, 0x44, 0x45, 0x45, 0x45, 0x45, 0x45, 0x46, 0x46, 0x46, 0x46, 0x47, 0x47,
- 0x47, 0x47, 0x48, 0x48, 0x48, 0x48, 0x48, 0x49, 0x49, 0x49, 0x49, 0x49, 0x4A, 0x4A, 0x4A, 0x4A,
- 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4D, 0x4D, 0x4D, 0x4D, 0x4D, 0x4E,
- 0x4E, 0x4E, 0x4E, 0x4E, 0x4F, 0x4F, 0x4F, 0x4F, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x51, 0x51,
- 0x51, 0x51, 0x51, 0x52, 0x52, 0x52, 0x52, 0x52, 0x53, 0x53, 0x53, 0x53, 0x53, 0x54, 0x54, 0x54,
- 0x54, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x56, 0x56, 0x56, 0x56, 0x57, 0x57, 0x57,
- 0x57, 0x57, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x5A, 0x5A,
- 0x5A, 0x5A, 0x5A, 0x5B, 0x5B, 0x5B, 0x5B, 0x5B, 0x5B, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5D,
- 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F,
- 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x62, 0x62, 0x62,
- 0x62, 0x62, 0x62, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x65,
- 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x67, 0x67, 0x67,
- 0x67, 0x67, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
- 0x6A, 0x6A, 0x6A, 0x6A, 0x6A, 0x6A, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6C, 0x6C, 0x6C,
- 0x6C, 0x6C, 0x6C, 0x6C, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
- 0x6E, 0x6E, 0x6F, 0x6F, 0x6F, 0x6F, 0x6F, 0x6F, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70,
- 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x73, 0x73,
- 0x73, 0x73, 0x73, 0x73, 0x73, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x75, 0x75, 0x75, 0x75,
- 0x75, 0x75, 0x75, 0x75, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77,
- 0x77, 0x77, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
- 0x79, 0x79, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7B, 0x7B, 0x7B, 0x7B, 0x7B, 0x7B, 0x7B,
- 0x7B, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D,
- 0x7D, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
- 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
- 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
- 0x83, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
- 0x85, 0x85, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
- 0x87, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x89, 0x89, 0x89, 0x89, 0x89,
- 0x89, 0x89, 0x89, 0x89, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8B, 0x8B, 0x8B, 0x8B,
- 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8D, 0x8D,
- 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
- 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
- 0x90, 0x90, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x92, 0x92, 0x92, 0x92, 0x92,
- 0x92, 0x92, 0x92, 0x92, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x94, 0x94, 0x94,
- 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
- 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
- 0x97, 0x97, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x99, 0x99, 0x99, 0x99,
- 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9B,
- 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
- 0x9C, 0x9C, 0x9C, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9E, 0x9E, 0x9E,
- 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
- 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
- 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA3,
- 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
- 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA6, 0xA6,
- 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
- 0xA7, 0xA7, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA9, 0xA9, 0xA9,
- 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
- 0xAA, 0xAA, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAC, 0xAC, 0xAC,
- 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
- 0xAD, 0xAD, 0xAD, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAF, 0xAF,
- 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0,
- 0xB0, 0xB0, 0xB0, 0xB0, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB2,
- 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3,
- 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
- 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB6, 0xB6, 0xB6, 0xB6,
- 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7,
- 0xB7, 0xB7, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB9, 0xB9,
- 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA,
- 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
- 0xBB, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBD, 0xBD, 0xBD,
- 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
- 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF,
- 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC1, 0xC1, 0xC1,
- 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2,
- 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
- 0xC3, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC5, 0xC5, 0xC5,
- 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
- 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7,
- 0xC7, 0xC7, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC9,
- 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xCA, 0xCA, 0xCA, 0xCA,
- 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB,
- 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,
- 0xCC, 0xCC, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCE,
- 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCF, 0xCF, 0xCF, 0xCF,
- 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0,
- 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1,
- 0xD1, 0xD1, 0xD1, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2,
- 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD4, 0xD4, 0xD4,
- 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5,
- 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6,
- 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
- 0xD7, 0xD7, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
- 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xDA, 0xDA,
- 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB,
- 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC,
- 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
- 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE,
- 0xDE, 0xDE, 0xDE, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
- 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE1,
- 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE2, 0xE2, 0xE2,
- 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3,
- 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4,
- 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5,
- 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
- 0xE6, 0xE6, 0xE6, 0xE6, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
- 0xE7, 0xE7, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8,
- 0xE8, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9,
- 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEB, 0xEB,
- 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEC, 0xEC, 0xEC,
- 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xED, 0xED, 0xED, 0xED,
- 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
- 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF,
- 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
- 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1,
- 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
- 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
- 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
- 0xF4, 0xF4, 0xF4, 0xF4, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5,
- 0xF5, 0xF5, 0xF5, 0xF5, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6,
- 0xF6, 0xF6, 0xF6, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
- 0xF7, 0xF7, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
- 0xF8, 0xF8, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9,
- 0xF9, 0xF9, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA,
- 0xFA, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB,
- 0xFB, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
- 0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD,
- 0xFD, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
+ 0x00, 0x05, 0x08, 0x09, 0x0B, 0x0C, 0x0D, 0x0E, 0x10, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x15,
+ 0x16, 0x17, 0x18, 0x18, 0x19, 0x19, 0x1A, 0x1B, 0x1B, 0x1C, 0x1C, 0x1D, 0x1D, 0x1E, 0x1E, 0x1F,
+ 0x20, 0x20, 0x20, 0x21, 0x21, 0x22, 0x22, 0x23, 0x23, 0x24, 0x24, 0x25, 0x25, 0x25, 0x26, 0x26,
+ 0x27, 0x27, 0x28, 0x28, 0x28, 0x29, 0x29, 0x29, 0x2A, 0x2A, 0x2B, 0x2B, 0x2B, 0x2C, 0x2C, 0x2C,
+ 0x2D, 0x2D, 0x2D, 0x2E, 0x2E, 0x2E, 0x2F, 0x2F, 0x30, 0x30, 0x30, 0x30, 0x31, 0x31, 0x31, 0x32,
+ 0x32, 0x32, 0x33, 0x33, 0x33, 0x34, 0x34, 0x34, 0x35, 0x35, 0x35, 0x35, 0x36, 0x36, 0x36, 0x37,
+ 0x37, 0x37, 0x38, 0x38, 0x38, 0x38, 0x39, 0x39, 0x39, 0x39, 0x3A, 0x3A, 0x3A, 0x3B, 0x3B, 0x3B,
+ 0x3B, 0x3C, 0x3C, 0x3C, 0x3C, 0x3D, 0x3D, 0x3D, 0x3D, 0x3E, 0x3E, 0x3E, 0x3E, 0x3F, 0x3F, 0x3F,
+ 0x40, 0x40, 0x40, 0x40, 0x40, 0x41, 0x41, 0x41, 0x41, 0x42, 0x42, 0x42, 0x42, 0x43, 0x43, 0x43,
+ 0x43, 0x44, 0x44, 0x44, 0x44, 0x45, 0x45, 0x45, 0x45, 0x45, 0x46, 0x46, 0x46, 0x46, 0x47, 0x47,
+ 0x47, 0x47, 0x48, 0x48, 0x48, 0x48, 0x48, 0x49, 0x49, 0x49, 0x49, 0x49, 0x4A, 0x4A, 0x4A, 0x4A,
+ 0x4B, 0x4B, 0x4B, 0x4B, 0x4B, 0x4C, 0x4C, 0x4C, 0x4C, 0x4C, 0x4D, 0x4D, 0x4D, 0x4D, 0x4D, 0x4E,
+ 0x4E, 0x4E, 0x4E, 0x4E, 0x4F, 0x4F, 0x4F, 0x4F, 0x50, 0x50, 0x50, 0x50, 0x50, 0x50, 0x51, 0x51,
+ 0x51, 0x51, 0x51, 0x52, 0x52, 0x52, 0x52, 0x52, 0x53, 0x53, 0x53, 0x53, 0x53, 0x54, 0x54, 0x54,
+ 0x54, 0x54, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55, 0x56, 0x56, 0x56, 0x56, 0x56, 0x57, 0x57, 0x57,
+ 0x57, 0x57, 0x58, 0x58, 0x58, 0x58, 0x58, 0x58, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x5A, 0x5A,
+ 0x5A, 0x5A, 0x5A, 0x5B, 0x5B, 0x5B, 0x5B, 0x5B, 0x5B, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5C, 0x5D,
+ 0x5D, 0x5D, 0x5D, 0x5D, 0x5D, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5E, 0x5F, 0x5F, 0x5F, 0x5F, 0x5F,
+ 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x62, 0x62, 0x62,
+ 0x62, 0x62, 0x62, 0x63, 0x63, 0x63, 0x63, 0x63, 0x63, 0x64, 0x64, 0x64, 0x64, 0x64, 0x64, 0x65,
+ 0x65, 0x65, 0x65, 0x65, 0x65, 0x65, 0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x67, 0x67, 0x67, 0x67,
+ 0x67, 0x67, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69, 0x69,
+ 0x6A, 0x6A, 0x6A, 0x6A, 0x6A, 0x6A, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6B, 0x6C, 0x6C, 0x6C,
+ 0x6C, 0x6C, 0x6C, 0x6C, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6D, 0x6E, 0x6E, 0x6E, 0x6E, 0x6E,
+ 0x6E, 0x6E, 0x6F, 0x6F, 0x6F, 0x6F, 0x6F, 0x6F, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70, 0x70,
+ 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x71, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x72, 0x73, 0x73,
+ 0x73, 0x73, 0x73, 0x73, 0x73, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x74, 0x75, 0x75, 0x75, 0x75,
+ 0x75, 0x75, 0x75, 0x75, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x77, 0x77, 0x77, 0x77, 0x77,
+ 0x77, 0x77, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x79, 0x79, 0x79, 0x79, 0x79, 0x79,
+ 0x79, 0x79, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7B, 0x7B, 0x7B, 0x7B, 0x7B, 0x7B, 0x7B,
+ 0x7B, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7C, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D,
+ 0x7D, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F,
+ 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x80, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81, 0x81,
+ 0x81, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83, 0x83,
+ 0x83, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x84, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85, 0x85,
+ 0x85, 0x85, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x87, 0x87, 0x87, 0x87, 0x87, 0x87,
+ 0x87, 0x87, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x89, 0x89, 0x89, 0x89, 0x89,
+ 0x89, 0x89, 0x89, 0x89, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8A, 0x8B, 0x8B, 0x8B, 0x8B,
+ 0x8B, 0x8B, 0x8B, 0x8B, 0x8B, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8C, 0x8D, 0x8D,
+ 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8D, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
+ 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x8F, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90, 0x90,
+ 0x90, 0x90, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x91, 0x92, 0x92, 0x92, 0x92, 0x92,
+ 0x92, 0x92, 0x92, 0x92, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x93, 0x94, 0x94, 0x94,
+ 0x94, 0x94, 0x94, 0x94, 0x94, 0x94, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95, 0x95,
+ 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x96, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
+ 0x97, 0x97, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x99, 0x99, 0x99, 0x99,
+ 0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9B,
+ 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C, 0x9C,
+ 0x9C, 0x9C, 0x9C, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9D, 0x9E, 0x9E, 0x9E,
+ 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9E, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F, 0x9F,
+ 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA0, 0xA1, 0xA1, 0xA1, 0xA1, 0xA1,
+ 0xA1, 0xA1, 0xA1, 0xA1, 0xA1, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA2, 0xA3,
+ 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA3, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4, 0xA4,
+ 0xA4, 0xA4, 0xA4, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA5, 0xA6, 0xA6,
+ 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA6, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7, 0xA7,
+ 0xA7, 0xA7, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA8, 0xA9, 0xA9, 0xA9,
+ 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xA9, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
+ 0xAA, 0xAA, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAB, 0xAC, 0xAC, 0xAC,
+ 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAC, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD, 0xAD,
+ 0xAD, 0xAD, 0xAD, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAE, 0xAF, 0xAF,
+ 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xAF, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0, 0xB0,
+ 0xB0, 0xB0, 0xB0, 0xB0, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB1, 0xB2,
+ 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB2, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB3,
+ 0xB3, 0xB3, 0xB3, 0xB3, 0xB3, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4, 0xB4,
+ 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB5, 0xB6, 0xB6, 0xB6, 0xB6,
+ 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB6, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7, 0xB7,
+ 0xB7, 0xB7, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB8, 0xB9, 0xB9,
+ 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xB9, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBA,
+ 0xBA, 0xBA, 0xBA, 0xBA, 0xBA, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB,
+ 0xBB, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBD, 0xBD, 0xBD,
+ 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBD, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBE,
+ 0xBE, 0xBE, 0xBE, 0xBE, 0xBE, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF, 0xBF,
+ 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC0, 0xC1, 0xC1, 0xC1,
+ 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC1, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC2,
+ 0xC2, 0xC2, 0xC2, 0xC2, 0xC2, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3, 0xC3,
+ 0xC3, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC4, 0xC5, 0xC5, 0xC5,
+ 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6,
+ 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC6, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7, 0xC7,
+ 0xC7, 0xC7, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC8, 0xC9,
+ 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xC9, 0xCA, 0xCA, 0xCA, 0xCA,
+ 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCA, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCB,
+ 0xCB, 0xCB, 0xCB, 0xCB, 0xCB, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC, 0xCC,
+ 0xCC, 0xCC, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCD, 0xCE,
+ 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCE, 0xCF, 0xCF, 0xCF, 0xCF,
+ 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xCF, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0,
+ 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD0, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1, 0xD1,
+ 0xD1, 0xD1, 0xD1, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2, 0xD2,
+ 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD3, 0xD4, 0xD4, 0xD4,
+ 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD4, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5,
+ 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD5, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD6,
+ 0xD6, 0xD6, 0xD6, 0xD6, 0xD6, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7, 0xD7,
+ 0xD7, 0xD7, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8, 0xD8,
+ 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xD9, 0xDA, 0xDA,
+ 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDA, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB,
+ 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDB, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC,
+ 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDC, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
+ 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE, 0xDE,
+ 0xDE, 0xDE, 0xDE, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF, 0xDF,
+ 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE0, 0xE1,
+ 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE1, 0xE2, 0xE2, 0xE2,
+ 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE2, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3,
+ 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE3, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4,
+ 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE4, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5,
+ 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE5, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6, 0xE6,
+ 0xE6, 0xE6, 0xE6, 0xE6, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7, 0xE7,
+ 0xE7, 0xE7, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8, 0xE8,
+ 0xE8, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9, 0xE9,
+ 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEA, 0xEB, 0xEB,
+ 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEB, 0xEC, 0xEC, 0xEC,
+ 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xEC, 0xED, 0xED, 0xED, 0xED,
+ 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xED, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE,
+ 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEE, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF,
+ 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xEF, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0,
+ 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF0, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1,
+ 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF1, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
+ 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF3,
+ 0xF3, 0xF3, 0xF3, 0xF3, 0xF3, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4, 0xF4,
+ 0xF4, 0xF4, 0xF4, 0xF4, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5, 0xF5,
+ 0xF5, 0xF5, 0xF5, 0xF5, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6, 0xF6,
+ 0xF6, 0xF6, 0xF6, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7, 0xF7,
+ 0xF7, 0xF7, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8, 0xF8,
+ 0xF8, 0xF8, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9, 0xF9,
+ 0xF9, 0xF9, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA, 0xFA,
+ 0xFA, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB, 0xFB,
+ 0xFB, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC, 0xFC,
+ 0xFC, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD, 0xFD,
+ 0xFD, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE,
0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF
};
diff --git a/src/effects/gradients/SkSweepGradient.cpp b/src/effects/gradients/SkSweepGradient.cpp
index 89ebba2563..5b3e4b4b21 100644
--- a/src/effects/gradients/SkSweepGradient.cpp
+++ b/src/effects/gradients/SkSweepGradient.cpp
@@ -224,7 +224,7 @@ static unsigned atan_0_90(SkFixed y, SkFixed x) {
static unsigned SkATan2_255(float y, float x) {
// static const float g255Over2PI = 255 / (2 * SK_ScalarPI);
static const float g255Over2PI = 40.584510488433314f;
-
+
float result = sk_float_atan2(y, x);
if (result < 0) {
result += 2 * SK_ScalarPI;
@@ -409,9 +409,9 @@ private:
class GrSweepGradient : public GrGradientEffect {
public:
- GrSweepGradient(GrContext* ctx,
+ GrSweepGradient(GrContext* ctx,
const SkSweepGradient& shader,
- GrSamplerState* sampler)
+ GrSamplerState* sampler)
: INHERITED(ctx, shader, sampler) { }
virtual ~GrSweepGradient() { }
diff --git a/src/effects/gradients/SkTwoPointConicalGradient.cpp b/src/effects/gradients/SkTwoPointConicalGradient.cpp
index e1d8cb4d1e..cdea8d40da 100644
--- a/src/effects/gradients/SkTwoPointConicalGradient.cpp
+++ b/src/effects/gradients/SkTwoPointConicalGradient.cpp
@@ -21,11 +21,11 @@ static int valid_divide(float numer, float denom, float* ratio) {
// ascending order
static int find_quad_roots(float A, float B, float C, float roots[2]) {
SkASSERT(roots);
-
+
if (A == 0) {
return valid_divide(-C, B, roots);
}
-
+
float R = B*B - 4*A*C;
if (R < 0) {
return 0;
@@ -87,7 +87,7 @@ void TwoPtRadial::setup(SkScalar fx, SkScalar fy, SkScalar dfx, SkScalar dfy) {
SkFixed TwoPtRadial::nextT() {
float roots[2];
-
+
float C = sqr(fRelX) + sqr(fRelY) - fRadius2;
int countRoots = find_quad_roots(fA, fB, C, roots);
@@ -184,9 +184,9 @@ SkTwoPointConicalGradient::SkTwoPointConicalGradient(
void SkTwoPointConicalGradient::shadeSpan(int x, int y, SkPMColor* dstCParam,
int count) {
SkASSERT(count > 0);
-
+
SkPMColor* SK_RESTRICT dstC = dstCParam;
-
+
SkMatrix::MapXYProc dstProc = fDstToIndexProc;
TileProc proc = fTileProc;
const SkPMColor* SK_RESTRICT cache = this->getCache32();
@@ -199,14 +199,14 @@ void SkTwoPointConicalGradient::shadeSpan(int x, int y, SkPMColor* dstCParam,
} else {
SkASSERT(SkShader::kRepeat_TileMode == fTileMode);
}
-
+
if (fDstToIndexClass != kPerspective_MatrixClass) {
SkPoint srcPt;
dstProc(fDstToIndex, SkIntToScalar(x) + SK_ScalarHalf,
SkIntToScalar(y) + SK_ScalarHalf, &srcPt);
SkScalar dx, fx = srcPt.fX;
SkScalar dy, fy = srcPt.fY;
-
+
if (fDstToIndexClass == kFixedStepInX_MatrixClass) {
SkFixed fixedX, fixedY;
(void)fDstToIndex.fixedStepInX(SkIntToScalar(y), &fixedX, &fixedY);
@@ -227,7 +227,7 @@ void SkTwoPointConicalGradient::shadeSpan(int x, int y, SkPMColor* dstCParam,
SkPoint srcPt;
dstProc(fDstToIndex, dstX, dstY, &srcPt);
dstX += SK_Scalar1;
-
+
fRec.setup(srcPt.fX, srcPt.fY, 0, 0);
(*shadeProc)(&fRec, dstC, cache, 1);
}
@@ -240,10 +240,10 @@ bool SkTwoPointConicalGradient::setContext(const SkBitmap& device,
if (!this->INHERITED::setContext(device, paint, matrix)) {
return false;
}
-
+
// we don't have a span16 proc
fFlags &= ~kHasSpan16_Flag;
-
+
// in general, we might discard based on computed-radius, so clear
// this flag (todo: sometimes we can detect that we never discard...)
fFlags &= ~kOpaqueAlpha_Flag;
@@ -374,7 +374,7 @@ public:
GrConical2Gradient(GrContext* ctx, const SkTwoPointConicalGradient& shader,
GrSamplerState* sampler)
- : INHERITED(ctx, shader, sampler)
+ : INHERITED(ctx, shader, sampler)
, fCenterX1(shader.getCenterX1())
, fRadius0(shader.getStartRadius())
, fDiffRadius(shader.getDiffRadius()) { }
@@ -431,7 +431,7 @@ GrCustomStage* GrConical2Gradient::TestCreate(SkRandom* random,
radius2 = random->nextUScalar1 ();
// If the circles are identical the factory will give us an empty shader.
} while (radius1 == radius2 && center1 == center2);
-
+
SkColor colors[kMaxRandomGradientColors];
SkScalar stopsArray[kMaxRandomGradientColors];
SkScalar* stops = stopsArray;
@@ -541,8 +541,8 @@ void GrGLConical2Gradient::emitFS(GrGLShaderBuilder* builder,
} else {
GrAssert(3 == builder->fVaryingDims);
bVar = "b";
- code->appendf("\tfloat %s = -2.0 * (%s * %s.x + %s * %s);\n",
- bVar.c_str(), p2.c_str(), builder->fSampleCoords.c_str(),
+ code->appendf("\tfloat %s = -2.0 * (%s * %s.x + %s * %s);\n",
+ bVar.c_str(), p2.c_str(), builder->fSampleCoords.c_str(),
p3.c_str(), p5.c_str());
}
@@ -551,7 +551,7 @@ void GrGLConical2Gradient::emitFS(GrGLShaderBuilder* builder,
code->appendf("\t%s = vec4(0.0,0.0,0.0,0.0);\n", outputColor);
// c = (x^2)+(y^2) - params[4]
- code->appendf("\tfloat %s = dot(%s, %s) - %s;\n", cName.c_str(),
+ code->appendf("\tfloat %s = dot(%s, %s) - %s;\n", cName.c_str(),
builder->fSampleCoords.c_str(), builder->fSampleCoords.c_str(),
p4.c_str());
@@ -561,9 +561,9 @@ void GrGLConical2Gradient::emitFS(GrGLShaderBuilder* builder,
// ac4 = params[0] * c
code->appendf("\tfloat %s = %s * %s;\n", ac4Name.c_str(), p0.c_str(),
cName.c_str());
-
+
// d = b^2 - ac4
- code->appendf("\tfloat %s = %s * %s - %s;\n", dName.c_str(),
+ code->appendf("\tfloat %s = %s * %s - %s;\n", dName.c_str(),
bVar.c_str(), bVar.c_str(), ac4Name.c_str());
// only proceed if discriminant is >= 0
@@ -572,26 +572,26 @@ void GrGLConical2Gradient::emitFS(GrGLShaderBuilder* builder,
// intermediate value we'll use to compute the roots
// q = -0.5 * (b +/- sqrt(d))
code->appendf("\t\tfloat %s = -0.5 * (%s + (%s < 0.0 ? -1.0 : 1.0)"
- " * sqrt(%s));\n", qName.c_str(), bVar.c_str(),
+ " * sqrt(%s));\n", qName.c_str(), bVar.c_str(),
bVar.c_str(), dName.c_str());
// compute both roots
// r0 = q * params[1]
- code->appendf("\t\tfloat %s = %s * %s;\n", r0Name.c_str(),
+ code->appendf("\t\tfloat %s = %s * %s;\n", r0Name.c_str(),
qName.c_str(), p1.c_str());
// r1 = c / q
- code->appendf("\t\tfloat %s = %s / %s;\n", r1Name.c_str(),
+ code->appendf("\t\tfloat %s = %s / %s;\n", r1Name.c_str(),
cName.c_str(), qName.c_str());
- // Note: If there are two roots that both generate radius(t) > 0, the
+ // Note: If there are two roots that both generate radius(t) > 0, the
// Canvas spec says to choose the larger t.
// so we'll look at the larger one first:
- code->appendf("\t\tfloat %s = max(%s, %s);\n", tName.c_str(),
+ code->appendf("\t\tfloat %s = max(%s, %s);\n", tName.c_str(),
r0Name.c_str(), r1Name.c_str());
// if r(t) > 0, then we're done; t will be our x coordinate
- code->appendf("\t\tif (%s * %s + %s > 0.0) {\n", tName.c_str(),
+ code->appendf("\t\tif (%s * %s + %s > 0.0) {\n", tName.c_str(),
p5.c_str(), p3.c_str());
code->appendf("\t\t");
@@ -599,7 +599,7 @@ void GrGLConical2Gradient::emitFS(GrGLShaderBuilder* builder,
// otherwise, if r(t) for the larger root was <= 0, try the other root
code->appendf("\t\t} else {\n");
- code->appendf("\t\t\t%s = min(%s, %s);\n", tName.c_str(),
+ code->appendf("\t\t\t%s = min(%s, %s);\n", tName.c_str(),
r0Name.c_str(), r1Name.c_str());
// if r(t) > 0 for the smaller root, then t will be our x coordinate
@@ -609,7 +609,7 @@ void GrGLConical2Gradient::emitFS(GrGLShaderBuilder* builder,
code->appendf("\t\t\t");
this->emitColorLookup(builder, tName.c_str(), outputColor, samplerName);
- // end if (r(t) > 0) for smaller root
+ // end if (r(t) > 0) for smaller root
code->appendf("\t\t\t}\n");
// end if (r(t) > 0), else, for larger root
code->appendf("\t\t}\n");
@@ -618,7 +618,7 @@ void GrGLConical2Gradient::emitFS(GrGLShaderBuilder* builder,
} else {
// linear case: t = -c/b
- code->appendf("\tfloat %s = -(%s / %s);\n", tName.c_str(),
+ code->appendf("\tfloat %s = -(%s / %s);\n", tName.c_str(),
cName.c_str(), bVar.c_str());
// if r(t) > 0, then t will be the x coordinate
diff --git a/src/effects/gradients/SkTwoPointConicalGradient.h b/src/effects/gradients/SkTwoPointConicalGradient.h
index 45ed15b8b1..4ce72801e0 100644
--- a/src/effects/gradients/SkTwoPointConicalGradient.h
+++ b/src/effects/gradients/SkTwoPointConicalGradient.h
@@ -26,14 +26,14 @@ struct TwoPtRadial {
void init(const SkPoint& center0, SkScalar rad0,
const SkPoint& center1, SkScalar rad1);
-
+
// used by setup and nextT
float fRelX, fRelY, fIncX, fIncY;
float fB, fDB;
-
+
void setup(SkScalar fx, SkScalar fy, SkScalar dfx, SkScalar dfy);
SkFixed nextT();
-
+
static bool DontDrawT(SkFixed t) {
return kDontDrawT == (uint32_t)t;
}
@@ -50,7 +50,7 @@ public:
const SkColor colors[], const SkScalar pos[],
int colorCount, SkShader::TileMode mode,
SkUnitMapper* mapper);
-
+
virtual void shadeSpan(int x, int y, SkPMColor* dstCParam,
int count) SK_OVERRIDE;
virtual bool setContext(const SkBitmap& device,
@@ -69,11 +69,11 @@ public:
SkScalar getDiffRadius() const { return fRadius2 - fRadius1; }
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTwoPointConicalGradient)
-
+
protected:
SkTwoPointConicalGradient(SkFlattenableReadBuffer& buffer);
virtual void flatten(SkFlattenableWriteBuffer& buffer) const SK_OVERRIDE;
-
+
private:
typedef SkGradientShaderBase INHERITED;
const SkPoint fCenter1;
diff --git a/src/effects/gradients/SkTwoPointRadialGradient.cpp b/src/effects/gradients/SkTwoPointRadialGradient.cpp
index 9d937713fd..8da6f839fc 100644
--- a/src/effects/gradients/SkTwoPointRadialGradient.cpp
+++ b/src/effects/gradients/SkTwoPointRadialGradient.cpp
@@ -405,11 +405,11 @@ private:
class GrRadial2Gradient : public GrGradientEffect {
public:
- GrRadial2Gradient(GrContext* ctx, const SkTwoPointRadialGradient& shader,
+ GrRadial2Gradient(GrContext* ctx, const SkTwoPointRadialGradient& shader,
GrSamplerState* sampler)
: INHERITED(ctx, shader, sampler)
, fCenterX1(shader.getCenterX1())
- , fRadius0(shader.getStartRadius())
+ , fRadius0(shader.getStartRadius())
, fPosRoot(shader.getDiffRadius() < 0) { }
virtual ~GrRadial2Gradient() { }
diff --git a/src/gpu/FlingState.cpp b/src/gpu/FlingState.cpp
index 050a810499..8d9e1c5607 100644
--- a/src/gpu/FlingState.cpp
+++ b/src/gpu/FlingState.cpp
@@ -110,13 +110,13 @@ float GrAnimateFloat::evaluate() {
if (!fTime0) {
return fValue1;
}
-
+
double elapsed = (SkTime::GetMSecs() - fTime0) * 0.001;
if (elapsed >= fDuration) {
fTime0 = 0;
return fValue1;
}
-
+
double t = elapsed / fDuration;
if (true) {
t = (3 - 2 * t) * t * t;
diff --git a/src/gpu/GrAAConvexPathRenderer.cpp b/src/gpu/GrAAConvexPathRenderer.cpp
index 1857beb22f..718cfdd199 100644
--- a/src/gpu/GrAAConvexPathRenderer.cpp
+++ b/src/gpu/GrAAConvexPathRenderer.cpp
@@ -226,7 +226,7 @@ bool get_segments(const SkPath& path,
// This renderer overemphasises very thin path regions. We use the distance
// to the path from the sample to compute coverage. Every pixel intersected
// by the path will be hit and the maximum distance is sqrt(2)/2. We don't
- // notice that the sample may be close to a very thin area of the path and
+ // notice that the sample may be close to a very thin area of the path and
// thus should be very light. This is particularly egregious for degenerate
// line paths. We detect paths that are very close to a line (zero area) and
// draw nothing.
@@ -299,7 +299,7 @@ struct QuadVertex {
GrScalar fD0;
GrScalar fD1;
};
-
+
void create_vertices(const SegmentArray& segments,
const SkPoint& fanPt,
QuadVertex* verts,
@@ -312,7 +312,7 @@ void create_vertices(const SegmentArray& segments,
const Segment& sega = segments[a];
int b = (a + 1) % count;
const Segment& segb = segments[b];
-
+
// FIXME: These tris are inset in the 1 unit arc around the corner
verts[v + 0].fPos = sega.endPt();
verts[v + 1].fPos = verts[v + 0].fPos + sega.endNorm();
@@ -326,14 +326,14 @@ void create_vertices(const SegmentArray& segments,
verts[v + 1].fD0 = verts[v + 1].fD1 = -SK_Scalar1;
verts[v + 2].fD0 = verts[v + 2].fD1 = -SK_Scalar1;
verts[v + 3].fD0 = verts[v + 3].fD1 = -SK_Scalar1;
-
+
idxs[i + 0] = v + 0;
idxs[i + 1] = v + 2;
idxs[i + 2] = v + 1;
idxs[i + 3] = v + 0;
idxs[i + 4] = v + 3;
idxs[i + 5] = v + 2;
-
+
v += 4;
i += 6;
diff --git a/src/gpu/GrAAHairLinePathRenderer.cpp b/src/gpu/GrAAHairLinePathRenderer.cpp
index 43e87d61e6..94b607ce12 100644
--- a/src/gpu/GrAAHairLinePathRenderer.cpp
+++ b/src/gpu/GrAAHairLinePathRenderer.cpp
@@ -139,7 +139,7 @@ int get_float_exp(float x) {
// if it returns -1 then should be drawn as lines
int num_quad_subdivs(const SkPoint p[3]) {
static const SkScalar gDegenerateToLineTol = SK_Scalar1;
- static const SkScalar gDegenerateToLineTolSqd =
+ static const SkScalar gDegenerateToLineTolSqd =
SkScalarMul(gDegenerateToLineTol, gDegenerateToLineTol);
if (p[0].distanceToSqd(p[1]) < gDegenerateToLineTolSqd ||
@@ -177,7 +177,7 @@ int num_quad_subdivs(const SkPoint p[3]) {
return log;
#else
SkScalar log = SkScalarLog(
- SkScalarDiv(dsqd,
+ SkScalarDiv(dsqd,
SkScalarMul(gSubdivTol, gSubdivTol)));
static const SkScalar conv = SkScalarInvert(SkScalarLog(2));
log = SkScalarMul(log, conv);
@@ -269,7 +269,7 @@ int generate_lines_and_quads(const SkPath& path,
// We convert cubics to quadratics (for now).
// In perspective have to do conversion in src space.
if (persp) {
- SkScalar tolScale =
+ SkScalar tolScale =
GrPathUtils::scaleToleranceToSrc(SK_Scalar1, m,
path.getBounds());
GrPathUtils::convertCubicToQuads(pts, tolScale, false, kDummyDir, &q);
@@ -351,7 +351,7 @@ void intersect_lines(const SkPoint& ptA, const SkVector& normA,
result->fX = SkScalarMul(normA.fY, lineBW) - SkScalarMul(lineAW, normB.fY);
result->fX = SkScalarMul(result->fX, wInv);
-
+
result->fY = SkScalarMul(lineAW, normB.fX) - SkScalarMul(normA.fX, lineBW);
result->fY = SkScalarMul(result->fY, wInv);
}
@@ -512,7 +512,7 @@ bool GrAAHairLinePathRenderer::createGeom(
int rtHeight = drawState.getRenderTarget()->height();
GrIRect devClipBounds;
- target->getClip()->getConservativeBounds(drawState.getRenderTarget(),
+ target->getClip()->getConservativeBounds(drawState.getRenderTarget(),
&devClipBounds);
GrVertexLayout layout = GrDrawTarget::kEdge_VertexLayoutBit;
@@ -611,7 +611,7 @@ bool GrAAHairLinePathRenderer::onDrawPath(const SkPath& path,
}
drawState->viewMatrix()->reset();
}
-
+
// TODO: See whether rendering lines as degenerate quads improves perf
// when we have a mix
diff --git a/src/gpu/GrAddPathRenderers_none.cpp b/src/gpu/GrAddPathRenderers_none.cpp
index 46855db7ff..02da710724 100644
--- a/src/gpu/GrAddPathRenderers_none.cpp
+++ b/src/gpu/GrAddPathRenderers_none.cpp
@@ -10,6 +10,6 @@
#include "GrPathRenderer.h"
-void GrPathRenderer::AddPathRenderers(GrContext*,
+void GrPathRenderer::AddPathRenderers(GrContext*,
GrPathRendererChain::UsageFlags,
GrPathRendererChain*) {}
diff --git a/src/gpu/GrAllocPool.cpp b/src/gpu/GrAllocPool.cpp
index ecd2acfa05..39f8350c16 100644
--- a/src/gpu/GrAllocPool.cpp
+++ b/src/gpu/GrAllocPool.cpp
@@ -40,7 +40,7 @@ struct GrAllocPool::Block {
fPtr += bytes;
return ptr;
}
-
+
size_t release(size_t bytes) {
GrAssert(bytes > 0);
size_t free = GrMin(bytes, fBytesTotal - fBytesFree);
@@ -48,7 +48,7 @@ struct GrAllocPool::Block {
fPtr -= free;
return bytes - free;
}
-
+
bool empty() const { return fBytesTotal == fBytesFree; }
};
@@ -79,7 +79,7 @@ void GrAllocPool::reset() {
void* GrAllocPool::alloc(size_t size) {
this->validate();
-
+
if (!fBlock || !fBlock->canAlloc(size)) {
size_t blockSize = GrMax(fMinBlockSize, size);
fBlock = Block::Create(blockSize, fBlock);
@@ -90,7 +90,7 @@ void* GrAllocPool::alloc(size_t size) {
void GrAllocPool::release(size_t bytes) {
this->validate();
-
+
while (bytes && NULL != fBlock) {
bytes = fBlock->release(bytes);
if (fBlock->empty()) {
diff --git a/src/gpu/GrAllocPool.h b/src/gpu/GrAllocPool.h
index 3ecc4aa189..3489cb9563 100644
--- a/src/gpu/GrAllocPool.h
+++ b/src/gpu/GrAllocPool.h
@@ -29,7 +29,7 @@ public:
* address was allocated by malloc or new (because it hasn't).
*/
void* alloc(size_t bytes);
-
+
/**
* Releases the most recently allocated bytes back to allocpool.
*/
diff --git a/src/gpu/GrBufferAllocPool.cpp b/src/gpu/GrBufferAllocPool.cpp
index 70924f27b9..c2ee357ed5 100644
--- a/src/gpu/GrBufferAllocPool.cpp
+++ b/src/gpu/GrBufferAllocPool.cpp
@@ -134,11 +134,11 @@ void GrBufferAllocPool::validate(bool unusedBlockAllowed) const {
GrAssert(!fBlocks[i].fBuffer->isLocked());
}
for (int i = 0; i < fBlocks.count(); ++i) {
- size_t bytes = fBlocks[i].fBuffer->sizeInBytes() - fBlocks[i].fBytesFree;
+ size_t bytes = fBlocks[i].fBuffer->sizeInBytes() - fBlocks[i].fBytesFree;
bytesInUse += bytes;
GrAssert(bytes || unusedBlockAllowed);
}
-
+
GrAssert(bytesInUse == fBytesInUse);
if (unusedBlockAllowed) {
GrAssert((fBytesInUse && !fBlocks.empty()) ||
@@ -181,7 +181,7 @@ void* GrBufferAllocPool::makeSpace(size_t size,
// may be cheating on the actual buffer size by shrinking the buffer on
// updateData() if the amount of data passed is less than the full buffer
// size.
-
+
if (!createBlock(size)) {
return NULL;
}
diff --git a/src/gpu/GrBufferAllocPool.h b/src/gpu/GrBufferAllocPool.h
index 3e2cd395c6..7ed4b0c07e 100644
--- a/src/gpu/GrBufferAllocPool.h
+++ b/src/gpu/GrBufferAllocPool.h
@@ -164,7 +164,7 @@ private:
#if GR_DEBUG
void validate(bool unusedBlockAllowed = false) const;
#endif
-
+
size_t fBytesInUse;
GrGpu* fGpu;
diff --git a/src/gpu/GrCacheID.cpp b/src/gpu/GrCacheID.cpp
index 5f60d94e4b..4c6dd492c3 100644
--- a/src/gpu/GrCacheID.cpp
+++ b/src/gpu/GrCacheID.cpp
@@ -10,7 +10,7 @@
uint8_t GrCacheID::GetNextDomain() {
// 0 reserved for kUnrestricted_ResourceDomain
- static int32_t gNextDomain = 1;
+ static int32_t gNextDomain = 1;
int32_t domain = sk_atomic_inc(&gNextDomain);
if (domain >= 256) {
@@ -22,7 +22,7 @@ uint8_t GrCacheID::GetNextDomain() {
uint8_t GrCacheID::GetNextResourceType() {
// 0 reserved for kInvalid_ResourceType
- static int32_t gNextResourceType = 1;
+ static int32_t gNextResourceType = 1;
int32_t type = sk_atomic_inc(&gNextResourceType);
if (type >= 256) {
diff --git a/src/gpu/GrClipData.cpp b/src/gpu/GrClipData.cpp
index 488643d1d1..7c84c18a9b 100644
--- a/src/gpu/GrClipData.cpp
+++ b/src/gpu/GrClipData.cpp
@@ -23,7 +23,7 @@ void GrClipData::getConservativeBounds(const GrSurface* surface,
bool* isIntersectionOfRects) const {
GrRect devBounds;
- fClipStack->getConservativeBounds(-fOrigin.fX,
+ fClipStack->getConservativeBounds(-fOrigin.fX,
-fOrigin.fY,
surface->width(),
surface->height(),
diff --git a/src/gpu/GrClipMaskManager.cpp b/src/gpu/GrClipMaskManager.cpp
index a1cd75b5f8..de8f323ce6 100644
--- a/src/gpu/GrClipMaskManager.cpp
+++ b/src/gpu/GrClipMaskManager.cpp
@@ -26,7 +26,7 @@ GR_DEFINE_RESOURCE_CACHE_DOMAIN(GrClipMaskManager, GetAlphaMaskDomain)
GrClipMaskCache::GrClipMaskCache()
: fContext(NULL)
, fStack(sizeof(GrClipStackFrame)) {
- // We need an initial frame to capture the clip state prior to
+ // We need an initial frame to capture the clip state prior to
// any pushes
SkNEW_PLACEMENT(fStack.push_back(), GrClipStackFrame);
}
@@ -37,10 +37,10 @@ void GrClipMaskCache::push() {
////////////////////////////////////////////////////////////////////////////////
namespace {
-// set up the draw state to enable the aa clipping mask. Besides setting up the
+// set up the draw state to enable the aa clipping mask. Besides setting up the
// sampler matrix this also alters the vertex layout
-void setup_drawstate_aaclip(GrGpu* gpu,
- GrTexture* result,
+void setup_drawstate_aaclip(GrGpu* gpu,
+ GrTexture* result,
const GrIRect &devBound) {
GrDrawState* drawState = gpu->drawState();
GrAssert(drawState);
@@ -49,7 +49,7 @@ void setup_drawstate_aaclip(GrGpu* gpu,
GrMatrix mat;
mat.setIDiv(result->width(), result->height());
- mat.preTranslate(SkIntToScalar(-devBound.fLeft),
+ mat.preTranslate(SkIntToScalar(-devBound.fLeft),
SkIntToScalar(-devBound.fTop));
mat.preConcat(drawState->getViewMatrix());
@@ -134,8 +134,8 @@ bool GrClipMaskManager::useSWOnlyPath(const SkClipStack& clipIn) {
// rects can always be drawn directly w/o using the software path
// so only paths need to be checked
if (NULL != clip->fPath &&
- path_needs_SW_renderer(this->getContext(), fGpu,
- *clip->fPath,
+ path_needs_SW_renderer(this->getContext(), fGpu,
+ *clip->fPath,
get_path_fill(*clip->fPath),
clip->fDoAA)) {
useSW = true;
@@ -165,7 +165,7 @@ bool GrClipMaskManager::setupClipping(const GrClipData* clipDataIn) {
GrIRect devClipBounds;
bool isIntersectionOfRects = false;
- clipDataIn->getConservativeBounds(rt, &devClipBounds,
+ clipDataIn->getConservativeBounds(rt, &devClipBounds,
&isIntersectionOfRects);
if (devClipBounds.isEmpty()) {
return false;
@@ -175,11 +175,11 @@ bool GrClipMaskManager::setupClipping(const GrClipData* clipDataIn) {
#if GR_SW_CLIP
// If MSAA is enabled we can do everything in the stencil buffer.
- // Otherwise check if we should just create the entire clip mask
+ // Otherwise check if we should just create the entire clip mask
// in software (this will only happen if the clip mask is anti-aliased
// and too complex for the gpu to handle in its entirety)
if (0 == rt->numSamples() &&
- requiresAA &&
+ requiresAA &&
this->useSWOnlyPath(*clipDataIn->fClipStack)) {
// The clip geometry is complex enough that it will be more
// efficient to create it entirely in software
@@ -219,12 +219,12 @@ bool GrClipMaskManager::setupClipping(const GrClipData* clipDataIn) {
}
#endif // GR_AA_CLIP
- // Either a hard (stencil buffer) clip was explicitly requested or
+ // Either a hard (stencil buffer) clip was explicitly requested or
// an antialiased clip couldn't be created. In either case, free up
// the texture in the antialiased mask cache.
// TODO: this may require more investigation. Ganesh performs a lot of
// utility draws (e.g., clears, InOrderDrawBuffer playbacks) that hit
- // the stencil buffer path. These may be "incorrectly" clearing the
+ // the stencil buffer path. These may be "incorrectly" clearing the
// AA cache.
fAACache.reset();
@@ -237,7 +237,7 @@ bool GrClipMaskManager::setupClipping(const GrClipData* clipDataIn) {
}
// use the stencil clip if we can't represent the clip as a rectangle.
- bool useStencil = !clipDataIn->fClipStack->isWideOpen() &&
+ bool useStencil = !clipDataIn->fClipStack->isWideOpen() &&
!devClipBounds.isEmpty();
if (useStencil) {
@@ -269,13 +269,13 @@ namespace {
* "devContainee" is in device coordiates. "origin" provides the mapping between
* the two.
*/
-bool contains(const SkRect& canvContainer,
+bool contains(const SkRect& canvContainer,
const SkIRect& devContainee,
const SkIPoint& origin) {
return !devContainee.isEmpty() && !canvContainer.isEmpty() &&
- canvContainer.fLeft <= SkIntToScalar(devContainee.fLeft+origin.fX) &&
+ canvContainer.fLeft <= SkIntToScalar(devContainee.fLeft+origin.fX) &&
canvContainer.fTop <= SkIntToScalar(devContainee.fTop+origin.fY) &&
- canvContainer.fRight >= SkIntToScalar(devContainee.fRight+origin.fX) &&
+ canvContainer.fRight >= SkIntToScalar(devContainee.fRight+origin.fX) &&
canvContainer.fBottom >= SkIntToScalar(devContainee.fBottom+origin.fY);
}
@@ -292,7 +292,7 @@ const SkClipStack::Iter::Clip* process_initial_clip_elements(
GrAssert(NULL != iter && NULL != clearToInside && NULL != firstOp);
- // logically before the first element of the clip stack is
+ // logically before the first element of the clip stack is
// processed the clip is entirely open. However, depending on the
// first set op we may prefer to clear to 0 for performance. We may
// also be able to skip the initial clip paths/rects. We loop until
@@ -331,7 +331,7 @@ const SkClipStack::Iter::Clip* process_initial_clip_elements(
// we can skip a leading union.
case SkRegion::kUnion_Op:
// if everything is initially outside then union is
- // same as replace. Otherwise, every pixel is still
+ // same as replace. Otherwise, every pixel is still
// clearToInside
if (!*clearToInside) {
*firstOp = SkRegion::kReplace_Op;
@@ -385,8 +385,8 @@ const SkClipStack::Iter::Clip* process_initial_clip_elements(
namespace {
////////////////////////////////////////////////////////////////////////////////
-// set up the OpenGL blend function to perform the specified
-// boolean operation for alpha clip mask creation
+// set up the OpenGL blend function to perform the specified
+// boolean operation for alpha clip mask creation
void setup_boolean_blendcoeffs(GrDrawState* drawState, SkRegion::Op op) {
switch (op) {
@@ -423,8 +423,8 @@ bool draw_path_in_software(GrContext* context,
const GrIRect& resultBounds) {
SkAutoTUnref<GrTexture> texture(
- GrSWMaskHelper::DrawPathMaskToTexture(context, path,
- resultBounds, fill,
+ GrSWMaskHelper::DrawPathMaskToTexture(context, path,
+ resultBounds, fill,
doAA, NULL));
if (NULL == texture) {
return false;
@@ -510,7 +510,7 @@ void GrClipMaskManager::drawTexture(GrTexture* target,
drawState->sampler(0)->reset(sampleM);
drawState->createTextureEffect(0, texture);
- GrRect rect = GrRect::MakeWH(SkIntToScalar(target->width()),
+ GrRect rect = GrRect::MakeWH(SkIntToScalar(target->width()),
SkIntToScalar(target->height()));
fGpu->drawSimpleRect(rect, NULL);
@@ -520,7 +520,7 @@ void GrClipMaskManager::drawTexture(GrTexture* target,
// get a texture to act as a temporary buffer for AA clip boolean operations
// TODO: given the expense of createTexture we may want to just cache this too
-void GrClipMaskManager::getTemp(const GrIRect& bounds,
+void GrClipMaskManager::getTemp(const GrIRect& bounds,
GrAutoScratchTexture* temp) {
if (NULL != temp->texture()) {
// we've already allocated the temp texture
@@ -578,7 +578,7 @@ bool GrClipMaskManager::clipMaskPreamble(const GrClipData& clipDataIn,
// TODO: make sure we don't outset if bounds are still 0,0 @ min
- if (fAACache.canReuse(*clipDataIn.fClipStack,
+ if (fAACache.canReuse(*clipDataIn.fClipStack,
devClipBounds.width(),
devClipBounds.height())) {
*result = fAACache.getLastMask();
@@ -620,17 +620,17 @@ bool GrClipMaskManager::createAlphaClipMask(const GrClipData& clipDataIn,
if (0 != devResultBounds->fTop || 0 != devResultBounds->fLeft ||
0 != clipDataIn.fOrigin.fX || 0 != clipDataIn.fOrigin.fY) {
- // if we were able to trim down the size of the mask we need to
+ // if we were able to trim down the size of the mask we need to
// offset the paths & rects that will be used to compute it
drawState->viewMatrix()->setTranslate(
- SkIntToScalar(-devResultBounds->fLeft-clipDataIn.fOrigin.fX),
+ SkIntToScalar(-devResultBounds->fLeft-clipDataIn.fOrigin.fX),
SkIntToScalar(-devResultBounds->fTop-clipDataIn.fOrigin.fY));
}
bool clearToInside;
SkRegion::Op firstOp = SkRegion::kReplace_Op; // suppress warning
- SkClipStack::Iter iter(*clipDataIn.fClipStack,
+ SkClipStack::Iter iter(*clipDataIn.fClipStack,
SkClipStack::Iter::kBottom_IterStart);
const SkClipStack::Iter::Clip* clip = process_initial_clip_elements(&iter,
*devResultBounds,
@@ -638,8 +638,8 @@ bool GrClipMaskManager::createAlphaClipMask(const GrClipData& clipDataIn,
&firstOp,
clipDataIn);
- fGpu->clear(NULL,
- clearToInside ? 0xffffffff : 0x00000000,
+ fGpu->clear(NULL,
+ clearToInside ? 0xffffffff : 0x00000000,
accum->asRenderTarget());
GrAutoScratchTexture temp;
@@ -698,12 +698,12 @@ bool GrClipMaskManager::createAlphaClipMask(const GrClipData& clipDataIn,
if (0 != devResultBounds->fTop || 0 != devResultBounds->fLeft ||
0 != clipDataIn.fOrigin.fX || 0 != clipDataIn.fOrigin.fY) {
drawState->viewMatrix()->setTranslate(
- SkIntToScalar(-devResultBounds->fLeft-clipDataIn.fOrigin.fX),
+ SkIntToScalar(-devResultBounds->fLeft-clipDataIn.fOrigin.fX),
SkIntToScalar(-devResultBounds->fTop-clipDataIn.fOrigin.fY));
}
} else {
- // all the remaining ops can just be directly draw into
+ // all the remaining ops can just be directly draw into
// the accumulation buffer
setup_boolean_blendcoeffs(drawState, op);
this->drawClipShape(accum, clip, *devResultBounds);
@@ -716,7 +716,7 @@ bool GrClipMaskManager::createAlphaClipMask(const GrClipData& clipDataIn,
}
////////////////////////////////////////////////////////////////////////////////
-// Create a 1-bit clip mask in the stencil buffer. 'devClipBounds' are in device
+// Create a 1-bit clip mask in the stencil buffer. 'devClipBounds' are in device
// (as opposed to canvas) coordinates
bool GrClipMaskManager::createStencilClipMask(const GrClipData& clipDataIn,
const GrIRect& devClipBounds) {
@@ -759,10 +759,10 @@ bool GrClipMaskManager::createStencilClipMask(const GrClipData& clipDataIn,
GrDrawTarget::AutoGeometryPush agp(fGpu);
if (0 != clipDataIn.fOrigin.fX || 0 != clipDataIn.fOrigin.fY) {
- // Add the saveLayer's offset to the view matrix rather than
+ // Add the saveLayer's offset to the view matrix rather than
// offset each individual draw
drawState->viewMatrix()->setTranslate(
- SkIntToScalar(-clipDataIn.fOrigin.fX),
+ SkIntToScalar(-clipDataIn.fOrigin.fX),
SkIntToScalar(-clipDataIn.fOrigin.fY));
}
@@ -780,7 +780,7 @@ bool GrClipMaskManager::createStencilClipMask(const GrClipData& clipDataIn,
bool clearToInside;
SkRegion::Op firstOp = SkRegion::kReplace_Op; // suppress warning
- SkClipStack::Iter iter(*oldClipData->fClipStack,
+ SkClipStack::Iter iter(*oldClipData->fClipStack,
SkClipStack::Iter::kBottom_IterStart);
const SkClipStack::Iter::Clip* clip = process_initial_clip_elements(&iter,
devRTRect,
@@ -898,8 +898,8 @@ bool GrClipMaskManager::createStencilClipMask(const GrClipData& clipDataIn,
}
} else {
SET_RANDOM_COLOR
- // 'devClipBounds' is already in device coordinates so the
- // translation in the view matrix is inappropriate.
+ // 'devClipBounds' is already in device coordinates so the
+ // translation in the view matrix is inappropriate.
// Convert it to canvas space so the drawn rect will
// be in the correct location
GrRect canvClipBounds;
@@ -921,7 +921,7 @@ bool GrClipMaskManager::createStencilClipMask(const GrClipData& clipDataIn,
// mapping of clip-respecting stencil funcs to normal stencil funcs
// mapping depends on whether stencil-clipping is in effect.
-static const GrStencilFunc
+static const GrStencilFunc
gSpecialToBasicStencilFunc[2][kClipStencilFuncCount] = {
{// Stencil-Clipping is DISABLED, we are effectively always inside the clip
// In the Clip Funcs
@@ -966,7 +966,7 @@ const GrStencilSettings& basic_apply_stencil_clip_settings() {
kAlwaysIfInClip_StencilFunc,
0x0000,
0x0000,
- 0x0000);
+ 0x0000);
return *GR_CONST_STENCIL_SETTINGS_PTR_FROM_STRUCT_PTR(&gSettings);
}
}
@@ -1010,7 +1010,7 @@ void GrClipMaskManager::setGpuStencil() {
// TODO: dynamically attach a stencil buffer
int stencilBits = 0;
- GrStencilBuffer* stencilBuffer =
+ GrStencilBuffer* stencilBuffer =
drawState.getRenderTarget()->getStencilBuffer();
if (NULL != stencilBuffer) {
stencilBits = stencilBuffer->bits();
@@ -1078,7 +1078,7 @@ void GrClipMaskManager::adjustStencilParams(GrStencilSettings* settings,
funcMask &= userBits;
funcRef &= userBits;
}
- const GrStencilFunc* table =
+ const GrStencilFunc* table =
gSpecialToBasicStencilFunc[respectClip];
func = table[func - kBasicStencilFuncCount];
GrAssert(func >= 0 && func < kBasicStencilFuncCount);
@@ -1145,14 +1145,14 @@ bool GrClipMaskManager::createSoftwareClipMask(const GrClipData& clipDataIn,
GrSWMaskHelper helper(this->getContext());
GrMatrix matrix;
- matrix.setTranslate(SkIntToScalar(-clipDataIn.fOrigin.fX),
+ matrix.setTranslate(SkIntToScalar(-clipDataIn.fOrigin.fX),
SkIntToScalar(-clipDataIn.fOrigin.fY));
helper.init(*devResultBounds, &matrix);
bool clearToInside;
SkRegion::Op firstOp = SkRegion::kReplace_Op; // suppress warning
- SkClipStack::Iter iter(*clipDataIn.fClipStack,
+ SkClipStack::Iter iter(*clipDataIn.fClipStack,
SkClipStack::Iter::kBottom_IterStart);
const SkClipStack::Iter::Clip* clip = process_initial_clip_elements(&iter,
*devResultBounds,
@@ -1193,7 +1193,7 @@ bool GrClipMaskManager::createSoftwareClipMask(const GrClipData& clipDataIn,
SkPath temp;
temp.addRect(*clip->fRect);
- helper.draw(temp, SkRegion::kReplace_Op,
+ helper.draw(temp, SkRegion::kReplace_Op,
kInverseEvenOdd_GrPathFill, clip->fDoAA,
0x00);
} else if (NULL != clip->fPath) {
@@ -1216,7 +1216,7 @@ bool GrClipMaskManager::createSoftwareClipMask(const GrClipData& clipDataIn,
clip->fDoAA, 0xFF);
} else if (NULL != clip->fPath) {
- helper.draw(*clip->fPath,
+ helper.draw(*clip->fPath,
op,
get_path_fill(*clip->fPath),
clip->fDoAA, 0xFF);
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index 6f1e24d3c5..d1fdb1803b 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -146,7 +146,7 @@ void GrContext::resetContext() {
void GrContext::freeGpuResources() {
this->flush();
-
+
fGpu->purgeResources();
fAARectRenderer->reset();
@@ -275,7 +275,7 @@ static void stretchImage(void* dst,
}
}
-// The desired texture is NPOT and tiled but that isn't supported by
+// The desired texture is NPOT and tiled but that isn't supported by
// the current hardware. Resize the texture to be a POT
GrTexture* GrContext::createResizedTexture(const GrTextureDesc& desc,
const GrCacheData& cacheData,
@@ -373,7 +373,7 @@ GrTexture* GrContext::createAndLockTexture(
GrTexture* texture = NULL;
if (GrTexture::NeedsResizing(resourceKey)) {
texture = this->createResizedTexture(desc, cacheData,
- srcData, rowBytes,
+ srcData, rowBytes,
GrTexture::NeedsFiltering(resourceKey));
} else {
texture = fGpu->createTexture(desc, srcData, rowBytes);
@@ -416,12 +416,12 @@ GrTexture* GrContext::lockScratchTexture(const GrTextureDesc& inDesc,
if (NULL != resource || kExact_ScratchTexMatch == match) {
break;
}
- // We no longer try to reuse textures that were previously used as render targets in
+ // We no longer try to reuse textures that were previously used as render targets in
// situations where no RT is needed; doing otherwise can confuse the video driver and
// cause significant performance problems in some cases.
if (desc.fFlags & kNoStencil_GrTextureFlagBit) {
desc.fFlags = desc.fFlags & ~kNoStencil_GrTextureFlagBit;
- } else if (!doubledW) {
+ } else if (!doubledW) {
desc.fFlags = inDesc.fFlags;
desc.fWidth *= 2;
doubledW = true;
@@ -433,7 +433,7 @@ GrTexture* GrContext::lockScratchTexture(const GrTextureDesc& inDesc,
} else {
break;
}
-
+
} while (true);
if (NULL == resource) {
@@ -554,7 +554,7 @@ bool GrContext::supportsIndex8PixelConfig(const GrTextureParams* params,
////////////////////////////////////////////////////////////////////////////////
const GrClipData* GrContext::getClip() const {
- return fGpu->getClip();
+ return fGpu->getClip();
}
void GrContext::setClip(const GrClipData* clipData) {
@@ -649,19 +649,19 @@ static void setStrokeRectStrip(GrPoint verts[10], GrRect rect,
* Returns true if the rects edges are integer-aligned.
*/
static bool isIRect(const GrRect& r) {
- return GrScalarIsInt(r.fLeft) && GrScalarIsInt(r.fTop) &&
+ return GrScalarIsInt(r.fLeft) && GrScalarIsInt(r.fTop) &&
GrScalarIsInt(r.fRight) && GrScalarIsInt(r.fBottom);
}
static bool apply_aa_to_rect(GrDrawTarget* target,
const GrRect& rect,
- GrScalar width,
+ GrScalar width,
const GrMatrix* matrix,
GrMatrix* combinedMatrix,
GrRect* devRect,
bool* useVertexCoverage) {
// we use a simple coverage ramp to do aa on axis-aligned rects
- // we check if the rect will be axis-aligned, and the rect won't land on
+ // we check if the rect will be axis-aligned, and the rect won't land on
// integer coords.
// we are keeping around the "tweak the alpha" trick because
@@ -692,7 +692,7 @@ static bool apply_aa_to_rect(GrDrawTarget* target,
return false;
}
- if (NULL != matrix &&
+ if (NULL != matrix &&
!matrix->preservesAxisAlignment()) {
return false;
}
@@ -702,7 +702,7 @@ static bool apply_aa_to_rect(GrDrawTarget* target,
combinedMatrix->preConcat(*matrix);
GrAssert(combinedMatrix->preservesAxisAlignment());
}
-
+
combinedMatrix->mapRect(devRect, rect);
devRect->sort();
@@ -745,10 +745,10 @@ void GrContext::drawRect(const GrPaint& paint,
} else {
strokeSize.set(GR_Scalar1, GR_Scalar1);
}
- fAARectRenderer->strokeAARect(this->getGpu(), target, devRect,
+ fAARectRenderer->strokeAARect(this->getGpu(), target, devRect,
strokeSize, useVertexCoverage);
} else {
- fAARectRenderer->fillAARect(this->getGpu(), target,
+ fAARectRenderer->fillAARect(this->getGpu(), target,
devRect, useVertexCoverage);
}
return;
@@ -815,7 +815,7 @@ void GrContext::drawRect(const GrPaint& paint,
}
drawState->preConcatViewMatrix(m);
drawState->preConcatSamplerMatrices(m);
-
+
target->drawNonIndexed(kTriangleFan_GrPrimitiveType, 0, 4);
#else
target->drawSimpleRect(rect, matrix);
@@ -941,7 +941,7 @@ void GrContext::drawVertices(const GrPaint& paint,
target->setVertexSourceToArray(layout, positions, vertexCount);
}
- // we don't currently apply offscreen AA to this path. Need improved
+ // we don't currently apply offscreen AA to this path. Need improved
// management of GrDrawTarget's geometry to avoid copying points per-tile.
if (NULL != indices) {
@@ -1182,7 +1182,7 @@ void GrContext::writeTexturePixels(GrTexture* texture,
this->flush();
}
- fGpu->writeTexturePixels(texture, left, top, width, height,
+ fGpu->writeTexturePixels(texture, left, top, width, height,
config, buffer, rowBytes);
}
@@ -1244,7 +1244,7 @@ bool GrContext::readRenderTargetPixels(GrRenderTarget* target,
SK_TRACE_EVENT0("GrContext::readRenderTargetPixels");
ASSERT_OWNED_RESOURCE(target);
- if (NULL == target) {
+ if (NULL == target) {
target = fDrawState->getRenderTarget();
if (NULL == target) {
return false;
@@ -1399,7 +1399,7 @@ void GrContext::copyTexture(GrTexture* src, GrRenderTarget* dst) {
fGpu->drawSimpleRect(rect, NULL);
}
-void GrContext::writeRenderTargetPixels(GrRenderTarget* target,
+void GrContext::writeRenderTargetPixels(GrRenderTarget* target,
int left, int top, int width, int height,
GrPixelConfig config,
const void* buffer,
@@ -1408,7 +1408,7 @@ void GrContext::writeRenderTargetPixels(GrRenderTarget* target,
SK_TRACE_EVENT0("GrContext::writeRenderTargetPixels");
ASSERT_OWNED_RESOURCE(target);
- if (NULL == target) {
+ if (NULL == target) {
target = fDrawState->getRenderTarget();
if (NULL == target) {
return;
@@ -1421,7 +1421,7 @@ void GrContext::writeRenderTargetPixels(GrRenderTarget* target,
// If the RT is also a texture and we don't have to premultiply then take the texture path.
// We expect to be at least as fast or faster since it doesn't use an intermediate texture as
// we do below.
-
+
#if !GR_MAC_BUILD
// At least some drivers on the Mac get confused when glTexImage2D is called
// on a texture attached to an FBO. The FBO still sees the old image. TODO:
@@ -1521,7 +1521,7 @@ void GrContext::setPaint(const GrPaint& paint) {
*fDrawState->sampler(s) = paint.getMaskSampler(i);
}
}
-
+
// disable all stages not accessible via the paint
for (int s = GrPaint::kTotalStages; s < GrDrawState::kNumStages; ++s) {
fDrawState->disableStage(s);
@@ -1577,7 +1577,7 @@ GrDrawTarget* GrContext::prepareToDraw(const GrPaint* paint, BufferedDraw buffer
/*
* This method finds a path renderer that can draw the specified path on
* the provided target.
- * Due to its expense, the software path renderer has split out so it can
+ * Due to its expense, the software path renderer has split out so it can
* can be individually allowed/disallowed via the "allowSW" boolean.
*/
GrPathRenderer* GrContext::getPathRenderer(const SkPath& path,
@@ -1586,7 +1586,7 @@ GrPathRenderer* GrContext::getPathRenderer(const SkPath& path,
bool antiAlias,
bool allowSW) {
if (NULL == fPathRendererChain) {
- fPathRendererChain =
+ fPathRendererChain =
SkNEW_ARGS(GrPathRendererChain,
(this, GrPathRendererChain::kNone_UsageFlag));
}
@@ -1726,7 +1726,7 @@ GrTexture* GrContext::gaussianBlur(GrTexture* srcTexture,
SkRect srcRect(rect);
scale_rect(&srcRect, 1.0f / scaleFactorX, 1.0f / scaleFactorY);
srcRect.roundOut();
- scale_rect(&srcRect, static_cast<float>(scaleFactorX),
+ scale_rect(&srcRect, static_cast<float>(scaleFactorX),
static_cast<float>(scaleFactorY));
AutoClip acs(this, srcRect);
@@ -1771,7 +1771,7 @@ GrTexture* GrContext::gaussianBlur(GrTexture* srcTexture,
if (scaleFactorX > 1) {
// Clear out a radius to the right of the srcRect to prevent the
// X convolution from reading garbage.
- clearRect = SkIRect::MakeXYWH(srcIRect.fRight, srcIRect.fTop,
+ clearRect = SkIRect::MakeXYWH(srcIRect.fRight, srcIRect.fTop,
radiusX, srcIRect.height());
this->clear(&clearRect, 0x0);
}
@@ -1788,7 +1788,7 @@ GrTexture* GrContext::gaussianBlur(GrTexture* srcTexture,
if (scaleFactorY > 1 || sigmaX > 0.0f) {
// Clear out a radius below the srcRect to prevent the Y
// convolution from reading garbage.
- clearRect = SkIRect::MakeXYWH(srcIRect.fLeft, srcIRect.fBottom,
+ clearRect = SkIRect::MakeXYWH(srcIRect.fLeft, srcIRect.fBottom,
srcIRect.width(), radiusY);
this->clear(&clearRect, 0x0);
}
@@ -1804,10 +1804,10 @@ GrTexture* GrContext::gaussianBlur(GrTexture* srcTexture,
if (scaleFactorX > 1 || scaleFactorY > 1) {
// Clear one pixel to the right and below, to accommodate bilinear
// upsampling.
- clearRect = SkIRect::MakeXYWH(srcIRect.fLeft, srcIRect.fBottom,
+ clearRect = SkIRect::MakeXYWH(srcIRect.fLeft, srcIRect.fBottom,
srcIRect.width() + 1, 1);
this->clear(&clearRect, 0x0);
- clearRect = SkIRect::MakeXYWH(srcIRect.fRight, srcIRect.fTop,
+ clearRect = SkIRect::MakeXYWH(srcIRect.fRight, srcIRect.fTop,
1, srcIRect.height());
this->clear(&clearRect, 0x0);
// FIXME: This should be mitchell, not bilinear.
diff --git a/src/gpu/GrDefaultPathRenderer.cpp b/src/gpu/GrDefaultPathRenderer.cpp
index a59a7be355..eb4072d5fc 100644
--- a/src/gpu/GrDefaultPathRenderer.cpp
+++ b/src/gpu/GrDefaultPathRenderer.cpp
@@ -269,7 +269,7 @@ bool GrDefaultPathRenderer::createGeom(const SkPath& path,
case kQuadratic_PathCmd: {
// first pt of quad is the pt we ended on in previous step
uint16_t firstQPtIdx = (uint16_t)(vert - base) - 1;
- uint16_t numPts = (uint16_t)
+ uint16_t numPts = (uint16_t)
GrPathUtils::generateQuadraticPoints(
pts[0], pts[1], pts[2],
srcSpaceTolSqd, &vert,
@@ -312,7 +312,7 @@ FINISHED:
*vertexCnt = vert - base;
*indexCnt = idx - idxBase;
- if (NULL != translate &&
+ if (NULL != translate &&
(translate->fX || translate->fY)) {
int count = vert - base;
for (int i = 0; i < count; i++) {
@@ -492,7 +492,7 @@ bool GrDefaultPathRenderer::internalDrawPath(const SkPath& path,
drawState->enableState(GrDrawState::kNoColorWrites_StateBit);
}
if (indexCnt) {
- target->drawIndexed(primType, 0, 0,
+ target->drawIndexed(primType, 0, 0,
vertexCnt, indexCnt);
} else {
target->drawNonIndexed(primType, 0, vertexCnt);
@@ -507,7 +507,7 @@ bool GrDefaultPathRenderer::canDrawPath(const SkPath& path,
GrPathFill fill,
const GrDrawTarget* target,
bool antiAlias) const {
- // this class can draw any path with any fill but doesn't do any
+ // this class can draw any path with any fill but doesn't do any
// anti-aliasing.
return !antiAlias;
}
diff --git a/src/gpu/GrInOrderDrawBuffer.cpp b/src/gpu/GrInOrderDrawBuffer.cpp
index e562300dd9..e04392608d 100644
--- a/src/gpu/GrInOrderDrawBuffer.cpp
+++ b/src/gpu/GrInOrderDrawBuffer.cpp
@@ -126,7 +126,7 @@ void GrInOrderDrawBuffer::drawRect(const GrRect& rect,
bool disabledClip = false;
if (drawState->isClipState()) {
-
+
GrRect devClipRect;
bool isIntersectionOfRects = false;
@@ -189,7 +189,7 @@ void GrInOrderDrawBuffer::drawRect(const GrRect& rect,
GeometryPoolState& poolState = fGeoPoolStateStack.back();
- appendToPreviousDraw =
+ appendToPreviousDraw =
kDraw_Cmd != fCmds.back() &&
lastDraw.fVertexBuffer == poolState.fPoolVertexBuffer &&
(fCurrQuad * 4 + lastDraw.fStartVertex) == poolState.fPoolStartVertex;
@@ -373,7 +373,7 @@ void GrInOrderDrawBuffer::onDrawIndexed(GrPrimitiveType primitiveType,
case kArray_GeometrySrcType: {
size_t vertexBytes = (vertexCount + startVertex) *
VertexSize(draw->fVertexLayout);
- poolState.fUsedPoolVertexBytes =
+ poolState.fUsedPoolVertexBytes =
GrMax(poolState.fUsedPoolVertexBytes, vertexBytes);
draw->fVertexBuffer = poolState.fPoolVertexBuffer;
draw->fStartVertex += poolState.fPoolStartVertex;
@@ -388,10 +388,10 @@ void GrInOrderDrawBuffer::onDrawIndexed(GrPrimitiveType primitiveType,
case kBuffer_GeometrySrcType:
draw->fIndexBuffer = this->getGeomSrc().fIndexBuffer;
break;
- case kReserved_GeometrySrcType: // fallthrough
+ case kReserved_GeometrySrcType: // fallthrough
case kArray_GeometrySrcType: {
size_t indexBytes = (indexCount + startIndex) * sizeof(uint16_t);
- poolState.fUsedPoolIndexBytes =
+ poolState.fUsedPoolIndexBytes =
GrMax(poolState.fUsedPoolIndexBytes, indexBytes);
draw->fIndexBuffer = poolState.fPoolIndexBuffer;
draw->fStartIndex += poolState.fPoolStartIndex;
@@ -436,7 +436,7 @@ void GrInOrderDrawBuffer::onDrawNonIndexed(GrPrimitiveType primitiveType,
case kArray_GeometrySrcType: {
size_t vertexBytes = (vertexCount + startVertex) *
VertexSize(draw->fVertexLayout);
- poolState.fUsedPoolVertexBytes =
+ poolState.fUsedPoolVertexBytes =
GrMax(poolState.fUsedPoolVertexBytes, vertexBytes);
draw->fVertexBuffer = poolState.fPoolVertexBuffer;
draw->fStartVertex += poolState.fPoolStartVertex;
@@ -463,7 +463,7 @@ void GrInOrderDrawBuffer::onStencilPath(const GrPath* path, GrPathFill fill) {
sp->fFill = fill;
}
-void GrInOrderDrawBuffer::clear(const GrIRect* rect,
+void GrInOrderDrawBuffer::clear(const GrIRect* rect,
GrColor color,
GrRenderTarget* renderTarget) {
GrIRect r;
@@ -587,7 +587,7 @@ bool GrInOrderDrawBuffer::playback(GrDrawTarget* target) {
++currClip;
break;
case kClear_Cmd:
- target->clear(&fClears[currClear].fRect,
+ target->clear(&fClears[currClear].fRect,
fClears[currClear].fColor,
fClears[currClear].fRenderTarget);
++currClear;
@@ -635,10 +635,10 @@ void GrInOrderDrawBuffer::willReserveVertexAndIndexSpace(
// we don't know that the client has finished writing to it.
bool targetHasReservedGeom =
fAutoFlushTarget->hasReservedVerticesOrIndices();
-
+
int vcount = vertexCount;
int icount = indexCount;
-
+
if (!insideGeoPush &&
!unreleasedVertexSpace &&
!unreleasedIndexSpace &&
@@ -687,14 +687,14 @@ bool GrInOrderDrawBuffer::onReserveVertexSpace(GrVertexLayout vertexLayout,
GrAssert(vertexCount > 0);
GrAssert(NULL != vertices);
GrAssert(0 == poolState.fUsedPoolVertexBytes);
-
+
*vertices = fVertexPool.makeSpace(vertexLayout,
vertexCount,
&poolState.fPoolVertexBuffer,
&poolState.fPoolStartVertex);
return NULL != *vertices;
}
-
+
bool GrInOrderDrawBuffer::onReserveIndexSpace(int indexCount, void** indices) {
GeometryPoolState& poolState = fGeoPoolStateStack.back();
GrAssert(indexCount > 0);
@@ -709,7 +709,7 @@ bool GrInOrderDrawBuffer::onReserveIndexSpace(int indexCount, void** indices) {
void GrInOrderDrawBuffer::releaseReservedVertexSpace() {
GeometryPoolState& poolState = fGeoPoolStateStack.back();
- const GeometrySrcState& geoSrc = this->getGeomSrc();
+ const GeometrySrcState& geoSrc = this->getGeomSrc();
// If we get a release vertex space call then our current source should either be reserved
// or array (which we copied into reserved space).
@@ -722,7 +722,7 @@ void GrInOrderDrawBuffer::releaseReservedVertexSpace() {
// pool any portion at the tail of the allocation that no draw referenced.
size_t reservedVertexBytes = VertexSize(geoSrc.fVertexLayout) *
geoSrc.fVertexCount;
- fVertexPool.putBack(reservedVertexBytes -
+ fVertexPool.putBack(reservedVertexBytes -
poolState.fUsedPoolVertexBytes);
poolState.fUsedPoolVertexBytes = 0;
poolState.fPoolVertexBuffer = NULL;
@@ -731,7 +731,7 @@ void GrInOrderDrawBuffer::releaseReservedVertexSpace() {
void GrInOrderDrawBuffer::releaseReservedIndexSpace() {
GeometryPoolState& poolState = fGeoPoolStateStack.back();
- const GeometrySrcState& geoSrc = this->getGeomSrc();
+ const GeometrySrcState& geoSrc = this->getGeomSrc();
// If we get a release index space call then our current source should either be reserved
// or array (which we copied into reserved space).
@@ -746,7 +746,7 @@ void GrInOrderDrawBuffer::releaseReservedIndexSpace() {
poolState.fPoolIndexBuffer = NULL;
poolState.fPoolStartIndex = 0;
}
-
+
void GrInOrderDrawBuffer::onSetVertexSourceToArray(const void* vertexArray,
int vertexCount) {
@@ -812,13 +812,13 @@ void GrInOrderDrawBuffer::geometrySourceWillPop(
// pool.
if (kReserved_GeometrySrcType == restoredState.fVertexSrc ||
kArray_GeometrySrcType == restoredState.fVertexSrc) {
- poolState.fUsedPoolVertexBytes =
- VertexSize(restoredState.fVertexLayout) *
+ poolState.fUsedPoolVertexBytes =
+ VertexSize(restoredState.fVertexLayout) *
restoredState.fVertexCount;
}
if (kReserved_GeometrySrcType == restoredState.fIndexSrc ||
kArray_GeometrySrcType == restoredState.fIndexSrc) {
- poolState.fUsedPoolIndexBytes = sizeof(uint16_t) *
+ poolState.fUsedPoolIndexBytes = sizeof(uint16_t) *
restoredState.fIndexCount;
}
this->resetDrawTracking();
@@ -832,7 +832,7 @@ bool GrInOrderDrawBuffer::needsNewState() const {
bool GrInOrderDrawBuffer::needsNewClip() const {
if (this->getDrawState().isClipState()) {
- if (fClipSet &&
+ if (fClipSet &&
(fClips.back() != *fClip->fClipStack ||
fClipOrigins.back() != fClip->fOrigin)) {
return true;
diff --git a/src/gpu/GrInOrderDrawBuffer.h b/src/gpu/GrInOrderDrawBuffer.h
index 73a9068fee..08dd774c27 100644
--- a/src/gpu/GrInOrderDrawBuffer.h
+++ b/src/gpu/GrInOrderDrawBuffer.h
@@ -104,16 +104,16 @@ public:
/**
* This function allows the draw buffer to automatically flush itself to
- * another target. This means the buffer may internally call
+ * another target. This means the buffer may internally call
* this->flushTo(target) when it is safe to do so.
- *
+ *
* When the auto flush target is set to NULL (as it initially is) the draw
* buffer will never automatically flush itself.
*/
void setAutoFlushTarget(GrDrawTarget* target);
// overrides from GrDrawTarget
- virtual void drawRect(const GrRect& rect,
+ virtual void drawRect(const GrRect& rect,
const GrMatrix* matrix = NULL,
const GrRect* srcRects[] = NULL,
const GrMatrix* srcMatrices[] = NULL) SK_OVERRIDE;
@@ -128,7 +128,7 @@ public:
int* vertexCount,
int* indexCount) const SK_OVERRIDE;
- virtual void clear(const GrIRect* rect,
+ virtual void clear(const GrIRect* rect,
GrColor color,
GrRenderTarget* renderTarget = NULL) SK_OVERRIDE;
@@ -180,7 +180,7 @@ private:
int startVertex,
int vertexCount) SK_OVERRIDE;
virtual void onStencilPath(const GrPath*, GrPathFill) SK_OVERRIDE;
- virtual bool onReserveVertexSpace(GrVertexLayout layout,
+ virtual bool onReserveVertexSpace(GrVertexLayout layout,
int vertexCount,
void** vertices) SK_OVERRIDE;
virtual bool onReserveIndexSpace(int indexCount,
@@ -212,7 +212,7 @@ private:
StencilPath* recordStencilPath();
Clear* recordClear();
- // call this to invalidate the tracking data that is used to concatenate
+ // call this to invalidate the tracking data that is used to concatenate
// multiple draws into a single draw.
void resetDrawTracking();
diff --git a/src/gpu/GrRectanizer_fifo.cpp b/src/gpu/GrRectanizer_fifo.cpp
index 0f412b83fa..aab012de6a 100644
--- a/src/gpu/GrRectanizer_fifo.cpp
+++ b/src/gpu/GrRectanizer_fifo.cpp
@@ -20,44 +20,44 @@ public:
fAreaSoFar = 0;
Gr_bzero(fRows, sizeof(fRows));
}
-
+
virtual ~GrRectanizerFIFO() {
}
-
+
virtual bool addRect(int w, int h, GrIPoint16* loc);
-
+
virtual float percentFull() const {
return fAreaSoFar / ((float)this->width() * this->height());
}
-
+
virtual int stripToPurge(int height) const { return -1; }
virtual void purgeStripAtY(int yCoord) { }
-
+
///////////////////////////////////////////////////////////////////////////
-
+
struct Row {
GrIPoint16 fLoc;
int fRowHeight;
-
+
bool canAddWidth(int width, int containerWidth) const {
return fLoc.fX + width <= containerWidth;
}
};
-
+
Row fRows[16];
-
+
static int HeightToRowIndex(int height) {
GrAssert(height >= MIN_HEIGHT_POW2);
return 32 - Gr_clz(height - 1);
}
-
+
int fNextStripY;
int32_t fAreaSoFar;
-
+
bool canAddStrip(int height) const {
return fNextStripY + height <= this->height();
}
-
+
void initRow(Row* row, int rowHeight) {
row->fLoc.set(0, fNextStripY);
row->fRowHeight = rowHeight;
@@ -70,9 +70,9 @@ bool GrRectanizerFIFO::addRect(int width, int height, GrIPoint16* loc) {
(unsigned)height > (unsigned)this->height()) {
return false;
}
-
+
int32_t area = width * height;
-
+
/*
We use bsearch, but there may be more than one row with the same height,
so we actually search for height-1, which can only be a pow2 itself if
@@ -82,10 +82,10 @@ bool GrRectanizerFIFO::addRect(int width, int height, GrIPoint16* loc) {
if (height < MIN_HEIGHT_POW2) {
height = MIN_HEIGHT_POW2;
}
-
+
Row* row = &fRows[HeightToRowIndex(height)];
GrAssert(row->fRowHeight == 0 || row->fRowHeight == height);
-
+
if (0 == row->fRowHeight) {
if (!this->canAddStrip(height)) {
return false;
@@ -101,12 +101,12 @@ bool GrRectanizerFIFO::addRect(int width, int height, GrIPoint16* loc) {
this->initRow(row, height);
}
}
-
+
GrAssert(row->fRowHeight == height);
GrAssert(row->canAddWidth(width, this->width()));
*loc = row->fLoc;
row->fLoc.fX += width;
-
+
GrAssert(row->fLoc.fX <= this->width());
GrAssert(row->fLoc.fY <= this->height());
GrAssert(fNextStripY <= this->height());
diff --git a/src/gpu/GrResourceCache.cpp b/src/gpu/GrResourceCache.cpp
index cae2ec9bba..60e20a77c5 100644
--- a/src/gpu/GrResourceCache.cpp
+++ b/src/gpu/GrResourceCache.cpp
@@ -296,7 +296,7 @@ void GrResourceCache::unlock(GrResourceEntry* entry) {
}
/**
- * Destroying a resource may potentially trigger the unlock of additional
+ * Destroying a resource may potentially trigger the unlock of additional
* resources which in turn will trigger a nested purge. We block the nested
* purge using the fPurging variable. However, the initial purge will keep
* looping until either all resources in the cache are unlocked or we've met
@@ -311,8 +311,8 @@ void GrResourceCache::purgeAsNeeded() {
bool withinBudget = false;
do {
SkTDLinkedList<GrResourceEntry>::Iter iter;
-
- // Note: the following code relies on the fact that the
+
+ // Note: the following code relies on the fact that the
// doubly linked list doesn't invalidate its data/pointers
// outside of the specific area where a deletion occurs (e.g.,
// in internalDetach)
@@ -388,7 +388,7 @@ size_t GrResourceCache::countBytes(const SkTDLinkedList<GrResourceEntry>& list)
size_t bytes = 0;
SkTDLinkedList<GrResourceEntry>::Iter iter;
-
+
const GrResourceEntry* entry = iter.init(
const_cast<SkTDLinkedList<GrResourceEntry>&>(list),
SkTDLinkedList<GrResourceEntry>::Iter::kTail_IterStart);
@@ -418,7 +418,7 @@ void GrResourceCache::validate() const {
int unlockCount = 0;
SkTDLinkedList<GrResourceEntry>::Iter iter;
-
+
const GrResourceEntry* entry = iter.init(
const_cast<SkTDLinkedList<GrResourceEntry>&>(fList),
SkTDLinkedList<GrResourceEntry>::Iter::kHead_IterStart);
diff --git a/src/gpu/GrResourceCache.h b/src/gpu/GrResourceCache.h
index 55bbc25e1f..162e1ef04a 100644
--- a/src/gpu/GrResourceCache.h
+++ b/src/gpu/GrResourceCache.h
@@ -186,7 +186,7 @@ public:
/**
* Return the current resource cache limits.
*
- * @param maxResource If non-null, returns maximum number of resources
+ * @param maxResource If non-null, returns maximum number of resources
* that can be held in the cache.
* @param maxBytes If non-null, returns maximum number of bytes of
* gpu memory that can be held in the cache.
@@ -224,10 +224,10 @@ public:
GrResource* findAndLock(const GrResourceKey&, LockType style);
/**
- * Create a new cache entry, based on the provided key and resource, and
+ * Create a new cache entry, based on the provided key and resource, and
* return it.
*
- * Ownership of the resource is transferred to the resource cache,
+ * Ownership of the resource is transferred to the resource cache,
* which will unref() it when it is purged or deleted.
*/
void createAndLock(const GrResourceKey&, GrResource*);
@@ -235,7 +235,7 @@ public:
/**
* Create a new cache entry, based on the provided key and resource.
*
- * Ownership of the resource is transferred to the resource cache,
+ * Ownership of the resource is transferred to the resource cache,
* which will unref() it when it is purged or deleted.
*
* Currently this entry point is only intended for textures "detached"
diff --git a/src/gpu/GrSWMaskHelper.cpp b/src/gpu/GrSWMaskHelper.cpp
index 27d6760e7b..9e7012bfca 100644
--- a/src/gpu/GrSWMaskHelper.cpp
+++ b/src/gpu/GrSWMaskHelper.cpp
@@ -52,7 +52,7 @@ SkPath::FillType gr_fill_to_sk_fill(GrPathFill fill) {
/**
* Draw a single rect element of the clip stack into the accumulation bitmap
*/
-void GrSWMaskHelper::draw(const GrRect& rect, SkRegion::Op op,
+void GrSWMaskHelper::draw(const GrRect& rect, SkRegion::Op op,
bool antiAlias, uint8_t alpha) {
SkPaint paint;
@@ -99,7 +99,7 @@ void GrSWMaskHelper::draw(const SkPath& path, SkRegion::Op op,
SkSafeUnref(mode);
}
-bool GrSWMaskHelper::init(const GrIRect& resultBounds,
+bool GrSWMaskHelper::init(const GrIRect& resultBounds,
const GrMatrix* matrix) {
if (NULL != matrix) {
fMatrix = *matrix;
@@ -151,24 +151,24 @@ void GrSWMaskHelper::toTexture(GrTexture *texture, uint8_t alpha) {
// The destination texture is almost always larger than "fBM". Clear
// it appropriately so we don't get mask artifacts outside of the path's
// bounding box
-
+
// "texture" needs to be installed as the render target for the clear
// and the texture upload but cannot remain the render target upon
// return. Callers typically use it as a texture and it would then
// be both source and dest.
- GrDrawState::AutoRenderTargetRestore artr(fContext->getGpu()->drawState(),
+ GrDrawState::AutoRenderTargetRestore artr(fContext->getGpu()->drawState(),
texture->asRenderTarget());
fContext->getGpu()->clear(NULL, SkColorSetARGB(alpha, alpha, alpha, alpha));
- texture->writePixels(0, 0, fBM.width(), fBM.height(),
+ texture->writePixels(0, 0, fBM.width(), fBM.height(),
kAlpha_8_GrPixelConfig,
fBM.getPixels(), fBM.rowBytes());
}
////////////////////////////////////////////////////////////////////////////////
/**
- * Software rasterizes path to A8 mask (possibly using the context's matrix)
+ * Software rasterizes path to A8 mask (possibly using the context's matrix)
* and uploads the result to a scratch texture. Returns the resulting
* texture on success; NULL on failure.
*/
diff --git a/src/gpu/GrStencil.cpp b/src/gpu/GrStencil.cpp
index decfd2df14..767726084c 100644
--- a/src/gpu/GrStencil.cpp
+++ b/src/gpu/GrStencil.cpp
@@ -233,7 +233,7 @@ GR_STATIC_CONST_SAME_STENCIL(gDiffClip,
);
bool GrStencilSettings::GetClipPasses(
- SkRegion::Op op,
+ SkRegion::Op op,
bool canBeDirect,
unsigned int stencilClipMask,
bool invertedFill,
diff --git a/src/gpu/SkGr.cpp b/src/gpu/SkGr.cpp
index 2052b77b39..8701178ccc 100644
--- a/src/gpu/SkGr.cpp
+++ b/src/gpu/SkGr.cpp
@@ -90,15 +90,15 @@ static GrTexture* sk_gr_create_bitmap_texture(GrContext* ctx,
// our compressed data will be trimmed, so pass width() for its
// "rowBytes", since they are the same now.
-
+
if (GrCacheData::kScratch_CacheID != key) {
- return ctx->createAndLockTexture(params, desc, cacheData,
+ return ctx->createAndLockTexture(params, desc, cacheData,
storage.get(),
bitmap->width());
} else {
GrTexture* result = ctx->lockScratchTexture(desc,
GrContext::kExact_ScratchTexMatch);
- result->writePixels(0, 0, bitmap->width(),
+ result->writePixels(0, 0, bitmap->width(),
bitmap->height(), desc.fConfig,
storage.get());
return result;
@@ -119,10 +119,10 @@ static GrTexture* sk_gr_create_bitmap_texture(GrContext* ctx,
bitmap->getPixels(),
bitmap->rowBytes());
} else {
- // This texture is unlikely to be used again (in its present form) so
- // just use a scratch texture. This will remove the texture from the
- // cache so no one else can find it. Additionally, once unlocked, the
- // scratch texture will go to the end of the list for purging so will
+ // This texture is unlikely to be used again (in its present form) so
+ // just use a scratch texture. This will remove the texture from the
+ // cache so no one else can find it. Additionally, once unlocked, the
+ // scratch texture will go to the end of the list for purging so will
// likely be available for this volatile bitmap the next time around.
GrTexture* result = ctx->lockScratchTexture(desc,
GrContext::kExact_ScratchTexMatch);
@@ -137,7 +137,7 @@ static GrTexture* sk_gr_create_bitmap_texture(GrContext* ctx,
///////////////////////////////////////////////////////////////////////////////
-GrTexture* GrLockCachedBitmapTexture(GrContext* ctx,
+GrTexture* GrLockCachedBitmapTexture(GrContext* ctx,
const SkBitmap& bitmap,
const GrTextureParams* params) {
GrTexture* result = NULL;
diff --git a/src/gpu/android/SkNativeGLContext_android.cpp b/src/gpu/android/SkNativeGLContext_android.cpp
index dd444dfc48..f21eed8666 100644
--- a/src/gpu/android/SkNativeGLContext_android.cpp
+++ b/src/gpu/android/SkNativeGLContext_android.cpp
@@ -22,7 +22,7 @@ SkNativeGLContext::AutoContextRestore::~AutoContextRestore() {
///////////////////////////////////////////////////////////////////////////////
-SkNativeGLContext::SkNativeGLContext()
+SkNativeGLContext::SkNativeGLContext()
: fContext(EGL_NO_CONTEXT)
, fDisplay(EGL_NO_DISPLAY)
, fSurface(EGL_NO_SURFACE) {
diff --git a/src/gpu/app-android.cpp b/src/gpu/app-android.cpp
index 56a96a66c6..c656b59a3f 100644
--- a/src/gpu/app-android.cpp
+++ b/src/gpu/app-android.cpp
@@ -60,7 +60,7 @@ struct State {
void setViewport(int w, int h);
int getWidth() const { return fViewport.fX; }
int getHeight() const { return fViewport.fY; }
-
+
void handleTouch(void*, TouchState, float x, float y);
void applyMatrix(SkCanvas*);
@@ -69,7 +69,7 @@ struct State {
private:
SkView* fView;
SkIPoint fViewport;
-
+
SkTouchGesture fGesture;
SkTDArray<SkViewFactory> fFactory;
@@ -96,7 +96,7 @@ SkViewRegister::SkViewRegister(SkViewFactory fact) : fFact(fact) {
gHead = NULL;
gOnce = true;
}
-
+
fChain = gHead;
gHead = this;
}
@@ -309,7 +309,7 @@ static void doDraw() {
int fps = (FRAME_COUNT * 1000) / gDuration;
SkString str;
str.printf("FPS=%3d MS=%3d", fps, gDuration / FRAME_COUNT);
-
+
SkGpuCanvas c(gContext);
c.setBitmapDevice(viewport);
diff --git a/src/gpu/effects/GrColorTableEffect.h b/src/gpu/effects/GrColorTableEffect.h
index de86768ca3..f79e586579 100644
--- a/src/gpu/effects/GrColorTableEffect.h
+++ b/src/gpu/effects/GrColorTableEffect.h
@@ -16,7 +16,7 @@ class GrGLColorTableEffect;
/**
* LUT-based color transformation effect. This class implements the Gr
* counterpart to the SkTable_ColorFilter effect. A 256 * 4 (single-channel)
- * LUT is used to transform the input colors of the image.
+ * LUT is used to transform the input colors of the image.
*/
class GrColorTableEffect : public GrSingleTextureEffect {
diff --git a/src/gpu/effects/GrConvolutionEffect.cpp b/src/gpu/effects/GrConvolutionEffect.cpp
index 92c6ffb169..2cefbc4e26 100644
--- a/src/gpu/effects/GrConvolutionEffect.cpp
+++ b/src/gpu/effects/GrConvolutionEffect.cpp
@@ -69,7 +69,7 @@ void GrGLConvolutionEffect::emitFS(GrGLShaderBuilder* builder,
SkString* code = &builder->fFSCode;
code->appendf("\t\t%s = vec4(0, 0, 0, 0);\n", outputColor);
-
+
int width = this ->width();
const GrGLShaderVar& kernel = builder->getUniformVariable(fKernelUni);
const char* imgInc = builder->getUniformCStr(fImageIncrementUni);
diff --git a/src/gpu/effects/GrConvolutionEffect.h b/src/gpu/effects/GrConvolutionEffect.h
index 21c022d85f..4c42a6ce41 100644
--- a/src/gpu/effects/GrConvolutionEffect.h
+++ b/src/gpu/effects/GrConvolutionEffect.h
@@ -13,7 +13,7 @@
class GrGLConvolutionEffect;
/**
- * A convolution effect. The kernel is specified as an array of 2 * half-width
+ * A convolution effect. The kernel is specified as an array of 2 * half-width
* + 1 weights. Each texel is multiplied by it's weight and summed to determine
* the output color. The output color is modulated by the input color.
*/
diff --git a/src/gpu/effects/GrTextureStripAtlas.cpp b/src/gpu/effects/GrTextureStripAtlas.cpp
index 3462e9243b..a43f9d6f68 100644
--- a/src/gpu/effects/GrTextureStripAtlas.cpp
+++ b/src/gpu/effects/GrTextureStripAtlas.cpp
@@ -51,7 +51,7 @@ GrTextureStripAtlas* GrTextureStripAtlas::GetAtlas(const GrTextureStripAtlas::De
}
}
-GrTextureStripAtlas::GrTextureStripAtlas(GrTextureStripAtlas::Desc desc)
+GrTextureStripAtlas::GrTextureStripAtlas(GrTextureStripAtlas::Desc desc)
: fCacheID(sk_atomic_inc(&gCacheCount))
, fLockedRows(0)
, fDesc(desc)
@@ -88,9 +88,9 @@ int GrTextureStripAtlas::lockRow(const SkBitmap& data) {
++row->fLocks;
++fLockedRows;
- // Since all the rows are always stored in a contiguous array, we can save the memory
+ // Since all the rows are always stored in a contiguous array, we can save the memory
// required for storing row numbers and just compute it with some pointer arithmetic
- rowNumber = static_cast<int>(row - fRows);
+ rowNumber = static_cast<int>(row - fRows);
} else {
// ~index is the index where we will insert the new key to keep things sorted
index = ~index;
@@ -131,7 +131,7 @@ int GrTextureStripAtlas::lockRow(const SkBitmap& data) {
row->fKey = key;
row->fLocks = 1;
fKeyTable.insert(index, 1, &row);
- rowNumber = static_cast<int>(row - fRows);
+ rowNumber = static_cast<int>(row - fRows);
SkAutoLockPixels lock(data);
@@ -139,7 +139,7 @@ int GrTextureStripAtlas::lockRow(const SkBitmap& data) {
// that is not currently in use
fDesc.fContext->writeTexturePixels(fTexture,
0, rowNumber * fDesc.fRowHeight,
- fDesc.fWidth, fDesc.fRowHeight,
+ fDesc.fWidth, fDesc.fRowHeight,
SkBitmapConfig2GrPixelConfig(data.config()),
data.getPixels(),
data.rowBytes(),
@@ -239,7 +239,7 @@ void GrTextureStripAtlas::removeFromLRU(AtlasRow* row) {
if (fLRUFront) {
fLRUFront->fPrev = NULL;
}
- }
+ }
}
row->fNext = NULL;
row->fPrev = NULL;
@@ -249,8 +249,8 @@ int GrTextureStripAtlas::searchByKey(uint32_t key) {
AtlasRow target;
target.fKey = key;
return SkTSearch<AtlasRow, GrTextureStripAtlas::compareKeys>((const AtlasRow**)fKeyTable.begin(),
- fKeyTable.count(),
- &target,
+ fKeyTable.count(),
+ &target,
sizeof(AtlasRow*));
}
diff --git a/src/gpu/effects/GrTextureStripAtlas.h b/src/gpu/effects/GrTextureStripAtlas.h
index c763599963..1a4c371b69 100644
--- a/src/gpu/effects/GrTextureStripAtlas.h
+++ b/src/gpu/effects/GrTextureStripAtlas.h
@@ -15,7 +15,7 @@
#include "SkTDArray.h"
/**
- * Maintains a single large texture whose rows store many textures of a small fixed height,
+ * Maintains a single large texture whose rows store many textures of a small fixed height,
* stored in rows across the x-axis such that we can safely wrap/repeat them horizontally.
*/
class GrTextureStripAtlas {
@@ -49,20 +49,20 @@ public:
int lockRow(const SkBitmap& data);
void unlockRow(int row);
- /**
- * These functions help turn an integer row index in [0, 1, 2, ... numRows] into a scalar y
+ /**
+ * These functions help turn an integer row index in [0, 1, 2, ... numRows] into a scalar y
* texture coordinate in [0, 1] that we can use in a shader.
*
- * If a regular texture access without using the atlas looks like:
+ * If a regular texture access without using the atlas looks like:
*
* texture2D(sampler, vec2(x, y))
*
- * Then when using the atlas we'd replace it with:
+ * Then when using the atlas we'd replace it with:
*
- * texture2D(sampler, vec2(x, yOffset + y * scaleFactor))
+ * texture2D(sampler, vec2(x, yOffset + y * scaleFactor))
*
* Where yOffset, returned by getYOffset(), is the offset to the start of the row within the
- * atlas and scaleFactor, returned by getVerticalScaleFactor(), is the y-scale of the row,
+ * atlas and scaleFactor, returned by getVerticalScaleFactor(), is the y-scale of the row,
* relative to the height of the overall atlas texture.
*/
GrScalar getYOffset(int row) const { return SkIntToScalar(row) / fNumRows; }
@@ -76,30 +76,30 @@ private:
// Key to indicate an atlas row without any meaningful data stored in it
const static uint32_t kEmptyAtlasRowKey = 0xffffffff;
- /**
+ /**
* The state of a single row in our cache, next/prev pointers allow these to be chained
* together to represent LRU status
*/
struct AtlasRow : public GrNoncopyable {
AtlasRow() : fKey(kEmptyAtlasRowKey), fLocks(0), fNext(NULL), fPrev(NULL) { }
// GenerationID of the bitmap that is represented by this row, 0xffffffff means "empty"
- uint32_t fKey;
+ uint32_t fKey;
// How many times this has been locked (0 == unlocked)
- int32_t fLocks;
+ int32_t fLocks;
// We maintain an LRU linked list between unlocked nodes with these pointers
AtlasRow* fNext;
AtlasRow* fPrev;
};
- /**
+ /**
* We'll only allow construction via the static GrTextureStripAtlas::GetAtlas
*/
GrTextureStripAtlas(Desc desc);
-
+
void lockTexture();
void unlockTexture();
- /**
+ /**
* Initialize our LRU list (if one already exists, clear it and start anew)
*/
void initLRU();
@@ -112,8 +112,8 @@ private:
void appendLRU(AtlasRow* row);
void removeFromLRU(AtlasRow* row);
- /**
- * Searches the key table for a key and returns the index if found; if not found, it returns
+ /**
+ * Searches the key table for a key and returns the index if found; if not found, it returns
* the bitwise not of the index at which we could insert the key to maintain a sorted list.
**/
int searchByKey(uint32_t key);
@@ -144,7 +144,7 @@ private:
GrTexture* fTexture;
// Array of AtlasRows which store the state of all our rows. Stored in a contiguous array, in
- // order that they appear in our texture, this means we can subtract this pointer from a row
+ // order that they appear in our texture, this means we can subtract this pointer from a row
// pointer to get its index in the texture, and can save storing a row number in AtlasRow.
AtlasRow* fRows;
diff --git a/src/gpu/gl/GrGLCaps.cpp b/src/gpu/gl/GrGLCaps.cpp
index 2682eb2680..52c480ad3f 100644
--- a/src/gpu/gl/GrGLCaps.cpp
+++ b/src/gpu/gl/GrGLCaps.cpp
@@ -163,8 +163,8 @@ void GrGLCaps::init(const GrGLContextInfo& ctxInfo) {
}
bool GrGLCaps::readPixelsSupported(const GrGLInterface* intf,
- GrGLenum format,
- GrGLenum type) const {
+ GrGLenum format,
+ GrGLenum type) const {
if (GR_GL_RGBA == format && GR_GL_UNSIGNED_BYTE == type) {
// ES 2 guarantees this format is supported
return true;
@@ -180,11 +180,11 @@ bool GrGLCaps::readPixelsSupported(const GrGLInterface* intf,
// The other supported format/type combo supported for ReadPixels
// can change based on which render target is bound
- GR_GL_GetIntegerv(intf,
+ GR_GL_GetIntegerv(intf,
GR_GL_IMPLEMENTATION_COLOR_READ_FORMAT,
&otherFormat);
- GR_GL_GetIntegerv(intf,
+ GR_GL_GetIntegerv(intf,
GR_GL_IMPLEMENTATION_COLOR_READ_TYPE,
&otherType);
@@ -301,7 +301,7 @@ void GrGLCaps::initStencilFormats(const GrGLContextInfo& ctxInfo) {
if (kDesktop_GrGLBinding == ctxInfo.binding()) {
bool supportsPackedDS =
- ctxInfo.version() >= GR_GL_VER(3,0) ||
+ ctxInfo.version() >= GR_GL_VER(3,0) ||
ctxInfo.hasExtension("GL_EXT_packed_depth_stencil") ||
ctxInfo.hasExtension("GL_ARB_framebuffer_object");
diff --git a/src/gpu/gl/GrGLCaps.h b/src/gpu/gl/GrGLCaps.h
index 2acfbd74ae..1cc50c2220 100644
--- a/src/gpu/gl/GrGLCaps.h
+++ b/src/gpu/gl/GrGLCaps.h
@@ -49,7 +49,7 @@ public:
/**
* no support for MSAA FBOs
*/
- kNone_MSFBOType = 0,
+ kNone_MSFBOType = 0,
/**
* GL3.0-style MSAA FBO (GL_ARB_framebuffer_object)
*/
@@ -141,7 +141,7 @@ public:
* Reports the maximum number of samples supported.
*/
int maxSampleCount() const { return fMaxSampleCount; }
-
+
/**
* Reports the type of coverage sample AA support.
*/
@@ -218,7 +218,7 @@ public:
// Does ReadPixels support the provided format/type combo?
bool readPixelsSupported(const GrGLInterface* intf,
- GrGLenum format,
+ GrGLenum format,
GrGLenum type) const;
private:
diff --git a/src/gpu/gl/GrGLCreateNullInterface.cpp b/src/gpu/gl/GrGLCreateNullInterface.cpp
index 6451fcafe9..d0e2bb6d3f 100644
--- a/src/gpu/gl/GrGLCreateNullInterface.cpp
+++ b/src/gpu/gl/GrGLCreateNullInterface.cpp
@@ -213,7 +213,7 @@ GrGLvoid GR_GL_FUNCTION_TYPE nullGLGetBufferParameteriv(GrGLenum target, GrGLenu
break;
case GR_GL_ELEMENT_ARRAY_BUFFER:
buf = gCurrElementArrayBuffer;
- break;
+ break;
}
if (buf) {
for (int i = 0; i < gMappedBuffers.count(); ++i) {
@@ -384,7 +384,7 @@ GrGLint GR_GL_FUNCTION_TYPE nullGLGetUniformLocation(GrGLuint program, const cha
} // end anonymous namespace
const GrGLInterface* GrGLCreateNullInterface() {
- // The gl functions are not context-specific so we create one global
+ // The gl functions are not context-specific so we create one global
// interface
static SkAutoTUnref<GrGLInterface> glInterface;
if (!glInterface.get()) {
diff --git a/src/gpu/gl/GrGLIndexBuffer.cpp b/src/gpu/gl/GrGLIndexBuffer.cpp
index 54689923a4..9c019c149b 100644
--- a/src/gpu/gl/GrGLIndexBuffer.cpp
+++ b/src/gpu/gl/GrGLIndexBuffer.cpp
@@ -125,7 +125,7 @@ bool GrGLIndexBuffer::updateData(const void* src, size_t srcSizeInBytes) {
// Note that we're cheating on the size here. Currently no methods
// allow a partial update that preserves contents of non-updated
// portions of the buffer (lock() does a glBufferData(..size, NULL..))
- GL_CALL(BufferData(GR_GL_ELEMENT_ARRAY_BUFFER,
+ GL_CALL(BufferData(GR_GL_ELEMENT_ARRAY_BUFFER,
srcSizeInBytes, src, usage));
#endif
return true;
diff --git a/src/gpu/gl/GrGLInterface.cpp b/src/gpu/gl/GrGLInterface.cpp
index 02e9337c43..297e1fc1d9 100644
--- a/src/gpu/gl/GrGLInterface.cpp
+++ b/src/gpu/gl/GrGLInterface.cpp
@@ -327,7 +327,7 @@ bool GrGLInterface::validate(GrGLBinding binding) const {
// On ES buffer mapping is an extension. On Desktop
// buffer mapping was part of original VBO extension
// which we require.
- if (kDesktop_GrGLBinding == binding ||
+ if (kDesktop_GrGLBinding == binding ||
GrGLHasExtensionFromString("GL_OES_mapbuffer", ext)) {
if (NULL == fMapBuffer ||
NULL == fUnmapBuffer) {
@@ -337,7 +337,7 @@ bool GrGLInterface::validate(GrGLBinding binding) const {
// Dual source blending
if (kDesktop_GrGLBinding == binding &&
- (glVer >= GR_GL_VER(3,3) ||
+ (glVer >= GR_GL_VER(3,3) ||
GrGLHasExtensionFromString("GL_ARB_blend_func_extended", ext))) {
if (NULL == fBindFragDataLocationIndexed) {
return false;
diff --git a/src/gpu/gl/GrGLPath.cpp b/src/gpu/gl/GrGLPath.cpp
index 64d5a55945..95e11f2167 100644
--- a/src/gpu/gl/GrGLPath.cpp
+++ b/src/gpu/gl/GrGLPath.cpp
@@ -70,7 +70,7 @@ GrGLPath::GrGLPath(GrGpuGL* gpu, const SkPath& path) : INHERITED(gpu) {
// TODO: Direct access to path points since we could pass them on directly.
path.getPoints(&pathPoints[0], pointCnt);
path.getVerbs(&pathCommands[0], verbCnt);
-
+
GR_DEBUGCODE(int numPts = 0);
for (int i = 0; i < verbCnt; ++i) {
SkPath::Verb v = static_cast<SkPath::Verb>(pathCommands[i]);
@@ -78,7 +78,7 @@ GrGLPath::GrGLPath(GrGpuGL* gpu, const SkPath& path) : INHERITED(gpu) {
GR_DEBUGCODE(numPts += num_pts(v));
}
GrAssert(pathPoints.count() == numPts);
-
+
GL_CALL(PathCommands(fPathID,
verbCnt, &pathCommands[0],
2 * pointCnt, GR_GL_FLOAT, &pathPoints[0]));
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp
index b04d924eb5..bd406f4c0c 100644
--- a/src/gpu/gl/GrGLProgram.cpp
+++ b/src/gpu/gl/GrGLProgram.cpp
@@ -316,7 +316,7 @@ bool GrGLProgram::genEdgeCoverage(SkString* coverageVar,
break;
case GrDrawState::kQuad_EdgeType:
segments->fFSCode.append("\tfloat edgeAlpha;\n");
- // keep the derivative instructions outside the conditional
+ // keep the derivative instructions outside the conditional
segments->fFSCode.appendf("\tvec2 duvdx = dFdx(%s.xy);\n", fsName);
segments->fFSCode.appendf("\tvec2 duvdy = dFdy(%s.xy);\n", fsName);
segments->fFSCode.appendf("\tif (%s.z > 0.0 && %s.w > 0.0) {\n", fsName, fsName);
@@ -508,7 +508,7 @@ GrGLuint compile_shader(const GrGLContextInfo& gl,
// retrieve length even though we don't need it to workaround bug in chrome cmd buffer
// param validation.
GrGLsizei length = GR_GL_INIT_ZERO;
- GR_GL_CALL(gli, GetShaderInfoLog(shader, infoLen+1,
+ GR_GL_CALL(gli, GetShaderInfoLog(shader, infoLen+1,
&length, (char*)log.get()));
print_shader(stringCnt, strings, stringLengths);
GrPrintf("\n%s", log.get());
@@ -816,10 +816,10 @@ bool GrGLProgram::genProgram(const GrCustomStage** customStages) {
const GrProgramStageFactory& factory = customStages[s]->getFactory();
fProgramStage[s] = factory.createGLInstance(*customStages[s]);
}
- // stages don't know how to deal with a scalar input. (Maybe they should. We
+ // stages don't know how to deal with a scalar input. (Maybe they should. We
// could pass a GrGLShaderVar)
if (inCoverageIsScalar) {
- builder.fFSCode.appendf("\tvec4 %s4 = vec4(%s);\n",
+ builder.fFSCode.appendf("\tvec4 %s4 = vec4(%s);\n",
inCoverage.c_str(), inCoverage.c_str());
inCoverage.append("4");
}
@@ -1092,13 +1092,13 @@ void GrGLProgram::genStageCode(int stageNum,
if (desc.fInConfigFlags & kMulByAlphaMask) {
// only one of the mul by alpha flags should be set
GrAssert(GrIsPow2(kMulByAlphaMask & desc.fInConfigFlags));
- GrAssert(!(desc.fInConfigFlags &
+ GrAssert(!(desc.fInConfigFlags &
StageDesc::kSmearAlpha_InConfigFlag));
- GrAssert(!(desc.fInConfigFlags &
+ GrAssert(!(desc.fInConfigFlags &
StageDesc::kSmearRed_InConfigFlag));
builder->fFSCode.appendf("\t%s = %s(%s, %s)%s;\n",
fsOutColor,
- builder->fTexFunc.c_str(),
+ builder->fTexFunc.c_str(),
samplerName,
builder->fSampleCoords.c_str(),
builder->fSwizzle.c_str());
diff --git a/src/gpu/gl/GrGLRenderTarget.h b/src/gpu/gl/GrGLRenderTarget.h
index d5f04d4134..64d95fa932 100644
--- a/src/gpu/gl/GrGLRenderTarget.h
+++ b/src/gpu/gl/GrGLRenderTarget.h
@@ -50,7 +50,7 @@ public:
void setViewport(const GrGLIRect& rect) { fViewport = rect; }
const GrGLIRect& getViewport() const { return fViewport; }
- // The following two functions return the same ID when a
+ // The following two functions return the same ID when a
// texture-rendertarget is multisampled, and different IDs when
// it is.
// FBO ID used to render into
@@ -58,9 +58,9 @@ public:
// FBO ID that has texture ID attached.
GrGLuint textureFBOID() const { return fTexFBOID; }
- // override of GrRenderTarget
+ // override of GrRenderTarget
virtual intptr_t getRenderTargetHandle() const {
- return this->renderFBOID();
+ return this->renderFBOID();
}
virtual intptr_t getRenderTargetResolvedHandle() const {
return this->textureFBOID();
diff --git a/src/gpu/gl/GrGLSL.h b/src/gpu/gl/GrGLSL.h
index a58f7e8e75..d766dd9154 100644
--- a/src/gpu/gl/GrGLSL.h
+++ b/src/gpu/gl/GrGLSL.h
@@ -64,7 +64,7 @@ const char* GrGetGLSLVersionDecl(GrGLBinding binding,
* declare an output variable for the color. If this function returns true:
* * Parameter var's name will be set to nameIfDeclared
* * The variable must be declared in the fragment shader
- * * The variable has to be bound as the color output
+ * * The variable has to be bound as the color output
* (using glBindFragDataLocation)
* If the function returns false:
* * Parameter var's name will be set to the GLSL built-in color output name.
diff --git a/src/gpu/gl/GrGLShaderVar.h b/src/gpu/gl/GrGLShaderVar.h
index 92d7ee07fd..e8f491c511 100644
--- a/src/gpu/gl/GrGLShaderVar.h
+++ b/src/gpu/gl/GrGLShaderVar.h
@@ -233,12 +233,12 @@ public:
GrSLType effectiveType = this->getType();
if (this->isArray()) {
if (this->isUnsizedArray()) {
- out->appendf("%s %s[]",
- TypeString(effectiveType),
+ out->appendf("%s %s[]",
+ TypeString(effectiveType),
this->getName().c_str());
} else {
GrAssert(this->getArrayCount() > 0);
- out->appendf("%s %s[%d]",
+ out->appendf("%s %s[%d]",
TypeString(effectiveType),
this->getName().c_str(),
this->getArrayCount());
diff --git a/src/gpu/gl/GrGLStencilBuffer.h b/src/gpu/gl/GrGLStencilBuffer.h
index 7b3da4f34a..65eb0d9582 100644
--- a/src/gpu/gl/GrGLStencilBuffer.h
+++ b/src/gpu/gl/GrGLStencilBuffer.h
@@ -23,10 +23,10 @@ public:
bool fPacked;
};
- GrGLStencilBuffer(GrGpu* gpu, GrGLint rbid,
+ GrGLStencilBuffer(GrGpu* gpu, GrGLint rbid,
int width, int height,
int sampleCnt,
- const Format& format)
+ const Format& format)
: GrStencilBuffer(gpu, width, height, format.fStencilBits, sampleCnt)
, fFormat(format)
, fRenderbufferID(rbid) {
diff --git a/src/gpu/gl/GrGLTexture.cpp b/src/gpu/gl/GrGLTexture.cpp
index e3608747a9..2c5e4a2367 100644
--- a/src/gpu/gl/GrGLTexture.cpp
+++ b/src/gpu/gl/GrGLTexture.cpp
@@ -42,7 +42,7 @@ void GrGLTexture::init(GrGpuGL* gpu,
}
GrGLTexture::GrGLTexture(GrGpuGL* gpu,
- const Desc& textureDesc)
+ const Desc& textureDesc)
: INHERITED(gpu, textureDesc) {
this->init(gpu, textureDesc, NULL);
}
diff --git a/src/gpu/gl/GrGLUtil.cpp b/src/gpu/gl/GrGLUtil.cpp
index 2f22f00f69..0e9e21fb2f 100644
--- a/src/gpu/gl/GrGLUtil.cpp
+++ b/src/gpu/gl/GrGLUtil.cpp
@@ -111,7 +111,7 @@ GrGLVersion GrGLGetVersionFromString(const char* versionString) {
if (4 == n) {
return GR_GL_VER(major, minor);
}
-
+
n = sscanf(versionString, "OpenGL ES %d.%d", &major, &minor);
if (2 == n) {
return GR_GL_VER(major, minor);
@@ -132,7 +132,7 @@ GrGLSLVersion GrGLGetGLSLVersionFromString(const char* versionString) {
if (2 == n) {
return GR_GLSL_VER(major, minor);
}
-
+
n = sscanf(versionString, "OpenGL ES GLSL ES %d.%d", &major, &minor);
if (2 == n) {
return GR_GLSL_VER(major, minor);
diff --git a/src/gpu/gl/GrGLVertexBuffer.cpp b/src/gpu/gl/GrGLVertexBuffer.cpp
index d932f11b71..3d6062dc59 100644
--- a/src/gpu/gl/GrGLVertexBuffer.cpp
+++ b/src/gpu/gl/GrGLVertexBuffer.cpp
@@ -85,7 +85,7 @@ bool GrGLVertexBuffer::isLocked() const {
if (this->isValid() && this->getGpu()->getCaps().fBufferLockSupport) {
GrGLint mapped;
this->bind();
- GL_CALL(GetBufferParameteriv(GR_GL_ARRAY_BUFFER,
+ GL_CALL(GetBufferParameteriv(GR_GL_ARRAY_BUFFER,
GR_GL_BUFFER_MAPPED, &mapped));
GrAssert(!!mapped == !!fLockPtr);
}
@@ -112,7 +112,7 @@ bool GrGLVertexBuffer::updateData(const void* src, size_t srcSizeInBytes) {
// draws that reference the old contents. With this hint it can
// assign a different allocation for the new contents to avoid
// flushing the gpu past draws consuming the old contents.
- GL_CALL(BufferData(GR_GL_ARRAY_BUFFER,
+ GL_CALL(BufferData(GR_GL_ARRAY_BUFFER,
this->sizeInBytes(), NULL, usage));
GL_CALL(BufferSubData(GR_GL_ARRAY_BUFFER, 0, srcSizeInBytes, src));
}
diff --git a/src/gpu/gl/GrGpuGL.cpp b/src/gpu/gl/GrGpuGL.cpp
index 03462e743b..3763709b6e 100644
--- a/src/gpu/gl/GrGpuGL.cpp
+++ b/src/gpu/gl/GrGpuGL.cpp
@@ -29,7 +29,7 @@ static const int SPARE_TEX_UNIT = GrDrawState::kNumStages;
#define CLEAR_ERROR_BEFORE_ALLOC(iface) GrGLClearErr(iface)
#define GL_ALLOC_CALL(iface, call) GR_GL_CALL_NOERRCHECK(iface, call)
#define CHECK_ALLOC_ERROR(iface) GR_GL_GET_ERROR(iface)
-#else
+#else
#define CLEAR_ERROR_BEFORE_ALLOC(iface)
#define GL_ALLOC_CALL(iface, call) GR_GL_CALL(iface, call)
#define CHECK_ALLOC_ERROR(iface) GR_GL_NO_ERROR
@@ -245,7 +245,7 @@ void GrGpuGL::initCaps() {
}
if (kDesktop_GrGLBinding == this->glBinding()) {
- if (this->glVersion() >= GR_GL_VER(2,0) ||
+ if (this->glVersion() >= GR_GL_VER(2,0) ||
this->hasExtension("GL_ARB_texture_non_power_of_two")) {
fCaps.fNPOTTextureTileSupport = true;
} else {
@@ -275,7 +275,7 @@ void GrGpuGL::initCaps() {
this->hasExtension("GL_ARB_blend_func_extended");
fCaps.fShaderDerivativeSupport = true;
// we don't support GL_ARB_geometry_shader4, just GL 3.2+ GS
- fCaps.fGeometryShaderSupport =
+ fCaps.fGeometryShaderSupport =
this->glVersion() >= GR_GL_VER(3,2) &&
this->glslGeneration() >= k150_GrGLSLGeneration;
} else {
@@ -287,9 +287,9 @@ void GrGpuGL::initCaps() {
void GrGpuGL::fillInConfigRenderableTable() {
// OpenGL < 3.0
- // no support for render targets unless the GL_ARB_framebuffer_object
- // extension is supported (in which case we get ALPHA, RED, RG, RGB,
- // RGBA (ALPHA8, RGBA4, RGBA8) for OpenGL > 1.1). Note that we
+ // no support for render targets unless the GL_ARB_framebuffer_object
+ // extension is supported (in which case we get ALPHA, RED, RG, RGB,
+ // RGBA (ALPHA8, RGBA4, RGBA8) for OpenGL > 1.1). Note that we
// probably don't get R8 in this case.
// OpenGL 3.0
@@ -320,7 +320,7 @@ void GrGpuGL::fillInConfigRenderableTable() {
}
} else {
// On ES we can only hope for R8
- fConfigRenderSupport[kAlpha_8_GrPixelConfig] =
+ fConfigRenderSupport[kAlpha_8_GrPixelConfig] =
this->glCaps().textureRedSupport();
}
@@ -329,7 +329,7 @@ void GrGpuGL::fillInConfigRenderableTable() {
fConfigRenderSupport[kRGB_565_GrPixelConfig] = true;
}
- // Pre 3.0, Ganesh relies on either GL_ARB_framebuffer_object or
+ // Pre 3.0, Ganesh relies on either GL_ARB_framebuffer_object or
// GL_EXT_framebuffer_object for FBO support. Both of these
// allow RGBA4 render targets so this is always supported.
fConfigRenderSupport[kRGBA_4444_GrPixelConfig] = true;
@@ -413,7 +413,7 @@ bool GrGpuGL::canPreserveReadWriteUnpremulPixels() {
}
}
}
- fCanPreserveUnpremulRoundtrip = failed ?
+ fCanPreserveUnpremulRoundtrip = failed ?
kNo_CanPreserveUnpremulRoundtrip :
kYes_CanPreserveUnpremulRoundtrip;
}
@@ -476,7 +476,7 @@ void GrGpuGL::onResetContext() {
GL_CALL(Enable(GR_GL_VERTEX_PROGRAM_POINT_SIZE));
// We should set glPolygonMode(FRONT_AND_BACK,FILL) here, too. It isn't
- // currently part of our gl interface. There are probably others as
+ // currently part of our gl interface. There are probably others as
// well.
}
fHWAAState.invalidate();
@@ -594,7 +594,7 @@ GrTexture* GrGpuGL::onCreatePlatformTexture(const GrPlatformTextureDesc& desc) {
if (NULL == texture) {
return NULL;
}
-
+
this->setSpareTextureUnit();
return texture;
}
@@ -612,7 +612,7 @@ GrRenderTarget* GrGpuGL::onCreatePlatformRenderTarget(const GrPlatformRenderTarg
viewport.fBottom = 0;
viewport.fWidth = desc.fWidth;
viewport.fHeight = desc.fHeight;
-
+
GrRenderTarget* tgt = SkNEW_ARGS(GrGLRenderTarget,
(this, glDesc, viewport));
if (desc.fStencilBits) {
@@ -657,7 +657,7 @@ void GrGpuGL::onWriteTexturePixels(GrTexture* texture,
desc.fOrientation = glTex->orientation();
this->uploadTexData(desc, false,
- left, top, width, height,
+ left, top, width, height,
config, buffer, rowBytes);
}
@@ -711,7 +711,7 @@ bool GrGpuGL::uploadTexData(const GrGLTexture::Desc& desc,
bool useTexStorage = isNewTexture &&
desc.fConfig != kIndex_8_GrPixelConfig &&
this->glCaps().texStorageSupport();
-
+
if (useTexStorage && kDesktop_GrGLBinding == this->glBinding()) {
// 565 is not a sized internal format on desktop GL. So on desktop with
// 565 we always use an unsized internal format to let the system pick
@@ -787,7 +787,7 @@ bool GrGpuGL::uploadTexData(const GrGLTexture::Desc& desc,
GL_CALL(PixelStorei(GR_GL_UNPACK_ALIGNMENT, static_cast<GrGLint>(bpp)));
}
bool succeeded = true;
- if (isNewTexture &&
+ if (isNewTexture &&
0 == left && 0 == top &&
desc.fWidth == width && desc.fHeight == height) {
CLEAR_ERROR_BEFORE_ALLOC(this->glInterface());
@@ -908,7 +908,7 @@ bool GrGpuGL::createRenderTargetObjects(int width, int height,
if (!desc->fTexFBOID) {
goto FAILED;
}
-
+
// If we are using multisampling we will create two FBOS. We render
// to one and then resolve to the texture bound to the other.
@@ -919,7 +919,7 @@ bool GrGpuGL::createRenderTargetObjects(int width, int height,
GL_CALL(GenFramebuffers(1, &desc->fRTFBOID));
GL_CALL(GenRenderbuffers(1, &desc->fMSColorRenderbufferID));
if (!desc->fRTFBOID ||
- !desc->fMSColorRenderbufferID ||
+ !desc->fMSColorRenderbufferID ||
!this->configToGLFormats(desc->fConfig,
// GLES requires sized internal formats
kES2_GrGLBinding == this->glBinding(),
@@ -943,7 +943,7 @@ bool GrGpuGL::createRenderTargetObjects(int width, int height,
goto FAILED;
}
GL_CALL(BindFramebuffer(GR_GL_FRAMEBUFFER, desc->fRTFBOID));
- GL_CALL(FramebufferRenderbuffer(GR_GL_FRAMEBUFFER,
+ GL_CALL(FramebufferRenderbuffer(GR_GL_FRAMEBUFFER,
GR_GL_COLOR_ATTACHMENT0,
GR_GL_RENDERBUFFER,
desc->fMSColorRenderbufferID));
@@ -1116,7 +1116,7 @@ namespace {
const GrGLuint kUnknownBitCount = GrGLStencilBuffer::kUnknownBitCount;
void inline get_stencil_rb_sizes(const GrGLInterface* gl,
- GrGLuint rb,
+ GrGLuint rb,
GrGLStencilBuffer::Format* format) {
// we shouldn't ever know one size and not the other
GrAssert((kUnknownBitCount == format->fStencilBits) ==
@@ -1187,7 +1187,7 @@ bool GrGpuGL::createStencilBufferForRenderTarget(GrRenderTarget* rt,
GrGLStencilBuffer::Format format = sFmt;
get_stencil_rb_sizes(this->glInterface(), sbID, &format);
sb = SkNEW_ARGS(GrGLStencilBuffer,
- (this, sbID, width, height,
+ (this, sbID, width, height,
samples, format));
if (this->attachStencilBufferToRenderTarget(sb, rt)) {
fLastSuccessfulStencilFmtIdx = sIdx;
@@ -1409,7 +1409,7 @@ void GrGpuGL::clearStencil() {
if (NULL == this->getDrawState().getRenderTarget()) {
return;
}
-
+
this->flushRenderTarget(&GrIRect::EmptyIRect());
GrAutoTRestore<ScissorState> asr(&fScissorState);
@@ -1536,14 +1536,14 @@ bool GrGpuGL::onReadPixels(GrRenderTarget* target,
// the read rect is viewport-relative
GrGLIRect readRect;
readRect.setRelativeTo(glvp, left, top, width, height);
-
+
size_t tightRowBytes = bpp * width;
if (0 == rowBytes) {
rowBytes = tightRowBytes;
}
size_t readDstRowBytes = tightRowBytes;
void* readDst = buffer;
-
+
// determine if GL can read using the passed rowBytes or if we need
// a scratch buffer.
SkAutoSMalloc<32 * sizeof(GrColor)> scratch;
diff --git a/src/gpu/gl/GrGpuGL_program.cpp b/src/gpu/gl/GrGpuGL_program.cpp
index c1eb36e9a7..f9d71db154 100644
--- a/src/gpu/gl/GrGpuGL_program.cpp
+++ b/src/gpu/gl/GrGpuGL_program.cpp
@@ -283,7 +283,7 @@ void GrGpuGL::flushColor(GrColor color) {
// OpenGL ES only supports the float varieties of
// glVertexAttrib
float c[] = GR_COLOR_TO_VEC4(color);
- GL_CALL(VertexAttrib4fv(GrGLProgram::ColorAttributeIdx(),
+ GL_CALL(VertexAttrib4fv(GrGLProgram::ColorAttributeIdx(),
c));
fHWConstAttribColor = color;
}
@@ -331,7 +331,7 @@ void GrGpuGL::flushCoverage(GrColor coverage) {
// OpenGL ES only supports the float varieties of
// glVertexAttrib
float c[] = GR_COLOR_TO_VEC4(coverage);
- GL_CALL(VertexAttrib4fv(GrGLProgram::CoverageAttributeIdx(),
+ GL_CALL(VertexAttrib4fv(GrGLProgram::CoverageAttributeIdx(),
c));
fHWConstAttribCoverage = coverage;
}
@@ -430,7 +430,7 @@ bool GrGpuGL::flushGraphicsState(DrawType type) {
GrIRect* devRect = NULL;
GrIRect devClipBounds;
if (drawState.isClipState()) {
- fClip->getConservativeBounds(drawState.getRenderTarget(),
+ fClip->getConservativeBounds(drawState.getRenderTarget(),
&devClipBounds);
devRect = &devClipBounds;
}
@@ -520,7 +520,7 @@ void GrGpuGL::setupGeometry(int* startVertex,
if (posAndTexChange) {
int idx = GrGLProgram::PositionAttributeIdx();
- GL_CALL(VertexAttribPointer(idx, 2, scalarType, false, newStride,
+ GL_CALL(VertexAttribPointer(idx, 2, scalarType, false, newStride,
(GrGLvoid*)vertexOffset));
fHWGeometryState.fVertexOffset = vertexOffset;
}
@@ -531,11 +531,11 @@ void GrGpuGL::setupGeometry(int* startVertex,
int idx = GrGLProgram::TexCoordAttributeIdx(t);
if (oldTexCoordOffsets[t] <= 0) {
GL_CALL(EnableVertexAttribArray(idx));
- GL_CALL(VertexAttribPointer(idx, 2, scalarType, texCoordNorm,
+ GL_CALL(VertexAttribPointer(idx, 2, scalarType, texCoordNorm,
newStride, texCoordOffset));
} else if (posAndTexChange ||
newTexCoordOffsets[t] != oldTexCoordOffsets[t]) {
- GL_CALL(VertexAttribPointer(idx, 2, scalarType, texCoordNorm,
+ GL_CALL(VertexAttribPointer(idx, 2, scalarType, texCoordNorm,
newStride, texCoordOffset));
}
} else if (oldTexCoordOffsets[t] > 0) {
@@ -671,9 +671,9 @@ void GrGpuGL::buildProgram(bool isPoints,
} else {
desc->fColorInput = ProgramDesc::kAttribute_ColorInput;
}
-
+
bool covIsSolidWhite = !requiresAttributeCoverage && 0xffffffff == drawState.getCoverage();
-
+
if (skipCoverage) {
desc->fCoverageInput = ProgramDesc::kTransBlack_ColorInput;
} else if (covIsSolidWhite) {
@@ -780,7 +780,7 @@ void GrGpuGL::buildProgram(bool isPoints,
#endif
// We want to avoid generating programs with different "first cov stage" values when they would
- // compute the same result. We set field in the desc to kNumStages when either there are no
+ // compute the same result. We set field in the desc to kNumStages when either there are no
// coverage stages or the distinction between coverage and color is immaterial.
int firstCoverageStage = GrDrawState::kNumStages;
desc->fFirstCoverageStage = GrDrawState::kNumStages;
diff --git a/src/gpu/gl/SkGLContext.cpp b/src/gpu/gl/SkGLContext.cpp
index f67e68cc54..c5069b2db8 100644
--- a/src/gpu/gl/SkGLContext.cpp
+++ b/src/gpu/gl/SkGLContext.cpp
@@ -71,7 +71,7 @@ bool SkGLContext::init(int width, int height) {
}
SK_GL(*this, FramebufferRenderbuffer(GR_GL_FRAMEBUFFER,
GR_GL_COLOR_ATTACHMENT0,
- GR_GL_RENDERBUFFER,
+ GR_GL_RENDERBUFFER,
fColorBufferID));
SK_GL(*this, GenRenderbuffers(1, &fDepthStencilBufferID));
SK_GL(*this, BindRenderbuffer(GR_GL_RENDERBUFFER, fDepthStencilBufferID));
@@ -81,7 +81,7 @@ bool SkGLContext::init(int width, int height) {
// depth stencil being available.
bool supportsPackedDepthStencil;
if (kES2_GrGLBinding == bindingInUse) {
- supportsPackedDepthStencil =
+ supportsPackedDepthStencil =
this->hasExtension("GL_OES_packed_depth_stencil");
} else {
supportsPackedDepthStencil = version >= GR_GL_VER(3,0) ||
@@ -92,7 +92,7 @@ bool SkGLContext::init(int width, int height) {
if (supportsPackedDepthStencil) {
// ES2 requires sized internal formats for RenderbufferStorage
// On Desktop we let the driver decide.
- GrGLenum format = kES2_GrGLBinding == bindingInUse ?
+ GrGLenum format = kES2_GrGLBinding == bindingInUse ?
GR_GL_DEPTH24_STENCIL8 :
GR_GL_DEPTH_STENCIL;
SK_GL(*this, RenderbufferStorage(GR_GL_RENDERBUFFER,
@@ -103,7 +103,7 @@ bool SkGLContext::init(int width, int height) {
GR_GL_RENDERBUFFER,
fDepthStencilBufferID));
} else {
- GrGLenum format = kES2_GrGLBinding == bindingInUse ?
+ GrGLenum format = kES2_GrGLBinding == bindingInUse ?
GR_GL_STENCIL_INDEX8 :
GR_GL_STENCIL_INDEX;
SK_GL(*this, RenderbufferStorage(GR_GL_RENDERBUFFER,
@@ -117,7 +117,7 @@ bool SkGLContext::init(int width, int height) {
SK_GL(*this, Viewport(0, 0, width, height));
SK_GL(*this, ClearStencil(0));
SK_GL(*this, Clear(GR_GL_STENCIL_BUFFER_BIT));
-
+
error = SK_GL(*this, GetError());
GrGLenum status =
SK_GL(*this, CheckFramebufferStatus(GR_GL_FRAMEBUFFER));
diff --git a/src/gpu/gl/angle/GrGLCreateANGLEInterface.cpp b/src/gpu/gl/angle/GrGLCreateANGLEInterface.cpp
index cd1da719e6..19fe44f6d8 100644
--- a/src/gpu/gl/angle/GrGLCreateANGLEInterface.cpp
+++ b/src/gpu/gl/angle/GrGLCreateANGLEInterface.cpp
@@ -24,7 +24,7 @@ const GrGLInterface* GrGLCreateANGLEInterface() {
static SkAutoTUnref<GrGLInterface> glInterface;
static HMODULE ghANGLELib = NULL;
-
+
if (NULL == ghANGLELib) {
// We load the ANGLE library and never let it go
ghANGLELib = LoadLibrary("libGLESv2.dll");
@@ -101,8 +101,8 @@ const GrGLInterface* GrGLCreateANGLEInterface() {
#if GL_ARB_texture_storage
GR_GET_PROC(GrGLTexStorage2DProc, TexStorage2D);
#elif GL_EXT_texture_storage
- interface->fTexStorage2D = (GrGLTexStorage2DProc)
- GetProcAddress(ghANGLELib,
+ interface->fTexStorage2D = (GrGLTexStorage2DProc)
+ GetProcAddress(ghANGLELib,
"glTexStorage2DEXT");
#endif
GR_GET_PROC(GrGLUniform1fProc, Uniform1f);
@@ -141,9 +141,9 @@ const GrGLInterface* GrGLCreateANGLEInterface() {
GR_GET_PROC(GrGLFramebufferTexture2DProc, FramebufferTexture2D);
GR_GET_PROC(GrGLGenFramebuffersProc, GenFramebuffers);
GR_GET_PROC(GrGLGenRenderbuffersProc, GenRenderbuffers);
- GR_GET_PROC(GrGLGetFramebufferAttachmentParameterivProc,
+ GR_GET_PROC(GrGLGetFramebufferAttachmentParameterivProc,
GetFramebufferAttachmentParameteriv);
- GR_GET_PROC(GrGLGetRenderbufferParameterivProc,
+ GR_GET_PROC(GrGLGetRenderbufferParameterivProc,
GetRenderbufferParameteriv);
GR_GET_PROC(GrGLRenderbufferStorageProc, RenderbufferStorage);
diff --git a/src/gpu/gl/debug/GrBufferObj.h b/src/gpu/gl/debug/GrBufferObj.h
index a78da837d2..faa23985c5 100644
--- a/src/gpu/gl/debug/GrBufferObj.h
+++ b/src/gpu/gl/debug/GrBufferObj.h
@@ -17,7 +17,7 @@ class GrBufferObj : public GrFakeRefObj {
GR_DEFINE_CREATOR(GrBufferObj);
public:
- GrBufferObj()
+ GrBufferObj()
: GrFakeRefObj()
, fDataPtr(NULL)
, fMapped(false)
@@ -58,8 +58,8 @@ private:
bool fMapped; // is the buffer object mapped via "glMapBuffer"?
bool fBound; // is the buffer object bound via "glBindBuffer"?
GrGLint fSize; // size in bytes
- GrGLint fUsage; // one of: GL_STREAM_DRAW,
- // GL_STATIC_DRAW,
+ GrGLint fUsage; // one of: GL_STREAM_DRAW,
+ // GL_STATIC_DRAW,
// GL_DYNAMIC_DRAW
typedef GrFakeRefObj INHERITED;
diff --git a/src/gpu/gl/debug/GrDebugGL.cpp b/src/gpu/gl/debug/GrDebugGL.cpp
index 657003967f..9e2e510b1b 100644
--- a/src/gpu/gl/debug/GrDebugGL.cpp
+++ b/src/gpu/gl/debug/GrDebugGL.cpp
@@ -29,7 +29,7 @@ GrDebugGL::Create GrDebugGL::gFactoryFunc[kObjTypeCount] = {
};
-GrDebugGL::GrDebugGL()
+GrDebugGL::GrDebugGL()
: fPackRowLength(0)
, fUnPackRowLength(0)
, fCurTextureUnit(0)
@@ -76,7 +76,7 @@ GrFakeRefObj *GrDebugGL::findObject(GrGLuint ID, GrObjTypes type) {
for (int i = 0; i < fObjects.count(); ++i) {
if (fObjects[i]->getID() == ID) { // && fObjects[i]->getType() == type) {
// The application shouldn't be accessing objects
- // that (as far as OpenGL knows) were already deleted
+ // that (as far as OpenGL knows) were already deleted
GrAlwaysAssert(!fObjects[i]->getDeleted());
GrAlwaysAssert(!fObjects[i]->getMarkedForDeletion());
return fObjects[i];
@@ -86,7 +86,7 @@ GrFakeRefObj *GrDebugGL::findObject(GrGLuint ID, GrObjTypes type) {
return NULL;
}
-void GrDebugGL::setArrayBuffer(GrBufferObj *arrayBuffer) {
+void GrDebugGL::setArrayBuffer(GrBufferObj *arrayBuffer) {
if (fArrayBuffer) {
// automatically break the binding of the old buffer
GrAlwaysAssert(fArrayBuffer->getBound());
@@ -96,7 +96,7 @@ void GrDebugGL::setArrayBuffer(GrBufferObj *arrayBuffer) {
fArrayBuffer->unref();
}
- fArrayBuffer = arrayBuffer;
+ fArrayBuffer = arrayBuffer;
if (fArrayBuffer) {
GrAlwaysAssert(!fArrayBuffer->getDeleted());
@@ -107,7 +107,7 @@ void GrDebugGL::setArrayBuffer(GrBufferObj *arrayBuffer) {
}
}
-void GrDebugGL::setElementArrayBuffer(GrBufferObj *elementArrayBuffer) {
+void GrDebugGL::setElementArrayBuffer(GrBufferObj *elementArrayBuffer) {
if (fElementArrayBuffer) {
// automatically break the binding of the old buffer
GrAlwaysAssert(fElementArrayBuffer->getBound());
@@ -117,7 +117,7 @@ void GrDebugGL::setElementArrayBuffer(GrBufferObj *elementArrayBuffer) {
fElementArrayBuffer->unref();
}
- fElementArrayBuffer = elementArrayBuffer;
+ fElementArrayBuffer = elementArrayBuffer;
if (fElementArrayBuffer) {
GrAlwaysAssert(!fElementArrayBuffer->getDeleted());
@@ -128,11 +128,11 @@ void GrDebugGL::setElementArrayBuffer(GrBufferObj *elementArrayBuffer) {
}
}
-void GrDebugGL::setTexture(GrTextureObj *texture) {
+void GrDebugGL::setTexture(GrTextureObj *texture) {
fTextureUnits[fCurTextureUnit]->setTexture(texture);
}
-void GrDebugGL::setFrameBuffer(GrFrameBufferObj *frameBuffer) {
+void GrDebugGL::setFrameBuffer(GrFrameBufferObj *frameBuffer) {
if (fFrameBuffer) {
GrAlwaysAssert(fFrameBuffer->getBound());
fFrameBuffer->resetBound();
@@ -141,7 +141,7 @@ void GrDebugGL::setFrameBuffer(GrFrameBufferObj *frameBuffer) {
fFrameBuffer->unref();
}
- fFrameBuffer = frameBuffer;
+ fFrameBuffer = frameBuffer;
if (fFrameBuffer) {
GrAlwaysAssert(!fFrameBuffer->getDeleted());
@@ -152,7 +152,7 @@ void GrDebugGL::setFrameBuffer(GrFrameBufferObj *frameBuffer) {
}
}
-void GrDebugGL::setRenderBuffer(GrRenderBufferObj *renderBuffer) {
+void GrDebugGL::setRenderBuffer(GrRenderBufferObj *renderBuffer) {
if (fRenderBuffer) {
GrAlwaysAssert(fRenderBuffer->getBound());
fRenderBuffer->resetBound();
@@ -161,7 +161,7 @@ void GrDebugGL::setRenderBuffer(GrRenderBufferObj *renderBuffer) {
fRenderBuffer->unref();
}
- fRenderBuffer = renderBuffer;
+ fRenderBuffer = renderBuffer;
if (fRenderBuffer) {
GrAlwaysAssert(!fRenderBuffer->getDeleted());
diff --git a/src/gpu/gl/debug/GrDebugGL.h b/src/gpu/gl/debug/GrDebugGL.h
index d6697fd211..409f13d106 100644
--- a/src/gpu/gl/debug/GrDebugGL.h
+++ b/src/gpu/gl/debug/GrDebugGL.h
@@ -73,8 +73,8 @@ public:
void useProgram(GrProgramObj *program);
- void setPackRowLength(GrGLint packRowLength) {
- fPackRowLength = packRowLength;
+ void setPackRowLength(GrGLint packRowLength) {
+ fPackRowLength = packRowLength;
}
GrGLint getPackRowLength() const { return fPackRowLength; }
diff --git a/src/gpu/gl/debug/GrFBBindableObj.h b/src/gpu/gl/debug/GrFBBindableObj.h
index 38c86380a2..e2b43a6a1b 100644
--- a/src/gpu/gl/debug/GrFBBindableObj.h
+++ b/src/gpu/gl/debug/GrFBBindableObj.h
@@ -17,7 +17,7 @@
class GrFBBindableObj : public GrFakeRefObj {
public:
- GrFBBindableObj()
+ GrFBBindableObj()
: GrFakeRefObj() {
}
@@ -27,51 +27,51 @@ public:
GrAlwaysAssert(0 == fStencilReferees.count());
}
- void setColorBound(GrFakeRefObj *referee) {
+ void setColorBound(GrFakeRefObj *referee) {
fColorReferees.append(1, &referee);
}
- void resetColorBound(GrFakeRefObj *referee) {
+ void resetColorBound(GrFakeRefObj *referee) {
int index = fColorReferees.find(referee);
GrAlwaysAssert(0 <= index);
fColorReferees.removeShuffle(index);
}
- bool getColorBound(GrFakeRefObj *referee) const {
+ bool getColorBound(GrFakeRefObj *referee) const {
int index = fColorReferees.find(referee);
return 0 <= index;
}
- bool getColorBound() const {
+ bool getColorBound() const {
return 0 != fColorReferees.count();
}
- void setDepthBound(GrFakeRefObj *referee) {
+ void setDepthBound(GrFakeRefObj *referee) {
fDepthReferees.append(1, &referee);
}
- void resetDepthBound(GrFakeRefObj *referee) {
+ void resetDepthBound(GrFakeRefObj *referee) {
int index = fDepthReferees.find(referee);
GrAlwaysAssert(0 <= index);
fDepthReferees.removeShuffle(index);
}
- bool getDepthBound(GrFakeRefObj *referee) const {
+ bool getDepthBound(GrFakeRefObj *referee) const {
int index = fDepthReferees.find(referee);
return 0 <= index;
}
- bool getDepthBound() const {
+ bool getDepthBound() const {
return 0 != fDepthReferees.count();
}
- void setStencilBound(GrFakeRefObj *referee) {
+ void setStencilBound(GrFakeRefObj *referee) {
fStencilReferees.append(1, &referee);
}
- void resetStencilBound(GrFakeRefObj *referee) {
+ void resetStencilBound(GrFakeRefObj *referee) {
int index = fStencilReferees.find(referee);
GrAlwaysAssert(0 <= index);
fStencilReferees.removeShuffle(index);
}
- bool getStencilBound(GrFakeRefObj *referee) const {
+ bool getStencilBound(GrFakeRefObj *referee) const {
int index = fStencilReferees.find(referee);
return 0 <= index;
}
- bool getStencilBound() const {
+ bool getStencilBound() const {
return 0 != fStencilReferees.count();
}
diff --git a/src/gpu/gl/debug/GrFakeRefObj.h b/src/gpu/gl/debug/GrFakeRefObj.h
index 81fb90c4d0..7f21c94181 100644
--- a/src/gpu/gl/debug/GrFakeRefObj.h
+++ b/src/gpu/gl/debug/GrFakeRefObj.h
@@ -14,41 +14,41 @@
////////////////////////////////////////////////////////////////////////////////
// This object is used to track the OpenGL objects. We don't use real
-// reference counting (i.e., we don't free the objects when their ref count
+// reference counting (i.e., we don't free the objects when their ref count
// goes to 0) so that we can detect invalid memory accesses. The refs we
// are tracking in this class are actually OpenGL's references to the objects
// not "ours"
// Each object also gets a unique globally identifying ID
class GrFakeRefObj : public GrNoncopyable {
public:
- GrFakeRefObj()
+ GrFakeRefObj()
: fRef(0)
, fHighRefCount(0)
, fMarkedForDeletion(false)
, fDeleted(false) {
// source for globally unique IDs - 0 is reserved!
- static int fNextID = 0;
+ static int fNextID = 0;
fID = ++fNextID;
}
virtual ~GrFakeRefObj() {};
- void ref() {
- fRef++;
+ void ref() {
+ fRef++;
if (fHighRefCount < fRef) {
fHighRefCount = fRef;
}
}
- void unref() {
- fRef--;
+ void unref() {
+ fRef--;
GrAlwaysAssert(fRef >= 0);
- // often in OpenGL a given object may still be in use when the
+ // often in OpenGL a given object may still be in use when the
// delete call is made. In these cases the object is marked
// for deletion and then freed when it is no longer in use
if (0 == fRef && fMarkedForDeletion) {
- this->deleteAction();
+ this->deleteAction();
}
}
int getRefCount() const { return fRef; }
diff --git a/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp b/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp
index 3f58cc69da..4aff202a9f 100644
--- a/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp
+++ b/src/gpu/gl/debug/GrGLCreateDebugInterface.cpp
@@ -34,7 +34,7 @@ namespace { // suppress no previsous prototype warning
////////////////////////////////////////////////////////////////////////////////
GrGLvoid GR_GL_FUNCTION_TYPE debugGLActiveTexture(GrGLenum texture) {
-
+
// Ganesh offsets the texture unit indices
texture -= GR_GL_TEXTURE0;
GrAlwaysAssert(texture < GrDebugGL::getInstance()->getMaxTextureUnits());
@@ -43,15 +43,15 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLActiveTexture(GrGLenum texture) {
}
////////////////////////////////////////////////////////////////////////////////
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLAttachShader(GrGLuint programID,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLAttachShader(GrGLuint programID,
GrGLuint shaderID) {
- GrProgramObj *program = GR_FIND(programID, GrProgramObj,
+ GrProgramObj *program = GR_FIND(programID, GrProgramObj,
GrDebugGL::kProgram_ObjTypes);
GrAlwaysAssert(program);
- GrShaderObj *shader = GR_FIND(shaderID,
- GrShaderObj,
+ GrShaderObj *shader = GR_FIND(shaderID,
+ GrShaderObj,
GrDebugGL::kShader_ObjTypes);
GrAlwaysAssert(shader);
@@ -61,51 +61,51 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLAttachShader(GrGLuint programID,
GrGLvoid GR_GL_FUNCTION_TYPE debugGLBeginQuery(GrGLenum target, GrGLuint id) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindAttribLocation(GrGLuint program,
- GrGLuint index,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindAttribLocation(GrGLuint program,
+ GrGLuint index,
const char* name) {
}
////////////////////////////////////////////////////////////////////////////////
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindTexture(GrGLenum target,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindTexture(GrGLenum target,
GrGLuint textureID) {
// we don't use cube maps
- GrAlwaysAssert(target == GR_GL_TEXTURE_2D);
+ GrAlwaysAssert(target == GR_GL_TEXTURE_2D);
// || target == GR_GL_TEXTURE_CUBE_MAP);
// a textureID of 0 is acceptable - it binds to the default texture target
- GrTextureObj *texture = GR_FIND(textureID, GrTextureObj,
+ GrTextureObj *texture = GR_FIND(textureID, GrTextureObj,
GrDebugGL::kTexture_ObjTypes);
GrDebugGL::getInstance()->setTexture(texture);
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLBlendColor(GrGLclampf red,
- GrGLclampf green,
- GrGLclampf blue,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLBlendColor(GrGLclampf red,
+ GrGLclampf green,
+ GrGLclampf blue,
GrGLclampf alpha) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindFragDataLocation(GrGLuint program,
- GrGLuint colorNumber,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindFragDataLocation(GrGLuint program,
+ GrGLuint colorNumber,
const GrGLchar* name) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLBlendFunc(GrGLenum sfactor,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLBlendFunc(GrGLenum sfactor,
GrGLenum dfactor) {
}
////////////////////////////////////////////////////////////////////////////////
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLBufferData(GrGLenum target,
- GrGLsizeiptr size,
- const GrGLvoid* data,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLBufferData(GrGLenum target,
+ GrGLsizeiptr size,
+ const GrGLvoid* data,
GrGLenum usage) {
- GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
+ GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
GR_GL_ELEMENT_ARRAY_BUFFER == target);
GrAlwaysAssert(size >= 0);
- GrAlwaysAssert(GR_GL_STREAM_DRAW == usage ||
- GR_GL_STATIC_DRAW == usage ||
+ GrAlwaysAssert(GR_GL_STREAM_DRAW == usage ||
+ GR_GL_STATIC_DRAW == usage ||
GR_GL_DYNAMIC_DRAW == usage);
GrBufferObj *buffer = NULL;
@@ -128,40 +128,40 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLBufferData(GrGLenum target,
buffer->setUsage(usage);
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLBufferSubData(GrGLenum target,
- GrGLintptr offset,
- GrGLsizeiptr size,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLBufferSubData(GrGLenum target,
+ GrGLintptr offset,
+ GrGLsizeiptr size,
const GrGLvoid* data) {
}
GrGLvoid GR_GL_FUNCTION_TYPE debugGLClear(GrGLbitfield mask) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLClearColor(GrGLclampf red,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLClearColor(GrGLclampf red,
GrGLclampf green,
- GrGLclampf blue,
+ GrGLclampf blue,
GrGLclampf alpha) {
}
GrGLvoid GR_GL_FUNCTION_TYPE debugGLClearStencil(GrGLint s) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLColorMask(GrGLboolean red,
- GrGLboolean green,
- GrGLboolean blue,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLColorMask(GrGLboolean red,
+ GrGLboolean green,
+ GrGLboolean blue,
GrGLboolean alpha) {
}
GrGLvoid GR_GL_FUNCTION_TYPE debugGLCompileShader(GrGLuint shader) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLCompressedTexImage2D(GrGLenum target,
- GrGLint level,
- GrGLenum internalformat,
- GrGLsizei width,
- GrGLsizei height,
- GrGLint border,
- GrGLsizei imageSize,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLCompressedTexImage2D(GrGLenum target,
+ GrGLint level,
+ GrGLenum internalformat,
+ GrGLsizei width,
+ GrGLsizei height,
+ GrGLint border,
+ GrGLsizei imageSize,
const GrGLvoid* data) {
}
@@ -177,21 +177,21 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLDisable(GrGLenum cap) {
GrGLvoid GR_GL_FUNCTION_TYPE debugGLDisableVertexAttribArray(GrGLuint index) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLDrawArrays(GrGLenum mode,
- GrGLint first,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLDrawArrays(GrGLenum mode,
+ GrGLint first,
GrGLsizei count) {
}
GrGLvoid GR_GL_FUNCTION_TYPE debugGLDrawBuffer(GrGLenum mode) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLDrawBuffers(GrGLsizei n,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLDrawBuffers(GrGLsizei n,
const GrGLenum* bufs) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLDrawElements(GrGLenum mode,
- GrGLsizei count,
- GrGLenum type,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLDrawElements(GrGLenum mode,
+ GrGLsizei count,
+ GrGLenum type,
const GrGLvoid* indices) {
}
@@ -219,7 +219,7 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLLineWidth(GrGLfloat width) {
GrGLvoid GR_GL_FUNCTION_TYPE debugGLLinkProgram(GrGLuint program) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLPixelStorei(GrGLenum pname,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLPixelStorei(GrGLenum pname,
GrGLint param) {
switch (pname) {
@@ -240,19 +240,19 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLPixelStorei(GrGLenum pname,
}
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLQueryCounter(GrGLuint id,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLQueryCounter(GrGLuint id,
GrGLenum target) {
}
GrGLvoid GR_GL_FUNCTION_TYPE debugGLReadBuffer(GrGLenum src) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLReadPixels(GrGLint x,
- GrGLint y,
- GrGLsizei width,
- GrGLsizei height,
- GrGLenum format,
- GrGLenum type,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLReadPixels(GrGLint x,
+ GrGLint y,
+ GrGLsizei width,
+ GrGLsizei height,
+ GrGLenum format,
+ GrGLenum type,
GrGLvoid* pixels) {
GrGLint pixelsInRow = width;
@@ -297,8 +297,8 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLReadPixels(GrGLint x,
if (componentSize >= alignment) {
rowStride = componentsPerPixel * pixelsInRow;
} else {
- float fTemp =
- sk_float_ceil(componentSize * componentsPerPixel * pixelsInRow /
+ float fTemp =
+ sk_float_ceil(componentSize * componentsPerPixel * pixelsInRow /
static_cast<float>(alignment));
rowStride = static_cast<GrGLint>(alignment * fTemp / componentSize);
}
@@ -310,250 +310,250 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLReadPixels(GrGLint x,
}
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLScissor(GrGLint x,
- GrGLint y,
- GrGLsizei width,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLScissor(GrGLint x,
+ GrGLint y,
+ GrGLsizei width,
GrGLsizei height) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLShaderSource(GrGLuint shader,
- GrGLsizei count,
- const char** str,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLShaderSource(GrGLuint shader,
+ GrGLsizei count,
+ const char** str,
const GrGLint* length) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLStencilFunc(GrGLenum func,
- GrGLint ref,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLStencilFunc(GrGLenum func,
+ GrGLint ref,
GrGLuint mask) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLStencilFuncSeparate(GrGLenum face,
- GrGLenum func,
- GrGLint ref,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLStencilFuncSeparate(GrGLenum face,
+ GrGLenum func,
+ GrGLint ref,
GrGLuint mask) {
}
GrGLvoid GR_GL_FUNCTION_TYPE debugGLStencilMask(GrGLuint mask) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLStencilMaskSeparate(GrGLenum face,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLStencilMaskSeparate(GrGLenum face,
GrGLuint mask) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLStencilOp(GrGLenum fail,
- GrGLenum zfail,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLStencilOp(GrGLenum fail,
+ GrGLenum zfail,
GrGLenum zpass) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLStencilOpSeparate(GrGLenum face,
- GrGLenum fail,
- GrGLenum zfail,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLStencilOpSeparate(GrGLenum face,
+ GrGLenum fail,
+ GrGLenum zfail,
GrGLenum zpass) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLTexImage2D(GrGLenum target,
- GrGLint level,
- GrGLint internalformat,
- GrGLsizei width,
- GrGLsizei height,
- GrGLint border,
- GrGLenum format,
- GrGLenum type,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLTexImage2D(GrGLenum target,
+ GrGLint level,
+ GrGLint internalformat,
+ GrGLsizei width,
+ GrGLsizei height,
+ GrGLint border,
+ GrGLenum format,
+ GrGLenum type,
const GrGLvoid* pixels) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLTexParameteri(GrGLenum target,
- GrGLenum pname,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLTexParameteri(GrGLenum target,
+ GrGLenum pname,
GrGLint param) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLTexParameteriv(GrGLenum target,
- GrGLenum pname,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLTexParameteriv(GrGLenum target,
+ GrGLenum pname,
const GrGLint* params) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLTexStorage2D(GrGLenum target,
- GrGLsizei levels,
- GrGLenum internalformat,
- GrGLsizei width,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLTexStorage2D(GrGLenum target,
+ GrGLsizei levels,
+ GrGLenum internalformat,
+ GrGLsizei width,
GrGLsizei height) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLTexSubImage2D(GrGLenum target,
- GrGLint level,
- GrGLint xoffset,
- GrGLint yoffset,
- GrGLsizei width,
- GrGLsizei height,
- GrGLenum format,
- GrGLenum type,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLTexSubImage2D(GrGLenum target,
+ GrGLint level,
+ GrGLint xoffset,
+ GrGLint yoffset,
+ GrGLsizei width,
+ GrGLsizei height,
+ GrGLenum format,
+ GrGLenum type,
const GrGLvoid* pixels) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform1f(GrGLint location,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform1f(GrGLint location,
GrGLfloat v0) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform1i(GrGLint location,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform1i(GrGLint location,
GrGLint v0) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform1fv(GrGLint location,
- GrGLsizei count,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform1fv(GrGLint location,
+ GrGLsizei count,
const GrGLfloat* v) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform1iv(GrGLint location,
- GrGLsizei count,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform1iv(GrGLint location,
+ GrGLsizei count,
const GrGLint* v) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform2f(GrGLint location,
- GrGLfloat v0,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform2f(GrGLint location,
+ GrGLfloat v0,
GrGLfloat v1) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform2i(GrGLint location,
- GrGLint v0,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform2i(GrGLint location,
+ GrGLint v0,
GrGLint v1) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform2fv(GrGLint location,
- GrGLsizei count,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform2fv(GrGLint location,
+ GrGLsizei count,
const GrGLfloat* v) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform2iv(GrGLint location,
- GrGLsizei count,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform2iv(GrGLint location,
+ GrGLsizei count,
const GrGLint* v) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform3f(GrGLint location,
- GrGLfloat v0,
- GrGLfloat v1,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform3f(GrGLint location,
+ GrGLfloat v0,
+ GrGLfloat v1,
GrGLfloat v2) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform3i(GrGLint location,
- GrGLint v0,
- GrGLint v1,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform3i(GrGLint location,
+ GrGLint v0,
+ GrGLint v1,
GrGLint v2) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform3fv(GrGLint location,
- GrGLsizei count,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform3fv(GrGLint location,
+ GrGLsizei count,
const GrGLfloat* v) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform3iv(GrGLint location,
- GrGLsizei count,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform3iv(GrGLint location,
+ GrGLsizei count,
const GrGLint* v) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4f(GrGLint location,
- GrGLfloat v0,
- GrGLfloat v1,
- GrGLfloat v2,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4f(GrGLint location,
+ GrGLfloat v0,
+ GrGLfloat v1,
+ GrGLfloat v2,
GrGLfloat v3) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4i(GrGLint location,
- GrGLint v0,
- GrGLint v1,
- GrGLint v2,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4i(GrGLint location,
+ GrGLint v0,
+ GrGLint v1,
+ GrGLint v2,
GrGLint v3) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
- GrGLsizei count,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
+ GrGLsizei count,
const GrGLfloat* v) {
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4iv(GrGLint location,
- GrGLsizei count,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4iv(GrGLint location,
+ GrGLsizei count,
const GrGLint* v) {
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniformMatrix2fv(GrGLint location,
- GrGLsizei count,
- GrGLboolean transpose,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniformMatrix2fv(GrGLint location,
+ GrGLsizei count,
+ GrGLboolean transpose,
const GrGLfloat* value) {
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniformMatrix3fv(GrGLint location,
- GrGLsizei count,
- GrGLboolean transpose,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniformMatrix3fv(GrGLint location,
+ GrGLsizei count,
+ GrGLboolean transpose,
const GrGLfloat* value) {
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniformMatrix4fv(GrGLint location,
- GrGLsizei count,
- GrGLboolean transpose,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniformMatrix4fv(GrGLint location,
+ GrGLsizei count,
+ GrGLboolean transpose,
const GrGLfloat* value) {
}
GrGLvoid GR_GL_FUNCTION_TYPE debugGLUseProgram(GrGLuint programID) {
// A programID of 0 is legal
- GrProgramObj *program = GR_FIND(programID,
- GrProgramObj,
+ GrProgramObj *program = GR_FIND(programID,
+ GrProgramObj,
GrDebugGL::kProgram_ObjTypes);
GrDebugGL::getInstance()->useProgram(program);
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLVertexAttrib4fv(GrGLuint indx,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLVertexAttrib4fv(GrGLuint indx,
const GrGLfloat* values) {
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLVertexAttribPointer(GrGLuint indx,
- GrGLint size,
- GrGLenum type,
- GrGLboolean normalized,
- GrGLsizei stride,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLVertexAttribPointer(GrGLuint indx,
+ GrGLint size,
+ GrGLenum type,
+ GrGLboolean normalized,
+ GrGLsizei stride,
const GrGLvoid* ptr) {
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLViewport(GrGLint x,
- GrGLint y,
- GrGLsizei width,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLViewport(GrGLint x,
+ GrGLint y,
+ GrGLsizei width,
GrGLsizei height) {
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindFramebuffer(GrGLenum target,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindFramebuffer(GrGLenum target,
GrGLuint frameBufferID) {
GrAlwaysAssert(GR_GL_FRAMEBUFFER == target);
- // a frameBufferID of 0 is acceptable - it binds to the default
+ // a frameBufferID of 0 is acceptable - it binds to the default
// frame buffer
- GrFrameBufferObj *frameBuffer = GR_FIND(frameBufferID,
- GrFrameBufferObj,
+ GrFrameBufferObj *frameBuffer = GR_FIND(frameBufferID,
+ GrFrameBufferObj,
GrDebugGL::kFrameBuffer_ObjTypes);
GrDebugGL::getInstance()->setFrameBuffer(frameBuffer);
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindRenderbuffer(GrGLenum target,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindRenderbuffer(GrGLenum target,
GrGLuint renderBufferID) {
GrAlwaysAssert(GR_GL_RENDERBUFFER == target);
// a renderBufferID of 0 is acceptable - it unbinds the bound render buffer
- GrRenderBufferObj *renderBuffer = GR_FIND(renderBufferID,
- GrRenderBufferObj,
+ GrRenderBufferObj *renderBuffer = GR_FIND(renderBufferID,
+ GrRenderBufferObj,
GrDebugGL::kRenderBuffer_ObjTypes);
GrDebugGL::getInstance()->setRenderBuffer(renderBuffer);
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteTextures(GrGLsizei n,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteTextures(GrGLsizei n,
const GrGLuint* textures) {
// first potentially unbind the texture
// TODO: move this into GrDebugGL as unBindTexture?
- for (unsigned int i = 0;
- i < GrDebugGL::getInstance()->getMaxTextureUnits();
+ for (unsigned int i = 0;
+ i < GrDebugGL::getInstance()->getMaxTextureUnits();
++i) {
GrTextureUnitObj *pTU = GrDebugGL::getInstance()->getTextureUnit(i);
@@ -569,7 +569,7 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
}
// TODO: fuse the following block with DeleteRenderBuffers?
- // Open GL will remove a deleted render buffer from the active
+ // Open GL will remove a deleted render buffer from the active
// frame buffer but not from any other frame buffer
if (GrDebugGL::getInstance()->getFrameBuffer()) {
@@ -577,15 +577,15 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
for (int i = 0; i < n; ++i) {
- if (NULL != frameBuffer->getColor() &&
+ if (NULL != frameBuffer->getColor() &&
textures[i] == frameBuffer->getColor()->getID()) {
frameBuffer->setColor(NULL);
- }
- if (NULL != frameBuffer->getDepth() &&
+ }
+ if (NULL != frameBuffer->getDepth() &&
textures[i] == frameBuffer->getDepth()->getID()) {
frameBuffer->setDepth(NULL);
}
- if (NULL != frameBuffer->getStencil() &&
+ if (NULL != frameBuffer->getStencil() &&
textures[i] == frameBuffer->getStencil()->getID()) {
frameBuffer->setStencil(NULL);
}
@@ -594,8 +594,8 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
// then actually "delete" the buffers
for (int i = 0; i < n; ++i) {
- GrTextureObj *buffer = GR_FIND(textures[i],
- GrTextureObj,
+ GrTextureObj *buffer = GR_FIND(textures[i],
+ GrTextureObj,
GrDebugGL::kTexture_ObjTypes);
GrAlwaysAssert(buffer);
@@ -610,14 +610,14 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteFramebuffers(GrGLsizei n,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteFramebuffers(GrGLsizei n,
const GrGLuint *frameBuffers) {
// first potentially unbind the buffers
if (GrDebugGL::getInstance()->getFrameBuffer()) {
for (int i = 0; i < n; ++i) {
- if (frameBuffers[i] ==
+ if (frameBuffers[i] ==
GrDebugGL::getInstance()->getFrameBuffer()->getID()) {
// this ID is the current frame buffer - rebind to the default
GrDebugGL::getInstance()->setFrameBuffer(NULL);
@@ -627,8 +627,8 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
// then actually "delete" the buffers
for (int i = 0; i < n; ++i) {
- GrFrameBufferObj *buffer = GR_FIND(frameBuffers[i],
- GrFrameBufferObj,
+ GrFrameBufferObj *buffer = GR_FIND(frameBuffers[i],
+ GrFrameBufferObj,
GrDebugGL::kFrameBuffer_ObjTypes);
GrAlwaysAssert(buffer);
@@ -637,16 +637,16 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
}
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteRenderbuffers(GrGLsizei n,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteRenderbuffers(GrGLsizei n,
const GrGLuint *renderBuffers) {
// first potentially unbind the buffers
if (GrDebugGL::getInstance()->getRenderBuffer()) {
for (int i = 0; i < n; ++i) {
- if (renderBuffers[i] ==
+ if (renderBuffers[i] ==
GrDebugGL::getInstance()->getRenderBuffer()->getID()) {
- // this ID is the current render buffer - make no
+ // this ID is the current render buffer - make no
// render buffer be bound
GrDebugGL::getInstance()->setRenderBuffer(NULL);
}
@@ -654,24 +654,24 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
}
// TODO: fuse the following block with DeleteTextures?
- // Open GL will remove a deleted render buffer from the active frame
+ // Open GL will remove a deleted render buffer from the active frame
// buffer but not from any other frame buffer
if (GrDebugGL::getInstance()->getFrameBuffer()) {
- GrFrameBufferObj *frameBuffer =
+ GrFrameBufferObj *frameBuffer =
GrDebugGL::getInstance()->getFrameBuffer();
for (int i = 0; i < n; ++i) {
- if (NULL != frameBuffer->getColor() &&
+ if (NULL != frameBuffer->getColor() &&
renderBuffers[i] == frameBuffer->getColor()->getID()) {
frameBuffer->setColor(NULL);
- }
- if (NULL != frameBuffer->getDepth() &&
+ }
+ if (NULL != frameBuffer->getDepth() &&
renderBuffers[i] == frameBuffer->getDepth()->getID()) {
frameBuffer->setDepth(NULL);
}
- if (NULL != frameBuffer->getStencil() &&
+ if (NULL != frameBuffer->getStencil() &&
renderBuffers[i] == frameBuffer->getStencil()->getID()) {
frameBuffer->setStencil(NULL);
}
@@ -680,13 +680,13 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
// then actually "delete" the buffers
for (int i = 0; i < n; ++i) {
- GrRenderBufferObj *buffer = GR_FIND(renderBuffers[i],
- GrRenderBufferObj,
+ GrRenderBufferObj *buffer = GR_FIND(renderBuffers[i],
+ GrRenderBufferObj,
GrDebugGL::kRenderBuffer_ObjTypes);
GrAlwaysAssert(buffer);
- // OpenGL gives no guarantees if a render buffer is deleted
- // while attached to something other than the currently
+ // OpenGL gives no guarantees if a render buffer is deleted
+ // while attached to something other than the currently
// bound frame buffer
GrAlwaysAssert(!buffer->getColorBound());
GrAlwaysAssert(!buffer->getDepthBound());
@@ -697,14 +697,14 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
}
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLFramebufferRenderbuffer(GrGLenum target,
- GrGLenum attachment,
- GrGLenum renderbuffertarget,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLFramebufferRenderbuffer(GrGLenum target,
+ GrGLenum attachment,
+ GrGLenum renderbuffertarget,
GrGLuint renderBufferID) {
GrAlwaysAssert(GR_GL_FRAMEBUFFER == target);
- GrAlwaysAssert(GR_GL_COLOR_ATTACHMENT0 == attachment ||
- GR_GL_DEPTH_ATTACHMENT == attachment ||
+ GrAlwaysAssert(GR_GL_COLOR_ATTACHMENT0 == attachment ||
+ GR_GL_DEPTH_ATTACHMENT == attachment ||
GR_GL_STENCIL_ATTACHMENT == attachment);
GrAlwaysAssert(GR_GL_RENDERBUFFER == renderbuffertarget);
@@ -712,10 +712,10 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
// A render buffer cannot be attached to the default framebuffer
GrAlwaysAssert(NULL != framebuffer);
- // a renderBufferID of 0 is acceptable - it unbinds the current
+ // a renderBufferID of 0 is acceptable - it unbinds the current
// render buffer
- GrRenderBufferObj *renderbuffer = GR_FIND(renderBufferID,
- GrRenderBufferObj,
+ GrRenderBufferObj *renderbuffer = GR_FIND(renderBufferID,
+ GrRenderBufferObj,
GrDebugGL::kRenderBuffer_ObjTypes);
switch (attachment) {
@@ -736,15 +736,15 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
}
////////////////////////////////////////////////////////////////////////////////
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLFramebufferTexture2D(GrGLenum target,
- GrGLenum attachment,
- GrGLenum textarget,
- GrGLuint textureID,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLFramebufferTexture2D(GrGLenum target,
+ GrGLenum attachment,
+ GrGLenum textarget,
+ GrGLuint textureID,
GrGLint level) {
GrAlwaysAssert(GR_GL_FRAMEBUFFER == target);
- GrAlwaysAssert(GR_GL_COLOR_ATTACHMENT0 == attachment ||
- GR_GL_DEPTH_ATTACHMENT == attachment ||
+ GrAlwaysAssert(GR_GL_COLOR_ATTACHMENT0 == attachment ||
+ GR_GL_DEPTH_ATTACHMENT == attachment ||
GR_GL_STENCIL_ATTACHMENT == attachment);
GrAlwaysAssert(GR_GL_TEXTURE_2D == textarget);
@@ -753,10 +753,10 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
GrAlwaysAssert(NULL != framebuffer);
// A textureID of 0 is allowed - it unbinds the currently bound texture
- GrTextureObj *texture = GR_FIND(textureID, GrTextureObj,
+ GrTextureObj *texture = GR_FIND(textureID, GrTextureObj,
GrDebugGL::kTexture_ObjTypes);
if (texture) {
- // The texture shouldn't be bound to a texture unit - this
+ // The texture shouldn't be bound to a texture unit - this
// could lead to a feedback loop
GrAlwaysAssert(!texture->getBound());
}
@@ -779,48 +779,48 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLUniform4fv(GrGLint location,
};
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetFramebufferAttachmentParameteriv(GrGLenum target,
- GrGLenum attachment,
- GrGLenum pname,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetFramebufferAttachmentParameteriv(GrGLenum target,
+ GrGLenum attachment,
+ GrGLenum pname,
GrGLint* params) {
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetRenderbufferParameteriv(GrGLenum target,
- GrGLenum pname,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetRenderbufferParameteriv(GrGLenum target,
+ GrGLenum pname,
GrGLint* params) {
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLRenderbufferStorage(GrGLenum target,
- GrGLenum internalformat,
- GrGLsizei width,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLRenderbufferStorage(GrGLenum target,
+ GrGLenum internalformat,
+ GrGLsizei width,
GrGLsizei height) {
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLRenderbufferStorageMultisample(GrGLenum target,
- GrGLsizei samples,
- GrGLenum internalformat,
- GrGLsizei width,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLRenderbufferStorageMultisample(GrGLenum target,
+ GrGLsizei samples,
+ GrGLenum internalformat,
+ GrGLsizei width,
GrGLsizei height) {
}
- GrGLvoid GR_GL_FUNCTION_TYPE debugGLBlitFramebuffer(GrGLint srcX0,
- GrGLint srcY0,
- GrGLint srcX1,
- GrGLint srcY1,
- GrGLint dstX0,
- GrGLint dstY0,
- GrGLint dstX1,
- GrGLint dstY1,
- GrGLbitfield mask,
+ GrGLvoid GR_GL_FUNCTION_TYPE debugGLBlitFramebuffer(GrGLint srcX0,
+ GrGLint srcY0,
+ GrGLint srcX1,
+ GrGLint srcY1,
+ GrGLint dstX0,
+ GrGLint dstY0,
+ GrGLint dstX1,
+ GrGLint dstY1,
+ GrGLbitfield mask,
GrGLenum filter) {
}
GrGLvoid GR_GL_FUNCTION_TYPE debugGLResolveMultisampleFramebuffer() {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindFragDataLocationIndexed(GrGLuint program,
- GrGLuint colorNumber,
- GrGLuint index,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindFragDataLocationIndexed(GrGLuint program,
+ GrGLuint colorNumber,
+ GrGLuint index,
const GrGLchar * name) {
}
@@ -833,15 +833,15 @@ GrGLenum GR_GL_FUNCTION_TYPE debugGLCheckFramebufferStatus(GrGLenum target) {
GrGLuint GR_GL_FUNCTION_TYPE debugGLCreateProgram() {
- GrProgramObj *program = GR_CREATE(GrProgramObj,
+ GrProgramObj *program = GR_CREATE(GrProgramObj,
GrDebugGL::kProgram_ObjTypes);
return program->getID();
}
GrGLuint GR_GL_FUNCTION_TYPE debugGLCreateShader(GrGLenum type) {
-
- GrAlwaysAssert(GR_GL_VERTEX_SHADER == type ||
+
+ GrAlwaysAssert(GR_GL_VERTEX_SHADER == type ||
GR_GL_FRAGMENT_SHADER == type);
GrShaderObj *shader = GR_CREATE(GrShaderObj, GrDebugGL::kShader_ObjTypes);
@@ -852,8 +852,8 @@ GrGLuint GR_GL_FUNCTION_TYPE debugGLCreateShader(GrGLenum type) {
GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteProgram(GrGLuint programID) {
- GrProgramObj *program = GR_FIND(programID,
- GrProgramObj,
+ GrProgramObj *program = GR_FIND(programID,
+ GrProgramObj,
GrDebugGL::kProgram_ObjTypes);
GrAlwaysAssert(program);
@@ -867,8 +867,8 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteProgram(GrGLuint programID) {
GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteShader(GrGLuint shaderID) {
- GrShaderObj *shader = GR_FIND(shaderID,
- GrShaderObj,
+ GrShaderObj *shader = GR_FIND(shaderID,
+ GrShaderObj,
GrDebugGL::kShader_ObjTypes);
GrAlwaysAssert(shader);
@@ -888,8 +888,8 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenIds(GrGLsizei n, GrGLuint* ids) {
}
}
-GrGLvoid debugGenObjs(GrDebugGL::GrObjTypes type,
- GrGLsizei n,
+GrGLvoid debugGenObjs(GrDebugGL::GrObjTypes type,
+ GrGLsizei n,
GrGLuint* ids) {
for (int i = 0; i < n; ++i) {
@@ -904,13 +904,13 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenBuffers(GrGLsizei n, GrGLuint* ids) {
debugGenObjs(GrDebugGL::kBuffer_ObjTypes, n, ids);
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenFramebuffers(GrGLsizei n,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenFramebuffers(GrGLsizei n,
GrGLuint* ids) {
debugGenObjs(GrDebugGL::kFrameBuffer_ObjTypes, n, ids);
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenRenderbuffers(GrGLsizei n,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenRenderbuffers(GrGLsizei n,
GrGLuint* ids) {
debugGenObjs(GrDebugGL::kRenderBuffer_ObjTypes, n, ids);
@@ -921,20 +921,20 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLGenTextures(GrGLsizei n, GrGLuint* ids) {
debugGenObjs(GrDebugGL::kTexture_ObjTypes, n, ids);
}
-// same delete function for all glDelete*(GLsize i, const GLuint*) except
+// same delete function for all glDelete*(GLsize i, const GLuint*) except
// buffers
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteIds(GrGLsizei n,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteIds(GrGLsizei n,
const GrGLuint* ids) {
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindBuffer(GrGLenum target,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindBuffer(GrGLenum target,
GrGLuint bufferID) {
- GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
+ GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
GR_GL_ELEMENT_ARRAY_BUFFER == target);
- GrBufferObj *buffer = GR_FIND(bufferID,
- GrBufferObj,
+ GrBufferObj *buffer = GR_FIND(bufferID,
+ GrBufferObj,
GrDebugGL::kBuffer_ObjTypes);
// 0 is a permissable bufferID - it unbinds the current buffer
@@ -952,18 +952,18 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLBindBuffer(GrGLenum target,
}
// deleting a bound buffer has the side effect of binding 0
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteBuffers(GrGLsizei n,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteBuffers(GrGLsizei n,
const GrGLuint* ids) {
// first potentially unbind the buffers
for (int i = 0; i < n; ++i) {
- if (GrDebugGL::getInstance()->getArrayBuffer() &&
+ if (GrDebugGL::getInstance()->getArrayBuffer() &&
ids[i] == GrDebugGL::getInstance()->getArrayBuffer()->getID()) {
// this ID is the current array buffer
GrDebugGL::getInstance()->setArrayBuffer(NULL);
}
- if (GrDebugGL::getInstance()->getElementArrayBuffer() &&
- ids[i] ==
+ if (GrDebugGL::getInstance()->getElementArrayBuffer() &&
+ ids[i] ==
GrDebugGL::getInstance()->getElementArrayBuffer()->getID()) {
// this ID is the current element array buffer
GrDebugGL::getInstance()->setElementArrayBuffer(NULL);
@@ -972,8 +972,8 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteBuffers(GrGLsizei n,
// then actually "delete" the buffers
for (int i = 0; i < n; ++i) {
- GrBufferObj *buffer = GR_FIND(ids[i],
- GrBufferObj,
+ GrBufferObj *buffer = GR_FIND(ids[i],
+ GrBufferObj,
GrDebugGL::kBuffer_ObjTypes);
GrAlwaysAssert(buffer);
@@ -983,13 +983,13 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLDeleteBuffers(GrGLsizei n,
}
// map a buffer to the caller's address space
-GrGLvoid* GR_GL_FUNCTION_TYPE debugGLMapBuffer(GrGLenum target,
+GrGLvoid* GR_GL_FUNCTION_TYPE debugGLMapBuffer(GrGLenum target,
GrGLenum access) {
- GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
+ GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
GR_GL_ELEMENT_ARRAY_BUFFER == target);
// GR_GL_READ_ONLY == access || || GR_GL_READ_WRIT == access);
- GrAlwaysAssert(GR_GL_WRITE_ONLY == access);
+ GrAlwaysAssert(GR_GL_WRITE_ONLY == access);
GrBufferObj *buffer = NULL;
switch (target) {
@@ -1015,10 +1015,10 @@ GrGLvoid* GR_GL_FUNCTION_TYPE debugGLMapBuffer(GrGLenum target,
}
// remove a buffer from the caller's address space
-// TODO: check if the "access" method from "glMapBuffer" was honored
+// TODO: check if the "access" method from "glMapBuffer" was honored
GrGLboolean GR_GL_FUNCTION_TYPE debugGLUnmapBuffer(GrGLenum target) {
- GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
+ GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
GR_GL_ELEMENT_ARRAY_BUFFER == target);
GrBufferObj *buffer = NULL;
@@ -1044,13 +1044,13 @@ GrGLboolean GR_GL_FUNCTION_TYPE debugGLUnmapBuffer(GrGLenum target) {
return GR_GL_FALSE; // GR_GL_INVALID_OPERATION;
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetBufferParameteriv(GrGLenum target,
- GrGLenum value,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetBufferParameteriv(GrGLenum target,
+ GrGLenum value,
GrGLint* params) {
- GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
+ GrAlwaysAssert(GR_GL_ARRAY_BUFFER == target ||
GR_GL_ELEMENT_ARRAY_BUFFER == target);
- GrAlwaysAssert(GR_GL_BUFFER_SIZE == value ||
+ GrAlwaysAssert(GR_GL_BUFFER_SIZE == value ||
GR_GL_BUFFER_USAGE == value);
GrBufferObj *buffer = NULL;
@@ -1060,7 +1060,7 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetBufferParameteriv(GrGLenum target,
break;
case GR_GL_ELEMENT_ARRAY_BUFFER:
buffer = GrDebugGL::getInstance()->getElementArrayBuffer();
- break;
+ break;
}
GrAlwaysAssert(buffer);
@@ -1091,7 +1091,7 @@ GrGLenum GR_GL_FUNCTION_TYPE debugGLGetError() {
return GR_GL_NO_ERROR;
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetIntegerv(GrGLenum pname,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetIntegerv(GrGLenum pname,
GrGLint* params) {
// TODO: remove from Ganesh the #defines for gets we don't use.
// We would like to minimize gets overall due to performance issues
@@ -1148,9 +1148,9 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetIntegerv(GrGLenum pname,
}
}
// used for both the program and shader info logs
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetInfoLog(GrGLuint program,
- GrGLsizei bufsize,
- GrGLsizei* length,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetInfoLog(GrGLuint program,
+ GrGLsizei bufsize,
+ GrGLsizei* length,
char* infolog) {
if (length) {
*length = 0;
@@ -1161,8 +1161,8 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetInfoLog(GrGLuint program,
}
// used for both the program and shader params
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetShaderOrProgramiv(GrGLuint program,
- GrGLenum pname,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetShaderOrProgramiv(GrGLuint program,
+ GrGLenum pname,
GrGLint* params) {
switch (pname) {
case GR_GL_LINK_STATUS: // fallthru
@@ -1196,10 +1196,10 @@ void query_result(GrGLenum GLtarget, GrGLenum pname, T *params) {
}
}
-// Queries on the null GL just don't do anything at all. We could potentially
+// Queries on the null GL just don't do anything at all. We could potentially
// make the timers work.
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetQueryiv(GrGLenum GLtarget,
- GrGLenum pname,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetQueryiv(GrGLenum GLtarget,
+ GrGLenum pname,
GrGLint *params) {
switch (pname) {
case GR_GL_CURRENT_QUERY:
@@ -1213,26 +1213,26 @@ GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetQueryiv(GrGLenum GLtarget,
}
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetQueryObjecti64v(GrGLuint id,
- GrGLenum pname,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetQueryObjecti64v(GrGLuint id,
+ GrGLenum pname,
GrGLint64 *params) {
query_result(id, pname, params);
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetQueryObjectiv(GrGLuint id,
- GrGLenum pname,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetQueryObjectiv(GrGLuint id,
+ GrGLenum pname,
GrGLint *params) {
query_result(id, pname, params);
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetQueryObjectui64v(GrGLuint id,
- GrGLenum pname,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetQueryObjectui64v(GrGLuint id,
+ GrGLenum pname,
GrGLuint64 *params) {
query_result(id, pname, params);
}
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetQueryObjectuiv(GrGLuint id,
- GrGLenum pname,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetQueryObjectuiv(GrGLuint id,
+ GrGLenum pname,
GrGLuint *params) {
query_result(id, pname, params);
}
@@ -1255,16 +1255,16 @@ const GrGLubyte* GR_GL_FUNCTION_TYPE debugGLGetString(GrGLenum name) {
}
}
-// we used to use this to query stuff about externally created textures,
+// we used to use this to query stuff about externally created textures,
// now we just require clients to tell us everything about the texture.
-GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetTexLevelParameteriv(GrGLenum target,
- GrGLint level,
- GrGLenum pname,
+GrGLvoid GR_GL_FUNCTION_TYPE debugGLGetTexLevelParameteriv(GrGLenum target,
+ GrGLint level,
+ GrGLenum pname,
GrGLint* params) {
GrCrash("Should never query texture parameters.");
}
-GrGLint GR_GL_FUNCTION_TYPE debugGLGetUniformLocation(GrGLuint program,
+GrGLint GR_GL_FUNCTION_TYPE debugGLGetUniformLocation(GrGLuint program,
const char* name) {
static int gUniLocation = 0;
return ++gUniLocation;
@@ -1295,25 +1295,25 @@ public:
// debug interface:
// Since none of the "gl" methods are member functions they don't get
// a "this" pointer through which to access "fWrapped"
- // This could be worked around by having all of them access the
- // "glInterface" pointer - i.e., treating the debug interface as a
+ // This could be worked around by having all of them access the
+ // "glInterface" pointer - i.e., treating the debug interface as a
// true singleton
//
- // The problem with this is that we also want to handle OpenGL
- // contexts. The natural way to do this is to have multiple debug
- // interfaces. Each of which represents a separate context. The
- // static ID count would still uniquify IDs across all of them.
- // The problem then is that we couldn't treat the debug GL
- // interface as a singleton (since there would be one for each
+ // The problem with this is that we also want to handle OpenGL
+ // contexts. The natural way to do this is to have multiple debug
+ // interfaces. Each of which represents a separate context. The
+ // static ID count would still uniquify IDs across all of them.
+ // The problem then is that we couldn't treat the debug GL
+ // interface as a singleton (since there would be one for each
// context).
//
- // The solution to this is probably to alter SkDebugGlContext's
- // "makeCurrent" method to make a call like "makeCurrent(this)" to
- // the debug GL interface (assuming that the application will create
- // multiple SkGLContext's) to let it switch between the active
- // context. Everything in the GrDebugGL object would then need to be
- // moved to a GrContextObj and the GrDebugGL object would just switch
- // between them. Note that this approach would also require that
+ // The solution to this is probably to alter SkDebugGlContext's
+ // "makeCurrent" method to make a call like "makeCurrent(this)" to
+ // the debug GL interface (assuming that the application will create
+ // multiple SkGLContext's) to let it switch between the active
+ // context. Everything in the GrDebugGL object would then need to be
+ // moved to a GrContextObj and the GrDebugGL object would just switch
+ // between them. Note that this approach would also require that
// SkDebugGLContext wrap an arbitrary other context
// and then pass the wrapped interface to the debug GL interface.
@@ -1439,18 +1439,18 @@ const GrGLInterface* GrGLCreateDebugInterface() {
interface->fFramebufferTexture2D = debugGLFramebufferTexture2D;
interface->fGenFramebuffers = debugGLGenFramebuffers;
interface->fGenRenderbuffers = debugGLGenRenderbuffers;
- interface->fGetFramebufferAttachmentParameteriv =
+ interface->fGetFramebufferAttachmentParameteriv =
debugGLGetFramebufferAttachmentParameteriv;
interface->fGetRenderbufferParameteriv = debugGLGetRenderbufferParameteriv;
interface->fRenderbufferStorage = debugGLRenderbufferStorage;
- interface->fRenderbufferStorageMultisample =
+ interface->fRenderbufferStorageMultisample =
debugGLRenderbufferStorageMultisample;
interface->fBlitFramebuffer = debugGLBlitFramebuffer;
- interface->fResolveMultisampleFramebuffer =
+ interface->fResolveMultisampleFramebuffer =
debugGLResolveMultisampleFramebuffer;
interface->fMapBuffer = debugGLMapBuffer;
interface->fUnmapBuffer = debugGLUnmapBuffer;
- interface->fBindFragDataLocationIndexed =
+ interface->fBindFragDataLocationIndexed =
debugGLBindFragDataLocationIndexed;
return interface;
diff --git a/src/gpu/gl/debug/GrShaderObj.h b/src/gpu/gl/debug/GrShaderObj.h
index 0e1123713e..0b888fa0b2 100644
--- a/src/gpu/gl/debug/GrShaderObj.h
+++ b/src/gpu/gl/debug/GrShaderObj.h
@@ -17,7 +17,7 @@ class GrShaderObj : public GrFakeRefObj {
GR_DEFINE_CREATOR(GrShaderObj);
public:
- GrShaderObj()
+ GrShaderObj()
: GrFakeRefObj()
, fType(GR_GL_VERTEX_SHADER) {}
diff --git a/src/gpu/gl/debug/GrTextureObj.h b/src/gpu/gl/debug/GrTextureObj.h
index 0443ab7c7a..7673cd118e 100644
--- a/src/gpu/gl/debug/GrTextureObj.h
+++ b/src/gpu/gl/debug/GrTextureObj.h
@@ -18,7 +18,7 @@ class GrTextureObj : public GrFBBindableObj {
GR_DEFINE_CREATOR(GrTextureObj);
public:
- GrTextureObj()
+ GrTextureObj()
: GrFBBindableObj() {
}
@@ -26,20 +26,20 @@ public:
GrAlwaysAssert(0 == fTextureUnitReferees.count());
}
- void setBound(GrTextureUnitObj *referee) {
+ void setBound(GrTextureUnitObj *referee) {
fTextureUnitReferees.append(1, &referee);
}
- void resetBound(GrTextureUnitObj *referee) {
+ void resetBound(GrTextureUnitObj *referee) {
int index = fTextureUnitReferees.find(referee);
GrAlwaysAssert(0 <= index);
fTextureUnitReferees.removeShuffle(index);
}
- bool getBound(GrTextureUnitObj *referee) const {
+ bool getBound(GrTextureUnitObj *referee) const {
int index = fTextureUnitReferees.find(referee);
return 0 <= index;
}
- bool getBound() const {
+ bool getBound() const {
return 0 != fTextureUnitReferees.count();
}
@@ -49,7 +49,7 @@ protected:
private:
// texture units that bind this texture (via "glBindTexture")
- SkTDArray<GrTextureUnitObj *> fTextureUnitReferees;
+ SkTDArray<GrTextureUnitObj *> fTextureUnitReferees;
typedef GrFBBindableObj INHERITED;
};
diff --git a/src/gpu/gl/debug/GrTextureUnitObj.cpp b/src/gpu/gl/debug/GrTextureUnitObj.cpp
index 05c149a1c0..b7c7b0ca57 100644
--- a/src/gpu/gl/debug/GrTextureUnitObj.cpp
+++ b/src/gpu/gl/debug/GrTextureUnitObj.cpp
@@ -9,7 +9,7 @@
#include "GrTextureUnitObj.h"
#include "GrTextureObj.h"
-void GrTextureUnitObj::setTexture(GrTextureObj *texture) {
+void GrTextureUnitObj::setTexture(GrTextureObj *texture) {
if (fTexture) {
GrAlwaysAssert(fTexture->getBound(this));
@@ -19,7 +19,7 @@ void GrTextureUnitObj::setTexture(GrTextureObj *texture) {
fTexture->unref();
}
- fTexture = texture;
+ fTexture = texture;
if (fTexture) {
GrAlwaysAssert(!fTexture->getDeleted());
diff --git a/src/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp b/src/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp
index 4735617c00..e0ecc382b3 100644
--- a/src/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp
+++ b/src/gpu/gl/mac/GrGLCreateNativeInterface_mac.cpp
@@ -23,7 +23,7 @@ static void* GetProcAddress(const char* name) {
#define GET_PROC_SUFFIX(name, suffix) (interface->f ## name = ((GrGL ## name ## Proc) GetProcAddress("gl" #name #suffix)))
const GrGLInterface* GrGLCreateNativeInterface() {
- // The gl functions are not context-specific so we create one global
+ // The gl functions are not context-specific so we create one global
// interface
static SkAutoTUnref<GrGLInterface> glInterface;
if (!glInterface.get()) {
@@ -32,7 +32,7 @@ const GrGLInterface* GrGLCreateNativeInterface() {
const char* verStr = (const char*) glGetString(GL_VERSION);
GrGLVersion ver = GrGLGetVersionFromString(verStr);
const char* extStr = (const char*) glGetString(GL_EXTENSIONS);
-
+
interface->fBindingsExported = kDesktop_GrGLBinding;
interface->fActiveTexture = glActiveTexture;
interface->fAttachShader = glAttachShader;
@@ -178,9 +178,9 @@ const GrGLInterface* GrGLCreateNativeInterface() {
#else
interface->fGetQueryObjecti64v = GET_PROC_SUFFIX(GetQueryObjecti64v, EXT);
interface->fGetQueryObjectui64v = GET_PROC_SUFFIX(GetQueryObjectui64v, EXT);
- #endif
+ #endif
}
-
+
if (ver >= GR_GL_VER(3,0) || GrGLHasExtensionFromString("GL_ARB_framebuffer_object", extStr)) {
// ARB extension doesn't use the ARB suffix on the function names
#if GL_VERSION_3_0 || GL_ARB_framebuffer_object
diff --git a/src/gpu/gl/mac/SkNativeGLContext_mac.cpp b/src/gpu/gl/mac/SkNativeGLContext_mac.cpp
index 2dcf8ae09c..f0cb2b6dd0 100644
--- a/src/gpu/gl/mac/SkNativeGLContext_mac.cpp
+++ b/src/gpu/gl/mac/SkNativeGLContext_mac.cpp
@@ -17,7 +17,7 @@ SkNativeGLContext::AutoContextRestore::~AutoContextRestore() {
///////////////////////////////////////////////////////////////////////////////
-SkNativeGLContext::SkNativeGLContext()
+SkNativeGLContext::SkNativeGLContext()
: fContext(NULL) {
}
@@ -58,14 +58,14 @@ const GrGLInterface* SkNativeGLContext::createGLContext() {
aglDestroyPixelFormat(format);
aglSetCurrentContext(fContext);
-
+
const GrGLInterface* interface = GrGLCreateNativeInterface();
if (NULL == interface) {
SkDebugf("Context could not create GL interface.\n");
this->destroyGLContext();
return NULL;
}
-
+
return interface;
}
diff --git a/src/gpu/gl/mesa/SkMesaGLContext.cpp b/src/gpu/gl/mesa/SkMesaGLContext.cpp
index b7d220cfb9..cac021c170 100644
--- a/src/gpu/gl/mesa/SkMesaGLContext.cpp
+++ b/src/gpu/gl/mesa/SkMesaGLContext.cpp
@@ -16,13 +16,13 @@ SkMesaGLContext::AutoContextRestore::AutoContextRestore() {
if (NULL != (OSMesaContext)fOldContext) {
OSMesaGetColorBuffer((OSMesaContext)fOldContext,
&fOldWidth, &fOldHeight,
- &fOldFormat, &fOldImage);
+ &fOldFormat, &fOldImage);
}
}
SkMesaGLContext::AutoContextRestore::~AutoContextRestore() {
if (NULL != (OSMesaContext)fOldContext) {
- OSMesaMakeCurrent((OSMesaContext)fOldContext, fOldImage,
+ OSMesaMakeCurrent((OSMesaContext)fOldContext, fOldImage,
fOldFormat, fOldWidth, fOldHeight);
}
}
@@ -43,7 +43,7 @@ void SkMesaGLContext::destroyGLContext() {
if (fImage) {
sk_free(fImage);
}
-
+
if (fContext) {
OSMesaDestroyContext((OSMesaContext)fContext);
}
@@ -72,18 +72,18 @@ const GrGLInterface* SkMesaGLContext::createGLContext() {
this->destroyGLContext();
return NULL;
}
-
+
// Bind the buffer to the context and make it current
- if (!OSMesaMakeCurrent((OSMesaContext)fContext,
- fImage,
- GR_GL_UNSIGNED_BYTE,
- gBOGUS_SIZE,
+ if (!OSMesaMakeCurrent((OSMesaContext)fContext,
+ fImage,
+ GR_GL_UNSIGNED_BYTE,
+ gBOGUS_SIZE,
gBOGUS_SIZE)) {
SkDebugf("OSMesaMakeCurrent failed!\n");
this->destroyGLContext();
return NULL;
}
-
+
const GrGLInterface* interface = GrGLCreateMesaInterface();
if (!interface) {
SkDebugf("Could not create GL interface!\n");
@@ -91,12 +91,12 @@ const GrGLInterface* SkMesaGLContext::createGLContext() {
return NULL;
}
return interface;
-
+
}
void SkMesaGLContext::makeCurrent() const {
if (fContext) {
- if (!OSMesaMakeCurrent((OSMesaContext)fContext, fImage,
+ if (!OSMesaMakeCurrent((OSMesaContext)fContext, fImage,
GR_GL_UNSIGNED_BYTE, gBOGUS_SIZE, gBOGUS_SIZE)) {
SkDebugf("Could not make MESA context current.");
}
diff --git a/src/gpu/gl/unix/GrGLCreateNativeInterface_unix.cpp b/src/gpu/gl/unix/GrGLCreateNativeInterface_unix.cpp
index 9edc42505f..04d35d1836 100644
--- a/src/gpu/gl/unix/GrGLCreateNativeInterface_unix.cpp
+++ b/src/gpu/gl/unix/GrGLCreateNativeInterface_unix.cpp
@@ -46,7 +46,7 @@ const GrGLInterface* GrGLCreateNativeInterface() {
GrGLHasExtensionFromString("GL_ARB_imaging", extString) ||
GrGLHasExtensionFromString("GL_EXT_blend_color", extString)) {
GR_GL_GET_PROC(BlendColor);
- }
+ }
GR_GL_GET_PROC(BufferData);
GR_GL_GET_PROC(BufferSubData);
diff --git a/src/gpu/gl/unix/SkNativeGLContext_unix.cpp b/src/gpu/gl/unix/SkNativeGLContext_unix.cpp
index f9c582cd09..e6fae8ed7b 100644
--- a/src/gpu/gl/unix/SkNativeGLContext_unix.cpp
+++ b/src/gpu/gl/unix/SkNativeGLContext_unix.cpp
@@ -31,7 +31,7 @@ static int ctxErrorHandler(Display *dpy, XErrorEvent *ev) {
return 0;
}
-SkNativeGLContext::SkNativeGLContext()
+SkNativeGLContext::SkNativeGLContext()
: fContext(NULL)
, fDisplay(NULL)
, fPixmap(0)
@@ -112,7 +112,7 @@ const GrGLInterface* SkNativeGLContext::createGLContext() {
if (best_fbc < 0 || (samp_buf && samples > best_num_samp))
best_fbc = i, best_num_samp = samples;
- }
+ }
XFree(vi);
}
@@ -201,12 +201,12 @@ const GrGLInterface* SkNativeGLContext::createGLContext() {
fContext = glXCreateContext(fDisplay, vi, 0, True);
#endif
- }
+ }
#ifdef GLX_1_3
else {
//SkDebugf("Creating context.\n");
- PFNGLXCREATECONTEXTATTRIBSARBPROC glXCreateContextAttribsARB =
+ PFNGLXCREATECONTEXTATTRIBSARBPROC glXCreateContextAttribsARB =
(PFNGLXCREATECONTEXTATTRIBSARBPROC) glXGetProcAddressARB((GrGLubyte*)"glXCreateContextAttribsARB");
int context_attribs[] = {
GLX_CONTEXT_MAJOR_VERSION_ARB, 3,
diff --git a/src/image/SkDataPixelRef.h b/src/image/SkDataPixelRef.h
index b6e16e0366..6b15802b97 100644
--- a/src/image/SkDataPixelRef.h
+++ b/src/image/SkDataPixelRef.h
@@ -16,19 +16,19 @@ class SkDataPixelRef : public SkPixelRef {
public:
SkDataPixelRef(SkData* data);
virtual ~SkDataPixelRef();
-
+
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDataPixelRef)
-
+
protected:
virtual void* onLockPixels(SkColorTable**) SK_OVERRIDE;
virtual void onUnlockPixels() SK_OVERRIDE;
-
+
SkDataPixelRef(SkFlattenableReadBuffer& buffer);
virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
-
+
private:
SkData* fData;
-
+
typedef SkPixelRef INHERITED;
};
diff --git a/src/image/SkImagePriv.cpp b/src/image/SkImagePriv.cpp
index 67d31b746a..a020eaff14 100644
--- a/src/image/SkImagePriv.cpp
+++ b/src/image/SkImagePriv.cpp
@@ -80,15 +80,15 @@ bool SkBitmapToImageInfo(const SkBitmap& bm, SkImage::Info* info) {
case SkBitmap::kRGB_565_Config:
info->fColorType = SkImage::kRGB_565_ColorType;
break;
-
+
case SkBitmap::kARGB_8888_Config:
info->fColorType = SkImage::kPMColor_ColorType;
break;
-
+
default:
return false;
}
-
+
info->fWidth = bm.width();
info->fHeight = bm.height();
info->fAlphaType = bm.isOpaque() ? SkImage::kOpaque_AlphaType :
@@ -126,7 +126,7 @@ static bool needs_layer(const SkPaint& paint) {
void SkImagePrivDrawPicture(SkCanvas* canvas, SkPicture* picture,
SkScalar x, SkScalar y, const SkPaint* paint) {
int saveCount = canvas->getSaveCount();
-
+
if (paint && needs_layer(*paint)) {
SkRect bounds;
bounds.set(x, y,
@@ -138,7 +138,7 @@ void SkImagePrivDrawPicture(SkCanvas* canvas, SkPicture* picture,
canvas->save();
canvas->translate(x, y);
}
-
+
canvas->drawPicture(*picture);
canvas->restoreToCount(saveCount);
}
diff --git a/src/image/SkImage_Base.h b/src/image/SkImage_Base.h
index 25498ec190..ed74610493 100644
--- a/src/image/SkImage_Base.h
+++ b/src/image/SkImage_Base.h
@@ -16,7 +16,7 @@ public:
virtual void onDraw(SkCanvas*, SkScalar, SkScalar, const SkPaint*) = 0;
-private:
+private:
typedef SkImage INHERITED;
};
diff --git a/src/image/SkImage_Codec.cpp b/src/image/SkImage_Codec.cpp
index af7e0db07e..b46ac2d8ab 100644
--- a/src/image/SkImage_Codec.cpp
+++ b/src/image/SkImage_Codec.cpp
@@ -12,18 +12,18 @@
#include "../images/SkImageDecoder.h"
class SkImage_Codec : public SkImage_Base {
-public:
+public:
static SkImage* NewEmpty();
-
+
SkImage_Codec(SkData* encodedData, int width, int height);
virtual ~SkImage_Codec();
-
+
virtual void onDraw(SkCanvas*, SkScalar, SkScalar, const SkPaint*) SK_OVERRIDE;
-
+
private:
SkData* fEncodedData;
SkBitmap fBitmap;
-
+
typedef SkImage_Base INHERITED;
};
@@ -61,7 +61,7 @@ SkImage* SkImage::NewEncodedData(SkData* data) {
SkImageDecoder::kDecodeBounds_Mode)) {
return NULL;
}
-
+
return SkNEW_ARGS(SkImage_Codec, (data, bitmap.width(), bitmap.height()));
}
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp
index 6ccf10bfd8..e061e2d737 100644
--- a/src/image/SkImage_Gpu.cpp
+++ b/src/image/SkImage_Gpu.cpp
@@ -43,7 +43,7 @@ SkImage_Gpu::SkImage_Gpu(GrContext* context, const GrPlatformTextureDesc& desc)
#if 0
bool isOpaque;
SkBitmap::Config config = SkImageInfoToBitmapConfig(info, &isOpaque);
-
+
fBitmap.setConfig(config, info.fWidth, info.fHeight, rowBytes);
fBitmap.setPixelRef(SkNEW_ARGS(SkDataPixelRef, (data)))->unref();
fBitmap.setIsOpaque(isOpaque);
@@ -67,7 +67,7 @@ SkImage* SkImage::NewRasterCopy(NewTexture(GrContext* context,
if (!SkImage_Gpu::ValidArgs(context, desc)) {
return NULL;
}
-
+
return SkNEW_ARGS(SkImage_Gpu, (context, desc));
}
diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp
index 2e6915ec8a..216f094569 100644
--- a/src/image/SkImage_Raster.cpp
+++ b/src/image/SkImage_Raster.cpp
@@ -35,13 +35,13 @@ public:
if (SkImageInfoToBitmapConfig(info, &isOpaque) == SkBitmap::kNo_Config) {
return false;
}
-
+
// TODO: check colorspace
-
+
if (rowBytes < SkImageMinRowBytes(info)) {
return false;
}
-
+
int64_t size = (int64_t)info.fHeight * rowBytes;
if (size > kMaxPixelByteSize) {
return false;
@@ -84,7 +84,7 @@ SkImage_Raster::SkImage_Raster(const Info& info, SkColorSpace* cs,
: INHERITED(info.fWidth, info.fHeight) {
bool isOpaque;
SkBitmap::Config config = SkImageInfoToBitmapConfig(info, &isOpaque);
-
+
fBitmap.setConfig(config, info.fWidth, info.fHeight, rowBytes);
fBitmap.setPixelRef(SkNEW_ARGS(SkDataPixelRef, (data)))->unref();
fBitmap.setIsOpaque(isOpaque);
@@ -94,10 +94,10 @@ SkImage_Raster::SkImage_Raster(const Info& info, SkColorSpace* cs,
SkImage_Raster::SkImage_Raster(const Info& info, SkPixelRef* pr, size_t rowBytes)
: INHERITED(info.fWidth, info.fHeight) {
SkASSERT(pr->isImmutable());
-
+
bool isOpaque;
SkBitmap::Config config = SkImageInfoToBitmapConfig(info, &isOpaque);
-
+
fBitmap.setConfig(config, info.fWidth, info.fHeight, rowBytes);
fBitmap.setPixelRef(pr);
fBitmap.setIsOpaque(isOpaque);
@@ -124,7 +124,7 @@ SkImage* SkImage::NewRasterCopy(const SkImage::Info& info, SkColorSpace* cs,
if (NULL == pixels) {
return NULL;
}
-
+
// Here we actually make a copy of the caller's pixel data
SkAutoDataUnref data(SkData::NewWithCopy(pixels, info.fHeight * rowBytes));
return SkNEW_ARGS(SkImage_Raster, (info, cs, data, rowBytes));
@@ -143,13 +143,13 @@ SkImage* SkImage::NewRasterData(const SkImage::Info& info, SkColorSpace* cs,
if (NULL == pixelData) {
return NULL;
}
-
+
// did they give us enough data?
size_t size = info.fHeight * rowBytes;
if (pixelData->size() < size) {
return NULL;
}
-
+
SkAutoDataUnref data(pixelData);
return SkNEW_ARGS(SkImage_Raster, (info, cs, data, rowBytes));
}
diff --git a/src/image/SkSurface_Base.h b/src/image/SkSurface_Base.h
index 5a803fa731..8166c8c435 100644
--- a/src/image/SkSurface_Base.h
+++ b/src/image/SkSurface_Base.h
@@ -14,7 +14,7 @@ class SkSurface_Base : public SkSurface {
public:
SkSurface_Base(int width, int height);
virtual ~SkSurface_Base();
-
+
/**
* Allocate a canvas that will draw into this surface. We will cache this
* canvas, to return the same object to the caller multiple times. We
@@ -22,9 +22,9 @@ public:
* scope.
*/
virtual SkCanvas* onNewCanvas() = 0;
-
+
virtual SkSurface* onNewSurface(const SkImage::Info&, SkColorSpace*) = 0;
-
+
/**
* Allocate an SkImage that represents the current contents of the surface.
* This needs to be able to outlive the surface itself (if need be), and
@@ -32,7 +32,7 @@ public:
* is chaged after this calle (e.g. it is drawn to via its canvas).
*/
virtual SkImage* onNewImageShapshot() = 0;
-
+
/**
* Default implementation:
*
@@ -54,10 +54,10 @@ public:
}
return fCachedCanvas;
}
-
+
private:
SkCanvas* fCachedCanvas;
-
+
typedef SkSurface INHERITED;
};
diff --git a/src/image/SkSurface_Gpu.cpp b/src/image/SkSurface_Gpu.cpp
index c6016be01a..d707d93423 100644
--- a/src/image/SkSurface_Gpu.cpp
+++ b/src/image/SkSurface_Gpu.cpp
@@ -76,7 +76,7 @@ bool SkSurface_Gpu::Valid(const SkImage::Info& info, SkColorSpace* cs,
if (size > kMaxTotalSize) {
return false;
}
-
+
return true;
}
@@ -85,7 +85,7 @@ SkSurface_Gpu::SkSurface_Gpu(const SkImage::Info& info, SkColorSpace* cs,
: INHERITED(info.fWidth, info.fHeight) {
bool isOpaque;
SkBitmap::Config config = SkImageInfoToBitmapConfig(info, &isOpaque);
-
+
fBitmap.setConfig(config, info.fWidth, info.fHeight, rb);
fBitmap.setPixels(pixels);
fBitmap.setIsOpaque(isOpaque);
@@ -136,7 +136,7 @@ SkSurface* SkSurface::NewRenderTargetDirect(GrContext* ctx,
if (NULL == ctx || NULL == target) {
return NULL;
}
-
+
return SkNEW_ARGS(SkSurface_Gpu, (ctx, target));
}
@@ -148,7 +148,7 @@ SkSurface* SkSurface::NewRenderTarget(GrContext* ctx, const SkImage::Info& info,
if (!SkSurface_Gpu::Valid(info, cs, sampleCount)) {
return NULL;
}
-
+
// return SkNEW_ARGS(SkSurface_Gpu, (info, cs, pr, rowBytes));
}
diff --git a/src/image/SkSurface_Picture.cpp b/src/image/SkSurface_Picture.cpp
index b6cbb9497c..bac09c59a0 100644
--- a/src/image/SkSurface_Picture.cpp
+++ b/src/image/SkSurface_Picture.cpp
@@ -18,17 +18,17 @@ class SkSurface_Picture : public SkSurface_Base {
public:
SkSurface_Picture(int width, int height);
virtual ~SkSurface_Picture();
-
+
virtual SkCanvas* onNewCanvas() SK_OVERRIDE;
virtual SkSurface* onNewSurface(const SkImage::Info&, SkColorSpace*) SK_OVERRIDE;
virtual SkImage* onNewImageShapshot() SK_OVERRIDE;
virtual void onDraw(SkCanvas*, SkScalar x, SkScalar y,
const SkPaint*) SK_OVERRIDE;
-
+
private:
SkPicture* fPicture;
SkPicture* fRecordingPicture;
-
+
typedef SkSurface_Base INHERITED;
};
diff --git a/src/image/SkSurface_Raster.cpp b/src/image/SkSurface_Raster.cpp
index a0b1e6219a..c4ac959730 100644
--- a/src/image/SkSurface_Raster.cpp
+++ b/src/image/SkSurface_Raster.cpp
@@ -76,7 +76,7 @@ bool SkSurface_Raster::Valid(const SkImage::Info& info, SkColorSpace* cs,
if (size > kMaxTotalSize) {
return false;
}
-
+
return true;
}
@@ -85,7 +85,7 @@ SkSurface_Raster::SkSurface_Raster(const SkImage::Info& info, SkColorSpace* cs,
: INHERITED(info.fWidth, info.fHeight) {
bool isOpaque;
SkBitmap::Config config = SkImageInfoToBitmapConfig(info, &isOpaque);
-
+
fBitmap.setConfig(config, info.fWidth, info.fHeight, rb);
fBitmap.setPixels(pixels);
fBitmap.setIsOpaque(isOpaque);
@@ -140,7 +140,7 @@ SkSurface* SkSurface::NewRasterDirect(const SkImage::Info& info,
if (NULL == pixels) {
return NULL;
}
-
+
return SkNEW_ARGS(SkSurface_Raster, (info, cs, pixels, rowBytes));
}
@@ -148,20 +148,20 @@ SkSurface* SkSurface::NewRaster(const SkImage::Info& info, SkColorSpace* cs) {
if (!SkSurface_Raster::Valid(info, cs)) {
return NULL;
}
-
+
static const size_t kMaxTotalSize = SK_MaxS32;
size_t rowBytes = SkImageMinRowBytes(info);
uint64_t size64 = (uint64_t)info.fHeight * rowBytes;
if (size64 > kMaxTotalSize) {
return NULL;
}
-
+
size_t size = (size_t)size64;
void* pixels = sk_malloc_throw(size);
if (NULL == pixels) {
return NULL;
}
-
+
SkAutoTUnref<SkPixelRef> pr(SkNEW_ARGS(SkMallocPixelRef, (pixels, size, NULL, true)));
return SkNEW_ARGS(SkSurface_Raster, (info, cs, pr, rowBytes));
}
diff --git a/src/opts/SkBitmapProcState_filter_neon.h b/src/opts/SkBitmapProcState_filter_neon.h
index aadab91e29..699f856d16 100644
--- a/src/opts/SkBitmapProcState_filter_neon.h
+++ b/src/opts/SkBitmapProcState_filter_neon.h
@@ -11,14 +11,14 @@
/*
Filter_32_opaque
-
+
There is no hard-n-fast rule that the filtering must produce
exact results for the color components, but if the 4 incoming colors are
all opaque, then the output color must also be opaque. Subsequent parts of
the drawing pipeline may rely on this (e.g. which blitrow proc to use).
*/
-static inline void Filter_32_opaque_neon(unsigned x, unsigned y,
+static inline void Filter_32_opaque_neon(unsigned x, unsigned y,
SkPMColor a00, SkPMColor a01,
SkPMColor a10, SkPMColor a11,
SkPMColor *dst) {
@@ -26,19 +26,19 @@ static inline void Filter_32_opaque_neon(unsigned x, unsigned y,
"vdup.8 d0, %[y] \n\t" // duplicate y into d0
"vmov.u8 d16, #16 \n\t" // set up constant in d16
"vsub.u8 d1, d16, d0 \n\t" // d1 = 16-y
-
+
"vdup.32 d4, %[a00] \n\t" // duplicate a00 into d4
"vdup.32 d5, %[a10] \n\t" // duplicate a10 into d5
"vmov.32 d4[1], %[a01] \n\t" // set top of d4 to a01
"vmov.32 d5[1], %[a11] \n\t" // set top of d5 to a11
-
+
"vmull.u8 q3, d4, d1 \n\t" // q3 = [a01|a00] * (16-y)
"vmull.u8 q0, d5, d0 \n\t" // q0 = [a11|a10] * y
-
+
"vdup.16 d5, %[x] \n\t" // duplicate x into d5
"vmov.u16 d16, #16 \n\t" // set up constant in d16
"vsub.u16 d3, d16, d5 \n\t" // d3 = 16-x
-
+
"vmul.i16 d4, d7, d5 \n\t" // d4 = a01 * x
"vmla.i16 d4, d1, d5 \n\t" // d4 += a11 * x
"vmla.i16 d4, d6, d3 \n\t" // d4 += a00 * (16-x)
@@ -59,19 +59,19 @@ static inline void Filter_32_alpha_neon(unsigned x, unsigned y,
"vdup.8 d0, %[y] \n\t" // duplicate y into d0
"vmov.u8 d16, #16 \n\t" // set up constant in d16
"vsub.u8 d1, d16, d0 \n\t" // d1 = 16-y
-
+
"vdup.32 d4, %[a00] \n\t" // duplicate a00 into d4
"vdup.32 d5, %[a10] \n\t" // duplicate a10 into d5
"vmov.32 d4[1], %[a01] \n\t" // set top of d4 to a01
"vmov.32 d5[1], %[a11] \n\t" // set top of d5 to a11
-
+
"vmull.u8 q3, d4, d1 \n\t" // q3 = [a01|a00] * (16-y)
"vmull.u8 q0, d5, d0 \n\t" // q0 = [a11|a10] * y
-
+
"vdup.16 d5, %[x] \n\t" // duplicate x into d5
"vmov.u16 d16, #16 \n\t" // set up constant in d16
"vsub.u16 d3, d16, d5 \n\t" // d3 = 16-x
-
+
"vmul.i16 d4, d7, d5 \n\t" // d4 = a01 * x
"vmla.i16 d4, d1, d5 \n\t" // d4 += a11 * x
"vmla.i16 d4, d6, d3 \n\t" // d4 += a00 * (16-x)
diff --git a/src/opts/SkBitmapProcState_matrixProcs_neon.cpp b/src/opts/SkBitmapProcState_matrixProcs_neon.cpp
index 7ebdddc5a4..e9684e2860 100644
--- a/src/opts/SkBitmapProcState_matrixProcs_neon.cpp
+++ b/src/opts/SkBitmapProcState_matrixProcs_neon.cpp
@@ -1,4 +1,4 @@
-/* NEON optimized code (C) COPYRIGHT 2009 Motorola
+/* NEON optimized code (C) COPYRIGHT 2009 Motorola
*
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
diff --git a/src/opts/SkBitmapProcState_matrix_clamp_neon.h b/src/opts/SkBitmapProcState_matrix_clamp_neon.h
index 2e4816104c..4f47d4748c 100644
--- a/src/opts/SkBitmapProcState_matrix_clamp_neon.h
+++ b/src/opts/SkBitmapProcState_matrix_clamp_neon.h
@@ -5,7 +5,7 @@
*/
/*
- * Modifications done in-house at Motorola
+ * Modifications done in-house at Motorola
*
* this is a clone of SkBitmapProcState_matrix.h
* and has been tuned to work with the NEON unit.
@@ -74,7 +74,7 @@ static void SCALE_NOFILTER_NAME(const SkBitmapProcState& s,
*xy++ = TILEY_PROCF(fx, maxY);
fx = SkScalarToFixed(pt.fX);
}
-
+
if (0 == maxX) {
// all of the following X values must be 0
memset(xy, 0, count * sizeof(uint16_t));
@@ -94,38 +94,38 @@ static void SCALE_NOFILTER_NAME(const SkBitmapProcState& s,
int i;
- /* very much like done in decal_nofilter, but with
- * an extra clamping function applied.
- * TILEX_PROCF(fx,max) SkClampMax((fx)>>16, max)
- */
- if (count >= 8) {
- /* SkFixed is 16.16 fixed point */
- SkFixed dx2 = dx+dx;
- SkFixed dx4 = dx2+dx2;
- SkFixed dx8 = dx4+dx4;
-
- /* now build fx/fx+dx/fx+2dx/fx+3dx */
- SkFixed fx1, fx2, fx3;
- int32x2_t lower, upper;
- int32x4_t lbase, hbase;
- int16_t *dst16 = (int16_t *)xy;
-
- fx1 = fx+dx;
- fx2 = fx1+dx;
- fx3 = fx2+dx;
-
- /* build my template(s) */
- /* avoid the 'lbase unitialized' warning */
- lbase = vdupq_n_s32(fx);
- lbase = vsetq_lane_s32(fx1, lbase, 1);
- lbase = vsetq_lane_s32(fx2, lbase, 2);
- lbase = vsetq_lane_s32(fx3, lbase, 3);
-
- hbase = vaddq_s32(lbase, vdupq_n_s32(dx4));
-
- /* store & bump */
- do {
- int32x4_t lout;
+ /* very much like done in decal_nofilter, but with
+ * an extra clamping function applied.
+ * TILEX_PROCF(fx,max) SkClampMax((fx)>>16, max)
+ */
+ if (count >= 8) {
+ /* SkFixed is 16.16 fixed point */
+ SkFixed dx2 = dx+dx;
+ SkFixed dx4 = dx2+dx2;
+ SkFixed dx8 = dx4+dx4;
+
+ /* now build fx/fx+dx/fx+2dx/fx+3dx */
+ SkFixed fx1, fx2, fx3;
+ int32x2_t lower, upper;
+ int32x4_t lbase, hbase;
+ int16_t *dst16 = (int16_t *)xy;
+
+ fx1 = fx+dx;
+ fx2 = fx1+dx;
+ fx3 = fx2+dx;
+
+ /* build my template(s) */
+ /* avoid the 'lbase unitialized' warning */
+ lbase = vdupq_n_s32(fx);
+ lbase = vsetq_lane_s32(fx1, lbase, 1);
+ lbase = vsetq_lane_s32(fx2, lbase, 2);
+ lbase = vsetq_lane_s32(fx3, lbase, 3);
+
+ hbase = vaddq_s32(lbase, vdupq_n_s32(dx4));
+
+ /* store & bump */
+ do {
+ int32x4_t lout;
int32x4_t hout;
int16x8_t hi16;
@@ -147,9 +147,9 @@ static void SCALE_NOFILTER_NAME(const SkBitmapProcState& s,
dst16 += 8;
count -= 8;
fx += dx8;
- } while (count >= 8);
- xy = (uint32_t *) dst16;
- }
+ } while (count >= 8);
+ xy = (uint32_t *) dst16;
+ }
uint16_t* xx = (uint16_t*)xy;
for (i = count; i > 0; --i) {
@@ -167,20 +167,20 @@ static void AFFINE_NOFILTER_NAME(const SkBitmapProcState& s,
SkASSERT((s.fInvType & ~(SkMatrix::kTranslate_Mask |
SkMatrix::kScale_Mask |
SkMatrix::kAffine_Mask)) == 0);
-
+
PREAMBLE(s);
SkPoint srcPt;
s.fInvProc(*s.fInvMatrix,
SkIntToScalar(x) + SK_ScalarHalf,
SkIntToScalar(y) + SK_ScalarHalf, &srcPt);
-
+
SkFixed fx = SkScalarToFixed(srcPt.fX);
SkFixed fy = SkScalarToFixed(srcPt.fY);
SkFixed dx = s.fInvSx;
SkFixed dy = s.fInvKy;
int maxX = s.fBitmap->width() - 1;
int maxY = s.fBitmap->height() - 1;
-
+
/* NEON lets us do an 8x unrolling */
if (count >= 8) {
/* SkFixed is 16.16 fixed point */
@@ -257,7 +257,7 @@ static void AFFINE_NOFILTER_NAME(const SkBitmapProcState& s,
x2base = vaddq_s32 (x2base, vdupq_n_s32 (dx8));
y2base = vaddq_s32 (y2base, vdupq_n_s32 (dy8));
- dst16 += 16; /* 8x32 aka 16x16 */
+ dst16 += 16; /* 8x32 aka 16x16 */
count -= 8;
fx += dx8;
fy += dy8;
@@ -271,37 +271,37 @@ static void AFFINE_NOFILTER_NAME(const SkBitmapProcState& s,
}
}
-#undef DEBUG_PERSP_NOFILTER
+#undef DEBUG_PERSP_NOFILTER
static void PERSP_NOFILTER_NAME(const SkBitmapProcState& s,
uint32_t* SK_RESTRICT xy,
int count, int x, int y) {
SkASSERT(s.fInvType & SkMatrix::kPerspective_Mask);
-
+
PREAMBLE(s);
/* max{X,Y} are int here, but later shown/assumed to fit in 16 bits */
int maxX = s.fBitmap->width() - 1;
int maxY = s.fBitmap->height() - 1;
-
+
SkPerspIter iter(*s.fInvMatrix,
SkIntToScalar(x) + SK_ScalarHalf,
SkIntToScalar(y) + SK_ScalarHalf, count);
-
+
while ((count = iter.next()) != 0) {
const SkFixed* SK_RESTRICT srcXY = iter.getXY();
#if defined(DEBUG_PERSP_NOFILTER)
- /* debugging stuff */
- const SkFixed *end_srcXY = srcXY + (count*2);
- uint32_t *end_xy = xy + (count);
- const SkFixed *base_srcXY = srcXY;
- uint32_t *base_xy = xy;
- int base_count = count;
+ /* debugging stuff */
+ const SkFixed *end_srcXY = srcXY + (count*2);
+ uint32_t *end_xy = xy + (count);
+ const SkFixed *base_srcXY = srcXY;
+ uint32_t *base_xy = xy;
+ int base_count = count;
#endif
#if 1
// 2009/9/30: crashes in ApiDemos - Views - Animation - 3D Transition
- // 2009/10/9: reworked to avoid illegal (but allowed by gas) insn
+ // 2009/10/9: reworked to avoid illegal (but allowed by gas) insn
/* srcXY is a batch of 32 bit numbers X0,Y0,X1,Y1...
* but we immediately discard the low 16 bits...
@@ -316,99 +316,99 @@ static void PERSP_NOFILTER_NAME(const SkBitmapProcState& s,
int16x4_t maxY4 = vdup_n_s16((int16_t)maxY);
int16x4_t zero4 = vdup_n_s16(0);
- /* The constructs with local blocks for register assignments
- * and asm() instructions is to make keep any hard register
- * assignments to as small a scope as possible. and to avoid
- * burning call-preserved hard registers on the vld/vst
- * instructions.
- */
+ /* The constructs with local blocks for register assignments
+ * and asm() instructions is to make keep any hard register
+ * assignments to as small a scope as possible. and to avoid
+ * burning call-preserved hard registers on the vld/vst
+ * instructions.
+ */
do {
int16x4_t xlo, xhi, ylo, yhi;
int16x4_t x2lo, x2hi, y2lo, y2hi;
/* vld4 does the de-interleaving for us */
- {
+ {
register int16x4_t t_xlo asm("d0");
register int16x4_t t_xhi asm("d1");
register int16x4_t t_ylo asm("d2");
register int16x4_t t_yhi asm("d3");
- asm ("vld4.16 {d0-d3},[%4] /* xlo=%P0 xhi=%P1 ylo=%P2 yhi=%P3 */"
+ asm ("vld4.16 {d0-d3},[%4] /* xlo=%P0 xhi=%P1 ylo=%P2 yhi=%P3 */"
: "=w" (t_xlo), "=w" (t_xhi), "=w" (t_ylo), "=w" (t_yhi)
: "r" (mysrc)
);
- xlo = t_xlo;
- xhi = t_xhi;
- ylo = t_ylo;
- yhi = t_yhi;
- }
+ xlo = t_xlo;
+ xhi = t_xhi;
+ ylo = t_ylo;
+ yhi = t_yhi;
+ }
/* clamp X>>16 (aka xhi) to 0..maxX */
- xhi = vmax_s16(xhi, zero4); /* now 0.. */
- xhi = vmin_s16(xhi, maxX4); /* now 0..maxX */
+ xhi = vmax_s16(xhi, zero4); /* now 0.. */
+ xhi = vmin_s16(xhi, maxX4); /* now 0..maxX */
/* clamp Y>>16 (aka yhi) to 0..maxY */
- yhi = vmax_s16(yhi, zero4); /* now 0.. */
- yhi = vmin_s16(yhi, maxY4); /* now 0..maxY */
+ yhi = vmax_s16(yhi, zero4); /* now 0.. */
+ yhi = vmin_s16(yhi, maxY4); /* now 0..maxY */
- /* deal with the second set of numbers */
- {
+ /* deal with the second set of numbers */
+ {
register int16x4_t t_xlo asm("d4");
register int16x4_t t_xhi asm("d5");
register int16x4_t t_ylo asm("d6");
register int16x4_t t_yhi asm("d7");
/* offset == 256 bits == 32 bytes == 8 longs == 16 shorts */
- asm ("vld4.16 {d4-d7},[%4] /* xlo=%P0 xhi=%P1 ylo=%P2 yhi=%P3 */"
+ asm ("vld4.16 {d4-d7},[%4] /* xlo=%P0 xhi=%P1 ylo=%P2 yhi=%P3 */"
: "=w" (t_xlo), "=w" (t_xhi), "=w" (t_ylo), "=w" (t_yhi)
: "r" (mysrc+16)
);
- x2lo = t_xlo;
- x2hi = t_xhi;
- y2lo = t_ylo;
- y2hi = t_yhi;
- }
+ x2lo = t_xlo;
+ x2hi = t_xhi;
+ y2lo = t_ylo;
+ y2hi = t_yhi;
+ }
/* clamp the second 4 here */
- if (0) { extern void rbe(void); rbe(); }
+ if (0) { extern void rbe(void); rbe(); }
/* clamp X>>16 (aka xhi) to 0..maxX */
- x2hi = vmax_s16(x2hi, zero4); /* now 0.. */
- x2hi = vmin_s16(x2hi, maxX4); /* now 0..maxX */
+ x2hi = vmax_s16(x2hi, zero4); /* now 0.. */
+ x2hi = vmin_s16(x2hi, maxX4); /* now 0..maxX */
/* clamp Y>>16 (aka yhi) to 0..maxY */
- y2hi = vmax_s16(y2hi, zero4); /* now 0.. */
- y2hi = vmin_s16(y2hi, maxY4); /* now 0..maxY */
+ y2hi = vmax_s16(y2hi, zero4); /* now 0.. */
+ y2hi = vmin_s16(y2hi, maxY4); /* now 0..maxY */
/* we're storing as {x,y}s: x is [0], y is [1] */
/* we'll use vst2 to make this happen */
- {
+ {
register int16x4_t out_x asm("d16") = xhi;
register int16x4_t out_y asm("d17") = yhi;
- asm ("vst2.16 {d16-d17},[%2] /* xlo=%P0 xhi=%P1 */"
- :
- : "w" (out_x), "w" (out_y), "r" (mydst)
- );
- }
- {
+ asm ("vst2.16 {d16-d17},[%2] /* xlo=%P0 xhi=%P1 */"
+ :
+ : "w" (out_x), "w" (out_y), "r" (mydst)
+ );
+ }
+ {
register int16x4_t out_x asm("d18") = x2hi;
register int16x4_t out_y asm("d19") = y2hi;
- asm ("vst2.16 {d18-d19},[%2] /* xlo=%P0 xhi=%P1 */"
- :
- : "w" (out_x), "w" (out_y), "r" (mydst+8)
- );
- }
+ asm ("vst2.16 {d18-d19},[%2] /* xlo=%P0 xhi=%P1 */"
+ :
+ : "w" (out_x), "w" (out_y), "r" (mydst+8)
+ );
+ }
/* XXX: gcc isn't interleaving these with the NEON ops
* but i think that all the scoreboarding works out */
- count -= 8; /* 8 iterations */
- mysrc += 32; /* 16 longs, aka 32 shorts */
- mydst += 16; /* 16 shorts, aka 8 longs */
+ count -= 8; /* 8 iterations */
+ mysrc += 32; /* 16 longs, aka 32 shorts */
+ mydst += 16; /* 16 shorts, aka 8 longs */
} while (count >= 8);
/* get xy and srcXY fixed up */
srcXY = (const SkFixed *) mysrc;
@@ -423,10 +423,10 @@ static void PERSP_NOFILTER_NAME(const SkBitmapProcState& s,
}
#if defined(DEBUG_PERSP_NOFILTER)
- /* for checking our NEON-produced results against vanilla code */
- {
- int bad = (-1);
- for (int i = 0; i < base_count; i++) {
+ /* for checking our NEON-produced results against vanilla code */
+ {
+ int bad = (-1);
+ for (int i = 0; i < base_count; i++) {
uint32_t val;
val = (TILEY_PROCF (base_srcXY[i * 2 + 1], maxY) << 16) |
TILEX_PROCF (base_srcXY[i * 2 + 0], maxX);
@@ -435,11 +435,11 @@ static void PERSP_NOFILTER_NAME(const SkBitmapProcState& s,
bad = i;
break;
}
- }
- if (bad >= 0) {
+ }
+ if (bad >= 0) {
SkDebugf("clamp-nofilter-persp failed piece %d\n", bad);
SkDebugf(" maxX %08x maxY %08x\n", maxX, maxY);
- bad -= (bad & 0x7); /* align */
+ bad -= (bad & 0x7); /* align */
for (int i = bad; i < bad + 8; i++) {
uint32_t val;
val = (TILEY_PROCF (base_srcXY[i * 2 + 1], maxY) << 16) |
@@ -450,21 +450,21 @@ static void PERSP_NOFILTER_NAME(const SkBitmapProcState& s,
base_srcXY[i * 2 + 1]);
}
SkDebugf ("---\n");
- }
+ }
- if (end_xy != xy) {
+ if (end_xy != xy) {
SkDebugf("xy ended at %08x, should be %08x\n", xy, end_xy);
- }
- if (end_srcXY != srcXY) {
+ }
+ if (end_srcXY != srcXY) {
SkDebugf("srcXY ended at %08x, should be %08x\n", srcXY,
end_srcXY);
- }
- }
+ }
+ }
#endif
}
}
-#undef DEBUG_PERSP_NOFILTER
+#undef DEBUG_PERSP_NOFILTER
//////////////////////////////////////////////////////////////////////////////
@@ -489,7 +489,7 @@ static void SCALE_FILTER_NAME(const SkBitmapProcState& s,
SkASSERT(s.fInvKy == 0);
PREAMBLE(s);
-
+
const unsigned maxX = s.fBitmap->width() - 1;
const SkFixed one = s.fFilterOneX;
const SkFixed dx = s.fInvSx;
@@ -534,7 +534,7 @@ static void SCALE_FILTER_NAME(const SkBitmapProcState& s,
wide_one = vdupq_n_s32(one);
while (count >= 4) {
- /* original expands to:
+ /* original expands to:
* unsigned i = SkClampMax((f) >> 16, max);
* i = (i << 4) | (((f) >> 12) & 0xF);
* return (i << 14) | (SkClampMax(((f + one)) >> 16, max));
@@ -587,7 +587,7 @@ static void SCALE_FILTER_NAME(const SkBitmapProcState& s,
count -= 4;
}
}
-
+
while (--count >= 0) {
*xy++ = PACK_FILTER_X_NAME(fx, maxX, one PREAMBLE_ARG_X);
fx += dx;
@@ -600,13 +600,13 @@ static void AFFINE_FILTER_NAME(const SkBitmapProcState& s,
SkASSERT((s.fInvType & ~(SkMatrix::kTranslate_Mask |
SkMatrix::kScale_Mask |
SkMatrix::kAffine_Mask)) == 0);
-
+
PREAMBLE(s);
SkPoint srcPt;
s.fInvProc(*s.fInvMatrix,
SkIntToScalar(x) + SK_ScalarHalf,
SkIntToScalar(y) + SK_ScalarHalf, &srcPt);
-
+
SkFixed oneX = s.fFilterOneX;
SkFixed oneY = s.fFilterOneY;
SkFixed fx = SkScalarToFixed(srcPt.fX) - (oneX >> 1);
@@ -615,14 +615,14 @@ static void AFFINE_FILTER_NAME(const SkBitmapProcState& s,
SkFixed dy = s.fInvKy;
unsigned maxX = s.fBitmap->width() - 1;
unsigned maxY = s.fBitmap->height() - 1;
-
+
if (count >= 4) {
int32x4_t wide_one, wide_i, wide_lo;
int32x4_t wide_dx, wide_fx, wide_onex, wide_fx1;
int32x4_t wide_dy, wide_fy, wide_oney, wide_fy1;
- #undef AFFINE_DEBUG
- #if defined(AFFINE_DEBUG)
+ #undef AFFINE_DEBUG
+ #if defined(AFFINE_DEBUG)
SkFixed fyp = fy;
SkFixed fxp = fx;
uint32_t *xyp = xy;
@@ -650,7 +650,7 @@ static void AFFINE_FILTER_NAME(const SkBitmapProcState& s,
/* do the X side, then the Y side, then interleave them */
- /* original expands to:
+ /* original expands to:
* unsigned i = SkClampMax((f) >> 16, max);
* i = (i << 4) | (((f) >> 12) & 0xF);
* return (i << 14) | (SkClampMax(((f + one)) >> 16, max));
@@ -697,19 +697,19 @@ static void AFFINE_FILTER_NAME(const SkBitmapProcState& s,
wide_y = vorrq_s32(wide_i, wide_fy1);
/* interleave as YXYXYXYX as part of the storing */
- {
+ {
/* vst2.32 needs side-by-side registers */
register int32x4_t t_x asm("q1");
register int32x4_t t_y asm("q0");
- t_x = wide_x; t_y = wide_y;
- asm ("vst2.32 {q0-q1},[%2] /* y=%q0 x=%q1 */"
+ t_x = wide_x; t_y = wide_y;
+ asm ("vst2.32 {q0-q1},[%2] /* y=%q0 x=%q1 */"
:
: "w" (t_y), "w" (t_x), "r" (xy)
);
- }
+ }
- #if defined(AFFINE_DEBUG)
+ #if defined(AFFINE_DEBUG)
/* make sure we're good here -- check the 4 we just output */
for (int i = 0; i<4;i++) {
uint32_t val;
@@ -741,7 +741,7 @@ static void AFFINE_FILTER_NAME(const SkBitmapProcState& s,
fx += dx+dx+dx+dx;
wide_fy += vdupq_n_s32(dy+dy+dy+dy);
fy += dy+dy+dy+dy;
- xy += 8; /* 4 x's, 4 y's */
+ xy += 8; /* 4 x's, 4 y's */
count -= 4;
}
}
@@ -786,20 +786,20 @@ static void PERSP_FILTER_NAME(const SkBitmapProcState& s,
*/
/* load src: x-y-x-y-x-y-x-y */
- {
- register int32x4_t q0 asm ("q0");
- register int32x4_t q1 asm ("q1");
- asm ("vld2.32 {q0-q1},[%2] /* x=%q0 y=%q1 */"
+ {
+ register int32x4_t q0 asm ("q0");
+ register int32x4_t q1 asm ("q1");
+ asm ("vld2.32 {q0-q1},[%2] /* x=%q0 y=%q1 */"
: "=w" (q0), "=w" (q1)
: "r" (srcXY));
- wide_x = q0; wide_y = q1;
- }
+ wide_x = q0; wide_y = q1;
+ }
/* do the X side, then the Y side, then interleave them */
wide_x = vsubq_s32(wide_x, vdupq_n_s32 (oneX>>1));
- /* original expands to:
+ /* original expands to:
* unsigned i = SkClampMax((f) >> 16, max);
* i = (i << 4) | (((f) >> 12) & 0xF);
* return (i << 14) | (SkClampMax(((f + one)) >> 16, max));
@@ -860,14 +860,14 @@ static void PERSP_FILTER_NAME(const SkBitmapProcState& s,
count -= 4;
/* store interleaved as y-x-y-x-y-x-y-x (NB != read order) */
- {
- register int32x4_t q0 asm ("q0") = wide_y;
- register int32x4_t q1 asm ("q1") = wide_x;
-
- asm ("vst2.32 {q0-q1},[%2] /* y=%q0 x=%q1 */"
+ {
+ register int32x4_t q0 asm ("q0") = wide_y;
+ register int32x4_t q1 asm ("q1") = wide_x;
+
+ asm ("vst2.32 {q0-q1},[%2] /* y=%q0 x=%q1 */"
:
: "w" (q0), "w" (q1), "r" (xy));
- }
+ }
/* on to the next iteration */
/* count, srcXY are handled above */
@@ -876,8 +876,8 @@ static void PERSP_FILTER_NAME(const SkBitmapProcState& s,
}
/* was do-while; NEON code invalidates original count>0 assumption */
- while (--count >= 0) {
- /* NB: we read x/y, we write y/x */
+ while (--count >= 0) {
+ /* NB: we read x/y, we write y/x */
*xy++ = PACK_FILTER_Y_NAME(srcXY[1] - (oneY >> 1), maxY,
oneY PREAMBLE_ARG_Y);
*xy++ = PACK_FILTER_X_NAME(srcXY[0] - (oneX >> 1), maxX,
diff --git a/src/opts/SkBitmapProcState_matrix_repeat_neon.h b/src/opts/SkBitmapProcState_matrix_repeat_neon.h
index d05beab38c..615f3ffd72 100644
--- a/src/opts/SkBitmapProcState_matrix_repeat_neon.h
+++ b/src/opts/SkBitmapProcState_matrix_repeat_neon.h
@@ -3,9 +3,9 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
-
+
/*
- * Modifications done in-house at Motorola
+ * Modifications done in-house at Motorola
*
* this is a clone of SkBitmapProcState_matrix.h
* and has been tuned to work with the NEON unit.
@@ -72,7 +72,7 @@ static void SCALE_NOFILTER_NAME(const SkBitmapProcState& s,
*xy++ = TILEY_PROCF(fx, maxY);
fx = SkScalarToFixed(pt.fX);
}
-
+
if (0 == maxX) {
// all of the following X values must be 0
memset(xy, 0, count * sizeof(uint16_t));
@@ -91,62 +91,62 @@ static void SCALE_NOFILTER_NAME(const SkBitmapProcState& s,
{
int i;
- /* RBE: very much like done in decal_nofilter ,
- * but some processing of the 'fx' information
+ /* RBE: very much like done in decal_nofilter ,
+ * but some processing of the 'fx' information
* TILEX_PROCF(fx, max) (((fx) & 0xFFFF) * ((max) + 1) >> 16)
- */
- if (count >= 8) {
- /* SkFixed is 16.16 fixed point */
- SkFixed dx2 = dx+dx;
- SkFixed dx4 = dx2+dx2;
- SkFixed dx8 = dx4+dx4;
-
- /* now build fx/fx+dx/fx+2dx/fx+3dx */
- SkFixed fx1, fx2, fx3;
- int32x2_t lower, upper;
- int32x4_t lbase, hbase;
- int16_t *dst16 = (int16_t *)xy;
-
- fx1 = fx+dx;
- fx2 = fx1+dx;
- fx3 = fx2+dx;
-
- lbase = vdupq_n_s32(fx);
- lbase = vsetq_lane_s32(fx1, lbase, 1);
- lbase = vsetq_lane_s32(fx2, lbase, 2);
- lbase = vsetq_lane_s32(fx3, lbase, 3);
- hbase = vaddq_s32(lbase, vdupq_n_s32(dx4));
-
- /* store & bump */
- do
- {
- int32x4_t lout;
- int32x4_t hout;
- int16x8_t hi16;
-
- /* TILEX_PROCF(fx, max) (((fx)&0xFFFF)*((max)+1)>> 16) */
- /* mask to low 16 [would like to use uzp tricks) */
- lout = vandq_s32(lbase, vdupq_n_s32(0xffff));
- hout = vandq_s32(hbase, vdupq_n_s32(0xffff));
- /* bare multiplication, not SkFixedMul */
- lout = vmulq_s32(lout, vdupq_n_s32(maxX+1));
- hout = vmulq_s32(hout, vdupq_n_s32(maxX+1));
-
- /* extraction, using uzp */
- /* this is ok -- we want all hi(lout)s then all hi(hout)s */
- asm ("vuzpq.16 %q0, %q1" : "+w" (lout), "+w" (hout));
- hi16 = vreinterpretq_s16_s32(hout);
- vst1q_s16(dst16, hi16);
-
- /* bump our base on to the next */
- lbase = vaddq_s32 (lbase, vdupq_n_s32(dx8));
- hbase = vaddq_s32 (hbase, vdupq_n_s32(dx8));
- dst16 += 8;
- count -= 8;
- fx += dx8;
- } while (count >= 8);
- xy = (uint32_t *) dst16;
- }
+ */
+ if (count >= 8) {
+ /* SkFixed is 16.16 fixed point */
+ SkFixed dx2 = dx+dx;
+ SkFixed dx4 = dx2+dx2;
+ SkFixed dx8 = dx4+dx4;
+
+ /* now build fx/fx+dx/fx+2dx/fx+3dx */
+ SkFixed fx1, fx2, fx3;
+ int32x2_t lower, upper;
+ int32x4_t lbase, hbase;
+ int16_t *dst16 = (int16_t *)xy;
+
+ fx1 = fx+dx;
+ fx2 = fx1+dx;
+ fx3 = fx2+dx;
+
+ lbase = vdupq_n_s32(fx);
+ lbase = vsetq_lane_s32(fx1, lbase, 1);
+ lbase = vsetq_lane_s32(fx2, lbase, 2);
+ lbase = vsetq_lane_s32(fx3, lbase, 3);
+ hbase = vaddq_s32(lbase, vdupq_n_s32(dx4));
+
+ /* store & bump */
+ do
+ {
+ int32x4_t lout;
+ int32x4_t hout;
+ int16x8_t hi16;
+
+ /* TILEX_PROCF(fx, max) (((fx)&0xFFFF)*((max)+1)>> 16) */
+ /* mask to low 16 [would like to use uzp tricks) */
+ lout = vandq_s32(lbase, vdupq_n_s32(0xffff));
+ hout = vandq_s32(hbase, vdupq_n_s32(0xffff));
+ /* bare multiplication, not SkFixedMul */
+ lout = vmulq_s32(lout, vdupq_n_s32(maxX+1));
+ hout = vmulq_s32(hout, vdupq_n_s32(maxX+1));
+
+ /* extraction, using uzp */
+ /* this is ok -- we want all hi(lout)s then all hi(hout)s */
+ asm ("vuzpq.16 %q0, %q1" : "+w" (lout), "+w" (hout));
+ hi16 = vreinterpretq_s16_s32(hout);
+ vst1q_s16(dst16, hi16);
+
+ /* bump our base on to the next */
+ lbase = vaddq_s32 (lbase, vdupq_n_s32(dx8));
+ hbase = vaddq_s32 (hbase, vdupq_n_s32(dx8));
+ dst16 += 8;
+ count -= 8;
+ fx += dx8;
+ } while (count >= 8);
+ xy = (uint32_t *) dst16;
+ }
uint16_t* xx = (uint16_t*)xy;
for (i = count; i > 0; --i) {
*xx++ = TILEX_PROCF(fx, maxX); fx += dx;
@@ -165,13 +165,13 @@ static void AFFINE_NOFILTER_NAME(const SkBitmapProcState& s,
SkASSERT((s.fInvType & ~(SkMatrix::kTranslate_Mask |
SkMatrix::kScale_Mask |
SkMatrix::kAffine_Mask)) == 0);
-
+
PREAMBLE(s);
SkPoint srcPt;
s.fInvProc(*s.fInvMatrix,
SkIntToScalar(x) + SK_ScalarHalf,
SkIntToScalar(y) + SK_ScalarHalf, &srcPt);
-
+
SkFixed fx = SkScalarToFixed(srcPt.fX);
SkFixed fy = SkScalarToFixed(srcPt.fY);
SkFixed dx = s.fInvSx;
@@ -186,65 +186,65 @@ static void AFFINE_NOFILTER_NAME(const SkBitmapProcState& s,
#endif
- if (0) { extern void rbe(void); rbe(); }
+ if (0) { extern void rbe(void); rbe(); }
- /* RBE: benchmarks show this eats up time; can we neonize it? */
- /* RBE: very much like done in decal_nofilter ,
- * but some processing of the 'fx' information
+ /* RBE: benchmarks show this eats up time; can we neonize it? */
+ /* RBE: very much like done in decal_nofilter ,
+ * but some processing of the 'fx' information
* TILEX_PROCF(fx, max) (((fx) & 0xFFFF) * ((max) + 1) >> 16)
- */
- if (count >= 4) {
- /* SkFixed is 16.16 fixed point */
- SkFixed dx4 = dx*4;
- SkFixed dy4 = dy*4;
-
- /* now build fx/fx+dx/fx+2dx/fx+3dx */
- int32x2_t lower, upper;
- int32x4_t xbase, ybase;
- int16_t *dst16 = (int16_t *)xy;
-
- /* synthesize 4x for both X and Y */
- xbase = vdupq_n_s32(fx);
- xbase = vsetq_lane_s32(fx+dx, xbase, 1);
- xbase = vsetq_lane_s32(fx+dx+dx, xbase, 2);
- xbase = vsetq_lane_s32(fx+dx+dx+dx, xbase, 3);
-
- ybase = vdupq_n_s32(fy);
- ybase = vsetq_lane_s32(fy+dy, ybase, 1);
- ybase = vsetq_lane_s32(fy+dy+dy, ybase, 2);
- ybase = vsetq_lane_s32(fy+dy+dy+dy, ybase, 3);
-
- /* store & bump */
- do {
- int32x4_t xout;
+ */
+ if (count >= 4) {
+ /* SkFixed is 16.16 fixed point */
+ SkFixed dx4 = dx*4;
+ SkFixed dy4 = dy*4;
+
+ /* now build fx/fx+dx/fx+2dx/fx+3dx */
+ int32x2_t lower, upper;
+ int32x4_t xbase, ybase;
+ int16_t *dst16 = (int16_t *)xy;
+
+ /* synthesize 4x for both X and Y */
+ xbase = vdupq_n_s32(fx);
+ xbase = vsetq_lane_s32(fx+dx, xbase, 1);
+ xbase = vsetq_lane_s32(fx+dx+dx, xbase, 2);
+ xbase = vsetq_lane_s32(fx+dx+dx+dx, xbase, 3);
+
+ ybase = vdupq_n_s32(fy);
+ ybase = vsetq_lane_s32(fy+dy, ybase, 1);
+ ybase = vsetq_lane_s32(fy+dy+dy, ybase, 2);
+ ybase = vsetq_lane_s32(fy+dy+dy+dy, ybase, 3);
+
+ /* store & bump */
+ do {
+ int32x4_t xout;
int32x4_t yout;
int16x8_t hi16;
- /* TILEX_PROCF(fx, max) (((fx)&0xFFFF)*((max)+1)>> 16) */
- /* mask to low 16 [would like to use uzp tricks) */
- xout = vandq_s32(xbase, vdupq_n_s32(0xffff));
- yout = vandq_s32(ybase, vdupq_n_s32(0xffff));
- /* bare multiplication, not SkFixedMul */
- xout = vmulq_s32(xout, vdupq_n_s32(maxX+1));
- yout = vmulq_s32(yout, vdupq_n_s32(maxY+1));
-
- /* put hi16 from xout over low16 from yout */
- yout = vsriq_n_s32(yout, xout, 16);
-
- /* and then yout has the interleaved upper 16's */
- hi16 = vreinterpretq_s16_s32(yout);
- vst1q_s16(dst16, hi16);
-
- /* bump preserved base & on to the next */
- xbase = vaddq_s32 (xbase, vdupq_n_s32(dx4));
- ybase = vaddq_s32 (ybase, vdupq_n_s32(dy4));
- dst16 += 8; /* 8 x16 aka 4x32 */
- count -= 4;
- fx += dx4;
- fy += dy4;
- } while (count >= 4);
- xy = (uint32_t *) dst16;
- }
+ /* TILEX_PROCF(fx, max) (((fx)&0xFFFF)*((max)+1)>> 16) */
+ /* mask to low 16 [would like to use uzp tricks) */
+ xout = vandq_s32(xbase, vdupq_n_s32(0xffff));
+ yout = vandq_s32(ybase, vdupq_n_s32(0xffff));
+ /* bare multiplication, not SkFixedMul */
+ xout = vmulq_s32(xout, vdupq_n_s32(maxX+1));
+ yout = vmulq_s32(yout, vdupq_n_s32(maxY+1));
+
+ /* put hi16 from xout over low16 from yout */
+ yout = vsriq_n_s32(yout, xout, 16);
+
+ /* and then yout has the interleaved upper 16's */
+ hi16 = vreinterpretq_s16_s32(yout);
+ vst1q_s16(dst16, hi16);
+
+ /* bump preserved base & on to the next */
+ xbase = vaddq_s32 (xbase, vdupq_n_s32(dx4));
+ ybase = vaddq_s32 (ybase, vdupq_n_s32(dy4));
+ dst16 += 8; /* 8 x16 aka 4x32 */
+ count -= 4;
+ fx += dx4;
+ fy += dy4;
+ } while (count >= 4);
+ xy = (uint32_t *) dst16;
+ }
#if 0
/* diagnostics... see whether we agree with the NEON code */
@@ -253,11 +253,11 @@ static void AFFINE_NOFILTER_NAME(const SkBitmapProcState& s,
int myi = (-1);
SkFixed ofx = bfx, ofy= bfy, odx= bdx, ody= bdy;
for (myi = ocount; myi > 0; --myi) {
- uint32_t val = (TILEY_PROCF(ofy, maxY) << 16) | TILEX_PROCF(ofx, maxX);
- if (val != *myxy++) {
- bad++;
- break;
- }
+ uint32_t val = (TILEY_PROCF(ofy, maxY) << 16) | TILEX_PROCF(ofx, maxX);
+ if (val != *myxy++) {
+ bad++;
+ break;
+ }
ofx += odx; ofy += ody;
}
if (bad) {
@@ -270,8 +270,8 @@ static void AFFINE_NOFILTER_NAME(const SkBitmapProcState& s,
#endif
for (int i = count; i > 0; --i) {
- /* fx, fy, dx, dy are all 32 bit 16.16 fixed point */
- /* (((fx) & 0xFFFF) * ((max) + 1) >> 16) */
+ /* fx, fy, dx, dy are all 32 bit 16.16 fixed point */
+ /* (((fx) & 0xFFFF) * ((max) + 1) >> 16) */
*xy++ = (TILEY_PROCF(fy, maxY) << 16) | TILEX_PROCF(fx, maxX);
fx += dx; fy += dy;
}
@@ -281,110 +281,110 @@ static void PERSP_NOFILTER_NAME(const SkBitmapProcState& s,
uint32_t* SK_RESTRICT xy,
int count, int x, int y) {
SkASSERT(s.fInvType & SkMatrix::kPerspective_Mask);
-
+
PREAMBLE(s);
int maxX = s.fBitmap->width() - 1;
int maxY = s.fBitmap->height() - 1;
-
+
SkPerspIter iter(*s.fInvMatrix,
SkIntToScalar(x) + SK_ScalarHalf,
SkIntToScalar(y) + SK_ScalarHalf, count);
-
+
while ((count = iter.next()) != 0) {
const SkFixed* SK_RESTRICT srcXY = iter.getXY();
- /* RBE: */
- /* TILEX_PROCF(fx, max) (((fx) & 0xFFFF) * ((max) + 1) >> 16) */
- /* it's a little more complicated than what I did for the
- * clamp case -- where I could immediately snip to the top
- * 16 bits and do my min/max games there.
- * ... might only be able to get 4x unrolling here
- */
-
- /* vld2 to get a set of 32x4's ... */
- /* do the tile[xy]_procf operations */
- /* which includes doing vuzp to get hi16's */
- /* store it */
- /* -- inner loop (other than vld2) can be had from above */
-
- /* srcXY is a batch of 32 bit numbers X0,Y0,X1,Y1...
- * but we immediately discard the low 16 bits...
- * so what we're going to do is vld4, which will give us
- * xlo,xhi,ylo,yhi distribution and we can ignore the 'lo'
- * parts....
- */
- if (0) { extern void rbe(void); rbe(); }
- if (count >= 8) {
- int32_t *mysrc = (int32_t *) srcXY;
- int16_t *mydst = (int16_t *) xy;
- do {
- int32x4_t x, y, x2, y2;
- int16x8_t hi, hi2;
-
- /* read array of x,y,x,y,x,y */
- /* vld2 does the de-interleaving for us */
- /* isolate reg-bound scopes; gcc will minimize register
- * motion if possible; this ensures that we don't lose
- * a register across a debugging call because it happens
- * to be bound into a call-clobbered register
- */
- {
- register int32x4_t q0 asm("q0");
- register int32x4_t q1 asm("q1");
- asm ("vld2.32 {q0-q1},[%2] /* x=%q0 y=%q1 */"
- : "=w" (q0), "=w" (q1)
- : "r" (mysrc)
- );
- x = q0; y = q1;
- }
-
- /* offset == 256 bits == 32 bytes == 8 longs */
- {
- register int32x4_t q2 asm("q2");
- register int32x4_t q3 asm("q3");
- asm ("vld2.32 {q2-q3},[%2] /* x=%q0 y=%q1 */"
- : "=w" (q2), "=w" (q3)
- : "r" (mysrc+8)
- );
- x2 = q2; y2 = q3;
- }
-
- /* TILEX_PROCF(fx, max) (((fx)&0xFFFF)*((max)+1)>> 16) */
- /* mask to low 16 [would like to use uzp tricks) */
- /* bare multiplication, not SkFixedMul */
- x = vandq_s32(x, vdupq_n_s32(0xffff));
- x = vmulq_s32(x, vdupq_n_s32(maxX+1));
- y = vandq_s32(y, vdupq_n_s32(0xffff));
- y = vmulq_s32(y, vdupq_n_s32(maxY+1));
-
- x2 = vandq_s32(x2, vdupq_n_s32(0xffff));
- x2 = vmulq_s32(x2, vdupq_n_s32(maxX+1));
- y2 = vandq_s32(y2, vdupq_n_s32(0xffff));
- y2 = vmulq_s32(y2, vdupq_n_s32(maxY+1));
-
- /* now collect interleaved high 16's */
- /* (hi-x, hi-y)4 (hi-x2; hi-y2)4 */
-
- /* extraction, using uzp, leaves hi16's in y */
- y = vsriq_n_s32(y, x, 16);
- hi = vreinterpretq_s16_s32(y);
- vst1q_s16(mydst, hi);
-
- /* and likewise for the second 8 entries */
- y2 = vsriq_n_s32(y2, x2, 16);
- hi2 = vreinterpretq_s16_s32(y2);
- vst1q_s16(mydst+8, hi2);
-
- /* XXX: gcc isn't interleaving these with the NEON ops
- * but i think that all the scoreboarding works out */
- count -= 8; /* 8 iterations */
- mysrc += 16; /* 16 longs */
- mydst += 16; /* 16 shorts, aka 8 longs */
- } while (count >= 8);
- /* get xy and srcXY fixed up */
- srcXY = (const SkFixed *) mysrc;
- xy = (uint32_t *) mydst;
- }
+ /* RBE: */
+ /* TILEX_PROCF(fx, max) (((fx) & 0xFFFF) * ((max) + 1) >> 16) */
+ /* it's a little more complicated than what I did for the
+ * clamp case -- where I could immediately snip to the top
+ * 16 bits and do my min/max games there.
+ * ... might only be able to get 4x unrolling here
+ */
+
+ /* vld2 to get a set of 32x4's ... */
+ /* do the tile[xy]_procf operations */
+ /* which includes doing vuzp to get hi16's */
+ /* store it */
+ /* -- inner loop (other than vld2) can be had from above */
+
+ /* srcXY is a batch of 32 bit numbers X0,Y0,X1,Y1...
+ * but we immediately discard the low 16 bits...
+ * so what we're going to do is vld4, which will give us
+ * xlo,xhi,ylo,yhi distribution and we can ignore the 'lo'
+ * parts....
+ */
+ if (0) { extern void rbe(void); rbe(); }
+ if (count >= 8) {
+ int32_t *mysrc = (int32_t *) srcXY;
+ int16_t *mydst = (int16_t *) xy;
+ do {
+ int32x4_t x, y, x2, y2;
+ int16x8_t hi, hi2;
+
+ /* read array of x,y,x,y,x,y */
+ /* vld2 does the de-interleaving for us */
+ /* isolate reg-bound scopes; gcc will minimize register
+ * motion if possible; this ensures that we don't lose
+ * a register across a debugging call because it happens
+ * to be bound into a call-clobbered register
+ */
+ {
+ register int32x4_t q0 asm("q0");
+ register int32x4_t q1 asm("q1");
+ asm ("vld2.32 {q0-q1},[%2] /* x=%q0 y=%q1 */"
+ : "=w" (q0), "=w" (q1)
+ : "r" (mysrc)
+ );
+ x = q0; y = q1;
+ }
+
+ /* offset == 256 bits == 32 bytes == 8 longs */
+ {
+ register int32x4_t q2 asm("q2");
+ register int32x4_t q3 asm("q3");
+ asm ("vld2.32 {q2-q3},[%2] /* x=%q0 y=%q1 */"
+ : "=w" (q2), "=w" (q3)
+ : "r" (mysrc+8)
+ );
+ x2 = q2; y2 = q3;
+ }
+
+ /* TILEX_PROCF(fx, max) (((fx)&0xFFFF)*((max)+1)>> 16) */
+ /* mask to low 16 [would like to use uzp tricks) */
+ /* bare multiplication, not SkFixedMul */
+ x = vandq_s32(x, vdupq_n_s32(0xffff));
+ x = vmulq_s32(x, vdupq_n_s32(maxX+1));
+ y = vandq_s32(y, vdupq_n_s32(0xffff));
+ y = vmulq_s32(y, vdupq_n_s32(maxY+1));
+
+ x2 = vandq_s32(x2, vdupq_n_s32(0xffff));
+ x2 = vmulq_s32(x2, vdupq_n_s32(maxX+1));
+ y2 = vandq_s32(y2, vdupq_n_s32(0xffff));
+ y2 = vmulq_s32(y2, vdupq_n_s32(maxY+1));
+
+ /* now collect interleaved high 16's */
+ /* (hi-x, hi-y)4 (hi-x2; hi-y2)4 */
+
+ /* extraction, using uzp, leaves hi16's in y */
+ y = vsriq_n_s32(y, x, 16);
+ hi = vreinterpretq_s16_s32(y);
+ vst1q_s16(mydst, hi);
+
+ /* and likewise for the second 8 entries */
+ y2 = vsriq_n_s32(y2, x2, 16);
+ hi2 = vreinterpretq_s16_s32(y2);
+ vst1q_s16(mydst+8, hi2);
+
+ /* XXX: gcc isn't interleaving these with the NEON ops
+ * but i think that all the scoreboarding works out */
+ count -= 8; /* 8 iterations */
+ mysrc += 16; /* 16 longs */
+ mydst += 16; /* 16 shorts, aka 8 longs */
+ } while (count >= 8);
+ /* get xy and srcXY fixed up */
+ srcXY = (const SkFixed *) mysrc;
+ xy = (uint32_t *) mydst;
+ }
while (--count >= 0) {
*xy++ = (TILEY_PROCF(srcXY[1], maxY) << 16) |
TILEX_PROCF(srcXY[0], maxX);
@@ -416,7 +416,7 @@ static void SCALE_FILTER_NAME(const SkBitmapProcState& s,
SkASSERT(s.fInvKy == 0);
PREAMBLE(s);
-
+
const unsigned maxX = s.fBitmap->width() - 1;
const SkFixed one = s.fFilterOneX;
const SkFixed dx = s.fInvSx;
@@ -456,13 +456,13 @@ static void AFFINE_FILTER_NAME(const SkBitmapProcState& s,
SkASSERT((s.fInvType & ~(SkMatrix::kTranslate_Mask |
SkMatrix::kScale_Mask |
SkMatrix::kAffine_Mask)) == 0);
-
+
PREAMBLE(s);
SkPoint srcPt;
s.fInvProc(*s.fInvMatrix,
SkIntToScalar(x) + SK_ScalarHalf,
SkIntToScalar(y) + SK_ScalarHalf, &srcPt);
-
+
SkFixed oneX = s.fFilterOneX;
SkFixed oneY = s.fFilterOneY;
SkFixed fx = SkScalarToFixed(srcPt.fX) - (oneX >> 1);
@@ -471,7 +471,7 @@ static void AFFINE_FILTER_NAME(const SkBitmapProcState& s,
SkFixed dy = s.fInvKy;
unsigned maxX = s.fBitmap->width() - 1;
unsigned maxY = s.fBitmap->height() - 1;
-
+
do {
*xy++ = PACK_FILTER_Y_NAME(fy, maxY, oneY PREAMBLE_ARG_Y);
fy += dy;
@@ -486,7 +486,7 @@ static void PERSP_FILTER_NAME(const SkBitmapProcState& s,
SkASSERT(s.fInvType & SkMatrix::kPerspective_Mask);
extern void rbe(void);
-
+
PREAMBLE(s);
unsigned maxX = s.fBitmap->width() - 1;
unsigned maxY = s.fBitmap->height() - 1;
@@ -494,7 +494,7 @@ static void PERSP_FILTER_NAME(const SkBitmapProcState& s,
SkFixed oneY = s.fFilterOneY;
-
+
SkPerspIter iter(*s.fInvMatrix,
SkIntToScalar(x) + SK_ScalarHalf,
SkIntToScalar(y) + SK_ScalarHalf, count);
diff --git a/src/opts/SkBitmapProcState_opts_SSE2.cpp b/src/opts/SkBitmapProcState_opts_SSE2.cpp
index 75844853df..1e2dc93fc4 100644
--- a/src/opts/SkBitmapProcState_opts_SSE2.cpp
+++ b/src/opts/SkBitmapProcState_opts_SSE2.cpp
@@ -57,7 +57,7 @@ void S32_opaque_D32_filter_DX_SSE2(const SkBitmapProcState& s,
// (0, 0, 0, 0, 0, 0, 0, x)
__m128i allX = _mm_cvtsi32_si128((XX >> 14) & 0x0F);
-
+
// (0, 0, 0, 0, x, x, x, x)
allX = _mm_shufflelo_epi16(allX, 0);
@@ -167,7 +167,7 @@ void S32_alpha_D32_filter_DX_SSE2(const SkBitmapProcState& s,
// (0, 0, 0, 0, 0, 0, 0, x)
__m128i allX = _mm_cvtsi32_si128((XX >> 14) & 0x0F);
-
+
// (0, 0, 0, 0, x, x, x, x)
allX = _mm_shufflelo_epi16(allX, 0);
@@ -248,7 +248,7 @@ void ClampX_ClampY_filter_scale_SSE2(const SkBitmapProcState& s, uint32_t xy[],
SkASSERT((s.fInvType & ~(SkMatrix::kTranslate_Mask |
SkMatrix::kScale_Mask)) == 0);
SkASSERT(s.fInvKy == 0);
-
+
const unsigned maxX = s.fBitmap->width() - 1;
const SkFixed one = s.fFilterOneX;
const SkFixed dx = s.fInvSx;
@@ -282,14 +282,14 @@ void ClampX_ClampY_filter_scale_SSE2(const SkBitmapProcState& s, uint32_t xy[],
fx + dx, fx);
while (count >= 4) {
- __m128i wide_out;
-
+ __m128i wide_out;
+
wide_out = _mm_slli_epi32(_mm_srai_epi32(wide_fx, 12), 14);
wide_out = _mm_or_si128(wide_out, _mm_add_epi32(
- _mm_srai_epi32(wide_fx, 16), wide_1));
-
+ _mm_srai_epi32(wide_fx, 16), wide_1));
+
_mm_store_si128(reinterpret_cast<__m128i*>(xy), wide_out);
-
+
xy += 4;
fx += dx * 4;
wide_fx = _mm_add_epi32(wide_fx, wide_dx4);
@@ -305,7 +305,7 @@ void ClampX_ClampY_filter_scale_SSE2(const SkBitmapProcState& s, uint32_t xy[],
} else {
// SSE2 only support 16bit interger max & min, so only process the case
// maxX less than the max 16bit interger. Actually maxX is the bitmap's
- // height, there should be rare bitmap whose height will be greater
+ // height, there should be rare bitmap whose height will be greater
// than max 16bit interger in the real world.
if ((count >= 4) && (maxX <= 0xFFFF)) {
while (((size_t)xy & 0x0F) != 0) {
@@ -313,12 +313,12 @@ void ClampX_ClampY_filter_scale_SSE2(const SkBitmapProcState& s, uint32_t xy[],
fx += dx;
count--;
}
-
+
__m128i wide_fx = _mm_set_epi32(fx + dx * 3, fx + dx * 2,
fx + dx, fx);
__m128i wide_dx4 = _mm_set1_epi32(dx * 4);
__m128i wide_one = _mm_set1_epi32(one);
- __m128i wide_maxX = _mm_set1_epi32(maxX);
+ __m128i wide_maxX = _mm_set1_epi32(maxX);
__m128i wide_mask = _mm_set1_epi32(0xF);
while (count >= 4) {
@@ -327,31 +327,31 @@ void ClampX_ClampY_filter_scale_SSE2(const SkBitmapProcState& s, uint32_t xy[],
__m128i wide_fx1;
// i = SkClampMax(f>>16,maxX)
- wide_i = _mm_max_epi16(_mm_srli_epi32(wide_fx, 16),
+ wide_i = _mm_max_epi16(_mm_srli_epi32(wide_fx, 16),
_mm_setzero_si128());
wide_i = _mm_min_epi16(wide_i, wide_maxX);
-
+
// i<<4 | TILEX_LOW_BITS(fx)
wide_lo = _mm_srli_epi32(wide_fx, 12);
wide_lo = _mm_and_si128(wide_lo, wide_mask);
- wide_i = _mm_slli_epi32(wide_i, 4);
- wide_i = _mm_or_si128(wide_i, wide_lo);
-
+ wide_i = _mm_slli_epi32(wide_i, 4);
+ wide_i = _mm_or_si128(wide_i, wide_lo);
+
// i<<14
wide_i = _mm_slli_epi32(wide_i, 14);
-
+
// SkClampMax(((f+one))>>16,max)
wide_fx1 = _mm_add_epi32(wide_fx, wide_one);
- wide_fx1 = _mm_max_epi16(_mm_srli_epi32(wide_fx1, 16),
+ wide_fx1 = _mm_max_epi16(_mm_srli_epi32(wide_fx1, 16),
_mm_setzero_si128());
wide_fx1 = _mm_min_epi16(wide_fx1, wide_maxX);
-
+
// final combination
wide_i = _mm_or_si128(wide_i, wide_fx1);
- _mm_store_si128(reinterpret_cast<__m128i*>(xy), wide_i);
-
+ _mm_store_si128(reinterpret_cast<__m128i*>(xy), wide_i);
+
wide_fx = _mm_add_epi32(wide_fx, wide_dx4);
- fx += dx * 4;
+ fx += dx * 4;
xy += 4;
count -= 4;
} // while count >= 4
@@ -382,7 +382,7 @@ void ClampX_ClampY_nofilter_scale_SSE2(const SkBitmapProcState& s,
const unsigned maxY = s.fBitmap->height() - 1;
*xy++ = SkClampMax(fx >> 16, maxY);
fx = SkScalarToFixed(pt.fX);
-
+
if (0 == maxX) {
// all of the following X values must be 0
memset(xy, 0, count * sizeof(uint16_t));
@@ -416,7 +416,7 @@ void ClampX_ClampY_nofilter_scale_SSE2(const SkBitmapProcState& s,
__m128i wide_result = _mm_packs_epi32(wide_out_low,
wide_out_high);
_mm_store_si128(reinterpret_cast<__m128i*>(xy), wide_result);
-
+
wide_low = _mm_add_epi32(wide_low, wide_dx8);
wide_high = _mm_add_epi32(wide_high, wide_dx8);
@@ -434,7 +434,7 @@ void ClampX_ClampY_nofilter_scale_SSE2(const SkBitmapProcState& s,
} else {
// SSE2 only support 16bit interger max & min, so only process the case
// maxX less than the max 16bit interger. Actually maxX is the bitmap's
- // height, there should be rare bitmap whose height will be greater
+ // height, there should be rare bitmap whose height will be greater
// than max 16bit interger in the real world.
if ((count >= 8) && (maxX <= 0xFFFF)) {
while (((size_t)xy & 0x0F) != 0) {
@@ -456,7 +456,7 @@ void ClampX_ClampY_nofilter_scale_SSE2(const SkBitmapProcState& s,
__m128i wide_out_low = _mm_srli_epi32(wide_low, 16);
__m128i wide_out_high = _mm_srli_epi32(wide_high, 16);
- wide_out_low = _mm_max_epi16(wide_out_low,
+ wide_out_low = _mm_max_epi16(wide_out_low,
_mm_setzero_si128());
wide_out_low = _mm_min_epi16(wide_out_low, wide_maxX);
wide_out_high = _mm_max_epi16(wide_out_high,
@@ -493,7 +493,7 @@ void ClampX_ClampY_filter_affine_SSE2(const SkBitmapProcState& s,
s.fInvProc(*s.fInvMatrix,
SkIntToScalar(x) + SK_ScalarHalf,
SkIntToScalar(y) + SK_ScalarHalf, &srcPt);
-
+
SkFixed oneX = s.fFilterOneX;
SkFixed oneY = s.fFilterOneY;
SkFixed fx = SkScalarToFixed(srcPt.fX) - (oneX >> 1);
@@ -510,37 +510,37 @@ void ClampX_ClampY_filter_affine_SSE2(const SkBitmapProcState& s,
__m128i wide_f = _mm_set_epi32(fx + dx, fy + dy, fx, fy);
__m128i wide_d2 = _mm_set_epi32(dx2, dy2, dx2, dy2);
__m128i wide_one = _mm_set_epi32(oneX, oneY, oneX, oneY);
- __m128i wide_max = _mm_set_epi32(maxX, maxY, maxX, maxY);
+ __m128i wide_max = _mm_set_epi32(maxX, maxY, maxX, maxY);
__m128i wide_mask = _mm_set1_epi32(0xF);
while (count >= 2) {
// i = SkClampMax(f>>16,maxX)
- __m128i wide_i = _mm_max_epi16(_mm_srli_epi32(wide_f, 16),
+ __m128i wide_i = _mm_max_epi16(_mm_srli_epi32(wide_f, 16),
_mm_setzero_si128());
wide_i = _mm_min_epi16(wide_i, wide_max);
-
+
// i<<4 | TILEX_LOW_BITS(f)
__m128i wide_lo = _mm_srli_epi32(wide_f, 12);
wide_lo = _mm_and_si128(wide_lo, wide_mask);
- wide_i = _mm_slli_epi32(wide_i, 4);
- wide_i = _mm_or_si128(wide_i, wide_lo);
-
+ wide_i = _mm_slli_epi32(wide_i, 4);
+ wide_i = _mm_or_si128(wide_i, wide_lo);
+
// i<<14
wide_i = _mm_slli_epi32(wide_i, 14);
-
+
// SkClampMax(((f+one))>>16,max)
__m128i wide_f1 = _mm_add_epi32(wide_f, wide_one);
- wide_f1 = _mm_max_epi16(_mm_srli_epi32(wide_f1, 16),
+ wide_f1 = _mm_max_epi16(_mm_srli_epi32(wide_f1, 16),
_mm_setzero_si128());
wide_f1 = _mm_min_epi16(wide_f1, wide_max);
-
+
// final combination
wide_i = _mm_or_si128(wide_i, wide_f1);
- _mm_storeu_si128(reinterpret_cast<__m128i*>(xy), wide_i);
-
+ _mm_storeu_si128(reinterpret_cast<__m128i*>(xy), wide_i);
+
wide_f = _mm_add_epi32(wide_f, wide_d2);
- fx += dx2;
+ fx += dx2;
fy += dy2;
xy += 4;
count -= 2;
@@ -551,7 +551,7 @@ void ClampX_ClampY_filter_affine_SSE2(const SkBitmapProcState& s,
*xy++ = ClampX_ClampY_pack_filter(fy, maxY, oneY);
fy += dy;
*xy++ = ClampX_ClampY_pack_filter(fx, maxX, oneX);
- fx += dx;
+ fx += dx;
}
}
@@ -569,7 +569,7 @@ void ClampX_ClampY_nofilter_affine_SSE2(const SkBitmapProcState& s,
s.fInvProc(*s.fInvMatrix,
SkIntToScalar(x) + SK_ScalarHalf,
SkIntToScalar(y) + SK_ScalarHalf, &srcPt);
-
+
SkFixed fx = SkScalarToFixed(srcPt.fX);
SkFixed fy = SkScalarToFixed(srcPt.fY);
SkFixed dx = s.fInvSx;
@@ -579,7 +579,7 @@ void ClampX_ClampY_nofilter_affine_SSE2(const SkBitmapProcState& s,
if (count >= 4 && (maxX <= 0xFFFF)) {
while (((size_t)xy & 0x0F) != 0) {
- *xy++ = (SkClampMax(fy >> 16, maxY) << 16) |
+ *xy++ = (SkClampMax(fy >> 16, maxY) << 16) |
SkClampMax(fx >> 16, maxX);
fx += dx;
fy += dy;
@@ -596,29 +596,29 @@ void ClampX_ClampY_nofilter_affine_SSE2(const SkBitmapProcState& s,
__m128i wide_dx4 = _mm_set1_epi32(dx4);
__m128i wide_dy4 = _mm_set1_epi32(dy4);
- __m128i wide_maxX = _mm_set1_epi32(maxX);
- __m128i wide_maxY = _mm_set1_epi32(maxY);
+ __m128i wide_maxX = _mm_set1_epi32(maxX);
+ __m128i wide_maxY = _mm_set1_epi32(maxY);
while (count >= 4) {
// SkClampMax(fx>>16,maxX)
- __m128i wide_lo = _mm_max_epi16(_mm_srli_epi32(wide_fx, 16),
+ __m128i wide_lo = _mm_max_epi16(_mm_srli_epi32(wide_fx, 16),
_mm_setzero_si128());
wide_lo = _mm_min_epi16(wide_lo, wide_maxX);
-
+
// SkClampMax(fy>>16,maxY)
- __m128i wide_hi = _mm_max_epi16(_mm_srli_epi32(wide_fy, 16),
+ __m128i wide_hi = _mm_max_epi16(_mm_srli_epi32(wide_fy, 16),
_mm_setzero_si128());
wide_hi = _mm_min_epi16(wide_hi, wide_maxY);
-
+
// final combination
__m128i wide_i = _mm_or_si128(_mm_slli_epi32(wide_hi, 16),
wide_lo);
- _mm_store_si128(reinterpret_cast<__m128i*>(xy), wide_i);
-
+ _mm_store_si128(reinterpret_cast<__m128i*>(xy), wide_i);
+
wide_fx = _mm_add_epi32(wide_fx, wide_dx4);
wide_fy = _mm_add_epi32(wide_fy, wide_dy4);
- fx += dx4;
+ fx += dx4;
fy += dy4;
xy += 4;
count -= 4;
@@ -629,7 +629,7 @@ void ClampX_ClampY_nofilter_affine_SSE2(const SkBitmapProcState& s,
*xy++ = (SkClampMax(fy >> 16, maxY) << 16) |
SkClampMax(fx >> 16, maxX);
fx += dx;
- fy += dy;
+ fy += dy;
}
}
diff --git a/src/opts/SkBitmapProcState_opts_SSSE3.cpp b/src/opts/SkBitmapProcState_opts_SSSE3.cpp
index e9dcc7f70d..59b23861c7 100644
--- a/src/opts/SkBitmapProcState_opts_SSSE3.cpp
+++ b/src/opts/SkBitmapProcState_opts_SSSE3.cpp
@@ -91,7 +91,7 @@ inline void PrepareConstantsTwoPixelPairsDXDY(const uint32_t* xy,
__m128i* all_xy_result,
__m128i* sixteen_minus_xy,
int* xy0, int* xy1) {
- const __m128i xy_wide =
+ const __m128i xy_wide =
_mm_loadu_si128(reinterpret_cast<const __m128i *>(xy));
// (x10, y10, x00, y00)
@@ -584,7 +584,7 @@ void S32_generic_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s,
SkASSERT(s.fAlphaScale == 256);
}
- const uint8_t* src_addr =
+ const uint8_t* src_addr =
static_cast<const uint8_t*>(s.fBitmap->getPixels());
const unsigned rb = s.fBitmap->rowBytes();
@@ -608,7 +608,7 @@ void S32_generic_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s,
int xy0[4];
int xy1[4];
__m128i all_xy, sixteen_minus_xy;
- PrepareConstantsTwoPixelPairsDXDY(xy, mask_3FFF, mask_000F,
+ PrepareConstantsTwoPixelPairsDXDY(xy, mask_3FFF, mask_000F,
sixteen_8bit, mask_dist_select,
&all_xy, &sixteen_minus_xy, xy0, xy1);
@@ -618,13 +618,13 @@ void S32_generic_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s,
__m128i all_y = _mm_unpackhi_epi8(all_xy, _mm_setzero_si128());
__m128i neg_y = _mm_sub_epi16(_mm_set1_epi16(16), all_y);
- const uint32_t* row00 =
+ const uint32_t* row00 =
reinterpret_cast<const uint32_t*>(src_addr + xy0[2] * rb);
- const uint32_t* row01 =
- reinterpret_cast<const uint32_t*>(src_addr + xy1[2] * rb);
- const uint32_t* row10 =
+ const uint32_t* row01 =
+ reinterpret_cast<const uint32_t*>(src_addr + xy1[2] * rb);
+ const uint32_t* row10 =
reinterpret_cast<const uint32_t*>(src_addr + xy0[3] * rb);
- const uint32_t* row11 =
+ const uint32_t* row11 =
reinterpret_cast<const uint32_t*>(src_addr + xy1[3] * rb);
__m128i sum0 = ProcessTwoPixelPairsDXDY<has_alpha>(
@@ -640,7 +640,7 @@ void S32_generic_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s,
xy += 4;
colors += 2;
count -= 2;
- }
+ }
// Handle the remainder
while (count-- > 0) {
@@ -649,17 +649,17 @@ void S32_generic_D32_filter_DXDY_SSSE3(const SkBitmapProcState& s,
unsigned y1 = data & 0x3FFF;
unsigned subY = y0 & 0xF;
y0 >>= 4;
-
+
data = *xy++;
unsigned x0 = data >> 14;
unsigned x1 = data & 0x3FFF;
unsigned subX = x0 & 0xF;
x0 >>= 4;
-
- const uint32_t* row0 =
+
+ const uint32_t* row0 =
reinterpret_cast<const uint32_t*>(src_addr + y0 * rb);
- const uint32_t* row1 =
- reinterpret_cast<const uint32_t*>(src_addr + y1 * rb);
+ const uint32_t* row1 =
+ reinterpret_cast<const uint32_t*>(src_addr + y1 * rb);
// 16x(x)
const __m128i all_x = _mm_set1_epi8(subX);
diff --git a/src/opts/SkBitmapProcState_opts_arm.cpp b/src/opts/SkBitmapProcState_opts_arm.cpp
index deb1bfeb36..7a9687df7c 100644
--- a/src/opts/SkBitmapProcState_opts_arm.cpp
+++ b/src/opts/SkBitmapProcState_opts_arm.cpp
@@ -24,18 +24,18 @@ void SI8_D16_nofilter_DX_arm(const SkBitmapProcState& s,
SkASSERT(count > 0 && colors != NULL);
SkASSERT(s.fInvType <= (SkMatrix::kTranslate_Mask | SkMatrix::kScale_Mask));
SkASSERT(s.fDoFilter == false);
-
+
const uint16_t* SK_RESTRICT table = s.fBitmap->getColorTable()->lock16BitCache();
const uint8_t* SK_RESTRICT srcAddr = (const uint8_t*)s.fBitmap->getPixels();
-
+
// buffer is y32, x16, x16, x16, x16, x16
// bump srcAddr to the proper row, since we're told Y never changes
SkASSERT((unsigned)xy[0] < (unsigned)s.fBitmap->height());
srcAddr = (const uint8_t*)((const char*)srcAddr +
xy[0] * s.fBitmap->rowBytes());
-
+
uint8_t src;
-
+
if (1 == s.fBitmap->width()) {
src = srcAddr[0];
uint16_t dstValue = table[src];
@@ -44,7 +44,7 @@ void SI8_D16_nofilter_DX_arm(const SkBitmapProcState& s,
int i;
int count8 = count >> 3;
const uint16_t* SK_RESTRICT xx = (const uint16_t*)(xy + 1);
-
+
asm volatile (
"cmp %[count8], #0 \n\t" // compare loop counter with 0
"beq 2f \n\t" // if loop counter == 0, exit
@@ -94,13 +94,13 @@ void SI8_D16_nofilter_DX_arm(const SkBitmapProcState& s,
: [table] "r" (table), [srcAddr] "r" (srcAddr)
: "memory", "cc", "r4", "r5", "r6", "r7", "r8", "r9", "r10", "r11"
);
-
+
for (i = (count & 7); i > 0; --i) {
src = srcAddr[*xx++]; *colors++ = table[src];
}
}
- s.fBitmap->getColorTable()->unlock16BitCache();
+ s.fBitmap->getColorTable()->unlock16BitCache();
}
void SI8_opaque_D32_nofilter_DX_arm(
diff --git a/src/opts/SkBlitRow_opts_SSE2.cpp b/src/opts/SkBlitRow_opts_SSE2.cpp
index 84a239717f..27ce1e5f62 100644
--- a/src/opts/SkBlitRow_opts_SSE2.cpp
+++ b/src/opts/SkBlitRow_opts_SSE2.cpp
@@ -552,14 +552,14 @@ static __m128i SkBlendLCD16_SSE2(__m128i &srci, __m128i &dst,
__m128i g = _mm_and_si128(SkPackedG16x5ToUnmaskedG32x5_SSE2(mask),
_mm_set1_epi32(0x1F << SK_G32_SHIFT));
-
+
__m128i b = _mm_and_si128(SkPackedB16x5ToUnmaskedB32x5_SSE2(mask),
_mm_set1_epi32(0x1F << SK_B32_SHIFT));
-
+
// Pack the 4 16bit mask pixels into 4 32bit pixels, (p0, p1, p2, p3)
mask = _mm_or_si128(_mm_or_si128(r, g), b);
- // Interleave R,G,B into the lower byte of word.
+ // Interleave R,G,B into the lower byte of word.
__m128i maskLo, maskHi;
maskLo = _mm_unpacklo_epi8(mask, _mm_setzero_si128());
maskHi = _mm_unpackhi_epi8(mask, _mm_setzero_si128());
@@ -600,14 +600,14 @@ static __m128i SkBlendLCD16Opaque_SSE2(__m128i &srci, __m128i &dst,
__m128i g = _mm_and_si128(SkPackedG16x5ToUnmaskedG32x5_SSE2(mask),
_mm_set1_epi32(0x1F << SK_G32_SHIFT));
-
+
__m128i b = _mm_and_si128(SkPackedB16x5ToUnmaskedB32x5_SSE2(mask),
_mm_set1_epi32(0x1F << SK_B32_SHIFT));
// Pack the 4 16bit mask pixels into 4 32bit pixels, (p0, p1, p2, p3)
mask = _mm_or_si128(_mm_or_si128(r, g), b);
- // Interleave R,G,B into the lower byte of word.
+ // Interleave R,G,B into the lower byte of word.
__m128i maskLo, maskHi;
maskLo = _mm_unpacklo_epi8(mask, _mm_setzero_si128());
maskHi = _mm_unpackhi_epi8(mask, _mm_setzero_si128());
@@ -645,7 +645,7 @@ void SkBlitLCD16Row_SSE2(SkPMColor dst[], const uint16_t src[],
int srcR = SkColorGetR(color);
int srcG = SkColorGetG(color);
int srcB = SkColorGetB(color);
-
+
srcA = SkAlpha255To256(srcA);
if (width >= 4) {
@@ -674,14 +674,14 @@ void SkBlitLCD16Row_SSE2(SkPMColor dst[], const uint16_t src[],
// if mask pixels are not all zero, we will blend the dst pixels
if (pack_cmp != 0xFFFF) {
- // Unpack 4 16bit mask pixels to
+ // Unpack 4 16bit mask pixels to
// (p0, 0, p1, 0, p2, 0, p3, 0)
mask_pixel = _mm_unpacklo_epi16(mask_pixel,
_mm_setzero_si128());
// Process 4 32bit dst pixels
__m128i result = SkBlendLCD16_SSE2(srci, dst_pixel,
- mask_pixel, scale);
+ mask_pixel, scale);
_mm_store_si128(d, result);
}
@@ -697,7 +697,7 @@ void SkBlitLCD16Row_SSE2(SkPMColor dst[], const uint16_t src[],
*dst = SkBlendLCD16(srcA, srcR, srcG, srcB, *dst, *src);
src++;
dst++;
- width--;
+ width--;
}
}
@@ -736,14 +736,14 @@ void SkBlitLCD16OpaqueRow_SSE2(SkPMColor dst[], const uint16_t src[],
// if mask pixels are not all zero, we will blend the dst pixels
if (pack_cmp != 0xFFFF) {
- // Unpack 4 16bit mask pixels to
+ // Unpack 4 16bit mask pixels to
// (p0, 0, p1, 0, p2, 0, p3, 0)
mask_pixel = _mm_unpacklo_epi16(mask_pixel,
_mm_setzero_si128());
// Process 4 32bit dst pixels
__m128i result = SkBlendLCD16Opaque_SSE2(srci, dst_pixel,
- mask_pixel);
+ mask_pixel);
_mm_store_si128(d, result);
}
@@ -759,6 +759,6 @@ void SkBlitLCD16OpaqueRow_SSE2(SkPMColor dst[], const uint16_t src[],
*dst = SkBlendLCD16Opaque(srcR, srcG, srcB, *dst, *src, opaqueDst);
src++;
dst++;
- width--;
+ width--;
}
}
diff --git a/src/opts/SkBlitRow_opts_arm_neon.cpp b/src/opts/SkBlitRow_opts_arm_neon.cpp
index 6f2f7e57cd..14d59682e1 100644
--- a/src/opts/SkBlitRow_opts_arm_neon.cpp
+++ b/src/opts/SkBlitRow_opts_arm_neon.cpp
@@ -25,7 +25,7 @@ void S32A_D565_Opaque_neon(uint16_t* SK_RESTRICT dst,
if (count >= 8) {
uint16_t* SK_RESTRICT keep_dst;
-
+
asm volatile (
"ands ip, %[count], #7 \n\t"
"vmov.u8 d31, #1<<7 \n\t"
@@ -37,14 +37,14 @@ void S32A_D565_Opaque_neon(uint16_t* SK_RESTRICT dst,
"it eq \n\t"
"moveq ip, #8 \n\t"
"mov %[keep_dst], %[dst] \n\t"
-
+
"add %[src], %[src], ip, LSL#2 \n\t"
"add %[dst], %[dst], ip, LSL#1 \n\t"
"subs %[count], %[count], ip \n\t"
"b 9f \n\t"
// LOOP
"2: \n\t"
-
+
"vld1.16 {q12}, [%[dst]]! \n\t"
"vld4.8 {d0-d3}, [%[src]]! \n\t"
"vst1.16 {q10}, [%[keep_dst]] \n\t"
@@ -61,11 +61,11 @@ void S32A_D565_Opaque_neon(uint16_t* SK_RESTRICT dst,
"vshl.u8 d4, d4, #3 \n\t"
"vshl.u8 d5, d5, #2 \n\t"
"vshl.u8 d6, d6, #3 \n\t"
-
+
"vmovl.u8 q14, d31 \n\t"
"vmovl.u8 q13, d31 \n\t"
"vmovl.u8 q12, d31 \n\t"
-
+
// duplicate in 4/2/1 & 8pix vsns
"vmvn.8 d30, d3 \n\t"
"vmlal.u8 q14, d30, d6 \n\t"
@@ -80,53 +80,53 @@ void S32A_D565_Opaque_neon(uint16_t* SK_RESTRICT dst,
"vaddhn.u16 d4, q12, q8 \n\t"
// intentionally don't calculate alpha
// result in d4-d6
-
+
"vqadd.u8 d5, d5, d1 \n\t"
"vqadd.u8 d4, d4, d2 \n\t"
-
+
// pack 8888 {d4-d6} to 0565 q10
"vshll.u8 q10, d6, #8 \n\t"
"vshll.u8 q3, d5, #8 \n\t"
"vshll.u8 q2, d4, #8 \n\t"
"vsri.u16 q10, q3, #5 \n\t"
"vsri.u16 q10, q2, #11 \n\t"
-
+
"bne 2b \n\t"
-
+
"1: \n\t"
"vst1.16 {q10}, [%[keep_dst]] \n\t"
: [count] "+r" (count)
- : [dst] "r" (dst), [keep_dst] "r" (keep_dst), [src] "r" (src)
+ : [dst] "r" (dst), [keep_dst] "r" (keep_dst), [src] "r" (src)
: "ip", "cc", "memory", "d0","d1","d2","d3","d4","d5","d6","d7",
"d16","d17","d18","d19","d20","d21","d22","d23","d24","d25","d26","d27","d28","d29",
"d30","d31"
);
}
- else
+ else
{ // handle count < 8
uint16_t* SK_RESTRICT keep_dst;
-
+
asm volatile (
"vmov.u8 d31, #1<<7 \n\t"
"mov %[keep_dst], %[dst] \n\t"
-
+
"tst %[count], #4 \n\t"
"beq 14f \n\t"
"vld1.16 {d25}, [%[dst]]! \n\t"
"vld1.32 {q1}, [%[src]]! \n\t"
-
+
"14: \n\t"
"tst %[count], #2 \n\t"
"beq 12f \n\t"
"vld1.32 {d24[1]}, [%[dst]]! \n\t"
"vld1.32 {d1}, [%[src]]! \n\t"
-
+
"12: \n\t"
"tst %[count], #1 \n\t"
"beq 11f \n\t"
"vld1.16 {d24[1]}, [%[dst]]! \n\t"
"vld1.32 {d0[1]}, [%[src]]! \n\t"
-
+
"11: \n\t"
// unzips achieve the same as a vld4 operation
"vuzpq.u16 q0, q1 \n\t"
@@ -141,11 +141,11 @@ void S32A_D565_Opaque_neon(uint16_t* SK_RESTRICT dst,
"vshl.u8 d4, d4, #3 \n\t"
"vshl.u8 d5, d5, #2 \n\t"
"vshl.u8 d6, d6, #3 \n\t"
-
+
"vmovl.u8 q14, d31 \n\t"
"vmovl.u8 q13, d31 \n\t"
"vmovl.u8 q12, d31 \n\t"
-
+
// duplicate in 4/2/1 & 8pix vsns
"vmvn.8 d30, d3 \n\t"
"vmlal.u8 q14, d30, d6 \n\t"
@@ -160,32 +160,32 @@ void S32A_D565_Opaque_neon(uint16_t* SK_RESTRICT dst,
"vaddhn.u16 d4, q12, q8 \n\t"
// intentionally don't calculate alpha
// result in d4-d6
-
+
"vqadd.u8 d5, d5, d1 \n\t"
"vqadd.u8 d4, d4, d2 \n\t"
-
+
// pack 8888 {d4-d6} to 0565 q10
"vshll.u8 q10, d6, #8 \n\t"
"vshll.u8 q3, d5, #8 \n\t"
"vshll.u8 q2, d4, #8 \n\t"
"vsri.u16 q10, q3, #5 \n\t"
"vsri.u16 q10, q2, #11 \n\t"
-
+
// store
"tst %[count], #4 \n\t"
"beq 24f \n\t"
"vst1.16 {d21}, [%[keep_dst]]! \n\t"
-
+
"24: \n\t"
"tst %[count], #2 \n\t"
"beq 22f \n\t"
"vst1.32 {d20[1]}, [%[keep_dst]]! \n\t"
-
+
"22: \n\t"
"tst %[count], #1 \n\t"
"beq 21f \n\t"
"vst1.16 {d20[1]}, [%[keep_dst]]! \n\t"
-
+
"21: \n\t"
: [count] "+r" (count)
: [dst] "r" (dst), [keep_dst] "r" (keep_dst), [src] "r" (src)
@@ -209,15 +209,15 @@ void S32A_D565_Blend_neon(uint16_t* SK_RESTRICT dst,
* never exceed 1. It's possible to improve accuracy vs. a floating point
* implementation by introducing rounding right shifts (vrshr) for the final stage.
* Rounding is not present in the code below, because although results would be closer
- * to a floating point implementation, the number of mismatches compared to the
+ * to a floating point implementation, the number of mismatches compared to the
* original code would be far greater.
* 2. On certain inputs, the original code can overflow, causing colour channels to
* mix. Although the Neon code can also overflow, it doesn't allow one colour channel
* to affect another.
*/
-
+
#if 1
- /* reflects SkAlpha255To256()'s change from a+a>>7 to a+1 */
+ /* reflects SkAlpha255To256()'s change from a+a>>7 to a+1 */
"add %[alpha], %[alpha], #1 \n\t" // adjust range of alpha 0-256
#else
"add %[alpha], %[alpha], %[alpha], lsr #7 \n\t" // adjust range of alpha 0-256
@@ -227,63 +227,63 @@ void S32A_D565_Blend_neon(uint16_t* SK_RESTRICT dst,
"vmov.u16 d2[0], %[alpha] \n\t" // move alpha to Neon
"beq 2f \n\t" // if count8 == 0, exit
"vmov.u16 q15, #0x1f \n\t" // set up blue mask
-
+
"1: \n\t"
"vld1.u16 {d0, d1}, [%[dst]] \n\t" // load eight dst RGB565 pixels
"subs r4, r4, #1 \n\t" // decrement loop counter
"vld4.u8 {d24, d25, d26, d27}, [%[src]]! \n\t" // load eight src ABGR32 pixels
// and deinterleave
-
+
"vshl.u16 q9, q0, #5 \n\t" // shift green to top of lanes
"vand q10, q0, q15 \n\t" // extract blue
"vshr.u16 q8, q0, #11 \n\t" // extract red
"vshr.u16 q9, q9, #10 \n\t" // extract green
// dstrgb = {q8, q9, q10}
-
+
"vshr.u8 d24, d24, #3 \n\t" // shift red to 565 range
"vshr.u8 d25, d25, #2 \n\t" // shift green to 565 range
"vshr.u8 d26, d26, #3 \n\t" // shift blue to 565 range
-
+
"vmovl.u8 q11, d24 \n\t" // widen red to 16 bits
"vmovl.u8 q12, d25 \n\t" // widen green to 16 bits
"vmovl.u8 q14, d27 \n\t" // widen alpha to 16 bits
"vmovl.u8 q13, d26 \n\t" // widen blue to 16 bits
// srcrgba = {q11, q12, q13, q14}
-
+
"vmul.u16 q2, q14, d2[0] \n\t" // sa * src_scale
"vmul.u16 q11, q11, d2[0] \n\t" // red result = src_red * src_scale
"vmul.u16 q12, q12, d2[0] \n\t" // grn result = src_grn * src_scale
"vmul.u16 q13, q13, d2[0] \n\t" // blu result = src_blu * src_scale
-
+
"vshr.u16 q2, q2, #8 \n\t" // sa * src_scale >> 8
"vsub.u16 q2, q3, q2 \n\t" // 255 - (sa * src_scale >> 8)
// dst_scale = q2
-
+
"vmla.u16 q11, q8, q2 \n\t" // red result += dst_red * dst_scale
"vmla.u16 q12, q9, q2 \n\t" // grn result += dst_grn * dst_scale
"vmla.u16 q13, q10, q2 \n\t" // blu result += dst_blu * dst_scale
#if 1
- // trying for a better match with SkDiv255Round(a)
- // C alg is: a+=128; (a+a>>8)>>8
- // we'll use just a rounding shift [q2 is available for scratch]
+ // trying for a better match with SkDiv255Round(a)
+ // C alg is: a+=128; (a+a>>8)>>8
+ // we'll use just a rounding shift [q2 is available for scratch]
"vrshr.u16 q11, q11, #8 \n\t" // shift down red
"vrshr.u16 q12, q12, #8 \n\t" // shift down green
"vrshr.u16 q13, q13, #8 \n\t" // shift down blue
#else
- // arm's original "truncating divide by 256"
+ // arm's original "truncating divide by 256"
"vshr.u16 q11, q11, #8 \n\t" // shift down red
"vshr.u16 q12, q12, #8 \n\t" // shift down green
"vshr.u16 q13, q13, #8 \n\t" // shift down blue
#endif
-
+
"vsli.u16 q13, q12, #5 \n\t" // insert green into blue
"vsli.u16 q13, q11, #11 \n\t" // insert red into green/blue
"vst1.16 {d26, d27}, [%[dst]]! \n\t" // write pixel back to dst, update ptr
-
+
"bne 1b \n\t" // if counter != 0, loop
"2: \n\t" // exit
-
+
: [src] "+r" (src), [dst] "+r" (dst), [count] "+r" (count), [alpha] "+r" (alpha_for_asm)
:
: "cc", "memory", "r4", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d7", "d16", "d17", "d18", "d19", "d20", "d21", "d22", "d23", "d24", "d25", "d26", "d27", "d28", "d29", "d30", "d31"
@@ -316,7 +316,7 @@ static const uint8_t gDitherMatrix_Neon[48] = {
6, 2, 7, 3, 6, 2, 7, 3, 6, 2, 7, 3,
1, 5, 0, 4, 1, 5, 0, 4, 1, 5, 0, 4,
7, 3, 6, 2, 7, 3, 6, 2, 7, 3, 6, 2,
-
+
};
void S32_D565_Blend_Dither_neon(uint16_t *dst, const SkPMColor *src,
@@ -324,10 +324,10 @@ void S32_D565_Blend_Dither_neon(uint16_t *dst, const SkPMColor *src,
{
/* select row and offset for dither array */
const uint8_t *dstart = &gDitherMatrix_Neon[(y&3)*12 + (x&3)];
-
+
/* rescale alpha to range 0 - 256 */
int scale = SkAlpha255To256(alpha);
-
+
asm volatile (
"vld1.8 {d31}, [%[dstart]] \n\t" // load dither values
"vshr.u8 d30, d31, #1 \n\t" // calc. green dither values
@@ -383,13 +383,13 @@ void S32_D565_Blend_Dither_neon(uint16_t *dst, const SkPMColor *src,
: [dstart] "r" (dstart), [scale] "r" (scale)
: "cc", "memory", "d0", "d1", "d2", "d3", "d4", "d5", "d6", "d16", "d17", "d18", "d19", "d20", "d21", "d22", "d23", "d24", "d28", "d29", "d30", "d31"
);
-
+
DITHER_565_SCAN(y);
-
+
while((count & 7) > 0)
{
SkPMColor c = *src++;
-
+
int dither = DITHER_VALUE(x);
int sr = SkGetPackedR32(c);
int sg = SkGetPackedG32(c);
@@ -397,7 +397,7 @@ void S32_D565_Blend_Dither_neon(uint16_t *dst, const SkPMColor *src,
sr = SkDITHER_R32To565(sr, dither);
sg = SkDITHER_G32To565(sg, dither);
sb = SkDITHER_B32To565(sb, dither);
-
+
uint16_t d = *dst;
*dst++ = SkPackRGB16(SkAlphaBlend(sr, SkGetPackedR16(d), scale),
SkAlphaBlend(sg, SkGetPackedG16(d), scale),
@@ -415,100 +415,100 @@ void S32A_Opaque_BlitRow32_neon(SkPMColor* SK_RESTRICT dst,
if (count > 0) {
- uint8x8_t alpha_mask;
+ uint8x8_t alpha_mask;
- static const uint8_t alpha_mask_setup[] = {3,3,3,3,7,7,7,7};
- alpha_mask = vld1_u8(alpha_mask_setup);
+ static const uint8_t alpha_mask_setup[] = {3,3,3,3,7,7,7,7};
+ alpha_mask = vld1_u8(alpha_mask_setup);
- /* do the NEON unrolled code */
-#define UNROLL 4
- while (count >= UNROLL) {
- uint8x8_t src_raw, dst_raw, dst_final;
- uint8x8_t src_raw_2, dst_raw_2, dst_final_2;
+ /* do the NEON unrolled code */
+#define UNROLL 4
+ while (count >= UNROLL) {
+ uint8x8_t src_raw, dst_raw, dst_final;
+ uint8x8_t src_raw_2, dst_raw_2, dst_final_2;
- /* get the source */
- src_raw = vreinterpret_u8_u32(vld1_u32(src));
-#if UNROLL > 2
- src_raw_2 = vreinterpret_u8_u32(vld1_u32(src+2));
+ /* get the source */
+ src_raw = vreinterpret_u8_u32(vld1_u32(src));
+#if UNROLL > 2
+ src_raw_2 = vreinterpret_u8_u32(vld1_u32(src+2));
#endif
- /* get and hold the dst too */
- dst_raw = vreinterpret_u8_u32(vld1_u32(dst));
-#if UNROLL > 2
- dst_raw_2 = vreinterpret_u8_u32(vld1_u32(dst+2));
+ /* get and hold the dst too */
+ dst_raw = vreinterpret_u8_u32(vld1_u32(dst));
+#if UNROLL > 2
+ dst_raw_2 = vreinterpret_u8_u32(vld1_u32(dst+2));
#endif
- /* 1st and 2nd bits of the unrolling */
- {
- uint8x8_t dst_cooked;
- uint16x8_t dst_wide;
- uint8x8_t alpha_narrow;
- uint16x8_t alpha_wide;
+ /* 1st and 2nd bits of the unrolling */
+ {
+ uint8x8_t dst_cooked;
+ uint16x8_t dst_wide;
+ uint8x8_t alpha_narrow;
+ uint16x8_t alpha_wide;
- /* get the alphas spread out properly */
- alpha_narrow = vtbl1_u8(src_raw, alpha_mask);
+ /* get the alphas spread out properly */
+ alpha_narrow = vtbl1_u8(src_raw, alpha_mask);
#if 1
- /* reflect SkAlpha255To256() semantics a+1 vs a+a>>7 */
- /* we collapsed (255-a)+1 ... */
- alpha_wide = vsubw_u8(vdupq_n_u16(256), alpha_narrow);
+ /* reflect SkAlpha255To256() semantics a+1 vs a+a>>7 */
+ /* we collapsed (255-a)+1 ... */
+ alpha_wide = vsubw_u8(vdupq_n_u16(256), alpha_narrow);
#else
- alpha_wide = vsubw_u8(vdupq_n_u16(255), alpha_narrow);
- alpha_wide = vaddq_u16(alpha_wide, vshrq_n_u16(alpha_wide,7));
+ alpha_wide = vsubw_u8(vdupq_n_u16(255), alpha_narrow);
+ alpha_wide = vaddq_u16(alpha_wide, vshrq_n_u16(alpha_wide,7));
#endif
- /* spread the dest */
- dst_wide = vmovl_u8(dst_raw);
+ /* spread the dest */
+ dst_wide = vmovl_u8(dst_raw);
- /* alpha mul the dest */
- dst_wide = vmulq_u16 (dst_wide, alpha_wide);
- dst_cooked = vshrn_n_u16(dst_wide, 8);
+ /* alpha mul the dest */
+ dst_wide = vmulq_u16 (dst_wide, alpha_wide);
+ dst_cooked = vshrn_n_u16(dst_wide, 8);
- /* sum -- ignoring any byte lane overflows */
- dst_final = vadd_u8(src_raw, dst_cooked);
- }
+ /* sum -- ignoring any byte lane overflows */
+ dst_final = vadd_u8(src_raw, dst_cooked);
+ }
-#if UNROLL > 2
- /* the 3rd and 4th bits of our unrolling */
- {
- uint8x8_t dst_cooked;
- uint16x8_t dst_wide;
- uint8x8_t alpha_narrow;
- uint16x8_t alpha_wide;
+#if UNROLL > 2
+ /* the 3rd and 4th bits of our unrolling */
+ {
+ uint8x8_t dst_cooked;
+ uint16x8_t dst_wide;
+ uint8x8_t alpha_narrow;
+ uint16x8_t alpha_wide;
- alpha_narrow = vtbl1_u8(src_raw_2, alpha_mask);
+ alpha_narrow = vtbl1_u8(src_raw_2, alpha_mask);
#if 1
- /* reflect SkAlpha255To256() semantics a+1 vs a+a>>7 */
- /* we collapsed (255-a)+1 ... */
- alpha_wide = vsubw_u8(vdupq_n_u16(256), alpha_narrow);
+ /* reflect SkAlpha255To256() semantics a+1 vs a+a>>7 */
+ /* we collapsed (255-a)+1 ... */
+ alpha_wide = vsubw_u8(vdupq_n_u16(256), alpha_narrow);
#else
- alpha_wide = vsubw_u8(vdupq_n_u16(255), alpha_narrow);
- alpha_wide = vaddq_u16(alpha_wide, vshrq_n_u16(alpha_wide,7));
+ alpha_wide = vsubw_u8(vdupq_n_u16(255), alpha_narrow);
+ alpha_wide = vaddq_u16(alpha_wide, vshrq_n_u16(alpha_wide,7));
#endif
- /* spread the dest */
- dst_wide = vmovl_u8(dst_raw_2);
+ /* spread the dest */
+ dst_wide = vmovl_u8(dst_raw_2);
- /* alpha mul the dest */
- dst_wide = vmulq_u16 (dst_wide, alpha_wide);
- dst_cooked = vshrn_n_u16(dst_wide, 8);
+ /* alpha mul the dest */
+ dst_wide = vmulq_u16 (dst_wide, alpha_wide);
+ dst_cooked = vshrn_n_u16(dst_wide, 8);
- /* sum -- ignoring any byte lane overflows */
- dst_final_2 = vadd_u8(src_raw_2, dst_cooked);
- }
+ /* sum -- ignoring any byte lane overflows */
+ dst_final_2 = vadd_u8(src_raw_2, dst_cooked);
+ }
#endif
- vst1_u32(dst, vreinterpret_u32_u8(dst_final));
-#if UNROLL > 2
- vst1_u32(dst+2, vreinterpret_u32_u8(dst_final_2));
+ vst1_u32(dst, vreinterpret_u32_u8(dst_final));
+#if UNROLL > 2
+ vst1_u32(dst+2, vreinterpret_u32_u8(dst_final_2));
#endif
- src += UNROLL;
- dst += UNROLL;
- count -= UNROLL;
- }
-#undef UNROLL
+ src += UNROLL;
+ dst += UNROLL;
+ count -= UNROLL;
+ }
+#undef UNROLL
- /* do any residual iterations */
+ /* do any residual iterations */
while (--count >= 0) {
*dst = SkPMSrcOver(*src, *dst);
src += 1;
@@ -529,103 +529,103 @@ void S32_Blend_BlitRow32_neon(SkPMColor* SK_RESTRICT dst,
uint16_t src_scale = SkAlpha255To256(alpha);
uint16_t dst_scale = 256 - src_scale;
- /* run them N at a time through the NEON unit */
- /* note that each 1 is 4 bytes, each treated exactly the same,
- * so we can work under that guise. We *do* know that the src&dst
- * will be 32-bit aligned quantities, so we can specify that on
- * the load/store ops and do a neon 'reinterpret' to get us to
- * byte-sized (pun intended) pieces that we widen/multiply/shift
- * we're limited at 128 bits in the wide ops, which is 8x16bits
- * or a pair of 32 bit src/dsts.
- */
- /* we *could* manually unroll this loop so that we load 128 bits
- * (as a pair of 64s) from each of src and dst, processing them
- * in pieces. This might give us a little better management of
- * the memory latency, but my initial attempts here did not
- * produce an instruction stream that looked all that nice.
- */
-#define UNROLL 2
- while (count >= UNROLL) {
- uint8x8_t src_raw, dst_raw, dst_final;
- uint16x8_t src_wide, dst_wide;
-
- /* get 64 bits of src, widen it, multiply by src_scale */
- src_raw = vreinterpret_u8_u32(vld1_u32(src));
- src_wide = vmovl_u8(src_raw);
- /* gcc hoists vdupq_n_u16(), better than using vmulq_n_u16() */
- src_wide = vmulq_u16 (src_wide, vdupq_n_u16(src_scale));
-
- /* ditto with dst */
- dst_raw = vreinterpret_u8_u32(vld1_u32(dst));
- dst_wide = vmovl_u8(dst_raw);
-
- /* combine add with dst multiply into mul-accumulate */
- dst_wide = vmlaq_u16(src_wide, dst_wide, vdupq_n_u16(dst_scale));
-
- dst_final = vshrn_n_u16(dst_wide, 8);
- vst1_u32(dst, vreinterpret_u32_u8(dst_final));
-
- src += UNROLL;
- dst += UNROLL;
- count -= UNROLL;
- }
- /* RBE: well, i don't like how gcc manages src/dst across the above
- * loop it's constantly calculating src+bias, dst+bias and it only
- * adjusts the real ones when we leave the loop. Not sure why
- * it's "hoisting down" (hoisting implies above in my lexicon ;))
- * the adjustments to src/dst/count, but it does...
- * (might be SSA-style internal logic...
- */
-
-#if UNROLL == 2
- if (count == 1) {
+ /* run them N at a time through the NEON unit */
+ /* note that each 1 is 4 bytes, each treated exactly the same,
+ * so we can work under that guise. We *do* know that the src&dst
+ * will be 32-bit aligned quantities, so we can specify that on
+ * the load/store ops and do a neon 'reinterpret' to get us to
+ * byte-sized (pun intended) pieces that we widen/multiply/shift
+ * we're limited at 128 bits in the wide ops, which is 8x16bits
+ * or a pair of 32 bit src/dsts.
+ */
+ /* we *could* manually unroll this loop so that we load 128 bits
+ * (as a pair of 64s) from each of src and dst, processing them
+ * in pieces. This might give us a little better management of
+ * the memory latency, but my initial attempts here did not
+ * produce an instruction stream that looked all that nice.
+ */
+#define UNROLL 2
+ while (count >= UNROLL) {
+ uint8x8_t src_raw, dst_raw, dst_final;
+ uint16x8_t src_wide, dst_wide;
+
+ /* get 64 bits of src, widen it, multiply by src_scale */
+ src_raw = vreinterpret_u8_u32(vld1_u32(src));
+ src_wide = vmovl_u8(src_raw);
+ /* gcc hoists vdupq_n_u16(), better than using vmulq_n_u16() */
+ src_wide = vmulq_u16 (src_wide, vdupq_n_u16(src_scale));
+
+ /* ditto with dst */
+ dst_raw = vreinterpret_u8_u32(vld1_u32(dst));
+ dst_wide = vmovl_u8(dst_raw);
+
+ /* combine add with dst multiply into mul-accumulate */
+ dst_wide = vmlaq_u16(src_wide, dst_wide, vdupq_n_u16(dst_scale));
+
+ dst_final = vshrn_n_u16(dst_wide, 8);
+ vst1_u32(dst, vreinterpret_u32_u8(dst_final));
+
+ src += UNROLL;
+ dst += UNROLL;
+ count -= UNROLL;
+ }
+ /* RBE: well, i don't like how gcc manages src/dst across the above
+ * loop it's constantly calculating src+bias, dst+bias and it only
+ * adjusts the real ones when we leave the loop. Not sure why
+ * it's "hoisting down" (hoisting implies above in my lexicon ;))
+ * the adjustments to src/dst/count, but it does...
+ * (might be SSA-style internal logic...
+ */
+
+#if UNROLL == 2
+ if (count == 1) {
*dst = SkAlphaMulQ(*src, src_scale) + SkAlphaMulQ(*dst, dst_scale);
- }
+ }
#else
- if (count > 0) {
+ if (count > 0) {
do {
*dst = SkAlphaMulQ(*src, src_scale) + SkAlphaMulQ(*dst, dst_scale);
src += 1;
dst += 1;
} while (--count > 0);
- }
+ }
#endif
-#undef UNROLL
+#undef UNROLL
}
}
///////////////////////////////////////////////////////////////////////////////
-#undef DEBUG_OPAQUE_DITHER
+#undef DEBUG_OPAQUE_DITHER
-#if defined(DEBUG_OPAQUE_DITHER)
+#if defined(DEBUG_OPAQUE_DITHER)
static void showme8(char *str, void *p, int len)
{
- static char buf[256];
- char tbuf[32];
- int i;
- char *pc = (char*) p;
- sprintf(buf,"%8s:", str);
- for(i=0;i<len;i++) {
- sprintf(tbuf, " %02x", pc[i]);
- strcat(buf, tbuf);
- }
- SkDebugf("%s\n", buf);
+ static char buf[256];
+ char tbuf[32];
+ int i;
+ char *pc = (char*) p;
+ sprintf(buf,"%8s:", str);
+ for(i=0;i<len;i++) {
+ sprintf(tbuf, " %02x", pc[i]);
+ strcat(buf, tbuf);
+ }
+ SkDebugf("%s\n", buf);
}
static void showme16(char *str, void *p, int len)
{
- static char buf[256];
- char tbuf[32];
- int i;
- uint16_t *pc = (uint16_t*) p;
- sprintf(buf,"%8s:", str);
- len = (len / sizeof(uint16_t)); /* passed as bytes */
- for(i=0;i<len;i++) {
- sprintf(tbuf, " %04x", pc[i]);
- strcat(buf, tbuf);
- }
- SkDebugf("%s\n", buf);
+ static char buf[256];
+ char tbuf[32];
+ int i;
+ uint16_t *pc = (uint16_t*) p;
+ sprintf(buf,"%8s:", str);
+ len = (len / sizeof(uint16_t)); /* passed as bytes */
+ for(i=0;i<len;i++) {
+ sprintf(tbuf, " %04x", pc[i]);
+ strcat(buf, tbuf);
+ }
+ SkDebugf("%s\n", buf);
}
#endif
@@ -634,38 +634,38 @@ void S32A_D565_Opaque_Dither_neon (uint16_t * SK_RESTRICT dst,
int count, U8CPU alpha, int x, int y) {
SkASSERT(255 == alpha);
-#define UNROLL 8
+#define UNROLL 8
if (count >= UNROLL) {
- uint8x8_t dbase;
-
-#if defined(DEBUG_OPAQUE_DITHER)
- uint16_t tmpbuf[UNROLL];
- int td[UNROLL];
- int tdv[UNROLL];
- int ta[UNROLL];
- int tap[UNROLL];
- uint16_t in_dst[UNROLL];
- int offset = 0;
- int noisy = 0;
+ uint8x8_t dbase;
+
+#if defined(DEBUG_OPAQUE_DITHER)
+ uint16_t tmpbuf[UNROLL];
+ int td[UNROLL];
+ int tdv[UNROLL];
+ int ta[UNROLL];
+ int tap[UNROLL];
+ uint16_t in_dst[UNROLL];
+ int offset = 0;
+ int noisy = 0;
#endif
- const uint8_t *dstart = &gDitherMatrix_Neon[(y&3)*12 + (x&3)];
- dbase = vld1_u8(dstart);
+ const uint8_t *dstart = &gDitherMatrix_Neon[(y&3)*12 + (x&3)];
+ dbase = vld1_u8(dstart);
do {
- uint8x8_t sr, sg, sb, sa, d;
- uint16x8_t dst8, scale8, alpha8;
- uint16x8_t dst_r, dst_g, dst_b;
-
-#if defined(DEBUG_OPAQUE_DITHER)
- /* calculate 8 elements worth into a temp buffer */
- {
- int my_y = y;
- int my_x = x;
- SkPMColor* my_src = (SkPMColor*)src;
- uint16_t* my_dst = dst;
- int i;
+ uint8x8_t sr, sg, sb, sa, d;
+ uint16x8_t dst8, scale8, alpha8;
+ uint16x8_t dst_r, dst_g, dst_b;
+
+#if defined(DEBUG_OPAQUE_DITHER)
+ /* calculate 8 elements worth into a temp buffer */
+ {
+ int my_y = y;
+ int my_x = x;
+ SkPMColor* my_src = (SkPMColor*)src;
+ uint16_t* my_dst = dst;
+ int i;
DITHER_565_SCAN(my_y);
for(i=0;i<UNROLL;i++) {
@@ -673,164 +673,164 @@ void S32A_D565_Opaque_Dither_neon (uint16_t * SK_RESTRICT dst,
SkPMColorAssert(c);
if (c) {
unsigned a = SkGetPackedA32(c);
-
+
int d = SkAlphaMul(DITHER_VALUE(my_x), SkAlpha255To256(a));
- tdv[i] = DITHER_VALUE(my_x);
- ta[i] = a;
- tap[i] = SkAlpha255To256(a);
- td[i] = d;
-
+ tdv[i] = DITHER_VALUE(my_x);
+ ta[i] = a;
+ tap[i] = SkAlpha255To256(a);
+ td[i] = d;
+
unsigned sr = SkGetPackedR32(c);
unsigned sg = SkGetPackedG32(c);
unsigned sb = SkGetPackedB32(c);
sr = SkDITHER_R32_FOR_565(sr, d);
sg = SkDITHER_G32_FOR_565(sg, d);
sb = SkDITHER_B32_FOR_565(sb, d);
-
+
uint32_t src_expanded = (sg << 24) | (sr << 13) | (sb << 2);
uint32_t dst_expanded = SkExpand_rgb_16(*my_dst);
dst_expanded = dst_expanded * (SkAlpha255To256(255 - a) >> 3);
// now src and dst expanded are in g:11 r:10 x:1 b:10
tmpbuf[i] = SkCompact_rgb_16((src_expanded + dst_expanded) >> 5);
- td[i] = d;
+ td[i] = d;
} else {
- tmpbuf[i] = *my_dst;
- ta[i] = tdv[i] = td[i] = 0xbeef;
- }
- in_dst[i] = *my_dst;
+ tmpbuf[i] = *my_dst;
+ ta[i] = tdv[i] = td[i] = 0xbeef;
+ }
+ in_dst[i] = *my_dst;
my_dst += 1;
DITHER_INC_X(my_x);
}
- }
+ }
#endif
- /* source is in ABGR */
- {
- register uint8x8_t d0 asm("d0");
- register uint8x8_t d1 asm("d1");
- register uint8x8_t d2 asm("d2");
- register uint8x8_t d3 asm("d3");
+ /* source is in ABGR */
+ {
+ register uint8x8_t d0 asm("d0");
+ register uint8x8_t d1 asm("d1");
+ register uint8x8_t d2 asm("d2");
+ register uint8x8_t d3 asm("d3");
- asm ("vld4.8 {d0-d3},[%4] /* r=%P0 g=%P1 b=%P2 a=%P3 */"
- : "=w" (d0), "=w" (d1), "=w" (d2), "=w" (d3)
- : "r" (src)
+ asm ("vld4.8 {d0-d3},[%4] /* r=%P0 g=%P1 b=%P2 a=%P3 */"
+ : "=w" (d0), "=w" (d1), "=w" (d2), "=w" (d3)
+ : "r" (src)
);
- sr = d0; sg = d1; sb = d2; sa = d3;
- }
+ sr = d0; sg = d1; sb = d2; sa = d3;
+ }
- /* calculate 'd', which will be 0..7 */
- /* dbase[] is 0..7; alpha is 0..256; 16 bits suffice */
+ /* calculate 'd', which will be 0..7 */
+ /* dbase[] is 0..7; alpha is 0..256; 16 bits suffice */
#if defined(SK_BUILD_FOR_ANDROID)
- /* SkAlpha255To256() semantic a+1 vs a+a>>7 */
- alpha8 = vaddw_u8(vmovl_u8(sa), vdup_n_u8(1));
+ /* SkAlpha255To256() semantic a+1 vs a+a>>7 */
+ alpha8 = vaddw_u8(vmovl_u8(sa), vdup_n_u8(1));
#else
- alpha8 = vaddw_u8(vmovl_u8(sa), vshr_n_u8(sa, 7));
+ alpha8 = vaddw_u8(vmovl_u8(sa), vshr_n_u8(sa, 7));
#endif
- alpha8 = vmulq_u16(alpha8, vmovl_u8(dbase));
- d = vshrn_n_u16(alpha8, 8); /* narrowing too */
-
- /* sr = sr - (sr>>5) + d */
- /* watching for 8-bit overflow. d is 0..7; risky range of
- * sr is >248; and then (sr>>5) is 7 so it offsets 'd';
- * safe as long as we do ((sr-sr>>5) + d) */
- sr = vsub_u8(sr, vshr_n_u8(sr, 5));
- sr = vadd_u8(sr, d);
-
- /* sb = sb - (sb>>5) + d */
- sb = vsub_u8(sb, vshr_n_u8(sb, 5));
- sb = vadd_u8(sb, d);
-
- /* sg = sg - (sg>>6) + d>>1; similar logic for overflows */
- sg = vsub_u8(sg, vshr_n_u8(sg, 6));
- sg = vadd_u8(sg, vshr_n_u8(d,1));
-
- /* need to pick up 8 dst's -- at 16 bits each, 128 bits */
- dst8 = vld1q_u16(dst);
- dst_b = vandq_u16(dst8, vdupq_n_u16(0x001F));
- dst_g = vandq_u16(vshrq_n_u16(dst8,5), vdupq_n_u16(0x003F));
- dst_r = vshrq_n_u16(dst8,11); /* clearing hi bits */
-
- /* blend */
+ alpha8 = vmulq_u16(alpha8, vmovl_u8(dbase));
+ d = vshrn_n_u16(alpha8, 8); /* narrowing too */
+
+ /* sr = sr - (sr>>5) + d */
+ /* watching for 8-bit overflow. d is 0..7; risky range of
+ * sr is >248; and then (sr>>5) is 7 so it offsets 'd';
+ * safe as long as we do ((sr-sr>>5) + d) */
+ sr = vsub_u8(sr, vshr_n_u8(sr, 5));
+ sr = vadd_u8(sr, d);
+
+ /* sb = sb - (sb>>5) + d */
+ sb = vsub_u8(sb, vshr_n_u8(sb, 5));
+ sb = vadd_u8(sb, d);
+
+ /* sg = sg - (sg>>6) + d>>1; similar logic for overflows */
+ sg = vsub_u8(sg, vshr_n_u8(sg, 6));
+ sg = vadd_u8(sg, vshr_n_u8(d,1));
+
+ /* need to pick up 8 dst's -- at 16 bits each, 128 bits */
+ dst8 = vld1q_u16(dst);
+ dst_b = vandq_u16(dst8, vdupq_n_u16(0x001F));
+ dst_g = vandq_u16(vshrq_n_u16(dst8,5), vdupq_n_u16(0x003F));
+ dst_r = vshrq_n_u16(dst8,11); /* clearing hi bits */
+
+ /* blend */
#if 1
- /* SkAlpha255To256() semantic a+1 vs a+a>>7 */
- /* originally 255-sa + 1 */
- scale8 = vsubw_u8(vdupq_n_u16(256), sa);
+ /* SkAlpha255To256() semantic a+1 vs a+a>>7 */
+ /* originally 255-sa + 1 */
+ scale8 = vsubw_u8(vdupq_n_u16(256), sa);
#else
- scale8 = vsubw_u8(vdupq_n_u16(255), sa);
- scale8 = vaddq_u16(scale8, vshrq_n_u16(scale8, 7));
+ scale8 = vsubw_u8(vdupq_n_u16(255), sa);
+ scale8 = vaddq_u16(scale8, vshrq_n_u16(scale8, 7));
#endif
#if 1
- /* combine the addq and mul, save 3 insns */
- scale8 = vshrq_n_u16(scale8, 3);
- dst_b = vmlaq_u16(vshll_n_u8(sb,2), dst_b, scale8);
- dst_g = vmlaq_u16(vshll_n_u8(sg,3), dst_g, scale8);
- dst_r = vmlaq_u16(vshll_n_u8(sr,2), dst_r, scale8);
+ /* combine the addq and mul, save 3 insns */
+ scale8 = vshrq_n_u16(scale8, 3);
+ dst_b = vmlaq_u16(vshll_n_u8(sb,2), dst_b, scale8);
+ dst_g = vmlaq_u16(vshll_n_u8(sg,3), dst_g, scale8);
+ dst_r = vmlaq_u16(vshll_n_u8(sr,2), dst_r, scale8);
#else
- /* known correct, but +3 insns over above */
- scale8 = vshrq_n_u16(scale8, 3);
- dst_b = vmulq_u16(dst_b, scale8);
- dst_g = vmulq_u16(dst_g, scale8);
- dst_r = vmulq_u16(dst_r, scale8);
-
- /* combine */
- /* NB: vshll widens, need to preserve those bits */
- dst_b = vaddq_u16(dst_b, vshll_n_u8(sb,2));
- dst_g = vaddq_u16(dst_g, vshll_n_u8(sg,3));
- dst_r = vaddq_u16(dst_r, vshll_n_u8(sr,2));
+ /* known correct, but +3 insns over above */
+ scale8 = vshrq_n_u16(scale8, 3);
+ dst_b = vmulq_u16(dst_b, scale8);
+ dst_g = vmulq_u16(dst_g, scale8);
+ dst_r = vmulq_u16(dst_r, scale8);
+
+ /* combine */
+ /* NB: vshll widens, need to preserve those bits */
+ dst_b = vaddq_u16(dst_b, vshll_n_u8(sb,2));
+ dst_g = vaddq_u16(dst_g, vshll_n_u8(sg,3));
+ dst_r = vaddq_u16(dst_r, vshll_n_u8(sr,2));
#endif
- /* repack to store */
- dst8 = vandq_u16(vshrq_n_u16(dst_b, 5), vdupq_n_u16(0x001F));
- dst8 = vsliq_n_u16(dst8, vshrq_n_u16(dst_g, 5), 5);
- dst8 = vsliq_n_u16(dst8, vshrq_n_u16(dst_r,5), 11);
-
- vst1q_u16(dst, dst8);
-
-#if defined(DEBUG_OPAQUE_DITHER)
- /* verify my 8 elements match the temp buffer */
- {
- int i, bad=0;
- static int invocation;
-
- for (i=0;i<UNROLL;i++)
- if (tmpbuf[i] != dst[i]) bad=1;
- if (bad) {
- SkDebugf("BAD S32A_D565_Opaque_Dither_neon(); invocation %d offset %d\n",
- invocation, offset);
- SkDebugf(" alpha 0x%x\n", alpha);
- for (i=0;i<UNROLL;i++)
- SkDebugf("%2d: %s %04x w %04x id %04x s %08x d %04x %04x %04x %04x\n",
- i, ((tmpbuf[i] != dst[i])?"BAD":"got"),
- dst[i], tmpbuf[i], in_dst[i], src[i], td[i], tdv[i], tap[i], ta[i]);
-
- showme16("alpha8", &alpha8, sizeof(alpha8));
- showme16("scale8", &scale8, sizeof(scale8));
- showme8("d", &d, sizeof(d));
- showme16("dst8", &dst8, sizeof(dst8));
- showme16("dst_b", &dst_b, sizeof(dst_b));
- showme16("dst_g", &dst_g, sizeof(dst_g));
- showme16("dst_r", &dst_r, sizeof(dst_r));
- showme8("sb", &sb, sizeof(sb));
- showme8("sg", &sg, sizeof(sg));
- showme8("sr", &sr, sizeof(sr));
-
- /* cop out */
- return;
- }
- offset += UNROLL;
- invocation++;
- }
+ /* repack to store */
+ dst8 = vandq_u16(vshrq_n_u16(dst_b, 5), vdupq_n_u16(0x001F));
+ dst8 = vsliq_n_u16(dst8, vshrq_n_u16(dst_g, 5), 5);
+ dst8 = vsliq_n_u16(dst8, vshrq_n_u16(dst_r,5), 11);
+
+ vst1q_u16(dst, dst8);
+
+#if defined(DEBUG_OPAQUE_DITHER)
+ /* verify my 8 elements match the temp buffer */
+ {
+ int i, bad=0;
+ static int invocation;
+
+ for (i=0;i<UNROLL;i++)
+ if (tmpbuf[i] != dst[i]) bad=1;
+ if (bad) {
+ SkDebugf("BAD S32A_D565_Opaque_Dither_neon(); invocation %d offset %d\n",
+ invocation, offset);
+ SkDebugf(" alpha 0x%x\n", alpha);
+ for (i=0;i<UNROLL;i++)
+ SkDebugf("%2d: %s %04x w %04x id %04x s %08x d %04x %04x %04x %04x\n",
+ i, ((tmpbuf[i] != dst[i])?"BAD":"got"),
+ dst[i], tmpbuf[i], in_dst[i], src[i], td[i], tdv[i], tap[i], ta[i]);
+
+ showme16("alpha8", &alpha8, sizeof(alpha8));
+ showme16("scale8", &scale8, sizeof(scale8));
+ showme8("d", &d, sizeof(d));
+ showme16("dst8", &dst8, sizeof(dst8));
+ showme16("dst_b", &dst_b, sizeof(dst_b));
+ showme16("dst_g", &dst_g, sizeof(dst_g));
+ showme16("dst_r", &dst_r, sizeof(dst_r));
+ showme8("sb", &sb, sizeof(sb));
+ showme8("sg", &sg, sizeof(sg));
+ showme8("sr", &sr, sizeof(sr));
+
+ /* cop out */
+ return;
+ }
+ offset += UNROLL;
+ invocation++;
+ }
#endif
dst += UNROLL;
- src += UNROLL;
- count -= UNROLL;
- /* skip x += UNROLL, since it's unchanged mod-4 */
+ src += UNROLL;
+ count -= UNROLL;
+ /* skip x += UNROLL, since it's unchanged mod-4 */
} while (count >= UNROLL);
}
-#undef UNROLL
+#undef UNROLL
/* residuals */
if (count > 0) {
@@ -840,20 +840,20 @@ void S32A_D565_Opaque_Dither_neon (uint16_t * SK_RESTRICT dst,
SkPMColorAssert(c);
if (c) {
unsigned a = SkGetPackedA32(c);
-
+
// dither and alpha are just temporary variables to work-around
// an ICE in debug.
unsigned dither = DITHER_VALUE(x);
unsigned alpha = SkAlpha255To256(a);
int d = SkAlphaMul(dither, alpha);
-
+
unsigned sr = SkGetPackedR32(c);
unsigned sg = SkGetPackedG32(c);
unsigned sb = SkGetPackedB32(c);
sr = SkDITHER_R32_FOR_565(sr, d);
sg = SkDITHER_G32_FOR_565(sg, d);
sb = SkDITHER_B32_FOR_565(sb, d);
-
+
uint32_t src_expanded = (sg << 24) | (sr << 13) | (sb << 2);
uint32_t dst_expanded = SkExpand_rgb_16(*dst);
dst_expanded = dst_expanded * (SkAlpha255To256(255 - a) >> 3);
@@ -875,89 +875,89 @@ void S32A_D565_Opaque_Dither_neon (uint16_t * SK_RESTRICT dst,
* not accounting for any instruction or memory latencies.
*/
-#undef DEBUG_S32_OPAQUE_DITHER
+#undef DEBUG_S32_OPAQUE_DITHER
void S32_D565_Opaque_Dither_neon(uint16_t* SK_RESTRICT dst,
const SkPMColor* SK_RESTRICT src,
int count, U8CPU alpha, int x, int y) {
SkASSERT(255 == alpha);
-#define UNROLL 8
+#define UNROLL 8
if (count >= UNROLL) {
- uint8x8_t d;
- const uint8_t *dstart = &gDitherMatrix_Neon[(y&3)*12 + (x&3)];
- d = vld1_u8(dstart);
-
- while (count >= UNROLL) {
- uint8x8_t sr, sg, sb, sa;
- uint16x8_t dr, dg, db, da;
- uint16x8_t dst8;
-
- /* source is in ABGR ordering (R == lsb) */
- {
- register uint8x8_t d0 asm("d0");
- register uint8x8_t d1 asm("d1");
- register uint8x8_t d2 asm("d2");
- register uint8x8_t d3 asm("d3");
-
- asm ("vld4.8 {d0-d3},[%4] /* r=%P0 g=%P1 b=%P2 a=%P3 */"
- : "=w" (d0), "=w" (d1), "=w" (d2), "=w" (d3)
- : "r" (src)
+ uint8x8_t d;
+ const uint8_t *dstart = &gDitherMatrix_Neon[(y&3)*12 + (x&3)];
+ d = vld1_u8(dstart);
+
+ while (count >= UNROLL) {
+ uint8x8_t sr, sg, sb, sa;
+ uint16x8_t dr, dg, db, da;
+ uint16x8_t dst8;
+
+ /* source is in ABGR ordering (R == lsb) */
+ {
+ register uint8x8_t d0 asm("d0");
+ register uint8x8_t d1 asm("d1");
+ register uint8x8_t d2 asm("d2");
+ register uint8x8_t d3 asm("d3");
+
+ asm ("vld4.8 {d0-d3},[%4] /* r=%P0 g=%P1 b=%P2 a=%P3 */"
+ : "=w" (d0), "=w" (d1), "=w" (d2), "=w" (d3)
+ : "r" (src)
);
- sr = d0; sg = d1; sb = d2; sa = d3;
- }
- /* XXX: if we want to prefetch, hide it in the above asm()
- * using the gcc __builtin_prefetch(), the prefetch will
- * fall to the bottom of the loop -- it won't stick up
- * at the top of the loop, just after the vld4.
- */
-
- /* sr = sr - (sr>>5) + d */
- sr = vsub_u8(sr, vshr_n_u8(sr, 5));
- dr = vaddl_u8(sr, d);
-
- /* sb = sb - (sb>>5) + d */
- sb = vsub_u8(sb, vshr_n_u8(sb, 5));
- db = vaddl_u8(sb, d);
-
- /* sg = sg - (sg>>6) + d>>1; similar logic for overflows */
- sg = vsub_u8(sg, vshr_n_u8(sg, 6));
- dg = vaddl_u8(sg, vshr_n_u8(d,1));
- /* XXX: check that the "d>>1" here is hoisted */
-
- /* pack high bits of each into 565 format (rgb, b is lsb) */
- dst8 = vshrq_n_u16(db, 3);
- dst8 = vsliq_n_u16(dst8, vshrq_n_u16(dg, 2), 5);
- dst8 = vsliq_n_u16(dst8, vshrq_n_u16(dr,3), 11);
-
- /* store it */
- vst1q_u16(dst, dst8);
-
-#if defined(DEBUG_S32_OPAQUE_DITHER)
- /* always good to know if we generated good results */
- {
- int i, myx = x, myy = y;
- DITHER_565_SCAN(myy);
- for (i=0;i<UNROLL;i++) {
- SkPMColor c = src[i];
- unsigned dither = DITHER_VALUE(myx);
- uint16_t val = SkDitherRGB32To565(c, dither);
- if (val != dst[i]) {
- SkDebugf("RBE: src %08x dither %02x, want %04x got %04x dbas[i] %02x\n",
- c, dither, val, dst[i], dstart[i]);
- }
- DITHER_INC_X(myx);
- }
- }
+ sr = d0; sg = d1; sb = d2; sa = d3;
+ }
+ /* XXX: if we want to prefetch, hide it in the above asm()
+ * using the gcc __builtin_prefetch(), the prefetch will
+ * fall to the bottom of the loop -- it won't stick up
+ * at the top of the loop, just after the vld4.
+ */
+
+ /* sr = sr - (sr>>5) + d */
+ sr = vsub_u8(sr, vshr_n_u8(sr, 5));
+ dr = vaddl_u8(sr, d);
+
+ /* sb = sb - (sb>>5) + d */
+ sb = vsub_u8(sb, vshr_n_u8(sb, 5));
+ db = vaddl_u8(sb, d);
+
+ /* sg = sg - (sg>>6) + d>>1; similar logic for overflows */
+ sg = vsub_u8(sg, vshr_n_u8(sg, 6));
+ dg = vaddl_u8(sg, vshr_n_u8(d,1));
+ /* XXX: check that the "d>>1" here is hoisted */
+
+ /* pack high bits of each into 565 format (rgb, b is lsb) */
+ dst8 = vshrq_n_u16(db, 3);
+ dst8 = vsliq_n_u16(dst8, vshrq_n_u16(dg, 2), 5);
+ dst8 = vsliq_n_u16(dst8, vshrq_n_u16(dr,3), 11);
+
+ /* store it */
+ vst1q_u16(dst, dst8);
+
+#if defined(DEBUG_S32_OPAQUE_DITHER)
+ /* always good to know if we generated good results */
+ {
+ int i, myx = x, myy = y;
+ DITHER_565_SCAN(myy);
+ for (i=0;i<UNROLL;i++) {
+ SkPMColor c = src[i];
+ unsigned dither = DITHER_VALUE(myx);
+ uint16_t val = SkDitherRGB32To565(c, dither);
+ if (val != dst[i]) {
+ SkDebugf("RBE: src %08x dither %02x, want %04x got %04x dbas[i] %02x\n",
+ c, dither, val, dst[i], dstart[i]);
+ }
+ DITHER_INC_X(myx);
+ }
+ }
#endif
- dst += UNROLL;
- src += UNROLL;
- count -= UNROLL;
- x += UNROLL; /* probably superfluous */
- }
+ dst += UNROLL;
+ src += UNROLL;
+ count -= UNROLL;
+ x += UNROLL; /* probably superfluous */
+ }
}
-#undef UNROLL
+#undef UNROLL
/* residuals */
if (count > 0) {
@@ -1106,7 +1106,7 @@ const SkBlitRow::Proc sk_blitrow_platform_4444_procs_arm_neon[] = {
const SkBlitRow::Proc32 sk_blitrow_platform_32_procs_arm_neon[] = {
NULL, // S32_Opaque,
- S32_Blend_BlitRow32_neon, // S32_Blend,
- S32A_Opaque_BlitRow32_neon, // S32A_Opaque,
- S32A_Blend_BlitRow32_arm // S32A_Blend
+ S32_Blend_BlitRow32_neon, // S32_Blend,
+ S32A_Opaque_BlitRow32_neon, // S32A_Opaque,
+ S32A_Blend_BlitRow32_arm // S32A_Blend
};
diff --git a/src/opts/SkUtils_opts_SSE2.cpp b/src/opts/SkUtils_opts_SSE2.cpp
index 63e7f2ce6d..08e4f66948 100644
--- a/src/opts/SkUtils_opts_SSE2.cpp
+++ b/src/opts/SkUtils_opts_SSE2.cpp
@@ -9,7 +9,7 @@
#include <emmintrin.h>
#include "SkUtils_opts_SSE2.h"
-
+
void sk_memset16_SSE2(uint16_t *dst, uint16_t value, int count)
{
SkASSERT(dst != NULL && count >= 0);
@@ -38,7 +38,7 @@ void sk_memset16_SSE2(uint16_t *dst, uint16_t value, int count)
--count;
}
}
-
+
void sk_memset32_SSE2(uint32_t *dst, uint32_t value, int count)
{
SkASSERT(dst != NULL && count >= 0);
diff --git a/src/opts/SkUtils_opts_SSE2.h b/src/opts/SkUtils_opts_SSE2.h
index 771656f923..ed24c1ffa4 100644
--- a/src/opts/SkUtils_opts_SSE2.h
+++ b/src/opts/SkUtils_opts_SSE2.h
@@ -8,6 +8,6 @@
#include "SkTypes.h"
-
+
void sk_memset16_SSE2(uint16_t *dst, uint16_t value, int count);
void sk_memset32_SSE2(uint32_t *dst, uint32_t value, int count);
diff --git a/src/opts/opts_check_SSE2.cpp b/src/opts/opts_check_SSE2.cpp
index 1a704b8057..96d0dea1cf 100644
--- a/src/opts/opts_check_SSE2.cpp
+++ b/src/opts/opts_check_SSE2.cpp
@@ -183,7 +183,7 @@ SkBlitMask::ColorProc SkBlitMask::PlatformColorProcs(SkBitmap::Config dstConfig,
if (SkMask::kA8_Format != maskFormat) {
return NULL;
}
-
+
ColorProc proc = NULL;
if (cachedHasSSE2()) {
switch (dstConfig) {