summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DEPS3
-rw-r--r--app/gfx/chrome_canvas.cc2
-rw-r--r--app/gfx/chrome_canvas_win.cc2
-rw-r--r--app/gfx/chrome_font.h2
-rw-r--r--app/gfx/chrome_font_skia.cc13
-rw-r--r--app/gfx/color_utils.cc2
-rw-r--r--app/gfx/color_utils.h2
-rw-r--r--app/gfx/icon_util.cc2
-rw-r--r--app/gfx/icon_util_unittest.cc2
-rw-r--r--app/theme_provider.h2
-rw-r--r--base/gfx/jpeg_codec.cc2
-rw-r--r--base/gfx/native_theme.cc2
-rw-r--r--base/gfx/native_theme.h2
-rw-r--r--base/gfx/png_decoder.cc2
-rw-r--r--base/gfx/png_encoder.cc2
-rw-r--r--chrome/app/chrome_dll_main.cc7
-rw-r--r--chrome/browser/autocomplete/autocomplete_edit.cc2
-rw-r--r--chrome/browser/bookmarks/bookmark_model.h2
-rw-r--r--chrome/browser/browser.h2
-rw-r--r--chrome/browser/chrome_plugin_host.cc2
-rw-r--r--chrome/browser/cocoa/location_bar_view_mac.mm2
-rw-r--r--chrome/browser/download/download_util.cc4
-rw-r--r--chrome/browser/extensions/extension_view.h2
-rw-r--r--chrome/browser/gears_integration.cc2
-rw-r--r--chrome/browser/gtk/location_bar_view_gtk.cc2
-rw-r--r--chrome/browser/gtk/menu_gtk.cc2
-rw-r--r--chrome/browser/gtk/sad_tab_gtk.cc2
-rw-r--r--chrome/browser/gtk/tabs/tab_renderer_gtk.h2
-rw-r--r--chrome/browser/history/page_usage_data.h2
-rw-r--r--chrome/browser/history/thumbnail_database.cc2
-rw-r--r--chrome/browser/history/thumbnail_database.h2
-rw-r--r--chrome/browser/icon_loader.cc2
-rw-r--r--chrome/browser/renderer_host/backing_store_mac.cc4
-rw-r--r--chrome/browser/renderer_host/browser_render_process_host.cc2
-rw-r--r--chrome/browser/renderer_host/render_view_host.cc2
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view.h2
-rw-r--r--chrome/browser/tab_contents/infobar_delegate.h2
-rw-r--r--chrome/browser/tab_contents/navigation_entry.h2
-rw-r--r--chrome/browser/toolbar_model.h2
-rw-r--r--chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc2
-rw-r--r--chrome/browser/views/bookmark_bar_view.h2
-rw-r--r--chrome/browser/views/find_bar_view.cc2
-rw-r--r--chrome/browser/views/hwnd_html_view.h2
-rw-r--r--chrome/browser/views/keyword_editor_view.cc2
-rw-r--r--chrome/browser/views/options/content_page_view.cc2
-rw-r--r--chrome/browser/views/options/fonts_page_view.cc2
-rw-r--r--chrome/browser/views/options/general_page_view.cc2
-rw-r--r--chrome/browser/views/options/languages_page_view.cc2
-rw-r--r--chrome/browser/views/page_info_window.cc2
-rw-r--r--chrome/browser/views/sad_tab_view.cc2
-rw-r--r--chrome/browser/views/status_bubble_views.cc6
-rw-r--r--chrome/browser/views/tabs/dragged_tab_controller.cc2
-rw-r--r--chrome/browser/views/tabs/dragged_tab_view.cc2
-rw-r--r--chrome/browser/views/tabs/dragged_tab_view.h2
-rw-r--r--chrome/browser/views/tabs/hwnd_photobooth.cc2
-rw-r--r--chrome/browser/webdata/web_database.h2
-rw-r--r--chrome/browser/webdata/web_database_unittest.cc2
-rw-r--r--chrome/common/gtk_util.cc2
-rw-r--r--chrome/common/render_messages.h2
-rw-r--r--chrome/common/render_messages_internal.h2
-rw-r--r--chrome/common/security_filter_peer.cc4
-rw-r--r--chrome/common/temp_scaffolding_stubs.h2
-rw-r--r--chrome/renderer/render_view.h2
-rw-r--r--chrome/renderer/render_widget.cc6
-rw-r--r--chrome/renderer/render_widget.h2
-rw-r--r--skia/config/SkUserConfig.h222
-rw-r--r--skia/config/win/stdint.h26
-rw-r--r--skia/ext/SkMemory_new_handler.cpp58
-rw-r--r--skia/ext/SkTypeface_fake.cpp17
-rw-r--r--skia/ext/image_operations.cc2
-rw-r--r--skia/ext/image_operations_unittest.cc2
-rw-r--r--skia/ext/skia_utils.cc3
-rw-r--r--skia/ext/skia_utils_unittest.cc2
-rw-r--r--skia/include/DoxygenMain.dox3
-rw-r--r--skia/include/Sk1DPathEffect.h93
-rw-r--r--skia/include/Sk2DPathEffect.h73
-rw-r--r--skia/include/SkAnimator.h508
-rw-r--r--skia/include/SkAnimatorView.h47
-rw-r--r--skia/include/SkApplication.h26
-rw-r--r--skia/include/SkAvoidXfermode.h73
-rw-r--r--skia/include/SkBGViewArtist.h41
-rw-r--r--skia/include/SkBML_WXMLParser.h54
-rw-r--r--skia/include/SkBML_XMLParser.h39
-rw-r--r--skia/include/SkBitmap.h684
-rw-r--r--skia/include/SkBlurDrawLooper.h69
-rw-r--r--skia/include/SkBlurMaskFilter.h58
-rw-r--r--skia/include/SkBorderView.h48
-rw-r--r--skia/include/SkBounder.h72
-rw-r--r--skia/include/SkCamera.h176
-rw-r--r--skia/include/SkCanvas.h794
-rw-r--r--skia/include/SkColor.h155
-rw-r--r--skia/include/SkColorFilter.h125
-rw-r--r--skia/include/SkColorMatrix.h53
-rw-r--r--skia/include/SkColorMatrixFilter.h67
-rw-r--r--skia/include/SkColorPriv.h657
-rw-r--r--skia/include/SkColorShader.h63
-rw-r--r--skia/include/SkCornerPathEffect.h61
-rw-r--r--skia/include/SkCullPoints.h75
-rw-r--r--skia/include/SkDOM.h100
-rw-r--r--skia/include/SkDashPathEffect.h65
-rw-r--r--skia/include/SkDeque.h74
-rw-r--r--skia/include/SkDescriptor.h187
-rw-r--r--skia/include/SkDevice.h142
-rw-r--r--skia/include/SkDiscretePathEffect.h56
-rw-r--r--skia/include/SkDither.h205
-rw-r--r--skia/include/SkDraw.h124
-rw-r--r--skia/include/SkDrawExtraPathEffect.h22
-rw-r--r--skia/include/SkDrawFilter.h56
-rw-r--r--skia/include/SkDrawLooper.h64
-rw-r--r--skia/include/SkEmbossMaskFilter.h63
-rw-r--r--skia/include/SkEvent.h244
-rw-r--r--skia/include/SkEventSink.h103
-rw-r--r--skia/include/SkFlattenable.h201
-rw-r--r--skia/include/SkFlipPixelRef.h114
-rw-r--r--skia/include/SkFontCodec.h36
-rw-r--r--skia/include/SkFontHost.h165
-rw-r--r--skia/include/SkGLCanvas.h80
-rw-r--r--skia/include/SkGlobals.h67
-rw-r--r--skia/include/SkGradientShader.h97
-rw-r--r--skia/include/SkGraphics.h46
-rw-r--r--skia/include/SkImageDecoder.h296
-rw-r--r--skia/include/SkImageRef.h102
-rw-r--r--skia/include/SkImageRef_GlobalPool.h72
-rw-r--r--skia/include/SkImageView.h75
-rw-r--r--skia/include/SkJS.h47
-rw-r--r--skia/include/SkKernel33MaskFilter.h73
-rw-r--r--skia/include/SkKey.h63
-rw-r--r--skia/include/SkLayerDrawLooper.h70
-rw-r--r--skia/include/SkLayerRasterizer.h63
-rw-r--r--skia/include/SkMMapStream.h38
-rw-r--r--skia/include/SkMallocPixelRef.h60
-rw-r--r--skia/include/SkMask.h92
-rw-r--r--skia/include/SkMaskFilter.h100
-rw-r--r--skia/include/SkMetaData.h154
-rw-r--r--skia/include/SkMovie.h83
-rw-r--r--skia/include/SkNinePatch.h40
-rw-r--r--skia/include/SkOSFile.h85
-rw-r--r--skia/include/SkOSMenu.h55
-rw-r--r--skia/include/SkOSSound.h36
-rw-r--r--skia/include/SkOSWindow_Mac.h49
-rw-r--r--skia/include/SkOSWindow_Unix.h60
-rw-r--r--skia/include/SkOSWindow_Win.h59
-rw-r--r--skia/include/SkOSWindow_wxwidgets.h52
-rw-r--r--skia/include/SkPackBits.h86
-rw-r--r--skia/include/SkPaint.h818
-rw-r--r--skia/include/SkPaintFlagsDrawFilter.h37
-rw-r--r--skia/include/SkParse.h45
-rw-r--r--skia/include/SkParsePaint.h34
-rw-r--r--skia/include/SkPath.h588
-rw-r--r--skia/include/SkPathEffect.h144
-rw-r--r--skia/include/SkPathMeasure.h115
-rw-r--r--skia/include/SkPicture.h124
-rw-r--r--skia/include/SkPixelRef.h152
-rw-r--r--skia/include/SkPixelXorXfermode.h50
-rw-r--r--skia/include/SkPorterDuff.h80
-rw-r--r--skia/include/SkProgressBarView.h57
-rw-r--r--skia/include/SkPtrRecorder.h48
-rw-r--r--skia/include/SkRasterizer.h50
-rw-r--r--skia/include/SkReader32.h115
-rw-r--r--skia/include/SkRefCnt.h134
-rw-r--r--skia/include/SkSVGAttribute.h49
-rw-r--r--skia/include/SkSVGBase.h33
-rw-r--r--skia/include/SkSVGPaintState.h96
-rw-r--r--skia/include/SkSVGParser.h81
-rw-r--r--skia/include/SkSVGTypes.h46
-rw-r--r--skia/include/SkScalerContext.h231
-rw-r--r--skia/include/SkScrollBarView.h52
-rw-r--r--skia/include/SkShader.h184
-rw-r--r--skia/include/SkShaderExtras.h66
-rw-r--r--skia/include/SkStackViewLayout.h96
-rw-r--r--skia/include/SkStream.h315
-rw-r--r--skia/include/SkStream_Win.h53
-rw-r--r--skia/include/SkString.h168
-rw-r--r--skia/include/SkStroke.h71
-rw-r--r--skia/include/SkSystemEventTypes.h32
-rw-r--r--skia/include/SkTDArray.h293
-rw-r--r--skia/include/SkTDStack.h120
-rw-r--r--skia/include/SkTDict.h169
-rw-r--r--skia/include/SkTextBox.h77
-rw-r--r--skia/include/SkTime.h72
-rw-r--r--skia/include/SkTransparentShader.h55
-rw-r--r--skia/include/SkTypeface.h131
-rw-r--r--skia/include/SkUnPreMultiply.h63
-rw-r--r--skia/include/SkUnitMapper.h38
-rw-r--r--skia/include/SkUnitMappers.h65
-rw-r--r--skia/include/SkUtils.h140
-rw-r--r--skia/include/SkView.h345
-rw-r--r--skia/include/SkViewInflate.h79
-rw-r--r--skia/include/SkWidget.h476
-rw-r--r--skia/include/SkWidgetViews.h310
-rw-r--r--skia/include/SkWindow.h102
-rw-r--r--skia/include/SkWriter32.h112
-rw-r--r--skia/include/SkXMLParser.h161
-rw-r--r--skia/include/SkXMLWriter.h93
-rw-r--r--skia/include/SkXfermode.h115
-rw-r--r--skia/include/corecg/Sk64.h245
-rw-r--r--skia/include/corecg/SkBuffer.h141
-rw-r--r--skia/include/corecg/SkChunkAlloc.h61
-rw-r--r--skia/include/corecg/SkEndian.h98
-rw-r--r--skia/include/corecg/SkFDot6.h67
-rw-r--r--skia/include/corecg/SkFixed.h253
-rw-r--r--skia/include/corecg/SkFloatBits.h150
-rw-r--r--skia/include/corecg/SkFloatingPoint.h75
-rw-r--r--skia/include/corecg/SkInterpolator.h139
-rw-r--r--skia/include/corecg/SkMath.h230
-rw-r--r--skia/include/corecg/SkMatrix.h476
-rw-r--r--skia/include/corecg/SkPageFlipper.h70
-rw-r--r--skia/include/corecg/SkPerspIter.h55
-rw-r--r--skia/include/corecg/SkPoint.h288
-rw-r--r--skia/include/corecg/SkPostConfig.h223
-rw-r--r--skia/include/corecg/SkPreConfig.h110
-rw-r--r--skia/include/corecg/SkRandom.h110
-rw-r--r--skia/include/corecg/SkRect.h435
-rw-r--r--skia/include/corecg/SkRegion.h349
-rw-r--r--skia/include/corecg/SkScalar.h254
-rw-r--r--skia/include/corecg/SkScalarCompare.h34
-rw-r--r--skia/include/corecg/SkTSearch.h167
-rw-r--r--skia/include/corecg/SkTemplates.h187
-rw-r--r--skia/include/corecg/SkThread.h68
-rw-r--r--skia/include/corecg/SkThread_platform.h71
-rw-r--r--skia/include/corecg/SkTypes.h382
-rw-r--r--skia/include/corecg/SkUserConfig.h178
-rw-r--r--skia/precompiled.vsprops13
-rw-r--r--skia/skia.gyp1124
-rw-r--r--skia/skia.vsprops14
-rw-r--r--skia/using_skia.vsprops2
-rw-r--r--views/background.cc2
-rw-r--r--views/background.h2
-rw-r--r--views/border.h2
-rw-r--r--views/controls/button/image_button.h2
-rw-r--r--views/controls/button/text_button.h2
-rw-r--r--views/controls/image_view.h2
-rw-r--r--views/controls/label.h2
-rw-r--r--views/controls/menu/chrome_menu.h2
-rw-r--r--views/controls/scrollbar/bitmap_scroll_bar.cc2
-rw-r--r--views/controls/tabbed_pane.cc2
-rw-r--r--views/controls/table/table_view.cc4
-rw-r--r--views/controls/table/table_view.h2
-rw-r--r--views/controls/text_field.h2
-rw-r--r--views/controls/throbber.cc2
-rw-r--r--views/focus/focus_manager_unittest.cc2
-rw-r--r--views/painter.cc4
-rw-r--r--views/painter.h2
-rw-r--r--views/view.cc2
-rw-r--r--views/widget/root_view_gtk.cc2
-rw-r--r--views/window/window_delegate.cc2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.pngbin29488 -> 29456 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.pngbin7431 -> 7430 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.pngbin8098 -> 8104 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.pngbin11214 -> 11108 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/backgrounds/size/zero-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/backgrounds/size/zero-expected.pngbin13833 -> 13734 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/canvas/canvas-as-image-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-direction-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-direction-expected.pngbin12448 -> 12199 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-disabled-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-disabled-expected.pngbin6926 -> 6850 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/menulist-no-overflow-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/menulist-no-overflow-expected.pngbin4496 -> 4482 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.pngbin3893 -> 3960 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/reflections/reflection-direction-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/reflections/reflection-direction-expected.pngbin797372 -> 810135 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/repaint/control-clip-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/repaint/control-clip-expected.pngbin16966 -> 16966 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/replaced/width100percent-checkbox-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/replaced/width100percent-checkbox-expected.pngbin5648 -> 5635 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.pngbin26293 -> 26289 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/custom/stroked-pattern-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/custom/stroked-pattern-expected.pngbin36207 -> 30038 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla/bugs/bug23235-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla/bugs/bug23235-expected.pngbin60362 -> 60004 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.pngbin169077 -> 169099 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.pngbin13234 -> 13200 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.pngbin4962 -> 4961 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.pngbin5252 -> 5257 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.pngbin7009 -> 6903 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/editing/inserting/4960120-1-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/editing/inserting/4960120-1-expected.pngbin3959 -> 3963 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/backgroundSize02-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/backgroundSize02-expected.pngbin38803 -> 41656 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/zero-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/zero-expected.pngbin5683 -> 5592 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-01-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-01-expected.pngbin19523 -> 17227 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-omit-right-slice-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-omit-right-slice-expected.pngbin18380 -> 18399 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-scale-transform-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-scale-transform-expected.pngbin47583 -> 43623 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/canvas/canvas-as-image-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/canvas/canvas-as-image-expected.pngbin3157 -> 3131 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrollbar-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrollbar-expected.pngbin4317 -> 4316 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrolled-type-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrolled-type-expected.pngbin4710 -> 4712 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.pngbin3892 -> 3959 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/layers/self-painting-outline-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/layers/self-painting-outline-expected.pngbin3947 -> 3979 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/overflow/overflow-focus-ring-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/overflow/overflow-focus-ring-expected.pngbin4648 -> 4650 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.pngbin797578 -> 810387 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.txt46
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-expected.pngbin5593 -> 5620 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-horizontal-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-horizontal-expected.pngbin5593 -> 5620 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/001-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/001-expected.pngbin27022 -> 17024 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/002-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/002-expected.pngbin24729 -> 17714 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/003-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/003-expected.pngbin24729 -> 17714 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/scrollbars/overflow-scrollbar-combinations-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/scrollbars/overflow-scrollbar-combinations-expected.pngbin26426 -> 26294 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/filters-blend-01-b-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/filters-blend-01-b-expected.pngbin5531 -> 7083 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.pngbin19936 -> 19932 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-01-b-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-01-b-expected.pngbin5531 -> 21246 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-03-t-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-03-t-expected.pngbin5531 -> 25277 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/carto.net/window-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/carto.net/window-expected.pngbin17044 -> 17060 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/js-late-pattern-creation-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/js-late-pattern-creation-expected.pngbin8284 -> 8508 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.pngbin5531 -> 32387 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/stroked-pattern-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/stroked-pattern-expected.pngbin34027 -> 27839 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug12910-2-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug12910-2-expected.pngbin2346 -> 2284 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1296-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1296-expected.pngbin19238 -> 19238 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug137388-2-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug137388-2-expected.pngbin28861 -> 25564 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1430-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1430-expected.pngbin27566 -> 27566 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug23235-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug23235-expected.pngbin50149 -> 49813 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4093-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4093-expected.pngbin39432 -> 39548 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4427-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4427-expected.pngbin20320 -> 20618 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4523-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4523-expected.pngbin4638 -> 4628 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug625-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug625-expected.pngbin61370 -> 61372 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug86708-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug86708-expected.pngbin51332 -> 51952 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/core/bloomberg-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/core/bloomberg-expected.pngbin133980 -> 133979 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug1647-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug1647-expected.pngbin18021 -> 18032 bytes
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.checksum2
-rw-r--r--webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.pngbin169213 -> 169223 bytes
-rw-r--r--webkit/glue/image_resource_fetcher.cc2
-rw-r--r--webkit/glue/webcursor_win.cc2
-rw-r--r--webkit/glue/webkit_glue.cc2
-rw-r--r--webkit/tools/layout_tests/test_expectations.txt10
372 files changed, 1035 insertions, 21270 deletions
diff --git a/DEPS b/DEPS
index ac5fd8c..9f556c5 100644
--- a/DEPS
+++ b/DEPS
@@ -31,6 +31,9 @@ deps = {
"src/v8":
"http://v8.googlecode.com/svn/trunk@1927",
+ "src/third_party/skia":
+ "http://skia.googlecode.com/svn/trunk@171",
+
"src/webkit/data/layout_tests/LayoutTests":
Var("webkit_trunk") + "/LayoutTests@" + Var("webkit_revision"),
diff --git a/app/gfx/chrome_canvas.cc b/app/gfx/chrome_canvas.cc
index dfb1936..9898168 100644
--- a/app/gfx/chrome_canvas.cc
+++ b/app/gfx/chrome_canvas.cc
@@ -10,7 +10,7 @@
#include "app/l10n_util.h"
#include "base/gfx/rect.h"
#include "base/logging.h"
-#include "skia/include/SkShader.h"
+#include "third_party/skia/include/core/SkShader.h"
bool ChromeCanvas::GetClipRect(gfx::Rect* r) {
SkRect clip;
diff --git a/app/gfx/chrome_canvas_win.cc b/app/gfx/chrome_canvas_win.cc
index 76ca4d7..e1d2da85a 100644
--- a/app/gfx/chrome_canvas_win.cc
+++ b/app/gfx/chrome_canvas_win.cc
@@ -9,7 +9,7 @@
#include "app/gfx/chrome_font.h"
#include "app/l10n_util.h"
#include "base/gfx/rect.h"
-#include "skia/include/SkShader.h"
+#include "third_party/skia/include/core/SkShader.h"
namespace {
diff --git a/app/gfx/chrome_font.h b/app/gfx/chrome_font.h
index 3672593..e0479f4 100644
--- a/app/gfx/chrome_font.h
+++ b/app/gfx/chrome_font.h
@@ -12,7 +12,7 @@
#if defined(OS_WIN)
typedef struct HFONT__* HFONT;
#elif defined(OS_LINUX)
-#include "skia/include/SkRefCnt.h"
+#include "third_party/skia/include/core/SkRefCnt.h"
class SkPaint;
class SkTypeface;
#endif
diff --git a/app/gfx/chrome_font_skia.cc b/app/gfx/chrome_font_skia.cc
index 87f4ad6..6c1b6d5 100644
--- a/app/gfx/chrome_font_skia.cc
+++ b/app/gfx/chrome_font_skia.cc
@@ -7,8 +7,8 @@
#include "base/logging.h"
#include "base/sys_string_conversions.h"
-#include "skia/include/SkTypeface.h"
-#include "skia/include/SkPaint.h"
+#include "third_party/skia/include/core/SkTypeface.h"
+#include "third_party/skia/include/core/SkPaint.h"
ChromeFont::ChromeFont(const ChromeFont& other) {
CopyChromeFont(other);
@@ -80,8 +80,8 @@ ChromeFont ChromeFont::CreateFont(const std::wstring& font_family,
int font_size) {
DCHECK_GT(font_size, 0);
- SkTypeface* tf = SkTypeface::Create(base::SysWideToUTF8(font_family).c_str(),
- SkTypeface::kNormal);
+ SkTypeface* tf = SkTypeface::CreateFromName(
+ base::SysWideToUTF8(font_family).c_str(), SkTypeface::kNormal);
DCHECK(tf) << "Could not find font: " << base::SysWideToUTF8(font_family);
SkAutoUnref tf_helper(tf);
@@ -106,8 +106,9 @@ ChromeFont ChromeFont::DeriveFont(int size_delta, int style) const {
if (ITALIC & style)
skstyle |= SkTypeface::kItalic;
- SkTypeface* tf = SkTypeface::Create(base::SysWideToUTF8(font_family_).c_str(),
- static_cast<SkTypeface::Style>(skstyle));
+ SkTypeface* tf = SkTypeface::CreateFromName(
+ base::SysWideToUTF8(font_family_).c_str(),
+ static_cast<SkTypeface::Style>(skstyle));
SkAutoUnref tf_helper(tf);
return ChromeFont(tf, font_family_, font_size_ + size_delta, skstyle);
diff --git a/app/gfx/color_utils.cc b/app/gfx/color_utils.cc
index 6378723..70ef31c 100644
--- a/app/gfx/color_utils.cc
+++ b/app/gfx/color_utils.cc
@@ -15,7 +15,7 @@
#if defined(OS_WIN)
#include "skia/ext/skia_utils_win.h"
#endif
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
namespace color_utils {
diff --git a/app/gfx/color_utils.h b/app/gfx/color_utils.h
index 706361d..9fb9cd4 100644
--- a/app/gfx/color_utils.h
+++ b/app/gfx/color_utils.h
@@ -5,7 +5,7 @@
#ifndef APP_GFX_COLOR_UTILS_H_
#define APP_GFX_COLOR_UTILS_H_
-#include "skia/include/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
class SkBitmap;
diff --git a/app/gfx/icon_util.cc b/app/gfx/icon_util.cc
index 5efa8e4..42c0c38 100644
--- a/app/gfx/icon_util.cc
+++ b/app/gfx/icon_util.cc
@@ -9,7 +9,7 @@
#include "base/gfx/size.h"
#include "base/logging.h"
#include "skia/ext/image_operations.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
// Defining the dimensions for the icon images. We store only one value because
// we always resize to a square image; that is, the value 48 means that we are
diff --git a/app/gfx/icon_util_unittest.cc b/app/gfx/icon_util_unittest.cc
index 577489c..ed65ca52 100644
--- a/app/gfx/icon_util_unittest.cc
+++ b/app/gfx/icon_util_unittest.cc
@@ -8,7 +8,7 @@
#include "base/file_util.h"
#include "base/path_service.h"
#include "chrome/common/chrome_paths.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace {
diff --git a/app/theme_provider.h b/app/theme_provider.h
index ebc94c6..7257886 100644
--- a/app/theme_provider.h
+++ b/app/theme_provider.h
@@ -5,7 +5,7 @@
#ifndef APP_THEME_PROVIDER_H_
#define APP_THEME_PROVIDER_H_
-#include "skia/include/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
class SkBitmap;
diff --git a/base/gfx/jpeg_codec.cc b/base/gfx/jpeg_codec.cc
index d78ca8e..f611bf0 100644
--- a/base/gfx/jpeg_codec.cc
+++ b/base/gfx/jpeg_codec.cc
@@ -8,7 +8,7 @@
#include "base/logging.h"
#include "base/scoped_ptr.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
extern "C" {
#include "third_party/libjpeg/jpeglib.h"
diff --git a/base/gfx/native_theme.cc b/base/gfx/native_theme.cc
index 39ca39d..c2d7682 100644
--- a/base/gfx/native_theme.cc
+++ b/base/gfx/native_theme.cc
@@ -15,7 +15,7 @@
#include "base/scoped_handle.h"
#include "skia/ext/platform_canvas.h"
#include "skia/ext/skia_utils_win.h"
-#include "skia/include/SkShader.h"
+#include "third_party/skia/include/core/SkShader.h"
namespace {
diff --git a/base/gfx/native_theme.h b/base/gfx/native_theme.h
index 519bf94..7769c4e 100644
--- a/base/gfx/native_theme.h
+++ b/base/gfx/native_theme.h
@@ -15,7 +15,7 @@
#include <uxtheme.h>
#include "base/basictypes.h"
#include "base/gfx/size.h"
-#include "skia/include/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
namespace skia {
class PlatformCanvasWin;
diff --git a/base/gfx/png_decoder.cc b/base/gfx/png_decoder.cc
index e730a62..1a45057 100644
--- a/base/gfx/png_decoder.cc
+++ b/base/gfx/png_decoder.cc
@@ -5,7 +5,7 @@
#include "base/gfx/png_decoder.h"
#include "base/logging.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
extern "C" {
#include "third_party/libpng/png.h"
diff --git a/base/gfx/png_encoder.cc b/base/gfx/png_encoder.cc
index 0513429..5021721 100644
--- a/base/gfx/png_encoder.cc
+++ b/base/gfx/png_encoder.cc
@@ -5,7 +5,7 @@
#include "base/basictypes.h"
#include "base/gfx/png_encoder.h"
#include "base/logging.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
extern "C" {
#include "third_party/libpng/png.h"
diff --git a/chrome/app/chrome_dll_main.cc b/chrome/app/chrome_dll_main.cc
index e5f5b3c..be727ef 100644
--- a/chrome/app/chrome_dll_main.cc
+++ b/chrome/app/chrome_dll_main.cc
@@ -63,7 +63,6 @@
#if defined(OS_MACOSX)
#include "third_party/WebKit/WebKit/mac/WebCoreSupport/WebSystemInterface.h"
#endif
-#include "skia/include/corecg/SkTypes.h"
extern int BrowserMain(const MainFunctionParams&);
extern int RendererMain(const MainFunctionParams&);
@@ -114,12 +113,6 @@ void PureCall() {
}
void OnNoMemory() {
- // Skia indicates that it can safely handle some NULL allocs by clearing
- // this flag. In this case, we'll ignore the new_handler and won't crash.
- if (!sk_malloc_will_throw()) {
- return;
- }
-
// Kill the process. This is important for security, since WebKit doesn't
// NULL-check many memory allocations. If a malloc fails, returns NULL, and
// the buffer is then used, it provides a handy mapping of memory starting at
diff --git a/chrome/browser/autocomplete/autocomplete_edit.cc b/chrome/browser/autocomplete/autocomplete_edit.cc
index 98473ed..2ab706b3 100644
--- a/chrome/browser/autocomplete/autocomplete_edit.cc
+++ b/chrome/browser/autocomplete/autocomplete_edit.cc
@@ -17,7 +17,7 @@
#include "chrome/common/notification_service.h"
#include "googleurl/src/gurl.h"
#include "googleurl/src/url_util.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
///////////////////////////////////////////////////////////////////////////////
// AutocompleteEditModel
diff --git a/chrome/browser/bookmarks/bookmark_model.h b/chrome/browser/bookmarks/bookmark_model.h
index c0451e5..ac32fc0 100644
--- a/chrome/browser/bookmarks/bookmark_model.h
+++ b/chrome/browser/bookmarks/bookmark_model.h
@@ -20,7 +20,7 @@
#include "chrome/browser/history/history_types.h"
#include "chrome/common/notification_observer.h"
#include "googleurl/src/gurl.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "testing/gtest/include/gtest/gtest_prod.h"
#include "views/controls/tree/tree_node_model.h"
diff --git a/chrome/browser/browser.h b/chrome/browser/browser.h
index 030d6b8..68c7037 100644
--- a/chrome/browser/browser.h
+++ b/chrome/browser/browser.h
@@ -25,7 +25,7 @@
#include "base/gfx/rect.h"
#include "base/scoped_ptr.h"
#include "base/task.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
class BrowserIdleTimer;
class BrowserWindow;
diff --git a/chrome/browser/chrome_plugin_host.cc b/chrome/browser/chrome_plugin_host.cc
index 66c0183..08ad7e7 100644
--- a/chrome/browser/chrome_plugin_host.cc
+++ b/chrome/browser/chrome_plugin_host.cc
@@ -41,7 +41,7 @@
#include "net/base/cookie_monster.h"
#include "net/url_request/url_request_context.h"
#include "net/url_request/url_request_error_job.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
using base::TimeDelta;
diff --git a/chrome/browser/cocoa/location_bar_view_mac.mm b/chrome/browser/cocoa/location_bar_view_mac.mm
index 138a567..7da3091 100644
--- a/chrome/browser/cocoa/location_bar_view_mac.mm
+++ b/chrome/browser/cocoa/location_bar_view_mac.mm
@@ -10,7 +10,7 @@
#import "chrome/browser/app_controller_mac.h"
#import "chrome/browser/autocomplete/autocomplete_edit_view_mac.h"
#include "chrome/browser/command_updater.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
// TODO(shess): This code is mostly copied from the gtk
// implementation. Make sure it's all appropriate and flesh it out.
diff --git a/chrome/browser/download/download_util.cc b/chrome/browser/download/download_util.cc
index 82b01b9..111baeb 100644
--- a/chrome/browser/download/download_util.cc
+++ b/chrome/browser/download/download_util.cc
@@ -19,8 +19,8 @@
#include "grit/locale_settings.h"
#include "grit/theme_resources.h"
#include "skia/ext/image_operations.h"
-#include "skia/include/SkPath.h"
-#include "skia/include/SkShader.h"
+#include "third_party/skia/include/core/SkPath.h"
+#include "third_party/skia/include/core/SkShader.h"
#if defined(OS_WIN)
#include "app/os_exchange_data.h"
diff --git a/chrome/browser/extensions/extension_view.h b/chrome/browser/extensions/extension_view.h
index 5b3efc5..d58fdc7 100644
--- a/chrome/browser/extensions/extension_view.h
+++ b/chrome/browser/extensions/extension_view.h
@@ -10,7 +10,7 @@
#include "base/scoped_ptr.h"
#include "chrome/browser/extensions/extension_host.h"
#include "googleurl/src/gurl.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
// TODO(port): Port these files.
#if defined(OS_WIN)
diff --git a/chrome/browser/gears_integration.cc b/chrome/browser/gears_integration.cc
index 92f031f..6805175 100644
--- a/chrome/browser/gears_integration.cc
+++ b/chrome/browser/gears_integration.cc
@@ -13,7 +13,7 @@
#include "chrome/common/gears_api.h"
#include "googleurl/src/gurl.h"
#include "net/base/base64.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "webkit/glue/dom_operations.h"
// The following 2 helpers are borrowed from the Gears codebase.
diff --git a/chrome/browser/gtk/location_bar_view_gtk.cc b/chrome/browser/gtk/location_bar_view_gtk.cc
index 5fa71e0..46ee12c 100644
--- a/chrome/browser/gtk/location_bar_view_gtk.cc
+++ b/chrome/browser/gtk/location_bar_view_gtk.cc
@@ -18,7 +18,7 @@
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/common/gtk_util.h"
#include "chrome/common/page_transition_types.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "webkit/glue/window_open_disposition.h"
namespace {
diff --git a/chrome/browser/gtk/menu_gtk.cc b/chrome/browser/gtk/menu_gtk.cc
index ca3da0e..5ffac91 100644
--- a/chrome/browser/gtk/menu_gtk.cc
+++ b/chrome/browser/gtk/menu_gtk.cc
@@ -9,7 +9,7 @@
#include "base/stl_util-inl.h"
#include "base/string_util.h"
#include "chrome/common/gtk_util.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
MenuGtk::MenuGtk(MenuGtk::Delegate* delegate,
const MenuCreateMaterial* menu_data,
diff --git a/chrome/browser/gtk/sad_tab_gtk.cc b/chrome/browser/gtk/sad_tab_gtk.cc
index e11f3aa..4ec8e19 100644
--- a/chrome/browser/gtk/sad_tab_gtk.cc
+++ b/chrome/browser/gtk/sad_tab_gtk.cc
@@ -15,7 +15,7 @@
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
#include "skia/ext/skia_utils.h"
-#include "skia/include/SkGradientShader.h"
+#include "third_party/skia/include/effects/SkGradientShader.h"
namespace {
diff --git a/chrome/browser/gtk/tabs/tab_renderer_gtk.h b/chrome/browser/gtk/tabs/tab_renderer_gtk.h
index a2f4721..e3d3a91 100644
--- a/chrome/browser/gtk/tabs/tab_renderer_gtk.h
+++ b/chrome/browser/gtk/tabs/tab_renderer_gtk.h
@@ -14,7 +14,7 @@
#include "base/basictypes.h"
#include "base/gfx/rect.h"
#include "chrome/common/owned_widget_gtk.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
namespace gfx {
class Size;
diff --git a/chrome/browser/history/page_usage_data.h b/chrome/browser/history/page_usage_data.h
index e281078..57b0be1 100644
--- a/chrome/browser/history/page_usage_data.h
+++ b/chrome/browser/history/page_usage_data.h
@@ -9,7 +9,7 @@
#include "chrome/browser/history/history.h"
#include "chrome/browser/history/history_types.h"
#include "googleurl/src/gurl.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
/////////////////////////////////////////////////////////////////////////////
//
diff --git a/chrome/browser/history/thumbnail_database.cc b/chrome/browser/history/thumbnail_database.cc
index fcd5332..cab27dc 100644
--- a/chrome/browser/history/thumbnail_database.cc
+++ b/chrome/browser/history/thumbnail_database.cc
@@ -12,7 +12,7 @@
#include "chrome/browser/history/url_database.h"
#include "chrome/common/sqlite_utils.h"
#include "chrome/common/thumbnail_score.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
using base::Time;
diff --git a/chrome/browser/history/thumbnail_database.h b/chrome/browser/history/thumbnail_database.h
index e774a86..50ee8aa 100644
--- a/chrome/browser/history/thumbnail_database.h
+++ b/chrome/browser/history/thumbnail_database.h
@@ -12,7 +12,7 @@
#include "chrome/browser/history/url_database.h" // For DBCloseScoper.
#include "chrome/browser/meta_table_helper.h"
#include "chrome/common/sqlite_compiled_statement.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
struct sqlite3;
struct ThumbnailScore;
diff --git a/chrome/browser/icon_loader.cc b/chrome/browser/icon_loader.cc
index 6896427..75335a7 100644
--- a/chrome/browser/icon_loader.cc
+++ b/chrome/browser/icon_loader.cc
@@ -7,7 +7,7 @@
#include "base/message_loop.h"
#include "base/thread.h"
#include "chrome/browser/browser_process.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
IconLoader::IconLoader(const IconGroupID& group, IconSize size,
Delegate* delegate)
diff --git a/chrome/browser/renderer_host/backing_store_mac.cc b/chrome/browser/renderer_host/backing_store_mac.cc
index cacc6f0..1d00d28 100644
--- a/chrome/browser/renderer_host/backing_store_mac.cc
+++ b/chrome/browser/renderer_host/backing_store_mac.cc
@@ -7,8 +7,8 @@
#include "base/logging.h"
#include "chrome/common/transport_dib.h"
#include "skia/ext/platform_canvas.h"
-#include "skia/include/SkBitmap.h"
-#include "skia/include/SkCanvas.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+#include "third_party/skia/include/core/SkCanvas.h"
BackingStore::BackingStore(const gfx::Size& size)
: size_(size) {
diff --git a/chrome/browser/renderer_host/browser_render_process_host.cc b/chrome/browser/renderer_host/browser_render_process_host.cc
index f960a1e..b5f9b4b 100644
--- a/chrome/browser/renderer_host/browser_render_process_host.cc
+++ b/chrome/browser/renderer_host/browser_render_process_host.cc
@@ -67,7 +67,7 @@ using WebKit::WebCache;
#include "chrome/common/temp_scaffolding_stubs.h"
#endif
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
// This class creates the IO thread for the renderer when running in
diff --git a/chrome/browser/renderer_host/render_view_host.cc b/chrome/browser/renderer_host/render_view_host.cc
index 0083ad9..0f3141f 100644
--- a/chrome/browser/renderer_host/render_view_host.cc
+++ b/chrome/browser/renderer_host/render_view_host.cc
@@ -37,7 +37,7 @@
#include "chrome/common/thumbnail_score.h"
#include "chrome/common/url_constants.h"
#include "net/base/net_util.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "webkit/api/public/WebFindOptions.h"
#include "webkit/glue/autofill_form.h"
diff --git a/chrome/browser/renderer_host/render_widget_host_view.h b/chrome/browser/renderer_host/render_widget_host_view.h
index 2e1d1b5..979f22b 100644
--- a/chrome/browser/renderer_host/render_widget_host_view.h
+++ b/chrome/browser/renderer_host/render_widget_host_view.h
@@ -7,7 +7,7 @@
#include "base/gfx/native_widget_types.h"
#include "base/shared_memory.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "webkit/glue/webplugin.h"
#include "webkit/glue/webwidget_delegate.h"
diff --git a/chrome/browser/tab_contents/infobar_delegate.h b/chrome/browser/tab_contents/infobar_delegate.h
index 25db94d..6f44dd2 100644
--- a/chrome/browser/tab_contents/infobar_delegate.h
+++ b/chrome/browser/tab_contents/infobar_delegate.h
@@ -9,7 +9,7 @@
#include "base/basictypes.h"
#include "chrome/browser/tab_contents/navigation_controller.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "webkit/glue/window_open_disposition.h"
class AlertInfoBarDelegate;
diff --git a/chrome/browser/tab_contents/navigation_entry.h b/chrome/browser/tab_contents/navigation_entry.h
index fb8a225..8e55746 100644
--- a/chrome/browser/tab_contents/navigation_entry.h
+++ b/chrome/browser/tab_contents/navigation_entry.h
@@ -13,7 +13,7 @@
#include "chrome/common/page_transition_types.h"
#include "googleurl/src/gurl.h"
#include "grit/theme_resources.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
class NavigationController;
diff --git a/chrome/browser/toolbar_model.h b/chrome/browser/toolbar_model.h
index daf3cea..e0935fd 100644
--- a/chrome/browser/toolbar_model.h
+++ b/chrome/browser/toolbar_model.h
@@ -8,7 +8,7 @@
#include <string>
#include "base/basictypes.h"
-#include "skia/include/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
class NavigationController;
class NavigationEntry;
diff --git a/chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc b/chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc
index c133ee7..d62465f 100644
--- a/chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc
+++ b/chrome/browser/views/autocomplete/autocomplete_popup_contents_view.cc
@@ -18,7 +18,7 @@
#include "chrome/browser/views/autocomplete/autocomplete_popup_win.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
-#include "skia/include/SkShader.h"
+#include "third_party/skia/include/core/SkShader.h"
#include "third_party/icu38/public/common/unicode/ubidi.h"
#include "views/widget/widget.h"
diff --git a/chrome/browser/views/bookmark_bar_view.h b/chrome/browser/views/bookmark_bar_view.h
index f9d3ee0..a56f51a 100644
--- a/chrome/browser/views/bookmark_bar_view.h
+++ b/chrome/browser/views/bookmark_bar_view.h
@@ -15,7 +15,7 @@
#include "views/controls/menu/menu.h"
#include "views/controls/menu/view_menu_delegate.h"
#include "views/view.h"
-#include "skia/include/corecg/SkRect.h"
+#include "third_party/skia/include/core/SkRect.h"
class Browser;
class PageNavigator;
diff --git a/chrome/browser/views/find_bar_view.cc b/chrome/browser/views/find_bar_view.cc
index 246857f..f027535 100644
--- a/chrome/browser/views/find_bar_view.cc
+++ b/chrome/browser/views/find_bar_view.cc
@@ -16,7 +16,7 @@
#include "chrome/browser/view_ids.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
-#include "skia/include/SkGradientShader.h"
+#include "third_party/skia/include/effects/SkGradientShader.h"
#include "views/background.h"
#include "views/controls/button/image_button.h"
#include "views/controls/label.h"
diff --git a/chrome/browser/views/hwnd_html_view.h b/chrome/browser/views/hwnd_html_view.h
index 699b67f..5cd9dee 100644
--- a/chrome/browser/views/hwnd_html_view.h
+++ b/chrome/browser/views/hwnd_html_view.h
@@ -6,7 +6,7 @@
#define CHROME_BROWSER_VIEWS_HWND_HTML_VIEW_H_
#include "googleurl/src/gurl.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "views/controls/hwnd_view.h"
class RenderViewHost;
diff --git a/chrome/browser/views/keyword_editor_view.cc b/chrome/browser/views/keyword_editor_view.cc
index 4dd4296..8f67db9 100644
--- a/chrome/browser/views/keyword_editor_view.cc
+++ b/chrome/browser/views/keyword_editor_view.cc
@@ -23,7 +23,7 @@
#include "grit/generated_resources.h"
#include "grit/locale_settings.h"
#include "grit/theme_resources.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "views/background.h"
#include "views/grid_layout.h"
#include "views/controls/button/native_button.h"
diff --git a/chrome/browser/views/options/content_page_view.cc b/chrome/browser/views/options/content_page_view.cc
index badd2f6..abd1d9b 100644
--- a/chrome/browser/views/options/content_page_view.cc
+++ b/chrome/browser/views/options/content_page_view.cc
@@ -26,7 +26,7 @@
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
#include "skia/ext/skia_utils_win.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "views/controls/button/radio_button.h"
#include "views/controls/text_field.h"
#include "views/grid_layout.h"
diff --git a/chrome/browser/views/options/fonts_page_view.cc b/chrome/browser/views/options/fonts_page_view.cc
index d9256ea..09db2ff 100644
--- a/chrome/browser/views/options/fonts_page_view.cc
+++ b/chrome/browser/views/options/fonts_page_view.cc
@@ -26,7 +26,7 @@
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
#include "grit/locale_settings.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "views/controls/button/native_button.h"
#include "views/controls/text_field.h"
#include "views/grid_layout.h"
diff --git a/chrome/browser/views/options/general_page_view.cc b/chrome/browser/views/options/general_page_view.cc
index 2726b83..eb4675c 100644
--- a/chrome/browser/views/options/general_page_view.cc
+++ b/chrome/browser/views/options/general_page_view.cc
@@ -31,7 +31,7 @@
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "views/controls/button/radio_button.h"
#include "views/controls/label.h"
#include "views/controls/table/table_view.h"
diff --git a/chrome/browser/views/options/languages_page_view.cc b/chrome/browser/views/options/languages_page_view.cc
index 06d2ad1..ef26566 100644
--- a/chrome/browser/views/options/languages_page_view.cc
+++ b/chrome/browser/views/options/languages_page_view.cc
@@ -26,7 +26,7 @@
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "unicode/uloc.h"
#include "views/controls/button/radio_button.h"
#include "views/controls/combo_box.h"
diff --git a/chrome/browser/views/page_info_window.cc b/chrome/browser/views/page_info_window.cc
index b2f8a68..3c045b7 100644
--- a/chrome/browser/views/page_info_window.cc
+++ b/chrome/browser/views/page_info_window.cc
@@ -24,7 +24,7 @@
#include "grit/theme_resources.h"
#include "net/base/cert_status_flags.h"
#include "net/base/x509_certificate.h"
-#include "skia/include/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
#include "views/background.h"
#include "views/grid_layout.h"
#include "views/controls/button/native_button.h"
diff --git a/chrome/browser/views/sad_tab_view.cc b/chrome/browser/views/sad_tab_view.cc
index ea52cc0..71313cc 100644
--- a/chrome/browser/views/sad_tab_view.cc
+++ b/chrome/browser/views/sad_tab_view.cc
@@ -11,7 +11,7 @@
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
#include "skia/ext/skia_utils.h"
-#include "skia/include/SkGradientShader.h"
+#include "third_party/skia/include/effects/SkGradientShader.h"
static const int kSadTabOffset = -64;
static const int kIconTitleSpacing = 20;
diff --git a/chrome/browser/views/status_bubble_views.cc b/chrome/browser/views/status_bubble_views.cc
index e47b4ea..3e4d7c4 100644
--- a/chrome/browser/views/status_bubble_views.cc
+++ b/chrome/browser/views/status_bubble_views.cc
@@ -17,9 +17,9 @@
#include "grit/generated_resources.h"
#include "grit/theme_resources.h"
#include "net/base/net_util.h"
-#include "skia/include/SkPaint.h"
-#include "skia/include/SkPath.h"
-#include "skia/include/corecg/SkRect.h"
+#include "third_party/skia/include/core/SkPaint.h"
+#include "third_party/skia/include/core/SkPath.h"
+#include "third_party/skia/include/core/SkRect.h"
#include "views/controls/label.h"
#include "views/widget/root_view.h"
#include "views/widget/widget_win.h"
diff --git a/chrome/browser/views/tabs/dragged_tab_controller.cc b/chrome/browser/views/tabs/dragged_tab_controller.cc
index 56ed9c7..bcc4b8c 100644
--- a/chrome/browser/views/tabs/dragged_tab_controller.cc
+++ b/chrome/browser/views/tabs/dragged_tab_controller.cc
@@ -22,7 +22,7 @@
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/common/notification_service.h"
#include "grit/theme_resources.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "views/event.h"
#include "views/widget/root_view.h"
diff --git a/chrome/browser/views/tabs/dragged_tab_view.cc b/chrome/browser/views/tabs/dragged_tab_view.cc
index df143e5..ae42710 100644
--- a/chrome/browser/views/tabs/dragged_tab_view.cc
+++ b/chrome/browser/views/tabs/dragged_tab_view.cc
@@ -9,7 +9,7 @@
#include "chrome/browser/tabs/tab_strip_model.h"
#include "chrome/browser/views/tabs/hwnd_photobooth.h"
#include "chrome/browser/views/tabs/tab_renderer.h"
-#include "skia/include/SkShader.h"
+#include "third_party/skia/include/core/SkShader.h"
#include "views/widget/widget_win.h"
const int kTransparentAlpha = 200;
diff --git a/chrome/browser/views/tabs/dragged_tab_view.h b/chrome/browser/views/tabs/dragged_tab_view.h
index f73d8eb..1ee9d25 100644
--- a/chrome/browser/views/tabs/dragged_tab_view.h
+++ b/chrome/browser/views/tabs/dragged_tab_view.h
@@ -9,7 +9,7 @@
#include "base/gfx/point.h"
#include "base/gfx/size.h"
#include "base/task.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "views/view.h"
namespace views {
diff --git a/chrome/browser/views/tabs/hwnd_photobooth.cc b/chrome/browser/views/tabs/hwnd_photobooth.cc
index 8d59592..79de995 100644
--- a/chrome/browser/views/tabs/hwnd_photobooth.cc
+++ b/chrome/browser/views/tabs/hwnd_photobooth.cc
@@ -6,7 +6,7 @@
#include "base/gfx/point.h"
#include "chrome/browser/tab_contents/tab_contents.h"
#include "chrome/browser/views/tabs/hwnd_photobooth.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "views/widget/widget_win.h"
namespace {
diff --git a/chrome/browser/webdata/web_database.h b/chrome/browser/webdata/web_database.h
index 04250d9..3b5197b 100644
--- a/chrome/browser/webdata/web_database.h
+++ b/chrome/browser/webdata/web_database.h
@@ -12,7 +12,7 @@
#include "chrome/browser/meta_table_helper.h"
#include "chrome/browser/search_engines/template_url.h"
#include "chrome/common/sqlite_utils.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "testing/gtest/include/gtest/gtest_prod.h"
#include "webkit/glue/autofill_form.h"
diff --git a/chrome/browser/webdata/web_database_unittest.cc b/chrome/browser/webdata/web_database_unittest.cc
index 2a7b5f9..4c27b1e 100644
--- a/chrome/browser/webdata/web_database_unittest.cc
+++ b/chrome/browser/webdata/web_database_unittest.cc
@@ -11,7 +11,7 @@
#include "chrome/browser/search_engines/template_url.h"
#include "chrome/browser/webdata/web_database.h"
#include "chrome/common/chrome_paths.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "webkit/glue/autofill_form.h"
#include "webkit/glue/password_form.h"
diff --git a/chrome/common/gtk_util.cc b/chrome/common/gtk_util.cc
index a12def3..d246ccc 100644
--- a/chrome/common/gtk_util.cc
+++ b/chrome/common/gtk_util.cc
@@ -7,7 +7,7 @@
#include <gtk/gtk.h>
#include "base/linux_util.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
namespace {
diff --git a/chrome/common/render_messages.h b/chrome/common/render_messages.h
index 41139e7..768cd85 100644
--- a/chrome/common/render_messages.h
+++ b/chrome/common/render_messages.h
@@ -40,7 +40,7 @@
#include "webkit/glue/webview_delegate.h"
#if defined(OS_POSIX)
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#endif
namespace base {
diff --git a/chrome/common/render_messages_internal.h b/chrome/common/render_messages_internal.h
index 90882c1..c413dbf 100644
--- a/chrome/common/render_messages_internal.h
+++ b/chrome/common/render_messages_internal.h
@@ -18,7 +18,7 @@
#include "base/shared_memory.h"
#include "chrome/common/ipc_message_macros.h"
#include "chrome/common/transport_dib.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "webkit/glue/dom_operations.h"
#include "webkit/glue/webappcachecontext.h"
#include "webkit/glue/webcursor.h"
diff --git a/chrome/common/security_filter_peer.cc b/chrome/common/security_filter_peer.cc
index 3b1c9f0..fbd6c51 100644
--- a/chrome/common/security_filter_peer.cc
+++ b/chrome/common/security_filter_peer.cc
@@ -13,8 +13,8 @@
#include "grit/renderer_resources.h"
#include "net/base/net_errors.h"
#include "net/http/http_response_headers.h"
-#include "skia/include/SkBitmap.h"
-#include "skia/include/SkCanvas.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+#include "third_party/skia/include/core/SkCanvas.h"
#include "webkit/glue/webkit_glue.h"
#include "SkDevice.h"
diff --git a/chrome/common/temp_scaffolding_stubs.h b/chrome/common/temp_scaffolding_stubs.h
index 8d2a047..35904d2 100644
--- a/chrome/common/temp_scaffolding_stubs.h
+++ b/chrome/common/temp_scaffolding_stubs.h
@@ -21,7 +21,7 @@
#include "chrome/browser/dom_ui/html_dialog_ui.h"
#include "chrome/browser/tab_contents/navigation_entry.h"
#include "googleurl/src/gurl.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
class BookmarkContextMenu;
class BookmarkNode;
diff --git a/chrome/renderer/render_view.h b/chrome/renderer/render_view.h
index a993327..678dbb5 100644
--- a/chrome/renderer/render_view.h
+++ b/chrome/renderer/render_view.h
@@ -23,7 +23,7 @@
#include "chrome/renderer/extensions/extension_process_bindings.h"
#include "chrome/renderer/external_host_bindings.h"
#include "chrome/renderer/render_widget.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "testing/gtest/include/gtest/gtest_prod.h"
#include "webkit/api/public/WebConsoleMessage.h"
#include "webkit/glue/dom_serializer_delegate.h"
diff --git a/chrome/renderer/render_widget.cc b/chrome/renderer/render_widget.cc
index db181bd..25afdbb 100644
--- a/chrome/renderer/render_widget.cc
+++ b/chrome/renderer/render_widget.cc
@@ -14,14 +14,14 @@
#include "chrome/common/transport_dib.h"
#include "chrome/renderer/render_process.h"
#include "skia/ext/platform_canvas.h"
-#include "skia/include/SkShader.h"
+#include "third_party/skia/include/core/SkShader.h"
#include "webkit/api/public/WebRect.h"
#include "webkit/api/public/WebScreenInfo.h"
#include "webkit/api/public/WebSize.h"
#if defined(OS_POSIX)
-#include "skia/include/SkPixelRef.h"
-#include "skia/include/SkMallocPixelRef.h"
+#include "third_party/skia/include/core/SkPixelRef.h"
+#include "third_party/skia/include/core/SkMallocPixelRef.h"
#endif // defined(OS_POSIX)
#include "webkit/glue/webtextdirection.h"
diff --git a/chrome/renderer/render_widget.h b/chrome/renderer/render_widget.h
index d2cdf96..a337f54 100644
--- a/chrome/renderer/render_widget.h
+++ b/chrome/renderer/render_widget.h
@@ -16,7 +16,7 @@
#include "chrome/common/ipc_channel.h"
#include "chrome/renderer/render_process.h"
#include "skia/ext/platform_canvas.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "webkit/api/public/WebRect.h"
#include "webkit/glue/webwidget_delegate.h"
diff --git a/skia/config/SkUserConfig.h b/skia/config/SkUserConfig.h
new file mode 100644
index 0000000..f9ba042
--- /dev/null
+++ b/skia/config/SkUserConfig.h
@@ -0,0 +1,222 @@
+/*
+ * Copyright (C) 2006 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef SkUserConfig_DEFINED
+#define SkUserConfig_DEFINED
+
+/* SkTypes.h, the root of the public header files, does the following trick:
+
+ #include <SkPreConfig.h>
+ #include <SkUserConfig.h>
+ #include <SkPostConfig.h>
+
+ SkPreConfig.h runs first, and it is responsible for initializing certain
+ skia defines.
+
+ SkPostConfig.h runs last, and its job is to just check that the final
+ defines are consistent (i.e. that we don't have mutually conflicting
+ defines).
+
+ SkUserConfig.h (this file) runs in the middle. It gets to change or augment
+ the list of flags initially set in preconfig, and then postconfig checks
+ that everything still makes sense.
+
+ Below are optional defines that add, subtract, or change default behavior
+ in Skia. Your port can locally edit this file to enable/disable flags as
+ you choose, or these can be delared on your command line (i.e. -Dfoo).
+
+ By default, this include file will always default to having all of the flags
+ commented out, so including it will have no effect.
+*/
+
+///////////////////////////////////////////////////////////////////////////////
+
+/* Scalars (the fractional value type in skia) can be implemented either as
+ floats or 16.16 integers (fixed). Exactly one of these two symbols must be
+ defined.
+*/
+//#define SK_SCALAR_IS_FLOAT
+//#define SK_SCALAR_IS_FIXED
+
+
+/* Somewhat independent of how SkScalar is implemented, Skia also wants to know
+ if it can use floats at all. Naturally, if SK_SCALAR_IS_FLOAT is defined,
+ then so muse SK_CAN_USE_FLOAT, but if scalars are fixed, SK_CAN_USE_FLOAT
+ can go either way.
+ */
+//#define SK_CAN_USE_FLOAT
+
+/* For some performance-critical scalar operations, skia will optionally work
+ around the standard float operators if it knows that the CPU does not have
+ native support for floats. If your environment uses software floating point,
+ define this flag.
+ */
+//#define SK_SOFTWARE_FLOAT
+
+
+/* Skia has lots of debug-only code. Often this is just null checks or other
+ parameter checking, but sometimes it can be quite intrusive (e.g. check that
+ each 32bit pixel is in premultiplied form). This code can be very useful
+ during development, but will slow things down in a shipping product.
+
+ By default, these mutually exclusive flags are defined in SkPreConfig.h,
+ based on the presence or absence of NDEBUG, but that decision can be changed
+ here.
+ */
+//#define SK_DEBUG
+//#define SK_RELEASE
+
+
+/* If, in debugging mode, Skia needs to stop (presumably to invoke a debugger)
+ it will call SK_CRASH(). If this is not defined it, it is defined in
+ SkPostConfig.h to write to an illegal address
+ */
+//#define SK_CRASH() *(int *)(uintptr_t)0 = 0
+
+
+/* preconfig will have attempted to determine the endianness of the system,
+ but you can change these mutually exclusive flags here.
+ */
+//#define SK_CPU_BENDIAN
+//#define SK_CPU_LENDIAN
+
+
+/* Some compilers don't support long long for 64bit integers. If yours does
+ not, define this to the appropriate type.
+ */
+//#define SkLONGLONG int64_t
+
+
+/* Some envorinments do not suport writable globals (eek!). If yours does not,
+ define this flag.
+ */
+//#define SK_USE_RUNTIME_GLOBALS
+
+
+/* To write debug messages to a console, skia will call SkDebugf(...) following
+ printf conventions (e.g. const char* format, ...). If you want to redirect
+ this to something other than printf, define yours here
+ */
+//#define SkDebugf(...) MyFunction(__VA_ARGS__)
+
+
+/* If SK_DEBUG is defined, then you can optionally define SK_SUPPORT_UNITTEST
+ which will run additional self-tests at startup. These can take a long time,
+ so this flag is optional.
+ */
+#ifdef SK_DEBUG
+#define SK_SUPPORT_UNITTEST
+#endif
+
+// ===== Begin Chrome-specific definitions =====
+
+#define SK_SCALAR_IS_FLOAT
+#undef SK_SCALAR_IS_FIXED
+
+// Log the file and line number for assertions.
+#define SkDebugf(...) SkDebugf_FileLine(__FILE__, __LINE__, false, __VA_ARGS__)
+void SkDebugf_FileLine(const char* file, int line, bool fatal,
+ const char* format, ...);
+
+// Marking the debug print as "fatal" will cause a debug break, so we don't need
+// a separate crash call here.
+#define SK_DEBUGBREAK(cond) do { if (!(cond)) { \
+ SkDebugf_FileLine(__FILE__, __LINE__, true, \
+ "%s:%d: failed assertion \"%s\"\n", \
+ __FILE__, __LINE__, #cond); } } while (false)
+
+#if defined(SK_BUILD_FOR_WIN32)
+
+#define SK_BUILD_FOR_WIN
+
+// VC8 doesn't support stdint.h, so we define those types here.
+#define SK_IGNORE_STDINT_DOT_H
+typedef signed char int8_t;
+typedef unsigned char uint8_t;
+typedef short int16_t;
+typedef unsigned short uint16_t;
+typedef int int32_t;
+typedef unsigned uint32_t;
+#define SK_A32_SHIFT 24
+#define SK_R32_SHIFT 16
+#define SK_G32_SHIFT 8
+#define SK_B32_SHIFT 0
+
+// VC doesn't support __restrict__, so make it a NOP.
+#undef SK_RESTRICT
+#define SK_RESTRICT
+
+// Skia uses this deprecated bzero function to fill zeros into a string.
+#define bzero(str, len) memset(str, 0, len)
+
+#elif defined(SK_BUILD_FOR_MAC)
+
+#define SK_CPU_LENDIAN
+#undef SK_CPU_BENDIAN
+// we want (memory order) RGBA
+#define SK_A32_SHIFT 24
+#define SK_R32_SHIFT 0
+#define SK_G32_SHIFT 8
+#define SK_B32_SHIFT 16
+
+#elif defined(SK_BUILD_FOR_UNIX)
+
+#ifdef SK_CPU_BENDIAN
+// Below we set the order for ARGB channels in registers. I suspect that, on
+// big endian machines, you can keep this the same and everything will work.
+// The in-memory order will be different, of course, but as long as everything
+// is reading memory as words rather than bytes, it will all work. However, if
+// you find that colours are messed up I thought that I would leave a helpful
+// locator for you. Also see the comments in
+// base/gfx/bitmap_platform_device_linux.h
+#error Read the comment at this location
+#endif
+
+// For Linux we want to match the most common X visual, which is
+// ARGB (in registers)
+#define SK_A32_SHIFT 24
+#define SK_R32_SHIFT 16
+#define SK_G32_SHIFT 8
+#define SK_B32_SHIFT 0
+
+#endif
+
+// The default crash macro writes to badbeef which can cause some strange
+// problems. Instead, pipe this through to the logging function as a fatal
+// assertion.
+#define SK_CRASH() SkDebugf_FileLine(__FILE__, __LINE__, true, "SK_CRASH")
+
+// TODO(brettw) bug 6373: Re-enable Skia assertions. This is blocked on fixing
+// some of our transparency handling which generates purposely-invalid colors,
+// in turn causing assertions.
+//#ifndef NDEBUG
+// #define SK_DEBUG
+// #undef SK_RELEASE
+ #undef SK_SUPPORT_UNITTEST // This is only necessary in debug mode since
+ // we've disabled assertions. When we re-enable
+ // them, this line can be removed.
+//#else
+ #define SK_RELEASE
+ #undef SK_DEBUG
+//#endif
+
+// For now (and to avoid rebaselining 1700+ tests), we'll use the old version
+// of SkAlpha255To256.
+#define SK_USE_OLD_255_TO_256
+
+// ===== End Chrome-specific definitions =====
+
+#endif
diff --git a/skia/config/win/stdint.h b/skia/config/win/stdint.h
new file mode 100644
index 0000000..b82f16b
--- /dev/null
+++ b/skia/config/win/stdint.h
@@ -0,0 +1,26 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// skia is written in C99 and requires <stdint.h> and <inttypes.h>.
+// Since MSVC doesn't include these headers, we have to write our own version
+// to provide a compatibility layer between MSVC and skia
+
+#ifndef SKIA_CONFIG_WIN_STDINT_H_
+#define SKIA_CONFIG_WIN_STDINT_H
+
+#if !defined(_MSC_VER)
+#error This file should only be included when compiling with MSVC.
+#endif
+
+// Define C99 equivalent types.
+typedef signed char int8_t;
+typedef signed short int16_t;
+typedef signed int int32_t;
+typedef signed long long int64_t;
+typedef unsigned char uint8_t;
+typedef unsigned short uint16_t;
+typedef unsigned int uint32_t;
+typedef unsigned long long uint64_t;
+
+#endif // SKIA_CONFIG_WIN_STDINT_H
diff --git a/skia/ext/SkMemory_new_handler.cpp b/skia/ext/SkMemory_new_handler.cpp
new file mode 100644
index 0000000..7e45d26
--- /dev/null
+++ b/skia/ext/SkMemory_new_handler.cpp
@@ -0,0 +1,58 @@
+#include "SkTypes.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <new>
+
+// This implementation of sk_malloc_flags() and friends is identical
+// to SkMemory_malloc.c, except that it disables the CRT's new_handler
+// during malloc(), when SK_MALLOC_THROW is not set (ie., when
+// sk_malloc_flags() would not abort on NULL).
+
+void sk_throw() {
+ SkASSERT(!"sk_throw");
+ abort();
+}
+
+void sk_out_of_memory(void) {
+ SkASSERT(!"sk_out_of_memory");
+ abort();
+}
+
+void* sk_malloc_throw(size_t size) {
+ return sk_malloc_flags(size, SK_MALLOC_THROW);
+}
+
+void* sk_realloc_throw(void* addr, size_t size) {
+ void* p = realloc(addr, size);
+ if (size == 0) {
+ return p;
+ }
+ if (p == NULL) {
+ sk_throw();
+ }
+ return p;
+}
+
+void sk_free(void* p) {
+ if (p) {
+ free(p);
+ }
+}
+
+void* sk_malloc_flags(size_t size, unsigned flags) {
+ std::new_handler old_handler;
+ if (!(flags & SK_MALLOC_THROW)) {
+ old_handler = std::set_new_handler(NULL);
+ }
+ void* p = malloc(size);
+ if (!(flags & SK_MALLOC_THROW)) {
+ std::set_new_handler(old_handler);
+ }
+ if (p == NULL) {
+ if (flags & SK_MALLOC_THROW) {
+ sk_throw();
+ }
+ }
+ return p;
+}
+
diff --git a/skia/ext/SkTypeface_fake.cpp b/skia/ext/SkTypeface_fake.cpp
new file mode 100644
index 0000000..6aaf3b0
--- /dev/null
+++ b/skia/ext/SkTypeface_fake.cpp
@@ -0,0 +1,17 @@
+#include "SkTypeface.h"
+
+// ===== Begin Chrome-specific definitions =====
+
+uint32_t SkTypeface::UniqueID(const SkTypeface* face)
+{
+ return 0;
+}
+
+void SkTypeface::serialize(SkWStream* stream) const {
+}
+
+SkTypeface* SkTypeface::Deserialize(SkStream* stream) {
+ return NULL;
+}
+
+// ===== End Chrome-specific definitions =====
diff --git a/skia/ext/image_operations.cc b/skia/ext/image_operations.cc
index 07fb97b..b6be37f 100644
--- a/skia/ext/image_operations.cc
+++ b/skia/ext/image_operations.cc
@@ -14,8 +14,8 @@
#include "base/logging.h"
#include "base/stack_container.h"
#include "SkBitmap.h"
+#include "SkColorPriv.h"
#include "skia/ext/convolver.h"
-#include "skia/include/SkColorPriv.h"
namespace skia {
diff --git a/skia/ext/image_operations_unittest.cc b/skia/ext/image_operations_unittest.cc
index 8f7e9be..4011c0e 100644
--- a/skia/ext/image_operations_unittest.cc
+++ b/skia/ext/image_operations_unittest.cc
@@ -5,8 +5,8 @@
#include <stdlib.h>
#include "skia/ext/image_operations.h"
-#include "skia/include/SkColorPriv.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "SkColorPriv.h"
#include "SkBitmap.h"
namespace {
diff --git a/skia/ext/skia_utils.cc b/skia/ext/skia_utils.cc
index 3b5484f..c665c58b 100644
--- a/skia/ext/skia_utils.cc
+++ b/skia/ext/skia_utils.cc
@@ -3,8 +3,7 @@
// found in the LICENSE file.
#include "skia/ext/skia_utils.h"
-#include "skia/include/SkColorPriv.h"
-
+#include "SkColorPriv.h"
#include "SkGradientShader.h"
namespace skia {
diff --git a/skia/ext/skia_utils_unittest.cc b/skia/ext/skia_utils_unittest.cc
index 444a5fc9..37815e5 100644
--- a/skia/ext/skia_utils_unittest.cc
+++ b/skia/ext/skia_utils_unittest.cc
@@ -5,8 +5,8 @@
#include <stdlib.h>
#include "skia/ext/skia_utils.h"
-#include "skia/include/SkColorPriv.h"
#include "testing/gtest/include/gtest/gtest.h"
+#include "SkColorPriv.h"
#include "SkBitmap.h"
TEST(SkiaUtils, SkColorToHSLRed) {
diff --git a/skia/include/DoxygenMain.dox b/skia/include/DoxygenMain.dox
deleted file mode 100644
index 00fcc31..0000000
--- a/skia/include/DoxygenMain.dox
+++ /dev/null
@@ -1,3 +0,0 @@
-/** \mainpage notitle
-* \htmlinclude "SGL Spec. rev 9.htm"
-*/ \ No newline at end of file
diff --git a/skia/include/Sk1DPathEffect.h b/skia/include/Sk1DPathEffect.h
deleted file mode 100644
index db01055..0000000
--- a/skia/include/Sk1DPathEffect.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef Sk1DPathEffect_DEFINED
-#define Sk1DPathEffect_DEFINED
-
-#include "SkPathEffect.h"
-#include "SkPath.h"
-
-class SkPathMeasure;
-
-// This class is not exported to java.
-class Sk1DPathEffect : public SkPathEffect {
-public:
- // override from SkPathEffect
- virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
-
-protected:
- /** Called at the start of each contour, returns the initial offset
- into that contour.
- */
- virtual SkScalar begin(SkScalar contourLength) = 0;
- /** Called with the current distance along the path, with the current matrix
- for the point/tangent at the specified distance.
- Return the distance to travel for the next call. If return <= 0, then that
- contour is done.
- */
- virtual SkScalar next(SkPath* dst, SkScalar distance, SkPathMeasure&) = 0;
-
-private:
- typedef SkPathEffect INHERITED;
-};
-
-class SkPath1DPathEffect : public Sk1DPathEffect {
-public:
- enum Style {
- 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
- @param phase distance (mod advance) along path for its initial position
- @param style how to transform path at each point (based on the current
- position and tangent)
- */
- SkPath1DPathEffect(const SkPath& path, SkScalar advance, SkScalar phase, Style);
-
- // override from SkPathEffect
- virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
-
-protected:
- SkPath1DPathEffect(SkFlattenableReadBuffer& buffer);
-
- // overrides from Sk1DPathEffect
- virtual SkScalar begin(SkScalar contourLength);
- virtual SkScalar next(SkPath* dst, SkScalar distance, SkPathMeasure&);
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer& );
- virtual Factory getFactory() { return CreateProc; }
-
-private:
- SkPath fPath; // copied from constructor
- SkScalar fAdvance; // copied from constructor
- SkScalar fInitialOffset; // computed from phase
- Style fStyle; // copied from constructor
-
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return SkNEW_ARGS(SkPath1DPathEffect, (buffer));
- }
-
- typedef Sk1DPathEffect INHERITED;
-};
-
-
-#endif
diff --git a/skia/include/Sk2DPathEffect.h b/skia/include/Sk2DPathEffect.h
deleted file mode 100644
index 6e54d0a..0000000
--- a/skia/include/Sk2DPathEffect.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef Sk2DPathEffect_DEFINED
-#define Sk2DPathEffect_DEFINED
-
-#include "SkPathEffect.h"
-#include "SkMatrix.h"
-
-// This class is not exported to java.
-class Sk2DPathEffect : public SkPathEffect {
-public:
- Sk2DPathEffect(const SkMatrix& mat);
-
- // overrides
- // This method is not exported to java.
- virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
-
- // overrides from SkFlattenable
- // This method is not exported to java.
- virtual void flatten(SkFlattenableWriteBuffer&);
-
- // This method is not exported to java.
- virtual Factory getFactory();
-
-protected:
- /** New virtual, to be overridden by subclasses.
- This is called once from filterPath, and provides the
- uv parameter bounds for the path. Subsequent calls to
- next() will receive u and v values within these bounds,
- and then a call to end() will signal the end of processing.
- */
- virtual void begin(const SkIRect& uvBounds, SkPath* dst);
- virtual void next(const SkPoint& loc, int u, int v, SkPath* dst);
- virtual void end(SkPath* dst);
-
- /** Low-level virtual called per span of locations in the u-direction.
- The default implementation calls next() repeatedly with each
- location.
- */
- virtual void nextSpan(int u, int v, int ucount, SkPath* dst);
-
- const SkMatrix& getMatrix() const { return fMatrix; }
-
- // protected so that subclasses can call this during unflattening
- Sk2DPathEffect(SkFlattenableReadBuffer&);
-
-private:
- SkMatrix fMatrix, fInverse;
- // illegal
- Sk2DPathEffect(const Sk2DPathEffect&);
- Sk2DPathEffect& operator=(const Sk2DPathEffect&);
-
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
-
- friend class Sk2DPathEffectBlitter;
- typedef SkPathEffect INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkAnimator.h b/skia/include/SkAnimator.h
deleted file mode 100644
index 04d342c..0000000
--- a/skia/include/SkAnimator.h
+++ /dev/null
@@ -1,508 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkAnimator_DEFINED
-#define SkAnimator_DEFINED
-
-#include "SkScalar.h"
-#include "SkKey.h"
-#include "SkEventSink.h"
-
-class SkAnimateMaker;
-class SkCanvas;
-class SkDisplayable;
-class SkEvent;
-class SkExtras;
-struct SkMemberInfo;
-class SkPaint;
-struct SkRect;
-class SkStream;
-class SkTypedArray;
-class SkXMLParserError;
-class SkDOM;
-struct SkDOMNode;
-
-/** SkElementType is the type of element: a rectangle, a color, an animator, and so on.
- This enum is incomplete and will be fleshed out in a future release */
-enum SkElementType {
- kElementDummyType
-};
-/** SkFieldType is the type of field: a scalar, a string, an integer, a boolean, and so on.
- This enum is incomplete and will be fleshed out in a future release */
-enum SkFieldType {
- kFieldDummyType
-};
-
-/** \class SkAnimator
-
- The SkAnimator class decodes an XML stream into a display list. The
- display list can be drawn statically as a picture, or can drawn
- different elements at different times to form a moving animation.
-
- SkAnimator does not read the system time on its own; it relies on the
- caller to pass the current time. The caller can pause, speed up, or
- reverse the animation by varying the time passed in.
-
- The XML describing the display list must conform to the schema
- described by SkAnimateSchema.xsd.
-
- The XML must contain an <event> element to draw. Usually, it contains
- an <event kind="onload" /> block to add some drawing elements to the
- display list when the document is first decoded.
-
- Here's an "Hello World" XML sample:
-
- <screenplay>
- <event kind="onload" >
- <text text="Hello World" y="20" />
- </event>
- </screenplay>
-
- To read and draw this sample:
-
- // choose one of these two
- SkAnimator animator; // declare an animator instance on the stack
- // SkAnimator* animator = new SkAnimator() // or one could instantiate the class
-
- // choose one of these three
- animator.decodeMemory(buffer, size); // to read from RAM
- animator.decodeStream(stream); // to read from a user-defined stream (e.g., a zip file)
- animator.decodeURI(filename); // to read from a web location, or from a local text file
-
- // to draw to the current window:
- SkCanvas canvas(getBitmap()); // create a canvas
- animator.draw(canvas, &paint, 0); // draw the scene
-*/
-class SkAnimator : public SkEventSink {
-public:
- SkAnimator();
- virtual ~SkAnimator();
-
- /** Add a drawable extension to the graphics engine. Experimental.
- @param extras A derived class that implements methods that identify and instantiate the class
- */
- void addExtras(SkExtras* extras);
-
- /** Read in XML from a stream, and append it to the current
- animator. Returns false if an error was encountered.
- Error diagnostics are stored in fErrorCode and fLineNumber.
- @param stream The stream to append.
- @return true if the XML was parsed successfully.
- */
- bool appendStream(SkStream* stream);
-
- /** Read in XML from memory. Returns true if the file can be
- read without error. Returns false if an error was encountered.
- Error diagnostics are stored in fErrorCode and fLineNumber.
- @param buffer The XML text as UTF-8 characters.
- @param size The XML text length in bytes.
- @return true if the XML was parsed successfully.
- */
- bool decodeMemory(const void* buffer, size_t size);
-
- /** Read in XML from a stream. Returns true if the file can be
- read without error. Returns false if an error was encountered.
- Error diagnostics are stored in fErrorCode and fLineNumber.
- @param stream The stream containg the XML text as UTF-8 characters.
- @return true if the XML was parsed successfully.
- */
- virtual bool decodeStream(SkStream* stream);
-
- /** Parse the DOM tree starting at the specified node. Returns true if it can be
- parsed without error. Returns false if an error was encountered.
- Error diagnostics are stored in fErrorCode and fLineNumber.
- @return true if the DOM was parsed successfully.
- */
- virtual bool decodeDOM(const SkDOM&, const SkDOMNode*);
-
- /** Read in XML from a URI. Returns true if the file can be
- read without error. Returns false if an error was encountered.
- Error diagnostics are stored in fErrorCode and fLineNumber.
- @param uri The complete url path to be read (either ftp, http or https).
- @return true if the XML was parsed successfully.
- */
- bool decodeURI(const char uri[]);
-
- /** Pass a char event, usually a keyboard symbol, to the animator.
- This triggers events of the form <event kind="keyChar" key="... />
- @param ch The character to match against <event> element "key"
- attributes.
- @return true if the event was dispatched successfully.
- */
- bool doCharEvent(SkUnichar ch);
-
- /** Experimental:
- Pass a mouse click event along with the mouse coordinates to
- the animator. This triggers events of the form <event kind="mouseDown" ... />
- and other mouse events.
- @param state The mouse state, described by SkView::Click::State : values are
- down == 0, moved == 1, up == 2
- @param x The x-position of the mouse
- @param y The y-position of the mouse
- @return true if the event was dispatched successfully.
- */
- bool doClickEvent(int state, SkScalar x, SkScalar y);
-
- /** Pass a meta-key event, such as an arrow , to the animator.
- This triggers events of the form <event kind="keyPress" code="... />
- @param code The key to match against <event> element "code"
- attributes.
- @return true if the event was dispatched successfully.
- */
- bool doKeyEvent(SkKey code);
- bool doKeyUpEvent(SkKey code);
-
- /** Send an event to the animator. The animator's clock is set
- relative to the current time.
- @return true if the event was dispatched successfully.
- */
- bool doUserEvent(const SkEvent& evt);
-
- /** The possible results from the draw function.
- */
- enum DifferenceType {
- kNotDifferent,
- kDifferent,
- kPartiallyDifferent
- };
- /** Draws one frame of the animation. The first call to draw always
- draws the initial frame of the animation. Subsequent calls draw
- the offset into the animation by
- subtracting the initial time from the current time.
- @param canvas The canvas to draw into.
- @param paint The paint to draw with.
- @param time The offset into the current animation.
- @return kNotDifferent if there are no active animations; kDifferent if there are active animations; and
- kPartiallyDifferent if the document contains an active <bounds> element that specifies a minimal
- redraw area.
- */
- DifferenceType draw(SkCanvas* canvas, SkPaint* paint, SkMSec time);
-
- /** Draws one frame of the animation, using a new Paint each time.
- The first call to draw always
- draws the initial frame of the animation. Subsequent calls draw
- the offset into the animation by
- subtracting the initial time from the current time.
- @param canvas The canvas to draw into.
- @param time The offset into the current animation.
- @return kNotDifferent if there are no active animations; kDifferent if there are active animations; and
- kPartiallyDifferent if the document contains an active <bounds> element that specifies a minimal
- redraw area.
- */
- DifferenceType draw(SkCanvas* canvas, SkMSec time);
-
- /** Experimental:
- Helper to choose whether to return a SkView::Click handler.
- @param x ignored
- @param y ignored
- @return true if a mouseDown event handler is enabled.
- */
- bool findClickEvent(SkScalar x, SkScalar y);
-
-
- /** Get the nested animator associated with this element, if any.
- Use this to access a movie's event sink, to send events to movies.
- @param element the value returned by getElement
- @return the internal animator.
- */
- const SkAnimator* getAnimator(const SkDisplayable* element) const;
-
- /** Returns the scalar value of the specified element's attribute[index]
- @param element the value returned by getElement
- @param field the value returned by getField
- @param index the array entry
- @return the integer value to retrieve, or SK_NaN32 if unsuccessful
- */
- int32_t getArrayInt(const SkDisplayable* element, const SkMemberInfo* field, int index);
-
- /** Returns the scalar value of the specified element's attribute[index]
- @param elementID is the value of the id attribute in the XML of this element
- @param fieldName specifies the name of the attribute
- @param index the array entry
- @return the integer value to retrieve, or SK_NaN32 if unsuccessful
- */
- int32_t getArrayInt(const char* elementID, const char* fieldName, int index);
-
- /** Returns the scalar value of the specified element's attribute[index]
- @param element the value returned by getElement
- @param field the value returned by getField
- @param index the array entry
- @return the scalar value to retrieve, or SK_ScalarNaN if unsuccessful
- */
- SkScalar getArrayScalar(const SkDisplayable* element, const SkMemberInfo* field, int index);
-
- /** Returns the scalar value of the specified element's attribute[index]
- @param elementID is the value of the id attribute in the XML of this element
- @param fieldName specifies the name of the attribute
- @param index the array entry
- @return the scalar value to retrieve, or SK_ScalarNaN if unsuccessful
- */
- SkScalar getArrayScalar(const char* elementID, const char* fieldName, int index);
-
- /** Returns the string value of the specified element's attribute[index]
- @param element is a value returned by getElement
- @param field is a value returned by getField
- @param index the array entry
- @return the string value to retrieve, or null if unsuccessful
- */
- const char* getArrayString(const SkDisplayable* element, const SkMemberInfo* field, int index);
-
- /** Returns the string value of the specified element's attribute[index]
- @param elementID is the value of the id attribute in the XML of this element
- @param fieldName specifies the name of the attribute
- @param index the array entry
- @return the string value to retrieve, or null if unsuccessful
- */
- const char* getArrayString(const char* elementID, const char* fieldName, int index);
-
- /** Returns the XML element corresponding to the given ID.
- @param elementID is the value of the id attribute in the XML of this element
- @return the element matching the ID, or null if the element can't be found
- */
- const SkDisplayable* getElement(const char* elementID);
-
- /** Returns the element type corresponding to the XML element.
- The element type matches the element name; for instance, <line> returns kElement_LineType
- @param element is a value returned by getElement
- @return element type, or 0 if the element can't be found
- */
- SkElementType getElementType(const SkDisplayable* element);
-
- /** Returns the element type corresponding to the given ID.
- @param elementID is the value of the id attribute in the XML of this element
- @return element type, or 0 if the element can't be found
- */
- SkElementType getElementType(const char* elementID);
-
- /** Returns the XML field of the named attribute in the XML element.
- @param element is a value returned by getElement
- @param fieldName is the attribute to return
- @return the attribute matching the fieldName, or null if the element can't be found
- */
- const SkMemberInfo* getField(const SkDisplayable* element, const char* fieldName);
-
- /** Returns the XML field of the named attribute in the XML element matching the elementID.
- @param elementID is the value of the id attribute in the XML of this element
- @param fieldName is the attribute to return
- @return the attribute matching the fieldName, or null if the element can't be found
- */
- const SkMemberInfo* getField(const char* elementID, const char* fieldName);
-
- /** Returns the value type coresponding to the element's attribute.
- The value type matches the XML schema: and may be kField_BooleanType, kField_ScalarType, etc.
- @param field is a value returned by getField
- @return the attribute type, or 0 if the element can't be found
- */
- SkFieldType getFieldType(const SkMemberInfo* field);
-
- /** Returns the value type coresponding to the element's attribute.
- @param elementID is the value of the id attribute in the XML of this element
- @param fieldName specifies the name of the attribute
- @return the attribute type, or 0 if the element can't be found
- */
- SkFieldType getFieldType(const char* elementID, const char* fieldName);
-
- /** Returns the recommended animation interval. Returns zero if no
- interval is specified.
- */
- SkMSec getInterval();
-
- /** Returns the partial rectangle to invalidate after drawing. Call after draw() returns
- kIsPartiallyDifferent to do a mimimal inval(). */
- void getInvalBounds(SkRect* inval);
-
- /** Returns the details of any error encountered while parsing the XML.
- */
- const SkXMLParserError* getParserError();
-
- /** Returns the details of any error encountered while parsing the XML as string.
- */
- const char* getParserErrorString();
-
- /** Returns the scalar value of the specified element's attribute
- @param element is a value returned by getElement
- @param field is a value returned by getField
- @return the integer value to retrieve, or SK_NaN32 if not found
- */
- int32_t getInt(const SkDisplayable* element, const SkMemberInfo* field);
-
- /** Returns the scalar value of the specified element's attribute
- @param elementID is the value of the id attribute in the XML of this element
- @param fieldName specifies the name of the attribute
- @return the integer value to retrieve, or SK_NaN32 if not found
- */
- int32_t getInt(const char* elementID, const char* fieldName);
-
- /** Returns the scalar value of the specified element's attribute
- @param element is a value returned by getElement
- @param field is a value returned by getField
- @return the scalar value to retrieve, or SK_ScalarNaN if not found
- */
- SkScalar getScalar(const SkDisplayable* element, const SkMemberInfo* field);
-
- /** Returns the scalar value of the specified element's attribute
- @param elementID is the value of the id attribute in the XML of this element
- @param fieldName specifies the name of the attribute
- @return the scalar value to retrieve, or SK_ScalarNaN if not found
- */
- SkScalar getScalar(const char* elementID, const char* fieldName);
-
- /** Returns the string value of the specified element's attribute
- @param element is a value returned by getElement
- @param field is a value returned by getField
- @return the string value to retrieve, or null if not found
- */
- const char* getString(const SkDisplayable* element, const SkMemberInfo* field);
-
- /** Returns the string value of the specified element's attribute
- @param elementID is the value of the id attribute in the XML of this element
- @param fieldName specifies the name of the attribute
- @return the string value to retrieve, or null if not found
- */
- const char* getString(const char* elementID, const char* fieldName);
-
- /** Gets the file default directory of the URL base path set explicitly or by reading the last URL. */
- const char* getURIBase();
-
- /** Resets the animator to a newly created state with no animation data. */
- void initialize();
-
- /** Experimental. Resets any active animations so that the next time passed is treated as
- time zero. */
- void reset();
-
- /** Sets the scalar value of the specified element's attribute
- @param elementID is the value of the id attribute in the XML of this element
- @param fieldName specifies the name of the attribute
- @param array is the c-style array of integers
- @param count is the length of the array
- @return true if the value was set successfully
- */
- bool setArrayInt(const char* elementID, const char* fieldName, const int* array, int count);
-
- /** Sets the scalar value of the specified element's attribute
- @param elementID is the value of the id attribute in the XML of this element
- @param fieldName specifies the name of the attribute
- @param array is the c-style array of strings
- @param count is the length of the array
- @return true if the value was set successfully
- */
- bool setArrayString(const char* elementID, const char* fieldName, const char** array, int count);
-
- /** Sets the scalar value of the specified element's attribute
- @param elementID is the value of the id attribute in the XML of this element
- @param fieldName specifies the name of the attribute
- @param data the integer value to set
- @return true if the value was set successfully
- */
- bool setInt(const char* elementID, const char* fieldName, int32_t data);
-
- /** Sets the scalar value of the specified element's attribute
- @param elementID is the value of the id attribute in the XML of this element
- @param fieldName specifies the name of the attribute
- @param data the scalar value to set
- @return true if the value was set successfully
- */
- bool setScalar(const char* elementID, const char* fieldName, SkScalar data);
-
- /** Sets the string value of the specified element's attribute
- @param elementID is the value of the id attribute in the XML of this element
- @param fieldName specifies the name of the attribute
- @param data the string value to set
- @return true if the value was set successfully
- */
- bool setString(const char* elementID, const char* fieldName, const char* data);
-
- /** Sets the file default directory of the URL base path
- @param path the directory path
- */
- void setURIBase(const char* path);
-
- typedef void* Handler;
- // This guy needs to be exported to java, so don't make it virtual
- void setHostHandler(Handler handler) {
- this->onSetHostHandler(handler);
- }
-
- /** \class Timeline
- Returns current time to animator. To return a custom timeline, create a child
- class and override the getMSecs method.
- */
- class Timeline {
- public:
- virtual ~Timeline() {}
-
- /** Returns the current time in milliseconds */
- virtual SkMSec getMSecs() const = 0;
- };
-
- /** Sets a user class to return the current time to the animator.
- Optional; if not called, the system clock will be used by calling SkTime::GetMSecs instead.
- @param callBack the time function
- */
- void setTimeline(const Timeline& );
-
- static void Init(bool runUnitTests);
- static void Term();
-
- /** The event sink events generated by the animation are posted to.
- Screenplay also posts an inval event to this event sink after processing an
- event to force a redraw.
- @param target the event sink id
- */
- void setHostEventSinkID(SkEventSinkID hostID);
- SkEventSinkID getHostEventSinkID() const;
-
- // helper
- void setHostEventSink(SkEventSink* sink) {
- this->setHostEventSinkID(sink ? sink->getSinkID() : 0);
- }
-
- virtual void setJavaOwner(Handler owner);
-
-#ifdef SK_DEBUG
- virtual void eventDone(const SkEvent& evt);
- virtual bool isTrackingEvents();
- static bool NoLeaks();
-#endif
-
-protected:
- virtual void onSetHostHandler(Handler handler);
- virtual void onEventPost(SkEvent*, SkEventSinkID);
- virtual void onEventPostTime(SkEvent*, SkEventSinkID, SkMSec time);
-
-private:
-// helper functions for setters
- bool setArray(SkDisplayable* element, const SkMemberInfo* field, SkTypedArray array);
- bool setArray(const char* elementID, const char* fieldName, SkTypedArray array);
- bool setInt(SkDisplayable* element, const SkMemberInfo* field, int32_t data);
- bool setScalar(SkDisplayable* element, const SkMemberInfo* field, SkScalar data);
- bool setString(SkDisplayable* element, const SkMemberInfo* field, const char* data);
-
- virtual bool onEvent(const SkEvent&);
- SkAnimateMaker* fMaker;
- friend class SkAnimateMaker;
- friend class SkAnimatorScript;
- friend class SkAnimatorScript2;
- friend class SkApply;
- friend class SkDisplayMovie;
- friend class SkDisplayType;
- friend class SkPost;
- friend class SkXMLAnimatorWriter;
-};
-
-#endif
-
diff --git a/skia/include/SkAnimatorView.h b/skia/include/SkAnimatorView.h
deleted file mode 100644
index 3c6c8a1..0000000
--- a/skia/include/SkAnimatorView.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkAnimatorView_DEFINED
-#define SkAnimatorView_DEFINED
-
-#include "SkView.h"
-#include "SkAnimator.h"
-
-class SkAnimatorView : public SkView {
-public:
- SkAnimatorView();
- virtual ~SkAnimatorView();
-
- SkAnimator* getAnimator() const { return fAnimator; }
-
- bool decodeFile(const char path[]);
- bool decodeMemory(const void* buffer, size_t size);
- bool decodeStream(SkStream* stream);
-
-protected:
- // overrides
- virtual bool onEvent(const SkEvent&);
- virtual void onDraw(SkCanvas*);
- virtual void onInflate(const SkDOM&, const SkDOM::Node*);
-
-private:
- SkAnimator* fAnimator;
-
- typedef SkView INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkApplication.h b/skia/include/SkApplication.h
deleted file mode 100644
index 4c4a4fb0..0000000
--- a/skia/include/SkApplication.h
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkApplication_DEFINED
-#define SkApplication_DEFINED
-
-class SkOSWindow;
-
-extern SkOSWindow* create_sk_window(void* hwnd);
-extern void application_init();
-extern void application_term();
-
-#endif // SkApplication_DEFINED
diff --git a/skia/include/SkAvoidXfermode.h b/skia/include/SkAvoidXfermode.h
deleted file mode 100644
index 32bc049..0000000
--- a/skia/include/SkAvoidXfermode.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkAvoidXfermode_DEFINED
-#define SkAvoidXfermode_DEFINED
-
-#include "SkXfermode.h"
-
-/** \class SkAvoidXfermode
-
- This xfermode will draw the src everywhere except on top of the specified
- color.
-*/
-class SkAvoidXfermode : public SkXfermode {
-public:
- enum Mode {
- kAvoidColor_Mode, //!< draw everywhere except on the opColor
- kTargetColor_Mode //!< draw only on top of the opColor
- };
-
- /** This xfermode will draw the src everywhere except on top of the opColor
- or, depending on the Mode, draw only on top of the opColor.
- @param opColor the color to avoid (or to target depending on Mode).
- note: the alpha in opColor is ignored
- @param tolerance How closely we compare a pixel to the opColor.
- 0 - only operate if exact match
- 255 - maximum gradation (blending) based on how
- similar the pixel is to our opColor (max tolerance)
- @param mode If we should avoid or target the opColor
- */
- SkAvoidXfermode(SkColor opColor, U8CPU tolerance, Mode mode);
-
- // overrides from SkXfermode
- virtual void xfer32(SkPMColor dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]);
- virtual void xfer16(uint16_t dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]);
- virtual void xfer4444(uint16_t dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]);
- virtual void xferA8(SkAlpha dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]);
-
- // overrides from SkFlattenable
- virtual Factory getFactory();
- virtual void flatten(SkFlattenableWriteBuffer&);
-
-protected:
- SkAvoidXfermode(SkFlattenableReadBuffer&);
-
-private:
- SkColor fOpColor;
- uint32_t fDistMul; // x.14
- Mode fMode;
-
- static SkFlattenable* Create(SkFlattenableReadBuffer&);
-
- typedef SkXfermode INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkBGViewArtist.h b/skia/include/SkBGViewArtist.h
deleted file mode 100644
index 1bca42f..0000000
--- a/skia/include/SkBGViewArtist.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkBGViewArtist_DEFINED
-#define SkBGViewArtist_DEFINED
-
-#include "SkView.h"
-#include "SkPaint.h"
-
-class SkBGViewArtist : public SkView::Artist {
-public:
- SkBGViewArtist(SkColor c = SK_ColorWHITE);
- virtual ~SkBGViewArtist();
-
- const SkPaint& paint() const { return fPaint; }
- SkPaint& paint() { return fPaint; }
-
-protected:
- // overrides
- virtual void onDraw(SkView*, SkCanvas*);
- virtual void onInflate(const SkDOM&, const SkDOM::Node*);
-
-private:
- SkPaint fPaint;
-};
-
-#endif
-
diff --git a/skia/include/SkBML_WXMLParser.h b/skia/include/SkBML_WXMLParser.h
deleted file mode 100644
index faa127d..0000000
--- a/skia/include/SkBML_WXMLParser.h
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkBML_WXMLParser_DEFINED
-#define SkBML_WXMLParser_DEFINED
-
-#include "SkString.h"
-#include "SkXMLParser.h"
-
-class SkStream;
-class SkWStream;
-
-class BML_WXMLParser : public SkXMLParser {
-public:
- BML_WXMLParser(SkWStream& writer);
- virtual ~BML_WXMLParser();
- static void Write(SkStream& s, const char filename[]);
-
- /** @cond UNIT_TEST */
- SkDEBUGCODE(static void UnitTest();)
- /** @endcond */
-private:
- virtual bool onAddAttribute(const char name[], const char value[]);
- virtual bool onEndElement(const char name[]);
- virtual bool onStartElement(const char name[]);
- BML_WXMLParser& operator=(const BML_WXMLParser& src);
-#ifdef SK_DEBUG
- int fElemsCount, fElemsReused;
- int fAttrsCount, fNamesReused, fValuesReused;
-#endif
- SkWStream& fWriter;
- char* fElems[256];
- char* fAttrNames[256];
- char* fAttrValues[256];
-
- // important that these are U8, so we get automatic wrap-around
- U8 fNextElem, fNextAttrName, fNextAttrValue;
-};
-
-#endif // SkBML_WXMLParser_DEFINED
-
diff --git a/skia/include/SkBML_XMLParser.h b/skia/include/SkBML_XMLParser.h
deleted file mode 100644
index f056bca..0000000
--- a/skia/include/SkBML_XMLParser.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkBML_XMLParser_DEFINED
-#define SkBML_XMLParser_DEFINED
-
-class SkStream;
-class SkWStream;
-class SkXMLParser;
-class SkXMLWriter;
-
-class BML_XMLParser {
-public:
- /** Read the byte XML stream and write the decompressed XML.
- */
- static void Read(SkStream& s, SkXMLWriter& writer);
- /** Read the byte XML stream and write the decompressed XML into a writable stream.
- */
- static void Read(SkStream& s, SkWStream& output);
- /** Read the byte XML stream and write the decompressed XML into an XML parser.
- */
- static void Read(SkStream& s, SkXMLParser& output);
-};
-
-#endif // SkBML_XMLParser_DEFINED
-
diff --git a/skia/include/SkBitmap.h b/skia/include/SkBitmap.h
deleted file mode 100644
index 8a089d0..0000000
--- a/skia/include/SkBitmap.h
+++ /dev/null
@@ -1,684 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkBitmap_DEFINED
-#define SkBitmap_DEFINED
-
-#include "Sk64.h"
-#include "SkColor.h"
-#include "SkPoint.h"
-#include "SkRefCnt.h"
-
-#if defined(SK_BUILD_FOR_MAC)
-#include <Carbon/Carbon.h>
-#endif
-
-struct SkIRect;
-class SkColorTable;
-class SkPaint;
-class SkPixelRef;
-class SkRegion;
-class SkFlattenableReadBuffer;
-class SkFlattenableWriteBuffer;
-
-/** \class SkBitmap
-
- The SkBitmap class specifies a raster bitmap. A bitmap has an integer width
- and height, and a format (config), and a pointer to the actual pixels.
- Bitmaps can be drawn into a SkCanvas, but they are also used to specify the target
- of a SkCanvas' drawing operations.
-*/
-class SkBitmap {
-public:
- class Allocator;
-
- enum Config {
- kNo_Config, //!< bitmap has not been configured
- kA1_Config, //!< 1-bit per pixel, (0 is transparent, 1 is opaque)
- kA8_Config, //!< 8-bits per pixel, with only alpha specified (0 is transparent, 0xFF is opaque)
- kIndex8_Config, //!< 8-bits per pixel, using SkColorTable to specify the colors
- kRGB_565_Config, //!< 16-bits per pixel, (see SkColorPriv.h for packing)
- kARGB_4444_Config, //!< 16-bits per pixel, (see SkColorPriv.h for packing)
- kARGB_8888_Config, //!< 32-bits per pixel, (see SkColorPriv.h for packing)
- kRLE_Index8_Config,
-
- kConfigCount
- };
-
- /** Default construct creates a bitmap with zero width and height, and no pixels.
- Its config is set to kNo_Config.
- */
- SkBitmap();
- /** Constructor initializes the new bitmap by copying the src bitmap. All fields are copied,
- but ownership of the pixels remains with the src bitmap.
- */
- SkBitmap(const SkBitmap& src);
- /** Decrements our (shared) pixel ownership if needed.
- */
- ~SkBitmap();
-
- /** Copies the src bitmap into this bitmap. Ownership of the src bitmap's pixels remains
- with the src bitmap.
- */
- SkBitmap& operator=(const SkBitmap& src);
- /** Swap the fields of the two bitmaps. This routine is guaranteed to never fail or throw.
- */
- // This method is not exported to java.
- void swap(SkBitmap& other);
-
- /** Return true iff the bitmap has empty dimensions.
- */
- bool empty() const { return 0 == fWidth || 0 == fHeight; }
-
- /** Return true iff the bitmap has no pixels nor a pixelref. Note: this can
- return true even if the dimensions of the bitmap are > 0 (see empty()).
- */
- bool isNull() const { return NULL == fPixels && NULL == fPixelRef; }
-
- /** Return the config for the bitmap.
- */
- Config config() const { return (Config)fConfig; }
- /** DEPRECATED, use config()
- */
- Config getConfig() const { return this->config(); }
- /** Return the bitmap's width, in pixels.
- */
- int width() const { return fWidth; }
- /** Return the bitmap's height, in pixels.
- */
- int height() const { return fHeight; }
- /** Return the number of bytes between subsequent rows of the bitmap.
- */
- int rowBytes() const { return fRowBytes; }
-
- /** Return the shift amount per pixel (i.e. 0 for 1-byte per pixel, 1 for
- 2-bytes per pixel configs, 2 for 4-bytes per pixel configs). Return 0
- for configs that are not at least 1-byte per pixel (e.g. kA1_Config
- or kNo_Config)
- */
- int shiftPerPixel() const { return fBytesPerPixel >> 1; }
-
- /** Return the number of bytes per pixel based on the config. If the config
- does not have at least 1 byte per (e.g. kA1_Config) then 0 is returned.
- */
- int bytesPerPixel() const { return fBytesPerPixel; }
-
- /** Return the rowbytes expressed as a number of pixels (like width and
- height). Note, for 1-byte per pixel configs like kA8_Config, this will
- return the same as rowBytes(). Is undefined for configs that are less
- than 1-byte per pixel (e.g. kA1_Config)
- */
- int rowBytesAsPixels() const { return fRowBytes >> (fBytesPerPixel >> 1); }
-
- /** Return the address of the pixels for this SkBitmap.
- */
- void* getPixels() const { return fPixels; }
-
- /** Return the byte size of the pixels, based on the height and rowBytes.
- Note this truncates the result to 32bits. Call getSize64() to detect
- if the real size exceeds 32bits.
- */
- size_t getSize() const { return fHeight * fRowBytes; }
-
- /** Return the byte size of the pixels, based on the height and rowBytes.
- This routine is slightly slower than getSize(), but does not truncate
- the answer to 32bits.
- */
- Sk64 getSize64() const {
- Sk64 size;
- size.setMul(fHeight, fRowBytes);
- return size;
- }
-
- /** Returns true if the bitmap is opaque (has no translucent/transparent pixels).
- */
- bool isOpaque() const;
- /** Specify if this bitmap's pixels are all opaque or not. Is only meaningful for configs
- that support per-pixel alpha (RGB32, A1, A8).
- */
- void setIsOpaque(bool);
-
- /** Reset the bitmap to its initial state (see default constructor). If we are a (shared)
- owner of the pixels, that ownership is decremented.
- */
- void reset();
-
- /** Given a config and a width, this computes the optimal rowBytes value. This is called automatically
- if you pass 0 for rowBytes to setConfig().
- */
- static int ComputeRowBytes(Config c, int width);
-
- /** Return the bytes-per-pixel for the specified config. If the config is
- not at least 1-byte per pixel, return 0, including for kNo_Config.
- */
- static int ComputeBytesPerPixel(Config c);
-
- /** Return the shift-per-pixel for the specified config. If the config is
- not at least 1-byte per pixel, return 0, including for kNo_Config.
- */
- static int ComputeShiftPerPixel(Config c) {
- return ComputeBytesPerPixel(c) >> 1;
- }
-
- static Sk64 ComputeSize64(Config, int width, int height);
- static size_t ComputeSize(Config, int width, int height);
-
- /** Set the bitmap's config and dimensions. If rowBytes is 0, then
- ComputeRowBytes() is called to compute the optimal value. This resets
- any pixel/colortable ownership, just like reset().
- */
- void setConfig(Config, int width, int height, int rowBytes = 0);
- /** Use this to assign a new pixel address for an existing bitmap. This
- will automatically release any pixelref previously installed. Only call
- this if you are handling ownership/lifetime of the pixel memory.
-
- If the bitmap retains a reference to the colortable (assuming it is
- not null) it will take care of incrementing the reference count.
-
- @param pixels Address for the pixels, managed by the caller.
- @param ctable ColorTable (or null) that matches the specified pixels
- */
- void setPixels(void* p, SkColorTable* ctable = NULL);
-
- /** Use the standard HeapAllocator to create the pixelref that manages the
- pixel memory. It will be sized based on the current width/height/config.
- If this is called multiple times, a new pixelref object will be created
- each time.
-
- If the bitmap retains a reference to the colortable (assuming it is
- not null) it will take care of incrementing the reference count.
-
- @param ctable ColorTable (or null) to use with the pixels that will
- be allocated. Only used if config == Index8_Config
- @return true if the allocation succeeds. If not the pixelref field of
- the bitmap will be unchanged.
- */
- bool allocPixels(SkColorTable* ctable = NULL) {
- return this->allocPixels(NULL, ctable);
- }
-
- /** Use the specified Allocator to create the pixelref that manages the
- pixel memory. It will be sized based on the current width/height/config.
- If this is called multiple times, a new pixelref object will be created
- each time.
-
- If the bitmap retains a reference to the colortable (assuming it is
- not null) it will take care of incrementing the reference count.
-
- @param allocator The Allocator to use to create a pixelref that can
- manage the pixel memory for the current
- width/height/config. If allocator is NULL, the standard
- HeapAllocator will be used.
- @param ctable ColorTable (or null) to use with the pixels that will
- be allocated. Only used if config == Index8_Config.
- If it is non-null and the config is not Index8, it will
- be ignored.
- @return true if the allocation succeeds. If not the pixelref field of
- the bitmap will be unchanged.
- */
- bool allocPixels(Allocator* allocator, SkColorTable* ctable);
-
- /** Return the current pixelref object, of any
- */
- SkPixelRef* pixelRef() const { return fPixelRef; }
- /** Return the offset into the pixelref, if any. Will return 0 if there is
- no pixelref installed.
- */
- size_t pixelRefOffset() const { return fPixelRefOffset; }
- /** Assign a pixelref and optional offset. Pixelrefs are reference counted,
- so the existing one (if any) will be unref'd and the new one will be
- ref'd.
- */
- SkPixelRef* setPixelRef(SkPixelRef* pr, size_t offset = 0);
-
- /** Call this to ensure that the bitmap points to the current pixel address
- in the pixelref. Balance it with a call to unlockPixels(). These calls
- are harmless if there is no pixelref.
- */
- void lockPixels() const;
- /** When you are finished access the pixel memory, call this to balance a
- previous call to lockPixels(). This allows pixelrefs that implement
- cached/deferred image decoding to know when there are active clients of
- a given image.
- */
- void unlockPixels() const;
-
- /** Call this to be sure that the bitmap is valid enough to be drawn (i.e.
- it has non-null pixels, and if required by its config, it has a
- non-null colortable. Returns true if all of the above are met.
- */
- bool readyToDraw() const {
- return this->getPixels() != NULL &&
- ((this->config() != kIndex8_Config && this->config() != kRLE_Index8_Config) ||
- fColorTable != NULL);
- }
-
- /** Return the bitmap's colortable (if any). Does not affect the colortable's
- reference count.
- */
- SkColorTable* getColorTable() const { return fColorTable; }
-
- /** Returns a non-zero, unique value corresponding to the pixels in our
- pixelref, or 0 if we do not have a pixelref. Each time the pixels are
- changed (and notifyPixelsChanged is called), a different generation ID
- will be returned.
- */
- uint32_t getGenerationID() const;
-
- /** Call this if you have changed the contents of the pixels. This will in-
- turn cause a different generation ID value to be returned from
- getGenerationID().
- */
- void notifyPixelsChanged() const;
-
- /** Initialize the bitmap's pixels with the specified color+alpha, automatically converting into the correct format
- for the bitmap's config. If the config is kRGB_565_Config, then the alpha value is ignored.
- If the config is kA8_Config, then the r,g,b parameters are ignored.
- */
- void eraseARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b) const;
- /** Initialize the bitmap's pixels with the specified color+alpha, automatically converting into the correct format
- for the bitmap's config. If the config is kRGB_565_Config, then the alpha value is presumed
- to be 0xFF. If the config is kA8_Config, then the r,g,b parameters are ignored and the
- pixels are all set to 0xFF.
- */
- void eraseRGB(U8CPU r, U8CPU g, U8CPU b) const {
- this->eraseARGB(0xFF, r, g, b);
- }
- /** Initialize the bitmap's pixels with the specified color, automatically converting into the correct format
- for the bitmap's config. If the config is kRGB_565_Config, then the color's alpha value is presumed
- to be 0xFF. If the config is kA8_Config, then only the color's alpha value is used.
- */
- void eraseColor(SkColor c) const {
- this->eraseARGB(SkColorGetA(c), SkColorGetR(c), SkColorGetG(c),
- SkColorGetB(c));
- }
-
- /** Scroll (a subset of) the contents of this bitmap by dx/dy. If there are
- no pixels allocated (i.e. getPixels() returns null) the method will
- still update the inval region (if present).
-
- @param subset The subset of the bitmap to scroll/move. To scroll the
- entire contents, specify [0, 0, width, height] or just
- pass null.
- @param dx The amount to scroll in X
- @param dy The amount to scroll in Y
- @param inval Optional (may be null). Returns the area of the bitmap that
- was scrolled away. E.g. if dx = dy = 0, then inval would
- be set to empty. If dx >= width or dy >= height, then
- inval would be set to the entire bounds of the bitmap.
- @return true if the scroll was doable. Will return false if the bitmap
- uses an unsupported config for scrolling (only kA8,
- kIndex8, kRGB_565, kARGB_4444, kARGB_8888 are supported).
- If no pixels are present (i.e. getPixels() returns false)
- inval will still be updated, and true will be returned.
- */
- bool scrollRect(const SkIRect* subset, int dx, int dy,
- SkRegion* inval = NULL) 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
- check happens at runtime, it is much slower than using a size-specific
- version. Unlike the size-specific methods, this routine also checks if
- getPixels() returns null, and returns that. The size-specific routines
- perform a debugging assert that getPixels() is not null, but they do
- not do any runtime checks.
- */
- void* getAddr(int x, int y) const;
-
- /** Returns the address of the pixel specified by x,y for 32bit pixels.
- */
- inline uint32_t* getAddr32(int x, int y) const;
- /** Returns the address of the pixel specified by x,y for 16bit pixels.
- */
- inline uint16_t* getAddr16(int x, int y) const;
- /** Returns the address of the pixel specified by x,y for 8bit pixels.
- */
- inline uint8_t* getAddr8(int x, int y) const;
- /** Returns the address of the byte containing the pixel specified by x,y
- for 1bit pixels.
- */
- inline uint8_t* getAddr1(int x, int y) const;
-
- /** Returns the color corresponding to the pixel specified by x,y for
- colortable based bitmaps.
- */
- inline SkPMColor getIndex8Color(int x, int y) const;
-
- // OS-specific helpers
-#ifndef SK_USE_WXWIDGETS
-#ifdef SK_BUILD_FOR_WIN
- /** On Windows and PocketPC builds, this will draw the SkBitmap onto the
- specified HDC
- */
- void drawToHDC(HDC, int left, int top) const;
-#elif defined(SK_BUILD_FOR_MAC)
- /** On Mac OS X and Carbon builds, this will draw the SkBitmap onto the
- specified WindowRef
- */
- void drawToPort(WindowRef, CGContextRef) const;
-#endif
-#endif
-
- /** Set dst to be a setset of this bitmap. If possible, it will share the
- pixel memory, and just point into a subset of it. However, if the config
- does not support this, a local copy will be made and associated with
- the dst bitmap. If the subset rectangle, intersected with the bitmap's
- dimensions is empty, or if there is an unsupported config, false will be
- returned and dst will be untouched.
- @param dst The bitmap that will be set to a subset of this bitmap
- @param subset The rectangle of pixels in this bitmap that dst will
- reference.
- @return true if the subset copy was successfully made.
- */
- bool extractSubset(SkBitmap* dst, const SkIRect& subset) const;
-
- /** Tries to make a new bitmap based on the dimensions of this bitmap,
- setting the new bitmap's config to the one specified, and then copying
- this bitmap's pixels into the new bitmap. If the conversion is not
- supported, or the allocator fails, then this method returns false and
- dst is left unchanged.
- @param dst The bitmap to be sized and allocated
- @param c The desired config for dst
- @param allocator Allocator used to allocate the pixelref for the dst
- bitmap. If this is null, the standard HeapAllocator
- will be used.
- @return true if the copy could be made.
- */
- bool copyTo(SkBitmap* dst, Config c, Allocator* allocator = NULL) const;
-
- bool hasMipMap() const;
- void buildMipMap(bool forceRebuild = false);
- void freeMipMap();
-
- /** Given scale factors sx, sy, determine the miplevel available in the
- bitmap, and return it (this is the amount to shift matrix iterators
- by). If dst is not null, it is set to the correct level.
- */
- int extractMipLevel(SkBitmap* dst, SkFixed sx, SkFixed sy);
-
- void extractAlpha(SkBitmap* dst) const {
- this->extractAlpha(dst, NULL, NULL);
- }
-
- void extractAlpha(SkBitmap* dst, const SkPaint* paint,
- SkIPoint* offset) const;
-
- void flatten(SkFlattenableWriteBuffer&) const;
- void unflatten(SkFlattenableReadBuffer&);
-
- SkDEBUGCODE(void validate() const;)
-
- class Allocator : public SkRefCnt {
- public:
- /** Allocate the pixel memory for the bitmap, given its dimensions and
- config. Return true on success, where success means either setPixels
- or setPixelRef was called. The pixels need not be locked when this
- returns. If the config requires a colortable, it also must be
- installed via setColorTable. If false is returned, the bitmap and
- colortable should be left unchanged.
- */
- virtual bool allocPixelRef(SkBitmap*, SkColorTable*) = 0;
- };
-
- /** Subclass of Allocator that returns a pixelref that allocates its pixel
- memory from the heap. This is the default Allocator invoked by
- allocPixels().
- */
- class HeapAllocator : public Allocator {
- public:
- virtual bool allocPixelRef(SkBitmap*, SkColorTable*);
- };
-
- class RLEPixels {
- public:
- RLEPixels(int width, int height);
- virtual ~RLEPixels();
-
- uint8_t* packedAtY(int y) const {
- SkASSERT((unsigned)y < (unsigned)fHeight);
- return fYPtrs[y];
- }
-
- // called by subclasses during creation
- void setPackedAtY(int y, uint8_t* addr) {
- SkASSERT((unsigned)y < (unsigned)fHeight);
- fYPtrs[y] = addr;
- }
-
- private:
- uint8_t** fYPtrs;
- int fHeight;
- };
-
-private:
-#ifdef SK_SUPPORT_MIPMAP
- struct MipMap;
- mutable MipMap* fMipMap;
-#endif
-
- mutable SkPixelRef* fPixelRef;
- mutable size_t fPixelRefOffset;
- mutable int fPixelLockCount;
- // either user-specified (in which case it is not treated as mutable)
- // or a cache of the returned value from fPixelRef->lockPixels()
- mutable void* fPixels;
- mutable SkColorTable* fColorTable; // only meaningful for kIndex8
-
- enum Flags {
- kImageIsOpaque_Flag = 0x01
- };
-
- uint32_t fRowBytes;
- uint16_t fWidth, fHeight;
- uint8_t fConfig;
- uint8_t fFlags;
- uint8_t fBytesPerPixel; // based on config
-
- /* Unreference any pixelrefs or colortables
- */
- void freePixels();
- void updatePixelsFromRef() const;
-
- static SkFixed ComputeMipLevel(SkFixed sx, SkFixed dy);
-};
-
-/** \class SkColorTable
-
- SkColorTable holds an array SkPMColors (premultiplied 32-bit colors) used by
- 8-bit bitmaps, where the bitmap bytes are interpreted as indices into the colortable.
-*/
-class SkColorTable : public SkRefCnt {
-public:
- /** Constructs an empty color table (zero colors).
- */
- explicit SkColorTable(int count);
- explicit SkColorTable(SkFlattenableReadBuffer&);
- SkColorTable(const SkPMColor colors[], int count);
- virtual ~SkColorTable();
-
- enum Flags {
- kColorsAreOpaque_Flag = 0x01 //!< if set, all of the colors in the table are opaque (alpha==0xFF)
- };
- /** Returns the flag bits for the color table. These can be changed with setFlags().
- */
- unsigned getFlags() const { return fFlags; }
- /** Set the flags for the color table. See the Flags enum for possible values.
- */
- void setFlags(unsigned flags);
-
- /** Returns the number of colors in the table.
- */
- int count() const { return fCount; }
-
- /** Returns the specified color from the table. In the debug build, this asserts that
- the index is in range (0 <= index < count).
- */
- SkPMColor operator[](int index) const {
- SkASSERT(fColors != NULL && (unsigned)index < fCount);
- return fColors[index];
- }
-
- /** Specify the number of colors in the color table. This does not initialize the colors
- to any value, just allocates memory for them. To initialize the values, either call
- setColors(array, count), or follow setCount(count) with a call to
- lockColors()/{set the values}/unlockColors(true).
- */
-// void setColors(int count) { this->setColors(NULL, count); }
-// void setColors(const SkPMColor[], int count);
-
- /** Return the array of colors for reading and/or writing. This must be
- balanced by a call to unlockColors(changed?), telling the colortable if
- the colors were changed during the lock.
- */
- SkPMColor* lockColors() {
- SkDEBUGCODE(fColorLockCount += 1;)
- return fColors;
- }
- /** Balancing call to lockColors(). If the colors have been changed, pass true.
- */
- void unlockColors(bool changed);
-
- /** Similar to lockColors(), lock16BitCache() returns the array of
- RGB16 colors that mirror the 32bit colors. However, this function
- will return null if kColorsAreOpaque_Flag is not set.
- Also, unlike lockColors(), the returned array here cannot be modified.
- */
- const uint16_t* lock16BitCache();
- /** Balancing call to lock16BitCache().
- */
- void unlock16BitCache() {
- SkASSERT(f16BitCacheLockCount > 0);
- SkDEBUGCODE(f16BitCacheLockCount -= 1);
- }
-
- void flatten(SkFlattenableWriteBuffer&) const;
-
-private:
- SkPMColor* fColors;
- uint16_t* f16BitCache;
- uint16_t fCount;
- uint8_t fFlags;
- SkDEBUGCODE(int fColorLockCount;)
- SkDEBUGCODE(int f16BitCacheLockCount;)
-
- void inval16BitCache();
-};
-
-class SkAutoLockPixels {
-public:
- SkAutoLockPixels(const SkBitmap& bitmap) : fBitmap(bitmap) {
- bitmap.lockPixels();
- }
- ~SkAutoLockPixels() {
- fBitmap.unlockPixels();
- }
-
-private:
- const SkBitmap& fBitmap;
-};
-
-/** Helper class that performs the lock/unlockColors calls on a colortable.
- The destructor will call unlockColors(false) if it has a bitmap's colortable
-*/
-class SkAutoLockColors : public SkNoncopyable {
-public:
- /** Initialize with no bitmap. Call lockColors(bitmap) to lock bitmap's
- colortable
- */
- SkAutoLockColors() : fCTable(NULL), fColors(NULL) {}
- /** Initialize with bitmap, locking its colortable if present
- */
- explicit SkAutoLockColors(const SkBitmap& bm) {
- fCTable = bm.getColorTable();
- fColors = fCTable ? fCTable->lockColors() : NULL;
- }
- /** Initialize with a colortable (may be null)
- */
- explicit SkAutoLockColors(SkColorTable* ctable) {
- fCTable = ctable;
- fColors = ctable ? ctable->lockColors() : NULL;
- }
- ~SkAutoLockColors() {
- if (fCTable) {
- fCTable->unlockColors(false);
- }
- }
-
- /** Return the currently locked colors, or NULL if no bitmap's colortable
- is currently locked.
- */
- const SkPMColor* colors() const { return fColors; }
-
- /** If a previous bitmap has been locked by this object, unlock its colors
- first. If the specified bitmap has a colortable, lock its colors and
- return them.
- */
- const SkPMColor* lockColors(const SkBitmap& bm) {
- if (fCTable) {
- fCTable->unlockColors(false);
- }
- fCTable = bm.getColorTable();
- fColors = fCTable ? fCTable->lockColors() : NULL;
- return fColors;
- }
-
-private:
- SkColorTable* fCTable;
- const SkPMColor* fColors;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-inline uint32_t* SkBitmap::getAddr32(int x, int y) const {
- SkASSERT(fPixels);
- SkASSERT(fConfig == kARGB_8888_Config);
- SkASSERT((unsigned)x < fWidth && (unsigned)y < fHeight);
- return (uint32_t*)((char*)fPixels + y * fRowBytes + (x << 2));
-}
-
-inline uint16_t* SkBitmap::getAddr16(int x, int y) const {
- SkASSERT(fPixels);
- SkASSERT(fConfig == kRGB_565_Config || fConfig == kARGB_4444_Config);
- SkASSERT((unsigned)x < fWidth && (unsigned)y < fHeight);
- return (uint16_t*)((char*)fPixels + y * fRowBytes + (x << 1));
-}
-
-inline uint8_t* SkBitmap::getAddr8(int x, int y) const {
- SkASSERT(fPixels);
- SkASSERT(fConfig == kA8_Config || fConfig == kIndex8_Config);
- SkASSERT((unsigned)x < fWidth && (unsigned)y < fHeight);
- return (uint8_t*)fPixels + y * fRowBytes + x;
-}
-
-inline SkPMColor SkBitmap::getIndex8Color(int x, int y) const {
- SkASSERT(fPixels);
- SkASSERT(fConfig == kIndex8_Config);
- SkASSERT((unsigned)x < fWidth && (unsigned)y < fHeight);
- SkASSERT(fColorTable);
- return (*fColorTable)[*((const uint8_t*)fPixels + y * fRowBytes + x)];
-}
-
-// returns the address of the byte that contains the x coordinate
-inline uint8_t* SkBitmap::getAddr1(int x, int y) const {
- SkASSERT(fPixels);
- SkASSERT(fConfig == kA1_Config);
- SkASSERT((unsigned)x < fWidth && (unsigned)y < fHeight);
- return (uint8_t*)fPixels + y * fRowBytes + (x >> 3);
-}
-
-#endif
-
diff --git a/skia/include/SkBlurDrawLooper.h b/skia/include/SkBlurDrawLooper.h
deleted file mode 100644
index 028b2eb..0000000
--- a/skia/include/SkBlurDrawLooper.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkBlurDrawLooper_DEFINED
-#define SkBlurDrawLooper_DEFINED
-
-#include "SkDrawLooper.h"
-#include "SkColor.h"
-
-class SkMaskFilter;
-
-/** \class SkBlurDrawLooper
- This class draws a shadow of the object (possibly offset), and then draws
- the original object in its original position.
- should there be an option to just draw the shadow/blur layer? webkit?
-*/
-class SkBlurDrawLooper : public SkDrawLooper {
-public:
- SkBlurDrawLooper(SkScalar radius, SkScalar dx, SkScalar dy, SkColor color);
- virtual ~SkBlurDrawLooper();
-
- // overrides from SkDrawLooper
- virtual void init(SkCanvas*, SkPaint*);
- virtual bool next();
- virtual void restore();
-
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return SkNEW_ARGS(SkBlurDrawLooper, (buffer));
- }
-
-protected:
- SkBlurDrawLooper(SkFlattenableReadBuffer&);
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer& );
- virtual Factory getFactory() { return CreateProc; }
-
-private:
- SkCanvas* fCanvas;
- SkPaint* fPaint;
- SkMaskFilter* fBlur;
- SkScalar fDx, fDy;
- SkColor fBlurColor;
- SkColor fSavedColor; // remember the original
- int fSaveCount;
-
- enum State {
- kBeforeEdge,
- kAfterEdge,
- kDone
- };
- State fState;
-
- typedef SkDrawLooper INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkBlurMaskFilter.h b/skia/include/SkBlurMaskFilter.h
deleted file mode 100644
index b90ea5e..0000000
--- a/skia/include/SkBlurMaskFilter.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkBlurMaskFilter_DEFINED
-#define SkBlurMaskFilter_DEFINED
-
-// we include this since our callers will need to at least be able to ref/unref
-#include "SkMaskFilter.h"
-#include "SkScalar.h"
-
-class SkBlurMaskFilter {
-public:
- enum BlurStyle {
- kNormal_BlurStyle, //!< fuzzy inside and outside
- kSolid_BlurStyle, //!< solid inside, fuzzy outside
- kOuter_BlurStyle, //!< nothing inside, fuzzy outside
- kInner_BlurStyle, //!< fuzzy inside, nothing outside
-
- kBlurStyleCount
- };
-
- /** Create a blur maskfilter.
- @param radius The radius to extend the blur from the original mask. Must be > 0.
- @param style The BlurStyle to use
- @return The new blur maskfilter
- */
- static SkMaskFilter* Create(SkScalar radius, BlurStyle style);
-
- /** Create an emboss maskfilter
- @param direction array of 3 scalars [x, y, z] specifying the direction of the light source
- @param ambient 0...1 amount of ambient light
- @param specular coefficient for specular highlights (e.g. 8)
- @param blurRadius amount to blur before applying lighting (e.g. 3)
- @return the emboss maskfilter
- */
- static SkMaskFilter* CreateEmboss( const SkScalar direction[3],
- SkScalar ambient, SkScalar specular,
- SkScalar blurRadius);
-
-private:
- SkBlurMaskFilter(); // can't be instantiated
-};
-
-#endif
-
diff --git a/skia/include/SkBorderView.h b/skia/include/SkBorderView.h
deleted file mode 100644
index 94ccc1f..0000000
--- a/skia/include/SkBorderView.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkBorderView_DEFINED
-#define SkBorderView_DEFINED
-
-#include "SkView.h"
-#include "SkWidgetViews.h"
-#include "SkAnimator.h"
-
-class SkBorderView : public SkWidgetView {
-public:
- SkBorderView();
- ~SkBorderView();
- void setSkin(const char skin[]);
- SkScalar getLeft() const { return fLeft; }
- SkScalar getRight() const { return fRight; }
- SkScalar getTop() const { return fTop; }
- SkScalar getBottom() const { return fBottom; }
-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;
- SkScalar fLeft, fRight, fTop, fBottom; //margin on each side
- SkRect fMargin;
-
- typedef SkWidgetView INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkBounder.h b/skia/include/SkBounder.h
deleted file mode 100644
index f20961d..0000000
--- a/skia/include/SkBounder.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkBounder_DEFINED
-#define SkBounder_DEFINED
-
-#include "SkTypes.h"
-#include "SkRefCnt.h"
-
-struct SkIRect;
-struct SkPoint;
-struct SkRect;
-class SkPaint;
-class SkPath;
-class SkRegion;
-
-/** \class SkBounder
-
- Base class for intercepting the device bounds of shapes before they are drawn.
- Install a subclass of this in your canvas.
-*/
-class SkBounder : public SkRefCnt {
-public:
- /* Call to perform a clip test before calling onIRect.
- Returns the result from onIRect.
- */
- bool doIRect(const SkIRect&);
-
-protected:
- /** Override in your subclass. This is called with the device bounds of an
- object (text, geometry, image) just before it is drawn. If your method
- returns false, the drawing for that shape is aborted. If your method
- returns true, drawing continues. The bounds your method receives have already
- been transformed in to device coordinates, and clipped to the current clip.
- */
- virtual bool onIRect(const SkIRect&) = 0;
-
- /** Called after each shape has been drawn. The default implementation does
- nothing, but your override could use this notification to signal itself
- that the offscreen being rendered into needs to be updated to the screen.
- */
- virtual void commit();
-
-private:
- bool doHairline(const SkPoint&, const SkPoint&, const SkPaint&);
- bool doRect(const SkRect&, const SkPaint&);
- bool doPath(const SkPath&, const SkPaint&, bool doFill);
- void setClip(const SkRegion* clip) { fClip = clip; }
-
- const SkRegion* fClip;
- friend class SkAutoBounderCommit;
- friend class SkDraw;
- friend class SkDrawIter;
- friend struct Draw1Glyph;
- friend class SkMaskFilter;
-};
-
-#endif
-
diff --git a/skia/include/SkCamera.h b/skia/include/SkCamera.h
deleted file mode 100644
index 8bbcabf..0000000
--- a/skia/include/SkCamera.h
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-// Inspired by Rob Johnson's most excellent QuickDraw GX sample code
-
-#ifndef SkCamera_DEFINED
-#define SkCamera_DEFINED
-
-#include "Sk64.h"
-#include "SkMatrix.h"
-
-class SkCanvas;
-
-#ifdef SK_SCALAR_IS_FIXED
- typedef SkFract SkUnitScalar;
- #define SK_UnitScalar1 SK_Fract1
- #define SkUnitScalarMul(a, b) SkFractMul(a, b)
- #define SkUnitScalarDiv(a, b) SkFractDiv(a, b)
-#else
- typedef float SkUnitScalar;
- #define SK_UnitScalar1 SK_Scalar1
- #define SkUnitScalarMul(a, b) SkScalarMul(a, b)
- #define SkUnitScalarDiv(a, b) SkScalarDiv(a, b)
-#endif
-
-struct SkUnit3D {
- SkUnitScalar fX, fY, fZ;
-
- void set(SkUnitScalar x, SkUnitScalar y, SkUnitScalar z)
- {
- fX = x; fY = y; fZ = z;
- }
- static SkUnitScalar Dot(const SkUnit3D&, const SkUnit3D&);
- static void Cross(const SkUnit3D&, const SkUnit3D&, SkUnit3D* cross);
-};
-
-struct SkPoint3D {
- SkScalar fX, fY, fZ;
-
- void set(SkScalar x, SkScalar y, SkScalar z)
- {
- fX = x; fY = y; fZ = z;
- }
- SkScalar normalize(SkUnit3D*) const;
-};
-typedef SkPoint3D SkVector3D;
-
-struct SkMatrix3D {
- SkScalar fMat[3][4];
-
- void reset();
-
- void setRow(int row, SkScalar a, SkScalar b, SkScalar c, SkScalar d = 0)
- {
- SkASSERT((unsigned)row < 3);
- fMat[row][0] = a;
- fMat[row][1] = b;
- fMat[row][2] = c;
- fMat[row][3] = d;
- }
-
- void setRotateX(SkScalar deg);
- 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);
- void preTranslate(SkScalar x, SkScalar y, SkScalar z);
-
- void setConcat(const SkMatrix3D& a, const SkMatrix3D& b);
- void mapPoint(const SkPoint3D& src, SkPoint3D* dst) const;
- void mapVector(const SkVector3D& src, SkVector3D* dst) const;
-
- void mapPoint(SkPoint3D* v) const
- {
- this->mapPoint(*v, v);
- }
- void mapVector(SkVector3D* v) const
- {
- this->mapVector(*v, v);
- }
-};
-
-class SkPatch3D {
-public:
- SkPatch3D();
-
- void reset();
- void transform(const SkMatrix3D&, SkPatch3D* dst = NULL) const;
-
- // dot a unit vector with the patch's normal
- SkScalar dotWith(SkScalar dx, SkScalar dy, SkScalar dz) const;
- SkScalar dotWith(const SkVector3D& v) const
- {
- return this->dotWith(v.fX, v.fY, v.fZ);
- }
-
- // depreicated, but still here for animator (for now)
- void rotate(SkScalar x, SkScalar y, SkScalar z) {}
- void rotateDegrees(SkScalar x, SkScalar y, SkScalar z) {}
-
-private:
-public: // make public for SkDraw3D for now
- SkVector3D fU, fV;
- SkPoint3D fOrigin;
-
- friend class SkCamera3D;
-};
-
-class SkCamera3D {
-public:
- SkCamera3D();
-
- void reset();
- void update();
- void patchToMatrix(const SkPatch3D&, SkMatrix* matrix) const;
-
- SkPoint3D fLocation;
- SkPoint3D fAxis;
- SkPoint3D fZenith;
- SkPoint3D fObserver;
-
-private:
- mutable SkMatrix fOrientation;
- mutable bool fNeedToUpdate;
-
- void doUpdate() const;
-};
-
-class Sk3DView : SkNoncopyable {
-public:
- Sk3DView();
- ~Sk3DView();
-
- void save();
- void restore();
-
- void translate(SkScalar x, SkScalar y, SkScalar z);
- void rotateX(SkScalar deg);
- void rotateY(SkScalar deg);
- void rotateZ(SkScalar deg);
-
- void getMatrix(SkMatrix*) const;
- void applyToCanvas(SkCanvas*) const;
-
- SkScalar dotWithNormal(SkScalar dx, SkScalar dy, SkScalar dz) const;
-
-private:
- struct Rec {
- Rec* fNext;
- SkMatrix3D fMatrix;
- };
- Rec* fRec;
- Rec fInitialRec;
- SkCamera3D fCamera;
-};
-
-#endif
-
diff --git a/skia/include/SkCanvas.h b/skia/include/SkCanvas.h
deleted file mode 100644
index a19a5ae..0000000
--- a/skia/include/SkCanvas.h
+++ /dev/null
@@ -1,794 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkCanvas_DEFINED
-#define SkCanvas_DEFINED
-
-#include "SkTypes.h"
-#include "SkBitmap.h"
-#include "SkDeque.h"
-#include "SkPaint.h"
-#include "SkRefCnt.h"
-#include "SkPorterDuff.h"
-#include "SkPath.h"
-#include "SkRegion.h"
-#include "SkScalarCompare.h"
-
-class SkBounder;
-class SkDevice;
-class SkDraw;
-class SkDrawFilter;
-class SkPicture;
-
-/** \class SkCanvas
-
- A Canvas encapsulates all of the state about drawing into a device (bitmap).
- This includes a reference to the device itself, and a stack of matrix/clip
- values. For any given draw call (e.g. drawRect), the geometry of the object
- being drawn is transformed by the concatenation of all the matrices in the
- stack. The transformed geometry is clipped by the intersection of all of
- the clips in the stack.
-
- While the Canvas holds the state of the drawing device, the state (style)
- of the object being drawn is held by the Paint, which is provided as a
- parameter to each of the draw() methods. The Paint holds attributes such as
- color, typeface, textSize, strokeWidth, shader (e.g. gradients, patterns),
- etc.
-*/
-class SkCanvas : public SkRefCnt {
-public:
- /** Construct a canvas with the specified bitmap to draw into.
- @param bitmap Specifies a bitmap for the canvas to draw into. Its
- structure are copied to the canvas.
- */
- explicit SkCanvas(const SkBitmap& bitmap);
- /** Construct a canvas with the specified device to draw into.
- @param device Specifies a device for the canvas to draw into. The
- device may be null.
- */
- explicit SkCanvas(SkDevice* device = NULL);
- virtual ~SkCanvas();
-
- ///////////////////////////////////////////////////////////////////////////
-
- /** If this subclass of SkCanvas supports GL viewports, return true and set
- size (if not null) to the size of the viewport. If it is not supported,
- ignore vp and return false.
- */
- virtual bool getViewport(SkIPoint* size) const;
-
- /** If this subclass of SkCanvas supports GL viewports, return true and set
- the viewport to the specified x and y dimensions. If it is not
- supported, ignore x and y and return false.
- */
- virtual bool setViewport(int x, int y);
-
- /** Return the canvas' device object, which may be null. The device holds
- the bitmap of the pixels that the canvas draws into. The reference count
- of the returned device is not changed by this call.
- */
- SkDevice* getDevice() const;
-
- /** Specify a device for this canvas to draw into. If it is not null, its
- reference count is incremented. If the canvas was already holding a
- device, its reference count is decremented. The new device is returned.
- */
- SkDevice* setDevice(SkDevice* device);
-
- /** Specify a bitmap for the canvas to draw into. This is a help method for
- setDevice(), and it creates a device for the bitmap by calling
- createDevice(). The structure of the bitmap is copied into the device.
- */
- virtual SkDevice* setBitmapDevice(const SkBitmap& bitmap);
-
- ///////////////////////////////////////////////////////////////////////////
-
- enum SaveFlags {
- /** save the matrix state, restoring it on restore() */
- kMatrix_SaveFlag = 0x01,
- /** save the clip state, restoring it on restore() */
- kClip_SaveFlag = 0x02,
- /** the layer needs to support per-pixel alpha */
- kHasAlphaLayer_SaveFlag = 0x04,
- /** the layer needs to support 8-bits per color component */
- kFullColorLayer_SaveFlag = 0x08,
- /** the layer should clip against the bounds argument */
- kClipToLayer_SaveFlag = 0x10,
-
- // helper masks for common choices
- kMatrixClip_SaveFlag = 0x03,
- kARGB_NoClipLayer_SaveFlag = 0x0F,
- kARGB_ClipLayer_SaveFlag = 0x1F
- };
-
- /** This call saves the current matrix and clip information, and pushes a
- copy onto a private stack. Subsequent calls to translate, scale,
- rotate, skew, concat or clipRect, clipPath all operate on this copy.
- When the balancing call to restore() is made, this copy is deleted and
- the previous matrix/clip state is restored.
- @return The value to pass to restoreToCount() to balance this save()
- */
- virtual int save(SaveFlags flags = kMatrixClip_SaveFlag);
-
- /** This behaves the same as save(), but in addition it allocates an
- offscreen bitmap. All drawing calls are directed there, and only when
- the balancing call to restore() is made is that offscreen transfered to
- the canvas (or the previous layer). Subsequent calls to translate,
- scale, rotate, skew, concat or clipRect, clipPath all operate on this
- copy. When the balancing call to restore() is made, this copy is deleted
- and the previous matrix/clip state is restored.
- @param bounds (may be null) the maximum size the offscreen bitmap needs
- to be (in local coordinates)
- @param paint (may be null) This is copied, and is applied to the
- offscreen when restore() is called
- @param flags LayerFlags
- @return The value to pass to restoreToCount() to balance this save()
- */
- virtual int saveLayer(const SkRect* bounds, const SkPaint* paint,
- SaveFlags flags = kARGB_ClipLayer_SaveFlag);
-
- /** This behaves the same as save(), but in addition it allocates an
- offscreen bitmap. All drawing calls are directed there, and only when
- the balancing call to restore() is made is that offscreen transfered to
- the canvas (or the previous layer). Subsequent calls to translate,
- scale, rotate, skew, concat or clipRect, clipPath all operate on this
- copy. When the balancing call to restore() is made, this copy is deleted
- and the previous matrix/clip state is restored.
- @param bounds (may be null) the maximum size the offscreen bitmap needs
- to be (in local coordinates)
- @param alpha This is applied to the offscreen when restore() is called.
- @param flags LayerFlags
- @return The value to pass to restoreToCount() to balance this save()
- */
- int saveLayerAlpha(const SkRect* bounds, U8CPU alpha,
- SaveFlags flags = kARGB_ClipLayer_SaveFlag);
-
- /** This call balances a previous call to save(), and is used to remove all
- modifications to the matrix/clip state since the last save call. It is
- an error to call restore() more times than save() was called.
- */
- virtual void restore();
-
- /** Returns the number of matrix/clip states on the SkCanvas' private stack.
- This will equal # save() calls - # restore() calls.
- */
- int getSaveCount() const;
-
- /** Efficient way to pop any calls to save() that happened after the save
- count reached saveCount. It is an error for saveCount to be less than
- getSaveCount()
- @param saveCount The number of save() levels to restore from
- */
- void restoreToCount(int saveCount);
-
- /** Preconcat the current matrix with the specified translation
- @param dx The distance to translate in X
- @param dy The distance to translate in Y
- returns true if the operation succeeded (e.g. did not overflow)
- */
- virtual bool translate(SkScalar dx, SkScalar dy);
-
- /** Preconcat the current matrix with the specified scale.
- @param sx The amount to scale in X
- @param sy The amount to scale in Y
- returns true if the operation succeeded (e.g. did not overflow)
- */
- virtual bool scale(SkScalar sx, SkScalar sy);
-
- /** Preconcat the current matrix with the specified rotation.
- @param degrees The amount to rotate, in degrees
- returns true if the operation succeeded (e.g. did not overflow)
- */
- virtual bool rotate(SkScalar degrees);
-
- /** Preconcat the current matrix with the specified skew.
- @param sx The amount to skew in X
- @param sy The amount to skew in Y
- returns true if the operation succeeded (e.g. did not overflow)
- */
- virtual bool skew(SkScalar sx, SkScalar sy);
-
- /** Preconcat the current matrix with the specified matrix.
- @param matrix The matrix to preconcatenate with the current matrix
- @return true if the operation succeeded (e.g. did not overflow)
- */
- virtual bool concat(const SkMatrix& matrix);
-
- /** Replace the current matrix with a copy of the specified matrix.
- @param matrix The matrix that will be copied into the current matrix.
- */
- virtual void setMatrix(const SkMatrix& matrix);
-
- /** Helper for setMatrix(identity). Sets the current matrix to identity.
- */
- void resetMatrix();
-
- /** Modify the current clip with the specified rectangle.
- @param rect The rect to intersect with the current clip
- @param op The region op to apply to the current clip
- @return true if the canvas' clip is non-empty
- */
- virtual bool clipRect(const SkRect& rect,
- SkRegion::Op op = SkRegion::kIntersect_Op);
-
- /** Modify the current clip with the specified path.
- @param path The path to apply to the current clip
- @param op The region op to apply to the current clip
- @return true if the canvas' new clip is non-empty
- */
- virtual bool clipPath(const SkPath& path,
- SkRegion::Op op = SkRegion::kIntersect_Op);
-
- /** Modify the current clip with the specified region. Note that unlike
- clipRect() and clipPath() which transform their arguments by the current
- matrix, clipRegion() assumes its argument is already in device
- coordinates, and so no transformation is performed.
- @param deviceRgn The region to apply to the current clip
- @param op The region op to apply to the current clip
- @return true if the canvas' new clip is non-empty
- */
- virtual bool clipRegion(const SkRegion& deviceRgn,
- SkRegion::Op op = SkRegion::kIntersect_Op);
-
- /** Helper for clipRegion(rgn, kReplace_Op). Sets the current clip to the
- specified region. This does not intersect or in any other way account
- for the existing clip region.
- @param deviceRgn The region to copy into the current clip.
- @return true if the new clip region is non-empty
- */
- bool setClipRegion(const SkRegion& deviceRgn) {
- return this->clipRegion(deviceRgn, SkRegion::kReplace_Op);
- }
-
- /** Enum describing how to treat edges when performing quick-reject tests
- of a geometry against the current clip. Treating them as antialiased
- (kAA_EdgeType) will take into account the extra pixels that may be drawn
- if the edge does not lie exactly on a device pixel boundary (after being
- transformed by the current matrix).
- */
- enum EdgeType {
- /** Treat the edges as B&W (not antialiased) for the purposes of testing
- against the current clip
- */
- kBW_EdgeType,
- /** Treat the edges as antialiased for the purposes of testing
- against the current clip
- */
- kAA_EdgeType
- };
-
- /** Return true if the specified rectangle, after being transformed by the
- current matrix, would lie completely outside of the current clip. Call
- this to check if an area you intend to draw into is clipped out (and
- therefore you can skip making the draw calls).
- @param rect the rect to compare with the current clip
- @param et specifies how to treat the edges (see EdgeType)
- @return true if the rect (transformed by the canvas' matrix) does not
- intersect with the canvas' clip
- */
- bool quickReject(const SkRect& rect, EdgeType et) const;
-
- /** Return true if the specified path, after being transformed by the
- current matrix, would lie completely outside of the current clip. Call
- this to check if an area you intend to draw into is clipped out (and
- therefore you can skip making the draw calls). Note, for speed it may
- return false even if the path itself might not intersect the clip
- (i.e. the bounds of the path intersects, but the path does not).
- @param path The path to compare with the current clip
- @param et specifies how to treat the edges (see EdgeType)
- @return true if the path (transformed by the canvas' matrix) does not
- intersect with the canvas' clip
- */
- bool quickReject(const SkPath& path, EdgeType et) const;
-
- /** Return true if the horizontal band specified by top and bottom is
- completely clipped out. This is a conservative calculation, meaning
- that it is possible that if the method returns false, the band may still
- in fact be clipped out, but the converse is not true. If this method
- returns true, then the band is guaranteed to be clipped out.
- @param top The top of the horizontal band to compare with the clip
- @param bottom The bottom of the horizontal and to compare with the clip
- @return true if the horizontal band is completely clipped out (i.e. does
- not intersect the current clip)
- */
- bool quickRejectY(SkScalar top, SkScalar bottom, EdgeType et) const;
-
- /** Return the bounds of the current clip (in local coordinates) in the
- bounds parameter, and return true if it is non-empty. This can be useful
- in a way similar to quickReject, in that it tells you that drawing
- outside of these bounds will be clipped out.
- */
- bool getClipBounds(SkRect* bounds, EdgeType et = kAA_EdgeType) const;
-
- /** Fill the entire canvas' bitmap (restricted to the current clip) with the
- specified ARGB color, using the specified PorterDuff mode.
- @param a the alpha component (0..255) of the color to fill the canvas
- @param r the red component (0..255) of the color to fill the canvas
- @param g the green component (0..255) of the color to fill the canvas
- @param b the blue component (0..255) of the color to fill the canvas
- @param mode the mode to apply the color in (defaults to SrcOver)
- */
- void drawARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b,
- SkPorterDuff::Mode mode = SkPorterDuff::kSrcOver_Mode);
-
- /** Fill the entire canvas' bitmap (restricted to the current clip) with the
- specified color and porter-duff xfermode.
- @param color the color to draw with
- @param mode the mode to apply the color in (defaults to SrcOver)
- */
- void drawColor(SkColor color,
- SkPorterDuff::Mode mode = SkPorterDuff::kSrcOver_Mode);
-
- /** Fill the entire canvas' bitmap (restricted to the current clip) with the
- specified paint.
- @param paint The paint used to fill the canvas
- */
- virtual void drawPaint(const SkPaint& paint);
-
- enum PointMode {
- /** drawPoints draws each point separately */
- kPoints_PointMode,
- /** drawPoints draws each pair of points as a line segment */
- kLines_PointMode,
- /** drawPoints draws the array of points as a polygon */
- kPolygon_PointMode
- };
-
- /** Draw a series of points, interpreted based on the PointMode mode. For
- all modes, the count parameter is interpreted as the total number of
- points. For kLine mode, count/2 line segments are drawn.
- For kPoint mode, each point is drawn centered at its coordinate, and its
- size is specified by the paint's stroke-width. It draws as a square,
- unless the paint's cap-type is round, in which the points are drawn as
- circles.
- For kLine mode, each pair of points is drawn as a line segment,
- respecting the paint's settings for cap/join/width.
- For kPolygon mode, the entire array is drawn as a series of connected
- line segments.
- Note that, while similar, kLine and kPolygon modes draw slightly
- differently than the equivalent path built with a series of moveto,
- lineto calls, in that the path will draw all of its contours at once,
- with no interactions if contours intersect each other (think XOR
- xfermode). drawPoints always draws each element one at a time.
- @param mode PointMode specifying how to draw the array of points.
- @param count The number of points in the array
- @param pts Array of points to draw
- @param paint The paint used to draw the points
- */
- virtual void drawPoints(PointMode mode, size_t count, const SkPoint pts[],
- const SkPaint& paint);
-
- /** Helper method for drawing a single point. See drawPoints() for a more
- details.
- */
- void drawPoint(SkScalar x, SkScalar y, const SkPaint& paint);
-
- /** Draws a single pixel in the specified color.
- @param x The X coordinate of which pixel to draw
- @param y The Y coordiante of which pixel to draw
- @param color The color to draw
- */
- void drawPoint(SkScalar x, SkScalar y, SkColor color);
-
- /** Draw a line segment with the specified start and stop x,y coordinates,
- using the specified paint. NOTE: since a line is always "framed", the
- paint's Style is ignored.
- @param x0 The x-coordinate of the start point of the line
- @param y0 The y-coordinate of the start point of the line
- @param x1 The x-coordinate of the end point of the line
- @param y1 The y-coordinate of the end point of the line
- @param paint The paint used to draw the line
- */
- void drawLine(SkScalar x0, SkScalar y0, SkScalar x1, SkScalar y1,
- const SkPaint& paint);
-
- /** Draw the specified rectangle using the specified paint. The rectangle
- will be filled or stroked based on the Style in the paint.
- @param rect The rect to be drawn
- @param paint The paint used to draw the rect
- */
- virtual void drawRect(const SkRect& rect, const SkPaint& paint);
-
- /** Draw the specified rectangle using the specified paint. The rectangle
- will be filled or framed based on the Style in the paint.
- @param rect The rect to be drawn
- @param paint The paint used to draw the rect
- */
- void drawIRect(const SkIRect& rect, const SkPaint& paint)
- {
- SkRect r;
- r.set(rect); // promotes the ints to scalars
- this->drawRect(r, paint);
- }
-
- /** Draw the specified rectangle using the specified paint. The rectangle
- will be filled or framed based on the Style in the paint.
- @param left The left side of the rectangle to be drawn
- @param top The top side of the rectangle to be drawn
- @param right The right side of the rectangle to be drawn
- @param bottom The bottom side of the rectangle to be drawn
- @param paint The paint used to draw the rect
- */
- void drawRectCoords(SkScalar left, SkScalar top, SkScalar right,
- SkScalar bottom, const SkPaint& paint);
-
- /** Draw the specified oval using the specified paint. The oval will be
- filled or framed based on the Style in the paint.
- @param oval The rectangle bounds of the oval to be drawn
- @param paint The paint used to draw the oval
- */
- void drawOval(const SkRect& oval, const SkPaint&);
-
- /** Draw the specified circle using the specified paint. If radius is <= 0,
- then nothing will be drawn. The circle will be filled
- or framed based on the Style in the paint.
- @param cx The x-coordinate of the center of the cirle to be drawn
- @param cy The y-coordinate of the center of the cirle to be drawn
- @param radius The radius of the cirle to be drawn
- @param paint The paint used to draw the circle
- */
- void drawCircle(SkScalar cx, SkScalar cy, SkScalar radius,
- const SkPaint& paint);
-
- /** Draw the specified arc, which will be scaled to fit inside the
- specified oval. If the sweep angle is >= 360, then the oval is drawn
- completely. Note that this differs slightly from SkPath::arcTo, which
- treats the sweep angle mod 360.
- @param oval The bounds of oval used to define the shape of the arc
- @param startAngle Starting angle (in degrees) where the arc begins
- @param sweepAngle Sweep angle (in degrees) measured clockwise
- @param useCenter true means include the center of the oval. For filling
- this will draw a wedge. False means just use the arc.
- @param paint The paint used to draw the arc
- */
- void drawArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle,
- bool useCenter, const SkPaint& paint);
-
- /** Draw the specified round-rect using the specified paint. The round-rect
- will be filled or framed based on the Style in the paint.
- @param rect The rectangular bounds of the roundRect to be drawn
- @param rx The x-radius of the oval used to round the corners
- @param ry The y-radius of the oval used to round the corners
- @param paint The paint used to draw the roundRect
- */
- void drawRoundRect(const SkRect& rect, SkScalar rx, SkScalar ry,
- const SkPaint& paint);
-
- /** Draw the specified path using the specified paint. The path will be
- filled or framed based on the Style in the paint.
- @param path The path to be drawn
- @param paint The paint used to draw the path
- */
- virtual void drawPath(const SkPath& path, const SkPaint& paint);
-
- /** Draw the specified bitmap, with its top/left corner at (x,y), using the
- specified paint, transformed by the current matrix. Note: if the paint
- contains a maskfilter that generates a mask which extends beyond the
- bitmap's original width/height, then the bitmap will be drawn as if it
- were in a Shader with CLAMP mode. Thus the color outside of the original
- width/height will be the edge color replicated.
- @param bitmap The bitmap to be drawn
- @param left The position of the left side of the bitmap being drawn
- @param top The position of the top side of the bitmap being drawn
- @param paint The paint used to draw the bitmap, or NULL
- */
- virtual void drawBitmap(const SkBitmap& bitmap, SkScalar left, SkScalar top,
- const SkPaint* paint = NULL);
-
- /** Draw the specified bitmap, with the specified matrix applied (before the
- canvas' matrix is applied).
- @param bitmap The bitmap to be drawn
- @param src Optional: specify the subset of the bitmap to be drawn
- @param dst The destination rectangle where the scaled/translated
- image will be drawn
- @param paint The paint used to draw the bitmap, or NULL
- */
- virtual void drawBitmapRect(const SkBitmap& bitmap, const SkIRect* src,
- const SkRect& dst, const SkPaint* paint = NULL);
-
- virtual void drawBitmapMatrix(const SkBitmap& bitmap, const SkMatrix& m,
- const SkPaint* paint = NULL);
-
- /** Draw the specified bitmap, with its top/left corner at (x,y),
- NOT transformed by the current matrix. Note: if the paint
- contains a maskfilter that generates a mask which extends beyond the
- bitmap's original width/height, then the bitmap will be drawn as if it
- were in a Shader with CLAMP mode. Thus the color outside of the original
- width/height will be the edge color replicated.
- @param bitmap The bitmap to be drawn
- @param left The position of the left side of the bitmap being drawn
- @param top The position of the top side of the bitmap being drawn
- @param paint The paint used to draw the bitmap, or NULL
- */
- virtual void drawSprite(const SkBitmap& bitmap, int left, int top,
- const SkPaint* paint = NULL);
-
- /** Draw the text, with origin at (x,y), using the specified paint.
- The origin is interpreted based on the Align setting in the paint.
- @param text The text to be drawn
- @param byteLength The number of bytes to read from the text parameter
- @param x The x-coordinate of the origin of the text being drawn
- @param y The y-coordinate of the origin of the text being drawn
- @param paint The paint used for the text (e.g. color, size, style)
- */
- virtual void drawText(const void* text, size_t byteLength, SkScalar x,
- SkScalar y, const SkPaint& paint);
-
- /** Draw the text, with each character/glyph origin specified by the pos[]
- array. The origin is interpreted by the Align setting in the paint.
- @param text The text to be drawn
- @param byteLength The number of bytes to read from the text parameter
- @param pos Array of positions, used to position each character
- @param paint The paint used for the text (e.g. color, size, style)
- */
- virtual void drawPosText(const void* text, size_t byteLength,
- const SkPoint pos[], const SkPaint& paint);
-
- /** Draw the text, with each character/glyph origin specified by the x
- coordinate taken from the xpos[] array, and the y from the constY param.
- The origin is interpreted by the Align setting in the paint.
- @param text The text to be drawn
- @param byteLength The number of bytes to read from the text parameter
- @param xpos Array of x-positions, used to position each character
- @param constY The shared Y coordinate for all of the positions
- @param paint The paint used for the text (e.g. color, size, style)
- */
- virtual void drawPosTextH(const void* text, size_t byteLength,
- const SkScalar xpos[], SkScalar constY,
- const SkPaint& paint);
-
- /** Draw the text, with origin at (x,y), using the specified paint, along
- the specified path. The paint's Align setting determins where along the
- path to start the text.
- @param text The text to be drawn
- @param byteLength The number of bytes to read from the text parameter
- @param path The path the text should follow for its baseline
- @param hOffset The distance along the path to add to the text's
- starting position
- @param vOffset The distance above(-) or below(+) the path to
- position the text
- @param paint The paint used for the text
- */
- void drawTextOnPathHV(const void* text, size_t byteLength,
- const SkPath& path, SkScalar hOffset,
- SkScalar vOffset, const SkPaint& paint);
-
- /** Draw the text, with origin at (x,y), using the specified paint, along
- the specified path. The paint's Align setting determins where along the
- path to start the text.
- @param text The text to be drawn
- @param byteLength The number of bytes to read from the text parameter
- @param path The path the text should follow for its baseline
- @param matrix (may be null) Applied to the text before it is
- mapped onto the path
- @param paint The paint used for the text
- */
- virtual void drawTextOnPath(const void* text, size_t byteLength,
- const SkPath& path, const SkMatrix* matrix,
- const SkPaint& paint);
-
- /** Draw the picture into this canvas. This method effective brackets the
- playback of the picture's draw calls with save/restore, so the state
- of this canvas will be unchanged after this call. This contrasts with
- the more immediate method SkPicture::draw(), which does not bracket
- the canvas with save/restore, thus the canvas may be left in a changed
- state after the call.
- @param picture The recorded drawing commands to playback into this
- canvas.
- */
- virtual void drawPicture(SkPicture& picture);
-
- enum VertexMode {
- kTriangles_VertexMode,
- kTriangleStrip_VertexMode,
- kTriangleFan_VertexMode
- };
-
- /** Draw the array of vertices, interpreted as triangles (based on mode).
- @param vmode How to interpret the array of vertices
- @param vertexCount The number of points in the vertices array (and
- corresponding texs and colors arrays if non-null)
- @param vertices Array of vertices for the mesh
- @param texs May be null. If not null, specifies the coordinate
- in texture space for each vertex.
- @param colors May be null. If not null, specifies a color for each
- vertex, to be interpolated across the triangle.
- @param xmode Used if both texs and colors are present. In this
- case the colors are combined with the texture using mode,
- before being drawn using the paint. If mode is null, then
- the porter-duff MULTIPLY mode is used.
- @param indices If not null, array of indices to reference into the
- vertex (texs, colors) array.
- @param indexCount number of entries in the indices array (if not null)
- @param paint Specifies the shader/texture if present.
- */
- virtual void drawVertices(VertexMode vmode, int vertexCount,
- const SkPoint vertices[], const SkPoint texs[],
- const SkColor colors[], SkXfermode* xmode,
- const uint16_t indices[], int indexCount,
- const SkPaint& paint);
-
- //////////////////////////////////////////////////////////////////////////
-
- /** Get the current bounder object.
- The bounder's reference count is unchaged.
- @return the canva's bounder (or NULL).
- */
- SkBounder* getBounder() const { return fBounder; }
-
- /** Set a new bounder (or NULL).
- Pass NULL to clear any previous bounder.
- As a convenience, the parameter passed is also returned.
- If a previous bounder exists, its reference count is decremented.
- If bounder is not NULL, its reference count is incremented.
- @param bounder the new bounder (or NULL) to be installed in the canvas
- @return the set bounder object
- */
- virtual SkBounder* setBounder(SkBounder* bounder);
-
- /** Get the current filter object. The filter's reference count is not
- affected. The filter is part of the state this is affected by
- save/restore.
- @return the canvas' filter (or NULL).
- */
- SkDrawFilter* getDrawFilter() const;
-
- /** Set the new filter (or NULL). Pass NULL to clear any existing filter.
- As a convenience, the parameter is returned. If an existing filter
- exists, its refcnt is decrement. If the new filter is not null, its
- refcnt is incremented. The filter is part of the state this is affected
- by save/restore.
- @param filter the new filter (or NULL)
- @return the new filter
- */
- virtual SkDrawFilter* setDrawFilter(SkDrawFilter* filter);
-
- //////////////////////////////////////////////////////////////////////////
-
- /** Return the current matrix on the canvas.
- This does not account for the translate in any of the devices.
- @return The current matrix on the canvas.
- */
- const SkMatrix& getTotalMatrix() const;
-
- /** Return the current device clip (concatenation of all clip calls).
- This does not account for the translate in any of the devices.
- @return the current device clip (concatenation of all clip calls).
- */
- const SkRegion& getTotalClip() const;
-
- /** May be overridden by subclasses. This returns a compatible device
- for this canvas, with the specified config/width/height. If isOpaque
- is true, then the underlying bitmap is optimized to assume that every
- pixel will be drawn to, and thus it does not need to clear the alpha
- channel ahead of time (assuming the specified config supports per-pixel
- alpha.) If isOpaque is false, then the bitmap should clear its alpha
- channel.
- */
- virtual SkDevice* createDevice(SkBitmap::Config, int width, int height,
- bool isOpaque, bool isForLayer);
-
- ///////////////////////////////////////////////////////////////////////////
-
- /** After calling saveLayer(), there can be any number of devices that make
- up the top-most drawing area. LayerIter can be used to iterate through
- those devices. Note that the iterator is only valid until the next API
- call made on the canvas. Ownership of all pointers in the iterator stays
- with the canvas, so none of them should be modified or deleted.
- */
- class LayerIter /*: SkNoncopyable*/ {
- public:
- /** Initialize iterator with canvas, and set values for 1st device */
- LayerIter(SkCanvas*, bool skipEmptyClips);
- ~LayerIter();
-
- /** Return true if the iterator is done */
- bool done() const { return fDone; }
- /** Cycle to the next device */
- void next();
-
- // These reflect the current device in the iterator
-
- SkDevice* device() const;
- const SkMatrix& matrix() const;
- const SkRegion& clip() const;
- const SkPaint& paint() const;
- int x() const;
- int y() const;
-
- private:
- // used to embed the SkDrawIter object directly in our instance, w/o
- // having to expose that class def to the public. There is an assert
- // in our constructor to ensure that fStorage is large enough
- // (though needs to be a compile-time-assert!). We use intptr_t to work
- // safely with 32 and 64 bit machines (to ensure the storage is enough)
- intptr_t fStorage[12];
- class SkDrawIter* fImpl; // this points at fStorage
- SkPaint fDefaultPaint;
- bool fDone;
- };
-
-protected:
- // all of the drawBitmap variants call this guy
- virtual void commonDrawBitmap(const SkBitmap&, const SkMatrix& m,
- const SkPaint& paint);
-
-private:
- class MCRec;
-
- SkDeque fMCStack;
- // points to top of stack
- MCRec* fMCRec;
- // the first N recs that can fit here mean we won't call malloc
- uint32_t fMCRecStorage[32];
-
- SkBounder* fBounder;
-
- void prepareForDeviceDraw(SkDevice*);
-
- bool fDeviceCMDirty; // cleared by updateDeviceCMCache()
- void updateDeviceCMCache();
-
- friend class SkDrawIter; // needs setupDrawForLayerDevice()
-
- SkDevice* init(SkDevice*);
- void internalDrawBitmap(const SkBitmap&, const SkMatrix& m,
- const SkPaint* paint);
- void drawDevice(SkDevice*, int x, int y, const SkPaint*);
- // shared by save() and saveLayer()
- int internalSave(SaveFlags flags);
- void internalRestore();
-
- /* These maintain a cache of the clip bounds in local coordinates,
- (converted to 2s-compliment if floats are slow).
- */
- mutable SkRectCompareType fLocalBoundsCompareType;
- mutable bool fLocalBoundsCompareTypeDirty;
-
- const SkRectCompareType& getLocalClipBoundsCompareType() const {
- if (fLocalBoundsCompareTypeDirty) {
- this->computeLocalClipBoundsCompareType();
- fLocalBoundsCompareTypeDirty = false;
- }
- return fLocalBoundsCompareType;
- }
- void computeLocalClipBoundsCompareType() const;
-};
-
-/** Stack helper class to automatically call restoreToCount() on the canvas
- when this object goes out of scope. Use this to guarantee that the canvas
- is restored to a known state.
-*/
-class SkAutoCanvasRestore : SkNoncopyable {
-public:
- SkAutoCanvasRestore(SkCanvas* canvas, bool doSave) : fCanvas(canvas) {
- SkASSERT(canvas);
- fSaveCount = canvas->getSaveCount();
- if (doSave) {
- canvas->save();
- }
- }
- ~SkAutoCanvasRestore() {
- fCanvas->restoreToCount(fSaveCount);
- }
-
-private:
- SkCanvas* fCanvas;
- int fSaveCount;
-};
-
-#endif
-
diff --git a/skia/include/SkColor.h b/skia/include/SkColor.h
deleted file mode 100644
index c97a8ec..0000000
--- a/skia/include/SkColor.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkColor_DEFINED
-#define SkColor_DEFINED
-
-#include "SkScalar.h"
-
-/** \file SkColor.h
-
- Types and macros for colors
-*/
-
-/** 8-bit type for an alpha value. 0xFF is 100% opaque, 0x00 is 100% transparent.
-*/
-typedef uint8_t SkAlpha;
-/** 32 bit ARGB color value, not premultiplied. The color components are always in
- a known order. This is different from SkPMColor, which has its bytes in a configuration
- dependent order, to match the format of kARGB32 bitmaps. SkColor is the type used to
- specify colors in SkPaint and in gradients.
-*/
-typedef uint32_t SkColor;
-
-/** Return a SkColor value from 8 bit component values
-*/
-static inline SkColor SkColorSetARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b)
-{
- SkASSERT(a <= 255 && r <= 255 && g <= 255 && b <= 255);
-
- return (a << 24) | (r << 16) | (g << 8) | (b << 0);
-}
-
-/** Return a SkColor value from 8 bit component values, with an implied value
- of 0xFF for alpha (fully opaque)
-*/
-#define SkColorSetRGB(r, g, b) SkColorSetARGB(0xFF, r, g, b)
-
-/** return the alpha byte from a SkColor value */
-#define SkColorGetA(color) (((color) >> 24) & 0xFF)
-/** return the red byte from a SkColor value */
-#define SkColorGetR(color) (((color) >> 16) & 0xFF)
-/** return the green byte from a SkColor value */
-#define SkColorGetG(color) (((color) >> 8) & 0xFF)
-/** return the blue byte from a SkColor value */
-#define SkColorGetB(color) (((color) >> 0) & 0xFF)
-
-static inline SkColor SkColorSetA(SkColor c, U8CPU a) {
- return (c & 0x00FFFFFF) | (a << 24);
-}
-
-// common colors
-
-#define SK_ColorBLACK 0xFF000000 //!< black SkColor value
-#define SK_ColorDKGRAY 0xFF444444 //!< dark gray SkColor value
-#define SK_ColorGRAY 0xFF888888 //!< gray SkColor value
-#define SK_ColorLTGRAY 0xFFCCCCCC //!< light gray SkColor value
-#define SK_ColorWHITE 0xFFFFFFFF //!< white SkColor value
-
-#define SK_ColorRED 0xFFFF0000 //!< red SkColor value
-#define SK_ColorGREEN 0xFF00FF00 //!< green SkColor value
-#define SK_ColorBLUE 0xFF0000FF //!< blue SkColor value
-#define SK_ColorYELLOW 0xFFFFFF00 //!< yellow SkColor value
-#define SK_ColorCYAN 0xFF00FFFF //!< cyan SkColor value
-#define SK_ColorMAGENTA 0xFFFF00FF //!< magenta SkColor value
-
-////////////////////////////////////////////////////////////////////////
-
-/** Convert RGB components to HSV.
- hsv[0] is Hue [0 .. 360)
- hsv[1] is Saturation [0...1]
- hsv[2] is Value [0...1]
- @param red red component value [0..255]
- @param green green component value [0..255]
- @param blue blue component value [0..255]
- @param hsv 3 element array which holds the resulting HSV components.
-*/
-void SkRGBToHSV(U8CPU red, U8CPU green, U8CPU blue, SkScalar hsv[3]);
-
-/** Convert the argb color to its HSV components.
- hsv[0] is Hue [0 .. 360)
- hsv[1] is Saturation [0...1]
- hsv[2] is Value [0...1]
- @param color the argb color to convert. Note: the alpha component is ignored.
- @param hsv 3 element array which holds the resulting HSV components.
-*/
-static inline void SkColorToHSV(SkColor color, SkScalar hsv[3])
-{
- SkRGBToHSV(SkColorGetR(color), SkColorGetG(color), SkColorGetB(color), hsv);
-}
-
-/** Convert HSV components to an ARGB color. The alpha component is passed through unchanged.
- hsv[0] is Hue [0 .. 360)
- hsv[1] is Saturation [0...1]
- hsv[2] is Value [0...1]
- If hsv values are out of range, they are pinned.
- @param alpha the alpha component of the returned argb color.
- @param hsv 3 element array which holds the input HSV components.
- @return the resulting argb color
-*/
-SkColor SkHSVToColor(U8CPU alpha, const SkScalar hsv[3]);
-
-/** Convert HSV components to an ARGB color. The alpha component set to 0xFF.
- hsv[0] is Hue [0 .. 360)
- hsv[1] is Saturation [0...1]
- hsv[2] is Value [0...1]
- If hsv values are out of range, they are pinned.
- @param hsv 3 element array which holds the input HSV components.
- @return the resulting argb color
-*/
-static inline SkColor SkHSVToColor(const SkScalar hsv[3])
-{
- return SkHSVToColor(0xFF, hsv);
-}
-
-////////////////////////////////////////////////////////////////////////
-
-/** 32 bit ARGB color value, premultiplied. The byte order for this value is
- configuration dependent, matching the format of kARGB32 bitmaps. This is different
- from SkColor, which is nonpremultiplied, and is always in the same byte order.
-*/
-typedef uint32_t SkPMColor;
-
-/** Return a SkPMColor value from unpremultiplied 8 bit component values
-*/
-SkPMColor SkPreMultiplyARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b);
-/** Return a SkPMColor value from a SkColor value. This is done by multiplying the color
- components by the color's alpha, and by arranging the bytes in a configuration
- dependent order, to match the format of kARGB32 bitmaps.
-*/
-SkPMColor SkPreMultiplyColor(SkColor c);
-
-/** Define a function pointer type for combining two premultiplied colors
-*/
-typedef SkPMColor (*SkXfermodeProc)(SkPMColor src, SkPMColor dst);
-
-/** Define a function pointer type for combining a premultiplied src color
- and a 16bit device color.
-*/
-typedef uint16_t (*SkXfermodeProc16)(SkPMColor src, uint16_t dst);
-
-#endif
-
diff --git a/skia/include/SkColorFilter.h b/skia/include/SkColorFilter.h
deleted file mode 100644
index a1b3171..0000000
--- a/skia/include/SkColorFilter.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkColorFilter_DEFINED
-#define SkColorFilter_DEFINED
-
-#include "SkColor.h"
-#include "SkFlattenable.h"
-#include "SkPorterDuff.h"
-
-class SkColorFilter : public SkFlattenable {
-public:
- /** Called with a scanline of colors, as if there was a shader installed.
- The implementation writes out its filtered version into result[].
- Note: shader and result may be the same buffer.
- @param src array of colors, possibly generated by a shader
- @param count the number of entries in the src[] and result[] arrays
- @param result written by the filter
- */
- virtual void filterSpan(const SkPMColor src[], int count,
- SkPMColor result[]) = 0;
- /** Called with a scanline of colors, as if there was a shader installed.
- The implementation writes out its filtered version into result[].
- Note: shader and result may be the same buffer.
- @param src array of colors, possibly generated by a shader
- @param count the number of entries in the src[] and result[] arrays
- @param result written by the filter
- */
- virtual void filterSpan16(const uint16_t shader[], int count,
- uint16_t result[]);
-
- enum Flags {
- /** If set the filter methods will not change the alpha channel of the
- colors.
- */
- kAlphaUnchanged_Flag = 0x01,
- /** If set, this subclass implements filterSpan16(). If this flag is
- set, then kAlphaUnchanged_Flag must also be set.
- */
- kHasFilter16_Flag = 0x02
- };
-
- /** Returns the flags for this filter. Override in subclasses to return
- custom flags.
- */
- virtual uint32_t getFlags() { return 0; }
-
- /** Create a colorfilter that uses the specified color and porter-duff mode.
- If porterDuffMode is DST, this function will return NULL (since that
- mode will have no effect on the result).
- @param srcColor The source color used with the specified mode
- @param mode The porter-duff mode that is applied to each color in
- the colorfilter's filterSpan[16,32] methods
- @return colorfilter object that applies the src color and porter-duff
- mode, or NULL if the mode will have no effect.
- */
- static SkColorFilter* CreatePorterDuffFilter(SkColor srcColor,
- SkPorterDuff::Mode mode);
-
- /** Create a colorfilter that calls through to the specified procs to
- filter the colors. The SkXfermodeProc parameter must be non-null, but
- the SkXfermodeProc16 is optional, and may be null.
- */
- static SkColorFilter* CreatXfermodeProcFilter(SkColor srcColor,
- SkXfermodeProc proc,
- SkXfermodeProc16 proc16 = NULL);
-
- /** Create a colorfilter that multiplies the RGB channels by one color, and
- then adds a second color, pinning the result for each component to
- [0..255]. The alpha components of the mul and add arguments
- are ignored.
- */
- static SkColorFilter* CreateLightingFilter(SkColor mul, SkColor add);
-
-protected:
- SkColorFilter() {}
- SkColorFilter(SkFlattenableReadBuffer& rb) : INHERITED(rb) {}
-
-private:
- typedef SkFlattenable INHERITED;
-};
-
-#include "SkShader.h"
-
-class SkFilterShader : public SkShader {
-public:
- SkFilterShader(SkShader* shader, SkColorFilter* filter);
- virtual ~SkFilterShader();
-
- // override
- virtual uint32_t getFlags();
- virtual bool setContext(const SkBitmap& device, const SkPaint& paint,
- const SkMatrix& matrix);
- virtual void shadeSpan(int x, int y, SkPMColor result[], int count);
- virtual void shadeSpan16(int x, int y, uint16_t result[], int count);
- virtual void beginSession();
- virtual void endSession();
-
-protected:
- SkFilterShader(SkFlattenableReadBuffer& );
- virtual void flatten(SkFlattenableWriteBuffer& );
- virtual Factory getFactory() { return CreateProc; }
-private:
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return SkNEW_ARGS(SkFilterShader, (buffer)); }
- SkShader* fShader;
- SkColorFilter* fFilter;
-
- typedef SkShader INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkColorMatrix.h b/skia/include/SkColorMatrix.h
deleted file mode 100644
index cee5d6e..0000000
--- a/skia/include/SkColorMatrix.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkColorMatrix_DEFINED
-#define SkColorMatrix_DEFINED
-
-#include "SkScalar.h"
-
-class SkColorMatrix {
-public:
- SkScalar fMat[20];
-
- void setIdentity();
- void setScale(SkScalar rScale, SkScalar gScale, SkScalar bScale,
- SkScalar aScale = SK_Scalar1);
- void preScale(SkScalar rScale, SkScalar gScale, SkScalar bScale,
- SkScalar aScale = SK_Scalar1);
- void postScale(SkScalar rScale, SkScalar gScale, SkScalar bScale,
- SkScalar aScale = SK_Scalar1);
-
- enum Axis {
- kR_Axis = 0,
- kG_Axis = 1,
- kB_Axis = 2
- };
- void setRotate(Axis, SkScalar degrees);
- void setSinCos(Axis, SkScalar sine, SkScalar cosine);
- void preRotate(Axis, SkScalar degrees);
- void postRotate(Axis, SkScalar degrees);
-
- void setConcat(const SkColorMatrix& a, const SkColorMatrix& b);
- void preConcat(const SkColorMatrix& mat) { this->setConcat(*this, mat); }
- void postConcat(const SkColorMatrix& mat) { this->setConcat(mat, *this); }
-
- void setSaturation(SkScalar sat);
- void setRGB2YUV();
- void setYUV2RGB();
-};
-
-#endif
diff --git a/skia/include/SkColorMatrixFilter.h b/skia/include/SkColorMatrixFilter.h
deleted file mode 100644
index f9194df..0000000
--- a/skia/include/SkColorMatrixFilter.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkColorMatrixFilter_DEFINED
-#define SkColorMatrixFilter_DEFINED
-
-#include "SkColorFilter.h"
-#include "SkColorMatrix.h"
-
-class SkColorMatrixFilter : public SkColorFilter {
-public:
- SkColorMatrixFilter();
- explicit SkColorMatrixFilter(const SkColorMatrix&);
- SkColorMatrixFilter(const SkScalar array[20]);
-
- void setMatrix(const SkColorMatrix&);
- void setArray(const SkScalar array[20]);
-
- // overrides from SkColorFilter
- virtual void filterSpan(const SkPMColor src[], int count, SkPMColor[]);
- virtual void filterSpan16(const uint16_t src[], int count, uint16_t[]);
- virtual uint32_t getFlags();
-
- // overrides for SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer& buffer);
-
- struct State {
- int32_t fArray[20];
- int fShift;
- int32_t fResult[4];
- };
-
-protected:
- // overrides for SkFlattenable
- virtual Factory getFactory();
-
- SkColorMatrixFilter(SkFlattenableReadBuffer& buffer);
-
-private:
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer);
-
- typedef void (*Proc)(State*, unsigned r, unsigned g, unsigned b,
- unsigned a);
-
- Proc fProc;
- State fState;
- uint32_t fFlags;
-
- void setup(const SkScalar array[20]);
-
- typedef SkColorFilter INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkColorPriv.h b/skia/include/SkColorPriv.h
deleted file mode 100644
index a041547..0000000
--- a/skia/include/SkColorPriv.h
+++ /dev/null
@@ -1,657 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkColorPriv_DEFINED
-#define SkColorPriv_DEFINED
-
-// turn this own for extra debug checking when blending onto 565
-#ifdef SK_DEBUG
- #define CHECK_FOR_565_OVERFLOW
-#endif
-
-#include "SkColor.h"
-#include "SkMath.h"
-
-/** Turn 0..255 into 0..256 by adding 1 at the half-way point. Used to turn a
- byte into a scale value, so that we can say scale * value >> 8 instead of
- alpha * value / 255.
-
- In debugging, asserts that alpha is 0..255
-*/
-inline unsigned SkAlpha255To256(U8CPU alpha) {
- SkASSERT(SkToU8(alpha) == alpha);
- return alpha + (alpha >> 7);
-}
-
-/** Multiplify value by 0..256, and shift the result down 8
- (i.e. return (value * alpha256) >> 8)
- */
-#define SkAlphaMul(value, alpha256) (SkMulS16(value, alpha256) >> 8)
-
-// The caller may want negative values, so keep all params signed (int)
-// so we don't accidentally slip into unsigned math and lose the sign
-// extension when we shift (in SkAlphaMul)
-inline int SkAlphaBlend(int src, int dst, int scale256) {
- SkASSERT((unsigned)scale256 <= 256);
- return dst + SkAlphaMul(src - dst, scale256);
-}
-
-#define SK_R16_BITS 5
-#define SK_G16_BITS 6
-#define SK_B16_BITS 5
-
-#define SK_R16_SHIFT (SK_B16_BITS + SK_G16_BITS)
-#define SK_G16_SHIFT (SK_B16_BITS)
-#define SK_B16_SHIFT 0
-
-#define SK_R16_MASK ((1 << SK_R16_BITS) - 1)
-#define SK_G16_MASK ((1 << SK_G16_BITS) - 1)
-#define SK_B16_MASK ((1 << SK_B16_BITS) - 1)
-
-#define SkGetPackedR16(color) (((unsigned)(color) >> SK_R16_SHIFT) & SK_R16_MASK)
-#define SkGetPackedG16(color) (((unsigned)(color) >> SK_G16_SHIFT) & SK_G16_MASK)
-#define SkGetPackedB16(color) (((unsigned)(color) >> SK_B16_SHIFT) & SK_B16_MASK)
-
-#define SkR16Assert(r) SkASSERT((unsigned)(r) <= SK_R16_MASK)
-#define SkG16Assert(g) SkASSERT((unsigned)(g) <= SK_G16_MASK)
-#define SkB16Assert(b) SkASSERT((unsigned)(b) <= SK_B16_MASK)
-
-inline uint16_t SkPackRGB16(unsigned r, unsigned g, unsigned b) {
- SkASSERT(r <= SK_R16_MASK);
- SkASSERT(g <= SK_G16_MASK);
- SkASSERT(b <= SK_B16_MASK);
-
- return SkToU16((r << SK_R16_SHIFT) | (g << SK_G16_SHIFT) | (b << SK_B16_SHIFT));
-}
-
-#define SK_R16_MASK_IN_PLACE (SK_R16_MASK << SK_R16_SHIFT)
-#define SK_G16_MASK_IN_PLACE (SK_G16_MASK << SK_G16_SHIFT)
-#define SK_B16_MASK_IN_PLACE (SK_B16_MASK << SK_B16_SHIFT)
-
-/** Expand the 16bit color into a 32bit value that can be scaled all at once
- by a value up to 32. Used in conjunction with SkCompact_rgb_16.
-*/
-inline uint32_t SkExpand_rgb_16(U16CPU c) {
- SkASSERT(c == (uint16_t)c);
-
- return ((c & SK_G16_MASK_IN_PLACE) << 16) | (c & ~SK_G16_MASK_IN_PLACE);
-}
-
-/** Compress an expanded value (from SkExpand_rgb_16) back down to a 16bit
- color value. The computation yields only 16bits of valid data, but we claim
- to return 32bits, so that the compiler won't generate extra instructions to
- "clean" the top 16bits. However, the top 16 can contain garbage, so it is
- up to the caller to safely ignore them.
-*/
-inline U16CPU SkCompact_rgb_16(uint32_t c) {
- return ((c >> 16) & SK_G16_MASK_IN_PLACE) | (c & ~SK_G16_MASK_IN_PLACE);
-}
-
-/** Scale the 16bit color value by the 0..256 scale parameter.
- The computation yields only 16bits of valid data, but we claim
- to return 32bits, so that the compiler won't generate extra instructions to
- "clean" the top 16bits.
-*/
-inline U16CPU SkAlphaMulRGB16(U16CPU c, unsigned scale) {
- return SkCompact_rgb_16(SkExpand_rgb_16(c) * (scale >> 3) >> 5);
-}
-
-// this helper explicitly returns a clean 16bit value (but slower)
-#define SkAlphaMulRGB16_ToU16(c, s) (uint16_t)SkAlphaMulRGB16(c, s)
-
-/** Blend src and dst 16bit colors by the 0..256 scale parameter.
- The computation yields only 16bits of valid data, but we claim
- to return 32bits, so that the compiler won't generate extra instructions to
- "clean" the top 16bits.
-*/
-inline U16CPU SkBlendRGB16(U16CPU src, U16CPU dst, int srcScale) {
- SkASSERT((unsigned)srcScale <= 256);
-
- srcScale >>= 3;
-
- uint32_t src32 = SkExpand_rgb_16(src);
- uint32_t dst32 = SkExpand_rgb_16(dst);
- return SkCompact_rgb_16(dst32 + ((src32 - dst32) * srcScale >> 5));
-}
-
-inline void SkBlendRGB16(const uint16_t src[], uint16_t dst[],
- int srcScale, int count) {
- SkASSERT(count > 0);
- SkASSERT((unsigned)srcScale <= 256);
-
- srcScale >>= 3;
-
- do {
- uint32_t src32 = SkExpand_rgb_16(*src++);
- uint32_t dst32 = SkExpand_rgb_16(*dst);
- *dst++ = SkCompact_rgb_16(dst32 + ((src32 - dst32) * srcScale >> 5));
- } while (--count > 0);
-}
-
-#ifdef SK_DEBUG
- static inline U16CPU SkRGB16Add(U16CPU a, U16CPU b) {
- SkASSERT(SkGetPackedR16(a) + SkGetPackedR16(b) <= SK_R16_MASK);
- SkASSERT(SkGetPackedG16(a) + SkGetPackedG16(b) <= SK_G16_MASK);
- SkASSERT(SkGetPackedB16(a) + SkGetPackedB16(b) <= SK_B16_MASK);
-
- return a + b;
- }
-#else
- #define SkRGB16Add(a, b) ((a) + (b))
-#endif
-
-/////////////////////////////////////////////////////////////////////////////////////////////
-
-#define SK_A32_BITS 8
-#define SK_R32_BITS 8
-#define SK_G32_BITS 8
-#define SK_B32_BITS 8
-
-/* we check to see if the SHIFT value has already been defined (SkUserConfig.h)
- if not, we define it ourself to some default values. We default to OpenGL
- order (in memory: r,g,b,a)
-*/
-#ifndef SK_A32_SHIFT
- #ifdef SK_CPU_BENDIAN
- #define SK_R32_SHIFT 24
- #define SK_G32_SHIFT 16
- #define SK_B32_SHIFT 8
- #define SK_A32_SHIFT 0
- #else
- #define SK_R32_SHIFT 0
- #define SK_G32_SHIFT 8
- #define SK_B32_SHIFT 16
- #define SK_A32_SHIFT 24
- #endif
-#endif
-
-#define SK_A32_MASK ((1 << SK_A32_BITS) - 1)
-#define SK_R32_MASK ((1 << SK_R32_BITS) - 1)
-#define SK_G32_MASK ((1 << SK_G32_BITS) - 1)
-#define SK_B32_MASK ((1 << SK_B32_BITS) - 1)
-
-#define SkGetPackedA32(packed) ((uint32_t)((packed) << (24 - SK_A32_SHIFT)) >> 24)
-#define SkGetPackedR32(packed) ((uint32_t)((packed) << (24 - SK_R32_SHIFT)) >> 24)
-#define SkGetPackedG32(packed) ((uint32_t)((packed) << (24 - SK_G32_SHIFT)) >> 24)
-#define SkGetPackedB32(packed) ((uint32_t)((packed) << (24 - SK_B32_SHIFT)) >> 24)
-
-#define SkA32Assert(a) SkASSERT((unsigned)(a) <= SK_A32_MASK)
-#define SkR32Assert(r) SkASSERT((unsigned)(r) <= SK_R32_MASK)
-#define SkG32Assert(g) SkASSERT((unsigned)(g) <= SK_G32_MASK)
-#define SkB32Assert(b) SkASSERT((unsigned)(b) <= SK_B32_MASK)
-
-#ifdef SK_DEBUG
- inline void SkPMColorAssert(SkPMColor c) {
- unsigned a = SkGetPackedA32(c);
- unsigned r = SkGetPackedR32(c);
- unsigned g = SkGetPackedG32(c);
- unsigned b = SkGetPackedB32(c);
-
- SkA32Assert(a);
- SkASSERT(r <= a);
- SkASSERT(g <= a);
- SkASSERT(b <= a);
- }
-#else
- #define SkPMColorAssert(c)
-#endif
-
-inline SkPMColor SkPackARGB32(U8CPU a, U8CPU r, U8CPU g, U8CPU b) {
- SkA32Assert(a);
- SkASSERT(r <= a);
- SkASSERT(g <= a);
- SkASSERT(b <= a);
-
- return (a << SK_A32_SHIFT) | (r << SK_R32_SHIFT) |
- (g << SK_G32_SHIFT) | (b << SK_B32_SHIFT);
-}
-
-extern const uint32_t gMask_00FF00FF;
-
-inline uint32_t SkAlphaMulQ(uint32_t c, unsigned scale) {
- uint32_t mask = gMask_00FF00FF;
-// uint32_t mask = 0xFF00FF;
-
- uint32_t rb = ((c & mask) * scale) >> 8;
- uint32_t ag = ((c >> 8) & mask) * scale;
- return (rb & mask) | (ag & ~mask);
-}
-
-inline SkPMColor SkPMSrcOver(SkPMColor src, SkPMColor dst) {
- return src + SkAlphaMulQ(dst, SkAlpha255To256(255 - SkGetPackedA32(src)));
-}
-
-inline SkPMColor SkBlendARGB32(SkPMColor src, SkPMColor dst, U8CPU aa) {
- SkASSERT((unsigned)aa <= 255);
-
- unsigned src_scale = SkAlpha255To256(aa);
- unsigned dst_scale = SkAlpha255To256(255 - SkAlphaMul(SkGetPackedA32(src), src_scale));
-
- return SkAlphaMulQ(src, src_scale) + SkAlphaMulQ(dst, dst_scale);
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-// Convert a 32bit pixel to a 16bit pixel (no dither)
-
-#define SkR32ToR16_MACRO(r) ((unsigned)(r) >> (SK_R32_BITS - SK_R16_BITS))
-#define SkG32ToG16_MACRO(g) ((unsigned)(g) >> (SK_G32_BITS - SK_G16_BITS))
-#define SkB32ToB16_MACRO(b) ((unsigned)(b) >> (SK_B32_BITS - SK_B16_BITS))
-
-#ifdef SK_DEBUG
- inline unsigned SkR32ToR16(unsigned r)
- {
- SkR32Assert(r);
- return SkR32ToR16_MACRO(r);
- }
- inline unsigned SkG32ToG16(unsigned g)
- {
- SkG32Assert(g);
- return SkG32ToG16_MACRO(g);
- }
- inline unsigned SkB32ToB16(unsigned b)
- {
- SkB32Assert(b);
- return SkB32ToB16_MACRO(b);
- }
-#else
- #define SkR32ToR16(r) SkR32ToR16_MACRO(r)
- #define SkG32ToG16(g) SkG32ToG16_MACRO(g)
- #define SkB32ToB16(b) SkB32ToB16_MACRO(b)
-#endif
-
-#define SkPacked32ToR16(c) (((unsigned)(c) >> (SK_R32_SHIFT + SK_R32_BITS - SK_R16_BITS)) & SK_R16_MASK)
-#define SkPacked32ToG16(c) (((unsigned)(c) >> (SK_G32_SHIFT + SK_G32_BITS - SK_G16_BITS)) & SK_G16_MASK)
-#define SkPacked32ToB16(c) (((unsigned)(c) >> (SK_B32_SHIFT + SK_B32_BITS - SK_B16_BITS)) & SK_B16_MASK)
-
-inline U16CPU SkPixel32ToPixel16(SkPMColor c)
-{
- unsigned r = ((c >> (SK_R32_SHIFT + (8 - SK_R16_BITS))) & SK_R16_MASK) << SK_R16_SHIFT;
- unsigned g = ((c >> (SK_G32_SHIFT + (8 - SK_G16_BITS))) & SK_G16_MASK) << SK_G16_SHIFT;
- unsigned b = ((c >> (SK_B32_SHIFT + (8 - SK_B16_BITS))) & SK_B16_MASK) << SK_B16_SHIFT;
- return r | g | b;
-}
-
-inline U16CPU SkPack888ToRGB16(U8CPU r, U8CPU g, U8CPU b)
-{
- return (SkR32ToR16(r) << SK_R16_SHIFT) |
- (SkG32ToG16(g) << SK_G16_SHIFT) |
- (SkB32ToB16(b) << SK_B16_SHIFT);
-}
-
-#define SkPixel32ToPixel16_ToU16(src) SkToU16(SkPixel32ToPixel16(src))
-
-/////////////////////////////////////////////////////////////////////////////////////////
-// Fast dither from 32->16
-
-#define SkShouldDitherXY(x, y) (((x) ^ (y)) & 1)
-
-inline uint16_t SkDitherPack888ToRGB16(U8CPU r, U8CPU g, U8CPU b)
-{
- r = ((r << 1) - ((r >> (8 - SK_R16_BITS) << (8 - SK_R16_BITS)) | (r >> SK_R16_BITS))) >> (8 - SK_R16_BITS);
- g = ((g << 1) - ((g >> (8 - SK_G16_BITS) << (8 - SK_G16_BITS)) | (g >> SK_G16_BITS))) >> (8 - SK_G16_BITS);
- b = ((b << 1) - ((b >> (8 - SK_B16_BITS) << (8 - SK_B16_BITS)) | (b >> SK_B16_BITS))) >> (8 - SK_B16_BITS);
-
- return SkPackRGB16(r, g, b);
-}
-
-inline uint16_t SkDitherPixel32ToPixel16(SkPMColor c)
-{
- return SkDitherPack888ToRGB16(SkGetPackedR32(c), SkGetPackedG32(c), SkGetPackedB32(c));
-}
-
-/* Return c in expanded_rgb_16 format, but also scaled up by 32 (5 bits)
- It is now suitable for combining with a scaled expanded_rgb_16 color
- as in SkSrcOver32To16().
- We must do this 565 high-bit replication, in order for the subsequent add
- to saturate properly (and not overflow). If we take the 8 bits as is, it is
- possible to overflow.
-*/
-inline uint32_t SkPMColorToExpanded16x5(SkPMColor c)
-{
- unsigned sr = SkPacked32ToR16(c);
- unsigned sg = SkPacked32ToG16(c);
- unsigned sb = SkPacked32ToB16(c);
-
- sr = (sr << 5) | sr;
- sg = (sg << 5) | (sg >> 1);
- sb = (sb << 5) | sb;
- return (sr << 11) | (sg << 21) | (sb << 0);
-}
-
-/* SrcOver the 32bit src color with the 16bit dst, returning a 16bit value
- (with dirt in the high 16bits, so caller beware).
-*/
-inline U16CPU SkSrcOver32To16(SkPMColor src, uint16_t dst) {
- unsigned sr = SkGetPackedR32(src);
- unsigned sg = SkGetPackedG32(src);
- unsigned sb = SkGetPackedB32(src);
-
- unsigned dr = SkGetPackedR16(dst);
- unsigned dg = SkGetPackedG16(dst);
- unsigned db = SkGetPackedB16(dst);
-
- unsigned isa = 255 - SkGetPackedA32(src);
-
- dr = (sr + SkMul16ShiftRound(dr, isa, SK_R16_BITS)) >> (8 - SK_R16_BITS);
- dg = (sg + SkMul16ShiftRound(dg, isa, SK_G16_BITS)) >> (8 - SK_G16_BITS);
- db = (sb + SkMul16ShiftRound(db, isa, SK_B16_BITS)) >> (8 - SK_B16_BITS);
-
- return SkPackRGB16(dr, dg, db);
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-// Convert a 16bit pixel to a 32bit pixel
-
-inline unsigned SkR16ToR32(unsigned r)
-{
- return (r << (8 - SK_R16_BITS)) | (r >> (2 * SK_R16_BITS - 8));
-}
-inline unsigned SkG16ToG32(unsigned g)
-{
- return (g << (8 - SK_G16_BITS)) | (g >> (2 * SK_G16_BITS - 8));
-}
-inline unsigned SkB16ToB32(unsigned b)
-{
- return (b << (8 - SK_B16_BITS)) | (b >> (2 * SK_B16_BITS - 8));
-}
-
-#define SkPacked16ToR32(c) SkR16ToR32(SkGetPackedR16(c))
-#define SkPacked16ToG32(c) SkG16ToG32(SkGetPackedG16(c))
-#define SkPacked16ToB32(c) SkB16ToB32(SkGetPackedB16(c))
-
-inline SkPMColor SkPixel16ToPixel32(U16CPU src)
-{
- SkASSERT(src == SkToU16(src));
-
- unsigned r = SkPacked16ToR32(src);
- unsigned g = SkPacked16ToG32(src);
- unsigned b = SkPacked16ToB32(src);
-
- SkASSERT((r >> (8 - SK_R16_BITS)) == SkGetPackedR16(src));
- SkASSERT((g >> (8 - SK_G16_BITS)) == SkGetPackedG16(src));
- SkASSERT((b >> (8 - SK_B16_BITS)) == SkGetPackedB16(src));
-
- return SkPackARGB32(0xFF, r, g, b);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-typedef uint16_t SkPMColor16;
-
-// Put in OpenGL order (r g b a)
-#define SK_A4444_SHIFT 0
-#define SK_R4444_SHIFT 12
-#define SK_G4444_SHIFT 8
-#define SK_B4444_SHIFT 4
-
-#define SkA32To4444(a) ((unsigned)(a) >> 4)
-#define SkR32To4444(r) ((unsigned)(r) >> 4)
-#define SkG32To4444(g) ((unsigned)(g) >> 4)
-#define SkB32To4444(b) ((unsigned)(b) >> 4)
-
-inline U8CPU SkReplicateNibble(unsigned nib)
-{
- SkASSERT(nib <= 0xF);
- return (nib << 4) | nib;
-}
-
-#define SkA4444ToA32(a) SkReplicateNibble(a)
-#define SkR4444ToR32(r) SkReplicateNibble(r)
-#define SkG4444ToG32(g) SkReplicateNibble(g)
-#define SkB4444ToB32(b) SkReplicateNibble(b)
-
-#define SkGetPackedA4444(c) (((unsigned)(c) >> SK_A4444_SHIFT) & 0xF)
-#define SkGetPackedR4444(c) (((unsigned)(c) >> SK_R4444_SHIFT) & 0xF)
-#define SkGetPackedG4444(c) (((unsigned)(c) >> SK_G4444_SHIFT) & 0xF)
-#define SkGetPackedB4444(c) (((unsigned)(c) >> SK_B4444_SHIFT) & 0xF)
-
-#define SkPacked4444ToA32(c) SkReplicateNibble(SkGetPackedA4444(c))
-#define SkPacked4444ToR32(c) SkReplicateNibble(SkGetPackedR4444(c))
-#define SkPacked4444ToG32(c) SkReplicateNibble(SkGetPackedG4444(c))
-#define SkPacked4444ToB32(c) SkReplicateNibble(SkGetPackedB4444(c))
-
-#ifdef SK_DEBUG
-inline void SkPMColor16Assert(U16CPU c)
-{
- unsigned a = SkGetPackedA4444(c);
- unsigned r = SkGetPackedR4444(c);
- unsigned g = SkGetPackedG4444(c);
- unsigned b = SkGetPackedB4444(c);
-
- SkASSERT(a <= 0xF);
- SkASSERT(r <= a);
- SkASSERT(g <= a);
- SkASSERT(b <= a);
-}
-#else
-#define SkPMColor16Assert(c)
-#endif
-
-inline unsigned SkAlpha15To16(unsigned a)
-{
- SkASSERT(a <= 0xF);
- return a + (a >> 3);
-}
-
-#ifdef SK_DEBUG
- inline int SkAlphaMul4(int value, int scale)
- {
- SkASSERT((unsigned)scale <= 0x10);
- return value * scale >> 4;
- }
-#else
- #define SkAlphaMul4(value, scale) ((value) * (scale) >> 4)
-#endif
-
-inline unsigned SkR4444ToR565(unsigned r)
-{
- SkASSERT(r <= 0xF);
- return (r << (SK_R16_BITS - 4)) | (r >> (8 - SK_R16_BITS));
-}
-
-inline unsigned SkG4444ToG565(unsigned g)
-{
- SkASSERT(g <= 0xF);
- return (g << (SK_G16_BITS - 4)) | (g >> (8 - SK_G16_BITS));
-}
-
-inline unsigned SkB4444ToB565(unsigned b)
-{
- SkASSERT(b <= 0xF);
- return (b << (SK_B16_BITS - 4)) | (b >> (8 - SK_B16_BITS));
-}
-
-inline SkPMColor16 SkPackARGB4444(unsigned a, unsigned r,
- unsigned g, unsigned b)
-{
- SkASSERT(a <= 0xF);
- SkASSERT(r <= a);
- SkASSERT(g <= a);
- SkASSERT(b <= a);
-
- return (SkPMColor16)((a << SK_A4444_SHIFT) | (r << SK_R4444_SHIFT) |
- (g << SK_G4444_SHIFT) | (b << SK_B4444_SHIFT));
-}
-
-extern const uint16_t gMask_0F0F;
-
-inline U16CPU SkAlphaMulQ4(U16CPU c, unsigned scale)
-{
- SkASSERT(scale <= 16);
-
- const unsigned mask = 0xF0F; //gMask_0F0F;
-
-#if 0
- unsigned rb = ((c & mask) * scale) >> 4;
- unsigned ag = ((c >> 4) & mask) * scale;
- return (rb & mask) | (ag & ~mask);
-#else
- c = (c & mask) | ((c & (mask << 4)) << 12);
- c = c * scale >> 4;
- return (c & mask) | ((c >> 12) & (mask << 4));
-#endif
-}
-
-/** Expand the SkPMColor16 color into a 32bit value that can be scaled all at
- once by a value up to 16. Used in conjunction with SkCompact_4444.
-*/
-inline uint32_t SkExpand_4444(U16CPU c)
-{
- SkASSERT(c == (uint16_t)c);
-
- const unsigned mask = 0xF0F; //gMask_0F0F;
- return (c & mask) | ((c & ~mask) << 12);
-}
-
-/** Compress an expanded value (from SkExpand_4444) back down to a SkPMColor16.
- NOTE: this explicitly does not clean the top 16 bits (which may be garbage).
- It does this for speed, since if it is being written directly to 16bits of
- memory, the top 16bits will be ignored. Casting the result to uint16_t here
- would add 2 more instructions, slow us down. It is up to the caller to
- perform the cast if needed.
-*/
-inline U16CPU SkCompact_4444(uint32_t c)
-{
- const unsigned mask = 0xF0F; //gMask_0F0F;
- return (c & mask) | ((c >> 12) & ~mask);
-}
-
-inline uint16_t SkSrcOver4444To16(SkPMColor16 s, uint16_t d)
-{
- unsigned sa = SkGetPackedA4444(s);
- unsigned sr = SkR4444ToR565(SkGetPackedR4444(s));
- unsigned sg = SkG4444ToG565(SkGetPackedG4444(s));
- unsigned sb = SkB4444ToB565(SkGetPackedB4444(s));
-
- // To avoid overflow, we have to clear the low bit of the synthetic sg
- // if the src alpha is <= 7.
- // to see why, try blending 0x4444 on top of 565-white and watch green
- // overflow (sum == 64)
- sg &= ~(~(sa >> 3) & 1);
-
- unsigned scale = SkAlpha15To16(15 - sa);
- unsigned dr = SkAlphaMul4(SkGetPackedR16(d), scale);
- unsigned dg = SkAlphaMul4(SkGetPackedG16(d), scale);
- unsigned db = SkAlphaMul4(SkGetPackedB16(d), scale);
-
-#if 0
- if (sg + dg > 63) {
- SkDebugf("---- SkSrcOver4444To16 src=%x dst=%x scale=%d, sg=%d dg=%d\n", s, d, scale, sg, dg);
- }
-#endif
- return SkPackRGB16(sr + dr, sg + dg, sb + db);
-}
-
-inline uint16_t SkBlend4444To16(SkPMColor16 src, uint16_t dst, int scale16)
-{
- SkASSERT((unsigned)scale16 <= 16);
-
- return SkSrcOver4444To16(SkAlphaMulQ4(src, scale16), dst);
-}
-
-inline uint16_t SkBlend4444(SkPMColor16 src, SkPMColor16 dst, int scale16)
-{
- SkASSERT((unsigned)scale16 <= 16);
-
- uint32_t src32 = SkExpand_4444(src) * scale16;
- // the scaled srcAlpha is the bottom byte
-#ifdef SK_DEBUG
- {
- unsigned srcA = SkGetPackedA4444(src) * scale16;
- SkASSERT(srcA == (src32 & 0xFF));
- }
-#endif
- unsigned dstScale = SkAlpha255To256(255 - (src32 & 0xFF)) >> 4;
- uint32_t dst32 = SkExpand_4444(dst) * dstScale;
- return SkCompact_4444((src32 + dst32) >> 4);
-}
-
-inline SkPMColor SkPixel4444ToPixel32(U16CPU c)
-{
- uint32_t d = (SkGetPackedA4444(c) << SK_A32_SHIFT) |
- (SkGetPackedR4444(c) << SK_R32_SHIFT) |
- (SkGetPackedG4444(c) << SK_G32_SHIFT) |
- (SkGetPackedB4444(c) << SK_B32_SHIFT);
- return d | (d << 4);
-}
-
-inline SkPMColor16 SkPixel32ToPixel4444(SkPMColor c)
-{
- return (((c >> (SK_A32_SHIFT + 4)) & 0xF) << SK_A4444_SHIFT) |
- (((c >> (SK_R32_SHIFT + 4)) & 0xF) << SK_R4444_SHIFT) |
- (((c >> (SK_G32_SHIFT + 4)) & 0xF) << SK_G4444_SHIFT) |
- (((c >> (SK_B32_SHIFT + 4)) & 0xF) << SK_B4444_SHIFT);
-}
-
-// cheap 2x2 dither
-inline SkPMColor16 SkDitherARGB32To4444(U8CPU a, U8CPU r,
- U8CPU g, U8CPU b)
-{
- a = ((a << 1) - ((a >> 4 << 4) | (a >> 4))) >> 4;
- r = ((r << 1) - ((r >> 4 << 4) | (r >> 4))) >> 4;
- g = ((g << 1) - ((g >> 4 << 4) | (g >> 4))) >> 4;
- b = ((b << 1) - ((b >> 4 << 4) | (b >> 4))) >> 4;
-
- return SkPackARGB4444(a, r, g, b);
-}
-
-inline SkPMColor16 SkDitherPixel32To4444(SkPMColor c)
-{
- return SkDitherARGB32To4444(SkGetPackedA32(c), SkGetPackedR32(c),
- SkGetPackedG32(c), SkGetPackedB32(c));
-}
-
-/* Assumes 16bit is in standard RGBA order.
- Transforms a normal ARGB_8888 into the same byte order as
- expanded ARGB_4444, but keeps each component 8bits
-*/
-inline uint32_t SkExpand_8888(SkPMColor c)
-{
- return (((c >> SK_R32_SHIFT) & 0xFF) << 24) |
- (((c >> SK_G32_SHIFT) & 0xFF) << 8) |
- (((c >> SK_B32_SHIFT) & 0xFF) << 16) |
- (((c >> SK_A32_SHIFT) & 0xFF) << 0);
-}
-
-/* Undo the operation of SkExpand_8888, turning the argument back into
- a SkPMColor.
-*/
-inline SkPMColor SkCompact_8888(uint32_t c)
-{
- return (((c >> 24) & 0xFF) << SK_R32_SHIFT) |
- (((c >> 8) & 0xFF) << SK_G32_SHIFT) |
- (((c >> 16) & 0xFF) << SK_B32_SHIFT) |
- (((c >> 0) & 0xFF) << SK_A32_SHIFT);
-}
-
-/* Like SkExpand_8888, this transforms a pmcolor into the expanded 4444 format,
- but this routine just keeps the high 4bits of each component in the low
- 4bits of the result (just like a newly expanded PMColor16).
-*/
-inline uint32_t SkExpand32_4444(SkPMColor c)
-{
- return (((c >> (SK_R32_SHIFT + 4)) & 0xF) << 24) |
- (((c >> (SK_G32_SHIFT + 4)) & 0xF) << 8) |
- (((c >> (SK_B32_SHIFT + 4)) & 0xF) << 16) |
- (((c >> (SK_A32_SHIFT + 4)) & 0xF) << 0);
-}
-
-// takes two values and alternamtes them as part of a memset16
-// used for cheap 2x2 dithering when the colors are opaque
-void sk_dither_memset16(uint16_t dst[], uint16_t value, uint16_t other, int n);
-
-#endif
-
diff --git a/skia/include/SkColorShader.h b/skia/include/SkColorShader.h
deleted file mode 100644
index f9c3dc3..0000000
--- a/skia/include/SkColorShader.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkColorShader_DEFINED
-#define SkColorShader_DEFINED
-
-#include "SkShader.h"
-
-/** \class SkColorShader
- A Shader that represents a single color. In general, this effect can be
- accomplished by just using the color field on the paint, but if an
- actual shader object is needed, this provides that feature.
-*/
-class SkColorShader : public SkShader {
-public:
- /** Create a ColorShader that will inherit its color from the Paint
- at draw time.
- */
- SkColorShader() : fInheritColor(true) {}
- /** Create a ColorShader that ignores the color in the paint, and uses the
- specified color. Note: like all shaders, at draw time the paint's alpha
- will be respected, and is applied to the specified color.
- */
- SkColorShader(SkColor c) : fColor(c), fInheritColor(false) {}
-
- virtual uint32_t getFlags();
- virtual uint8_t getSpan16Alpha() const;
- virtual bool setContext(const SkBitmap& device, const SkPaint& paint,
- const SkMatrix& matrix);
- virtual void shadeSpan(int x, int y, SkPMColor span[], int count);
- virtual void shadeSpan16(int x, int y, uint16_t span[], int count);
- virtual void shadeSpanAlpha(int x, int y, uint8_t alpha[], int count);
-
-protected:
- SkColorShader(SkFlattenableReadBuffer& );
- virtual void flatten(SkFlattenableWriteBuffer& );
- virtual Factory getFactory() { return CreateProc; }
-private:
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return SkNEW_ARGS(SkColorShader, (buffer));
- }
- SkColor fColor; // ignored if fInheritColor is true
- SkPMColor fPMColor; // cached after setContext()
- uint16_t fColor16; // cached after setContext()
- SkBool8 fInheritColor;
-
- typedef SkShader INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkCornerPathEffect.h b/skia/include/SkCornerPathEffect.h
deleted file mode 100644
index a459478..0000000
--- a/skia/include/SkCornerPathEffect.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkCornerPathEffect_DEFINED
-#define SkCornerPathEffect_DEFINED
-
-#include "SkPathEffect.h"
-
-/** \class SkCornerPathEffect
-
- SkCornerPathEffect is a subclass of SkPathEffect that can turn sharp corners
- into various treatments (e.g. rounded corners)
-*/
-class SkCornerPathEffect : public SkPathEffect {
-public:
- /** radius must be > 0 to have an effect. It specifies the distance from each corner
- that should be "rounded".
- */
- SkCornerPathEffect(SkScalar radius);
- virtual ~SkCornerPathEffect();
-
- // overrides for SkPathEffect
- // This method is not exported to java.
- virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
-
- // overrides for SkFlattenable
- // This method is not exported to java.
- virtual Factory getFactory();
- // This method is not exported to java.
- virtual void flatten(SkFlattenableWriteBuffer&);
-
-protected:
- SkCornerPathEffect(SkFlattenableReadBuffer&);
-
-private:
- SkScalar fRadius;
-
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
-
- // illegal
- SkCornerPathEffect(const SkCornerPathEffect&);
- SkCornerPathEffect& operator=(const SkCornerPathEffect&);
-
- typedef SkPathEffect INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkCullPoints.h b/skia/include/SkCullPoints.h
deleted file mode 100644
index cee64e2..0000000
--- a/skia/include/SkCullPoints.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkCullPoints_DEFINED
-#define SkCullPoints_DEFINED
-
-#include "SkRect.h"
-
-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]);
- kMoveToLineTo_Result //!< path.moveTo(pts[0]); path.lineTo(pts[1]);
- };
- /** Connect a line to the previous call to lineTo (or moveTo).
- */
- LineToResult lineTo(int x, int y, SkIPoint pts[2]);
-
-private:
- SkIRect fR; // the caller's rectangle
- 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;
-};
-
-/////////////////////////////////////////////////////////////////////////////////
-
-class SkPath;
-
-/** \class SkCullPointsPath
-
- Similar to SkCullPoints, but this class handles the return values
- from lineTo, and automatically builds a SkPath with the result(s).
-*/
-class SkCullPointsPath {
-public:
- SkCullPointsPath();
- 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);
-
-private:
- SkCullPoints fCP;
- SkPath* fPath;
-};
-
-#endif
diff --git a/skia/include/SkDOM.h b/skia/include/SkDOM.h
deleted file mode 100644
index 74e2492..0000000
--- a/skia/include/SkDOM.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkDOM_DEFINED
-#define SkDOM_DEFINED
-
-#include "SkChunkAlloc.h"
-#include "SkMath.h"
-#include "SkScalar.h"
-#include "SkTemplates.h"
-
-struct SkDOMNode;
-struct SkDOMAttr;
-
-class SkDOM {
-public:
- SkDOM();
- ~SkDOM();
-
- typedef SkDOMNode Node;
- typedef SkDOMAttr Attr;
-
- /** Returns null on failure
- */
- const Node* build(const char doc[], size_t len);
- const Node* copy(const SkDOM& dom, const Node* node);
-
- const Node* getRootNode() const;
-
- enum Type {
- kElement_Type,
- kText_Type
- };
- Type getType(const Node*) const;
-
- const char* getName(const Node*) const;
- const Node* getFirstChild(const Node*, const char elem[] = NULL) const;
- const Node* getNextSibling(const Node*, const char elem[] = NULL) const;
-
- const char* findAttr(const Node*, const char attrName[]) const;
- const Attr* getFirstAttr(const Node*) const;
- 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;
-
- // helpers for calling SkParse
- bool findS32(const Node*, const char name[], int32_t* value) const;
- bool findScalars(const Node*, const char name[], SkScalar value[], int count) const;
- bool findHex(const Node*, const char name[], uint32_t* value) const;
- bool findBool(const Node*, const char name[], bool*) const;
- int findList(const Node*, const char name[], const char list[]) const;
-
- bool findScalar(const Node* node, const char name[], SkScalar value[]) const
- {
- return this->findScalars(node, name, value, 1);
- }
-
- bool hasAttr(const Node*, const char name[], const char value[]) const;
- bool hasS32(const Node*, const char name[], int32_t value) const;
- bool hasScalar(const Node*, const char name[], SkScalar value) const;
- bool hasHex(const Node*, const char name[], uint32_t value) const;
- bool hasBool(const Node*, const char name[], bool value) const;
-
- class AttrIter {
- public:
- AttrIter(const class SkDOM&, const Node*);
- const char* next(const char** value);
- private:
- const Attr* fAttr;
- const Attr* fStop;
- };
-
- SkDEBUGCODE(void dump(const Node* node = NULL, int tabLevel = 0) const;)
- SkDEBUGCODE(static void UnitTest();)
-
-private:
- SkChunkAlloc fAlloc;
- Node* fRoot;
- friend class AttrIter;
- friend class SkDOMParser;
-};
-
-#endif
-
diff --git a/skia/include/SkDashPathEffect.h b/skia/include/SkDashPathEffect.h
deleted file mode 100644
index cc414e3..0000000
--- a/skia/include/SkDashPathEffect.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkDashPathEffect_DEFINED
-#define SkDashPathEffect_DEFINED
-
-#include "SkPathEffect.h"
-
-/** \class SkDashPathEffect
-
- SkDashPathEffect is a subclass of SkPathEffect that implements dashing
-*/
-class SkDashPathEffect : public SkPathEffect {
-public:
- /** The intervals array must contain an even number of entries (>=2), with the even
- indices specifying the "on" intervals, and the odd indices specifying the "off"
- intervals. phase is an offset into the intervals array (mod the sum of all of the
- intervals).
- Note: only affects framed paths
- */
- SkDashPathEffect(const SkScalar intervals[], int count, SkScalar phase, bool scaleToFit = false);
- virtual ~SkDashPathEffect();
-
- // overrides for SkPathEffect
- // This method is not exported to java.
- virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
-
- // overrides for SkFlattenable
- // This method is not exported to java.
- virtual Factory getFactory();
- // This method is not exported to java.
- virtual void flatten(SkFlattenableWriteBuffer&);
-
-protected:
- SkDashPathEffect(SkFlattenableReadBuffer&);
-
-private:
- SkScalar* fIntervals;
- int32_t fCount;
- // computed from phase
- SkScalar fInitialDashLength;
- int32_t fInitialDashIndex;
- SkScalar fIntervalLength;
- bool fScaleToFit;
-
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
-
- typedef SkPathEffect INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkDeque.h b/skia/include/SkDeque.h
deleted file mode 100644
index cbed930..0000000
--- a/skia/include/SkDeque.h
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkDeque_DEFINED
-#define SkDeque_DEFINED
-
-#include "SkTypes.h"
-
-class SkDeque : SkNoncopyable {
-public:
- explicit SkDeque(size_t elemSize);
- SkDeque(size_t elemSize, void* storage, size_t storageSize);
- ~SkDeque();
-
- bool empty() const { return 0 == fCount; }
- int count() const { return fCount; }
- size_t elemSize() const { return fElemSize; }
-
- const void* front() const;
- const void* back() const;
-
- void* front() {
- return (void*)((const SkDeque*)this)->front();
- }
-
- void* back() {
- return (void*)((const SkDeque*)this)->back();
- }
-
- void* push_front();
- void* push_back();
-
- void pop_front();
- void pop_back();
-
-private:
- struct Head;
-
-public:
- class Iter {
- public:
- Iter(const SkDeque& d);
- void* next();
-
- private:
- SkDeque::Head* fHead;
- char* fPos;
- size_t fElemSize;
- };
-
-private:
- Head* fFront;
- Head* fBack;
- size_t fElemSize;
- void* fInitialStorage;
- int fCount;
-
- friend class Iter;
-};
-
-#endif
diff --git a/skia/include/SkDescriptor.h b/skia/include/SkDescriptor.h
deleted file mode 100644
index 8074cff..0000000
--- a/skia/include/SkDescriptor.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkDescriptor_DEFINED
-#define SkDescriptor_DEFINED
-
-#include "SkTypes.h"
-
-class SkDescriptor : SkNoncopyable {
-public:
- static size_t ComputeOverhead(int entryCount)
- {
- SkASSERT(entryCount >= 0);
- return sizeof(SkDescriptor) + entryCount * sizeof(Entry);
- }
-
- static SkDescriptor* Alloc(size_t length)
- {
- SkASSERT(SkAlign4(length) == length);
- SkDescriptor* desc = (SkDescriptor*)sk_malloc_throw(length);
- return desc;
- }
-
- static void Free(SkDescriptor* desc)
- {
- sk_free(desc);
- }
-
- void init()
- {
- fLength = sizeof(SkDescriptor);
- fCount = 0;
- }
-
- uint32_t getLength() const { return fLength; }
-
- void* addEntry(uint32_t tag, uint32_t length, const void* data = NULL)
- {
- SkASSERT(tag);
- SkASSERT(SkAlign4(length) == length);
- SkASSERT(this->findEntry(tag, NULL) == NULL);
-
- Entry* entry = (Entry*)((char*)this + fLength);
- entry->fTag = tag;
- entry->fLen = length;
- if (data)
- memcpy(entry + 1, data, length);
-
- fCount += 1;
- fLength += sizeof(Entry) + length;
- return (entry + 1); // return its data
- }
-
- void computeChecksum()
- {
- fChecksum = SkDescriptor::ComputeChecksum(this);
- }
-
-#ifdef SK_DEBUG
- void assertChecksum() const
- {
- SkASSERT(fChecksum == SkDescriptor::ComputeChecksum(this));
- }
-#endif
-
- const void* findEntry(uint32_t tag, uint32_t* length) const
- {
- const Entry* entry = (const Entry*)(this + 1);
- int count = fCount;
-
- while (--count >= 0)
- {
- if (entry->fTag == tag)
- {
- if (length)
- *length = entry->fLen;
- return entry + 1;
- }
- entry = (const Entry*)((const char*)(entry + 1) + entry->fLen);
- }
- return NULL;
- }
-
- SkDescriptor* copy() const
- {
- SkDescriptor* desc = SkDescriptor::Alloc(fLength);
- memcpy(desc, this, fLength);
- return desc;
- }
-
- bool equals(const SkDescriptor& other) const
- {
- // probe to see if we have a good checksum algo
-// SkASSERT(a.fChecksum != b.fChecksum || memcmp(&a, &b, a.fLength) == 0);
-
- // the first value we should look at is the checksum, so this loop
- // should terminate early if they descriptors are different.
- // NOTE: if we wrote a sentinel value at the end of each, we chould
- // remove the aa < stop test in the loop...
- const uint32_t* aa = (const uint32_t*)this;
- const uint32_t* bb = (const uint32_t*)&other;
- const uint32_t* stop = (const uint32_t*)((const char*)aa + fLength);
- do {
- if (*aa++ != *bb++)
- return false;
- } while (aa < stop);
- return true;
- }
-
- struct Entry {
- uint32_t fTag;
- uint32_t fLen;
- };
-
-#ifdef SK_DEBUG
- uint32_t getChecksum() const { return fChecksum; }
- uint32_t getCount() const { return fCount; }
-#endif
-
-private:
- uint32_t fChecksum; // must be first
- uint32_t fLength; // must be second
- uint32_t fCount;
-
- static uint32_t ComputeChecksum(const SkDescriptor* desc)
- {
- const uint32_t* ptr = (const uint32_t*)desc + 1; // skip the checksum field
- const uint32_t* stop = (const uint32_t*)((const char*)desc + desc->fLength);
- uint32_t sum = 0;
-
- SkASSERT(ptr < stop);
- do {
- sum = (sum << 1) | (sum >> 31);
- sum ^= *ptr++;
- } while (ptr < stop);
-
- return sum;
- }
-
- // private so no one can create one except our factories
- SkDescriptor() {}
-};
-
-#include "SkScalerContext.h"
-
-class SkAutoDescriptor : SkNoncopyable {
-public:
- SkAutoDescriptor(size_t size)
- {
- if (size <= sizeof(fStorage))
- fDesc = (SkDescriptor*)(void*)fStorage;
- else
- fDesc = SkDescriptor::Alloc(size);
- }
- ~SkAutoDescriptor()
- {
- if (fDesc != (SkDescriptor*)(void*)fStorage)
- SkDescriptor::Free(fDesc);
- }
- SkDescriptor* getDesc() const { return fDesc; }
-private:
- enum {
- kStorageSize = sizeof(SkDescriptor)
- + sizeof(SkDescriptor::Entry) + sizeof(SkScalerContext::Rec) // for rec
- + sizeof(SkDescriptor::Entry) + sizeof(void*) // for typeface
- + 32 // slop for occational small extras
- };
- SkDescriptor* fDesc;
- uint32_t fStorage[(kStorageSize + 3) >> 2];
-};
-
-
-#endif
-
diff --git a/skia/include/SkDevice.h b/skia/include/SkDevice.h
deleted file mode 100644
index 4d678c6..0000000
--- a/skia/include/SkDevice.h
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkDevice_DEFINED
-#define SkDevice_DEFINED
-
-#include "SkRefCnt.h"
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkColor.h"
-
-class SkDraw;
-struct SkIRect;
-class SkMatrix;
-class SkRegion;
-
-class SkDevice : public SkRefCnt {
-public:
- SkDevice();
- /** Construct a new device, extracting the width/height/config/isOpaque values from
- the bitmap. If transferPixelOwnership is true, and the bitmap claims to own its
- own pixels (getOwnsPixels() == true), then transfer this responsibility to the
- device, and call setOwnsPixels(false) on the bitmap.
-
- Subclasses may override the destructor, which is virtual, even though this class
- doesn't have one. SkRefCnt does.
-
- @param bitmap A copy of this bitmap is made and stored in the device
- */
- SkDevice(const SkBitmap& bitmap);
-
- /** Return the width of the device (in pixels).
- */
- int width() const { return fBitmap.width(); }
- /** Return the height of the device (in pixels).
- */
- int height() const { return fBitmap.height(); }
- /** Return the bitmap config of the device's pixels
- */
- SkBitmap::Config config() const { return fBitmap.getConfig(); }
- /** Returns true if the device's bitmap's config treats every pixels as
- implicitly opaque.
- */
- bool isOpaque() const { return fBitmap.isOpaque(); }
-
- /** Return the bounds of the device
- */
- void getBounds(SkIRect* bounds) const;
-
- /** Return true if the specified rectangle intersects the bounds of the
- device. If sect is not NULL and there is an intersection, sect returns
- the intersection.
- */
- bool intersects(const SkIRect& r, SkIRect* sect = NULL) const;
-
- /** Return the bitmap associated with this device. Call this each time you need
- to access the bitmap, as it notifies the subclass to perform any flushing
- etc. before you examine the pixels.
- @param changePixels set to true if the caller plans to change the pixels
- @return the device's bitmap
- */
- const SkBitmap& accessBitmap(bool changePixels);
-
- /** Helper to erase the entire device to the specified color (including
- alpha).
- */
- void eraseColor(SkColor eraseColor);
-
- /** Called when this device is installed into a Canvas. Balanaced by a call
- to unlockPixels() when the device is removed from a Canvas.
- */
- virtual void lockPixels();
- virtual void unlockPixels();
-
- /** Called with the correct matrix and clip before this device is drawn
- to using those settings. If your subclass overrides this, be sure to
- call through to the base class as well.
- */
- virtual void setMatrixClip(const SkMatrix&, const SkRegion&);
-
- /** Called when this device gains focus (i.e becomes the current device
- for drawing).
- */
- virtual void gainFocus(SkCanvas*) {}
-
- /** These are called inside the per-device-layer loop for each draw call.
- When these are called, we have already applied any saveLayer operations,
- and are handling any looping from the paint, and any effects from the
- DrawFilter.
- */
- virtual void drawPaint(const SkDraw&, const SkPaint& paint);
- virtual void drawPoints(const SkDraw&, SkCanvas::PointMode mode, size_t count,
- const SkPoint[], const SkPaint& paint);
- virtual void drawRect(const SkDraw&, const SkRect& r,
- const SkPaint& paint);
- virtual void drawPath(const SkDraw&, const SkPath& path,
- const SkPaint& paint);
- virtual void drawBitmap(const SkDraw&, const SkBitmap& bitmap,
- const SkMatrix& matrix, const SkPaint& paint);
- virtual void drawSprite(const SkDraw&, const SkBitmap& bitmap,
- int x, int y, const SkPaint& paint);
- virtual void drawText(const SkDraw&, const void* text, size_t len,
- SkScalar x, SkScalar y, const SkPaint& paint);
- virtual void drawPosText(const SkDraw&, const void* text, size_t len,
- const SkScalar pos[], SkScalar constY,
- int scalarsPerPos, const SkPaint& paint);
- virtual void drawTextOnPath(const SkDraw&, const void* text, size_t len,
- const SkPath& path, const SkMatrix* matrix,
- const SkPaint& paint);
- virtual void drawVertices(const SkDraw&, SkCanvas::VertexMode, int vertexCount,
- const SkPoint verts[], const SkPoint texs[],
- const SkColor colors[], SkXfermode* xmode,
- const uint16_t indices[], int indexCount,
- const SkPaint& paint);
- virtual void drawDevice(const SkDraw&, SkDevice*, int x, int y,
- const SkPaint&);
-
-protected:
- /** Update as needed the pixel value in the bitmap, so that the caller can access
- the pixels directly. Note: only the pixels field should be altered. The config/width/height/rowbytes
- must remain unchanged.
- */
- virtual void onAccessBitmap(SkBitmap*);
-
-private:
- SkBitmap fBitmap;
-};
-
-#endif
diff --git a/skia/include/SkDiscretePathEffect.h b/skia/include/SkDiscretePathEffect.h
deleted file mode 100644
index 2950950..0000000
--- a/skia/include/SkDiscretePathEffect.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkDiscretePathEffect_DEFINED
-#define SkDiscretePathEffect_DEFINED
-
-#include "SkPathEffect.h"
-
-/** \class SkDiscretePathEffect
-
- This path effect chops a path into discrete segments, and randomly displaces them.
-*/
-class SkDiscretePathEffect : public SkPathEffect {
-public:
- /** Break the path into segments of segLength length, and randomly move the endpoints
- away from the original path by a maximum of deviation.
- Note: works on filled or framed paths
- */
- SkDiscretePathEffect(SkScalar segLength, SkScalar deviation);
-
- // overrides for SkPathEffect
- // This method is not exported to java.
- virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
-
- // overrides for SkFlattenable
- // This method is not exported to java.
- virtual Factory getFactory();
- // This method is not exported to java.
- virtual void flatten(SkFlattenableWriteBuffer&);
-
-protected:
- SkDiscretePathEffect(SkFlattenableReadBuffer&);
-
-private:
- SkScalar fSegLength, fPerterb;
-
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
-
- typedef SkPathEffect INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkDither.h b/skia/include/SkDither.h
deleted file mode 100644
index 5b2552d..0000000
--- a/skia/include/SkDither.h
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkDither_DEFINED
-#define SkDither_DEFINED
-
-#include "SkColorPriv.h"
-
-#define SK_DitherValueMax4444 15
-#define SK_DitherValueMax565 7
-
-/* need to use macros for bit-counts for each component, and then
- move these into SkColorPriv.h
-*/
-
-#define SkDITHER_R32_FOR_565_MACRO(r, d) (r + d - (r >> 5))
-#define SkDITHER_G32_FOR_565_MACRO(g, d) (g + (d >> 1) - (g >> 6))
-#define SkDITHER_B32_FOR_565_MACRO(b, d) (b + d - (b >> 5))
-
-#define SkDITHER_A32_FOR_4444_MACRO(a, d) (a + 15 - (a >> 4))
-#define SkDITHER_R32_FOR_4444_MACRO(r, d) (r + d - (r >> 4))
-#define SkDITHER_G32_FOR_4444_MACRO(g, d) (g + d - (g >> 4))
-#define SkDITHER_B32_FOR_4444_MACRO(b, d) (b + d - (b >> 4))
-
-#ifdef SK_DEBUG
- inline unsigned SkDITHER_R32_FOR_565(unsigned r, unsigned d)
- {
- SkASSERT(d <= SK_DitherValueMax565);
- SkA32Assert(r);
- r = SkDITHER_R32_FOR_565_MACRO(r, d);
- SkA32Assert(r);
- return r;
- }
- inline unsigned SkDITHER_G32_FOR_565(unsigned g, unsigned d)
- {
- SkASSERT(d <= SK_DitherValueMax565);
- SkG32Assert(g);
- g = SkDITHER_G32_FOR_565_MACRO(g, d);
- SkG32Assert(g);
- return g;
- }
- inline unsigned SkDITHER_B32_FOR_565(unsigned b, unsigned d)
- {
- SkASSERT(d <= SK_DitherValueMax565);
- SkB32Assert(b);
- b = SkDITHER_B32_FOR_565_MACRO(b, d);
- SkB32Assert(b);
- return b;
- }
-#else
- #define SkDITHER_R32_FOR_565(r, d) SkDITHER_R32_FOR_565_MACRO(r, d)
- #define SkDITHER_G32_FOR_565(g, d) SkDITHER_G32_FOR_565_MACRO(g, d)
- #define SkDITHER_B32_FOR_565(b, d) SkDITHER_B32_FOR_565_MACRO(b, d)
-#endif
-
-#define SkDITHER_R32To565(r, d) SkR32ToR16(SkDITHER_R32_FOR_565(r, d))
-#define SkDITHER_G32To565(g, d) SkG32ToG16(SkDITHER_G32_FOR_565(g, d))
-#define SkDITHER_B32To565(b, d) SkB32ToB16(SkDITHER_B32_FOR_565(b, d))
-
-#define SkDITHER_A32To4444(a, d) SkA32To4444(SkDITHER_A32_FOR_4444_MACRO(a, d))
-#define SkDITHER_R32To4444(r, d) SkR32To4444(SkDITHER_R32_FOR_4444_MACRO(r, d))
-#define SkDITHER_G32To4444(g, d) SkG32To4444(SkDITHER_G32_FOR_4444_MACRO(g, d))
-#define SkDITHER_B32To4444(b, d) SkB32To4444(SkDITHER_B32_FOR_4444_MACRO(b, d))
-
-static inline SkPMColor SkDitherARGB32For565(SkPMColor c, unsigned dither)
-{
- SkASSERT(dither <= SK_DitherValueMax565);
-
- unsigned sa = SkGetPackedA32(c);
- dither = SkAlphaMul(dither, SkAlpha255To256(sa));
-
- 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(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);
-}
-
-static inline uint16_t SkDitherRGBTo565(U8CPU r, U8CPU g, U8CPU b,
- unsigned dither)
-{
- SkASSERT(dither <= SK_DitherValueMax565);
- r = SkDITHER_R32To565(r, dither);
- g = SkDITHER_G32To565(g, dither);
- b = SkDITHER_B32To565(b, dither);
- return SkPackRGB16(r, g, 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);
- 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);
-}
-
-///////////////////////// 4444
-
-static inline SkPMColor16 SkDitherARGB32To4444(U8CPU a, U8CPU r, U8CPU g,
- U8CPU b, unsigned dither)
-{
- dither = SkAlphaMul(dither, SkAlpha255To256(a));
-
- a = SkDITHER_A32To4444(a, dither);
- r = SkDITHER_R32To4444(r, dither);
- g = SkDITHER_G32To4444(g, dither);
- b = SkDITHER_B32To4444(b, dither);
-
- return SkPackARGB4444(a, r, g, b);
-}
-
-static inline SkPMColor16 SkDitherARGB32To4444(SkPMColor c, unsigned dither)
-{
- unsigned a = SkGetPackedA32(c);
- unsigned r = SkGetPackedR32(c);
- unsigned g = SkGetPackedG32(c);
- unsigned b = SkGetPackedB32(c);
-
- dither = SkAlphaMul(dither, SkAlpha255To256(a));
-
- a = SkDITHER_A32To4444(a, dither);
- r = SkDITHER_R32To4444(r, dither);
- g = SkDITHER_G32To4444(g, dither);
- b = SkDITHER_B32To4444(b, dither);
-
- return SkPackARGB4444(a, r, g, b);
-}
-
-// TODO: need dither routines for 565 -> 4444
-
-// this toggles between a 4x4 and a 1x4 array
-//#define ENABLE_DITHER_MATRIX_4X4
-
-#ifdef ENABLE_DITHER_MATRIX_4X4
- extern const uint8_t gDitherMatrix_4Bit_4X4[4][4];
- extern const uint8_t gDitherMatrix_3Bit_4X4[4][4];
-
- #define DITHER_4444_SCAN(y) const uint8_t* dither_scan = gDitherMatrix_4Bit_4X4[(y) & 3]
- #define DITHER_565_SCAN(y) const uint8_t* dither_scan = gDitherMatrix_3Bit_4X4[(y) & 3]
-
- #define DITHER_VALUE(x) dither_scan[(x) & 3]
-#else
- extern const uint16_t gDitherMatrix_4Bit_16[4];
- extern const uint16_t gDitherMatrix_3Bit_16[4];
-
- #define DITHER_4444_SCAN(y) const uint16_t dither_scan = gDitherMatrix_4Bit_16[(y) & 3]
- #define DITHER_565_SCAN(y) const uint16_t dither_scan = gDitherMatrix_3Bit_16[(y) & 3]
-
- #define DITHER_VALUE(x) ((dither_scan >> (((x) & 3) << 2)) & 0xF)
-#endif
-
-#define DITHER_INC_X(x) ++(x)
-
-#endif
diff --git a/skia/include/SkDraw.h b/skia/include/SkDraw.h
deleted file mode 100644
index 2d775a4..0000000
--- a/skia/include/SkDraw.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkDraw_DEFINED
-#define SkDraw_DEFINED
-
-#include "SkBitmap.h"
-#include "SkCanvas.h"
-#include "SkMask.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkRect.h"
-#include "SkAutoKern.h"
-
-class SkBounder;
-class SkDevice;
-class SkPath;
-class SkRegion;
-struct SkDrawProcs;
-
-class SkDraw {
-public:
- SkDraw() : fDevice(NULL), fBounder(NULL), fProcs(NULL) {}
- SkDraw(const SkDraw& src);
-
- void drawPaint(const SkPaint&) const;
- void drawPoints(SkCanvas::PointMode, size_t count, const SkPoint[],
- const SkPaint&) const;
- void drawRect(const SkRect&, const SkPaint&) const;
- /* To save on mallocs, we allow a flag that tells us that srcPath is
- mutable, so that we don't have to make copies of it as we transform it.
- */
- void drawPath(const SkPath& srcPath, const SkPaint&,
- const SkMatrix* prePathMatrix, bool pathIsMutable) const;
- void drawBitmap(const SkBitmap&, const SkMatrix&, const SkPaint&) const;
- void drawSprite(const SkBitmap&, int x, int y, const SkPaint&) const;
- void drawText(const char text[], size_t byteLength, SkScalar x,
- SkScalar y, const SkPaint& paint) const;
- void drawPosText(const char text[], size_t byteLength,
- const SkScalar pos[], SkScalar constY,
- int scalarsPerPosition, const SkPaint& paint) const;
- void drawTextOnPath(const char text[], size_t byteLength,
- const SkPath&, const SkMatrix*, const SkPaint&) const;
- void drawVertices(SkCanvas::VertexMode mode, int count,
- const SkPoint vertices[], const SkPoint textures[],
- const SkColor colors[], SkXfermode* xmode,
- const uint16_t indices[], int ptCount,
- const SkPaint& paint) const;
-
- void drawPath(const SkPath& src, const SkPaint& paint) const {
- this->drawPath(src, paint, NULL, false);
- }
-
- /** Helper function that creates a mask from a path and an optional maskfilter.
- Note however, that the resulting mask will not have been actually filtered,
- that must be done afterwards (by calling filterMask). The maskfilter is provided
- solely to assist in computing the mask's bounds (if the mode requests that).
- */
- static bool DrawToMask(const SkPath& devPath, const SkIRect* clipBounds,
- SkMaskFilter* filter, const SkMatrix* filterMatrix,
- SkMask* mask, SkMask::CreateMode mode);
-
-private:
- void drawText_asPaths(const char text[], size_t byteLength,
- SkScalar x, SkScalar y, const SkPaint&) const;
- void drawDevMask(const SkMask& mask, const SkPaint&) const;
- void drawBitmapAsMask(const SkBitmap&, const SkPaint&) const;
-
-public:
- const SkBitmap* fBitmap; // required
- const SkMatrix* fMatrix; // required
- const SkRegion* fClip; // required
- SkDevice* fDevice; // optional
- SkBounder* fBounder; // optional
- SkDrawProcs* fProcs; // optional
-
-#ifdef SK_DEBUG
- void validate() const;
-#endif
-};
-
-#include "SkGlyphCache.h"
-
-class SkTextToPathIter {
-public:
- SkTextToPathIter(const char text[], size_t length, const SkPaint&,
- bool applyStrokeAndPathEffects, bool forceLinearTextOn);
- ~SkTextToPathIter();
-
- const SkPaint& getPaint() const { return fPaint; }
- SkScalar getPathScale() const { return fScale; }
-
- const SkPath* next(SkScalar* xpos); //!< returns nil when there are no more paths
-
-private:
- SkGlyphCache* fCache;
- SkPaint fPaint;
- SkScalar fScale;
- SkFixed fPrevAdvance;
- const char* fText;
- const char* fStop;
- SkMeasureCacheProc fGlyphCacheProc;
-
- const SkPath* fPath; // returned in next
- SkScalar fXPos; // accumulated xpos, returned in next
- SkAutoKern fAutoKern;
-};
-
-#endif
-
-
diff --git a/skia/include/SkDrawExtraPathEffect.h b/skia/include/SkDrawExtraPathEffect.h
deleted file mode 100644
index 65e255a..0000000
--- a/skia/include/SkDrawExtraPathEffect.h
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SK_DRAW_EXTRA_PATH_EFFECT_H
-#define SK_DRAW_EXTRA_PATH_EFFECT_H
-class SkAnimator;
-void InitializeSkExtraPathEffects(SkAnimator* animator);
-#endif
-
diff --git a/skia/include/SkDrawFilter.h b/skia/include/SkDrawFilter.h
deleted file mode 100644
index db5a685..0000000
--- a/skia/include/SkDrawFilter.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkDrawFilter_DEFINED
-#define SkDrawFilter_DEFINED
-
-#include "SkRefCnt.h"
-
-////////////////// EXPERIMENTAL //////////////////////////
-
-class SkCanvas;
-class SkPaint;
-
-/** Right before something is being draw, filter() is called with the
- current canvas and paint. If it returns true, then drawing proceeds
- with the (possibly modified) canvas/paint, and then restore() is called
- to restore the canvas/paint to their state before filter() was called.
- If filter returns false, canvas/paint should not have been changed, and
- restore() will not be called.
-*/
-class SkDrawFilter : public SkRefCnt {
-public:
- enum Type {
- kPaint_Type,
- kPoint_Type,
- kLine_Type,
- kBitmap_Type,
- kRect_Type,
- kPath_Type,
- kText_Type
- };
-
- /** Return true to allow the draw to continue (with possibly modified
- canvas/paint). If true is returned, then restore() will be called.
- */
- virtual bool filter(SkCanvas*, SkPaint*, Type) = 0;
- /** If filter() returned true, then restore() will be called to restore the
- canvas/paint to their previous states
- */
- virtual void restore(SkCanvas*, SkPaint*, Type) = 0;
-};
-
-#endif
diff --git a/skia/include/SkDrawLooper.h b/skia/include/SkDrawLooper.h
deleted file mode 100644
index 333fb41..0000000
--- a/skia/include/SkDrawLooper.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkDrawLooper_DEFINED
-#define SkDrawLooper_DEFINED
-
-#include "SkFlattenable.h"
-
-////////////////// EXPERIMENTAL //////////////////////////
-
-class SkCanvas;
-class SkPaint;
-
-/** \class SkDrawLooper
- Subclasses of SkDrawLooper can be attached to a SkPaint. Where they are,
- and something is drawn to a canvas with that paint, the looper subclass will
- be called, allowing it to modify the canvas and/or paint for that draw call.
- More than that, via the next() method, the looper can modify the draw to be
- invoked multiple times (hence the name loop-er), allow it to perform effects
- like shadows or frame/fills, that require more than one pass.
-*/
-class SkDrawLooper : public SkFlattenable {
-public:
- /** Called right before something is being drawn to the specified canvas
- with the specified paint. Subclass that want to modify either parameter
- can do so now.
- */
- virtual void init(SkCanvas*, SkPaint*) {}
- /** Called in a loop (after init()). Each time true is returned, the object
- is drawn (possibly with a modified canvas and/or paint). When false is
- finally returned, drawing for the object stops.
- */
- virtual bool next() { return false; }
- /** Called after the looper has finally returned false from next(), allowing
- the looper to restore the canvas/paint to their original states.
- is this required, since the subclass knows when it is done???
- should we pass the canvas/paint here, and/or to the next call
- so that subclasses don't need to retain pointers to them during the
- loop?
- */
- virtual void restore() {}
-
-protected:
- SkDrawLooper() {}
- SkDrawLooper(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
-
-private:
- typedef SkFlattenable INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkEmbossMaskFilter.h b/skia/include/SkEmbossMaskFilter.h
deleted file mode 100644
index 042a2a6..0000000
--- a/skia/include/SkEmbossMaskFilter.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkEmbossMaskFilter_DEFINED
-#define SkEmbossMaskFilter_DEFINED
-
-#include "SkMaskFilter.h"
-
-/** \class SkEmbossMaskFilter
-
- This mask filter creates a 3D emboss look, by specifying a light and blur amount.
-*/
-class SkEmbossMaskFilter : public SkMaskFilter {
-public:
- struct Light {
- SkScalar fDirection[3]; // x,y,z
- uint16_t fPad;
- uint8_t fAmbient;
- uint8_t fSpecular; // exponent, 4.4 right now
- };
-
- SkEmbossMaskFilter(const Light& light, SkScalar blurRadius);
-
- // overrides from SkMaskFilter
- // This method is not exported to java.
- virtual SkMask::Format getFormat();
- // This method is not exported to java.
- virtual bool filterMask(SkMask* dst, const SkMask& src, const SkMatrix& matrix, SkIPoint* margin);
-
- // overrides from SkFlattenable
-
- // This method is not exported to java.
- virtual Factory getFactory();
- // This method is not exported to java.
- virtual void flatten(SkFlattenableWriteBuffer&);
-
-protected:
- SkEmbossMaskFilter(SkFlattenableReadBuffer&);
-
-private:
- Light fLight;
- SkScalar fBlurRadius;
-
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
-
- typedef SkMaskFilter INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkEvent.h b/skia/include/SkEvent.h
deleted file mode 100644
index 2b43f34..0000000
--- a/skia/include/SkEvent.h
+++ /dev/null
@@ -1,244 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkEvent_DEFINED
-#define SkEvent_DEFINED
-
-#include "SkDOM.h"
-#include "SkMetaData.h"
-#include "SkString.h"
-
-//class SkOSWindow;
-
-/** Unique 32bit id used to identify an instance of SkEventSink. When events are
- posted, they are posted to a specific sinkID. When it is time to dispatch the
- event, the sinkID is used to find the specific SkEventSink object. If it is found,
- its doEvent() method is called with the event.
-*/
-typedef uint32_t SkEventSinkID;
-
-/** \class SkEvent
-
- SkEvents are used to communicate type-safe information to SkEventSinks.
- SkEventSinks (including SkViews) each have a unique ID, which is stored
- in an event. This ID is used to target the event once it has been "posted".
-*/
-class SkEvent {
-public:
- /** Default construct, creating an empty event.
- */
- SkEvent();
- /** Construct a new event with the specified type.
- */
- explicit SkEvent(const SkString& type);
- /** Construct a new event with the specified type.
- */
- explicit SkEvent(const char type[]);
- /** Construct a new event by copying the fields from the src event.
- */
- SkEvent(const SkEvent& src);
- ~SkEvent();
-
-// /** Return the event's type (will never be null) */
-// const char* getType() const;
- /** Copy the event's type into the specified SkString parameter */
- void getType(SkString* str) const;
- /** Returns true if the event's type matches exactly the specified type (case sensitive) */
- bool isType(const SkString& str) const;
- /** Returns true if the event's type matches exactly the specified type (case sensitive) */
- bool isType(const char type[], size_t len = 0) const;
- /** Set the event's type to the specified string.
- In XML, use the "type" attribute.
- */
- void setType(const SkString&);
- /** Set the event's type to the specified string.
- In XML, use the "type" attribute.
- */
- void setType(const char type[], size_t len = 0);
-
- /** Return the event's unnamed 32bit field. Default value is 0 */
- uint32_t getFast32() const { return f32; }
- /** Set the event's unnamed 32bit field. In XML, use
- the subelement <data fast32=... />
- */
- void setFast32(uint32_t x) { f32 = x; }
-
- /** Return true if the event contains the named 32bit field, and return the field
- in value (if value is non-null). If there is no matching named field, return false
- and ignore the value parameter.
- */
- bool findS32(const char name[], int32_t* value = NULL) const { return fMeta.findS32(name, value); }
- /** Return true if the event contains the named SkScalar field, and return the field
- in value (if value is non-null). If there is no matching named field, return false
- and ignore the value parameter.
- */
- bool findScalar(const char name[], SkScalar* value = NULL) const { return fMeta.findScalar(name, value); }
- /** Return true if the event contains the named SkScalar field, and return the fields
- in value[] (if value is non-null), and return the number of SkScalars in count (if count is non-null).
- If there is no matching named field, return false and ignore the value and count parameters.
- */
- const SkScalar* findScalars(const char name[], int* count, SkScalar values[] = NULL) const { return fMeta.findScalars(name, count, values); }
- /** Return the value of the named string field, or if no matching named field exists, return null.
- */
- const char* findString(const char name[]) const { return fMeta.findString(name); }
- /** Return true if the event contains the named pointer field, and return the field
- in value (if value is non-null). If there is no matching named field, return false
- and ignore the value parameter.
- */
- bool findPtr(const char name[], void** value) const { return fMeta.findPtr(name, value); }
- bool findBool(const char name[], bool* value) const { return fMeta.findBool(name, value); }
-
- /** Returns true if ethe event contains the named 32bit field, and if it equals the specified value */
- bool hasS32(const char name[], int32_t value) const { return fMeta.hasS32(name, value); }
- /** Returns true if ethe event contains the named SkScalar field, and if it equals the specified value */
- bool hasScalar(const char name[], SkScalar value) const { return fMeta.hasScalar(name, value); }
- /** Returns true if ethe event contains the named string field, and if it equals (using strcmp) the specified value */
- bool hasString(const char name[], const char value[]) const { return fMeta.hasString(name, value); }
- /** Returns true if ethe event contains the named pointer field, and if it equals the specified value */
- bool hasPtr(const char name[], void* value) const { return fMeta.hasPtr(name, value); }
- bool hasBool(const char name[], bool value) const { return fMeta.hasBool(name, value); }
-
- /** Add/replace the named 32bit field to the event. In XML use the subelement <data name=... s32=... /> */
- void setS32(const char name[], int32_t value) { fMeta.setS32(name, value); }
- /** Add/replace the named SkScalar field to the event. In XML use the subelement <data name=... scalar=... /> */
- void setScalar(const char name[], SkScalar value) { fMeta.setScalar(name, value); }
- /** Add/replace the named SkScalar[] field to the event. */
- SkScalar* setScalars(const char name[], int count, const SkScalar values[] = NULL) { return fMeta.setScalars(name, count, values); }
- /** Add/replace the named string field to the event. In XML use the subelement <data name=... string=... */
- void setString(const char name[], const SkString& value) { fMeta.setString(name, value.c_str()); }
- /** Add/replace the named string field to the event. In XML use the subelement <data name=... string=... */
- void setString(const char name[], const char value[]) { fMeta.setString(name, value); }
- /** Add/replace the named pointer field to the event. There is no XML equivalent for this call */
- void setPtr(const char name[], void* value) { fMeta.setPtr(name, value); }
- void setBool(const char name[], bool value) { fMeta.setBool(name, value); }
-
- /** Return the underlying metadata object */
- SkMetaData& getMetaData() { return fMeta; }
- /** Return the underlying metadata object */
- const SkMetaData& getMetaData() const { return fMeta; }
-
- void tron() { SkDEBUGCODE(fDebugTrace = true;) }
- void troff() { SkDEBUGCODE(fDebugTrace = false;) }
- bool isDebugTrace() const
- {
-#ifdef SK_DEBUG
- return fDebugTrace;
-#else
- return false;
-#endif
- }
-
- /** Call this to initialize the event from the specified XML node */
- void inflate(const SkDOM&, const SkDOM::Node*);
-
- SkDEBUGCODE(void dump(const char title[] = NULL);)
-
- /** Post the specified event to the event queue, targeting the specified eventsink, with an optional
- delay. The event must be dynamically allocated for this. It cannot be a global or on the stack.
- After this call, ownership is transfered to the system, so the caller must not retain
- the event's ptr. Returns false if the event could not be posted (which means it will have been deleted).
- */
- static bool Post(SkEvent* evt, SkEventSinkID targetID, SkMSec delay = 0);
- /** Post the specified event to the event queue, targeting the specified eventsink, to be delivered on/after the
- specified millisecond time. The event must be dynamically allocated for this. It cannot be a global or on the stack.
- After this call, ownership is transfered to the system, so the caller must not retain
- the event's ptr. Returns false if the event could not be posted (which means it will have been deleted).
- */
- static bool PostTime(SkEvent* evt, SkEventSinkID targetID, SkMSec time);
-
- /** Helper method for calling SkEvent::PostTime(this, ...), where the caller specifies a delay.
- The real "time" will be computed automatically by sampling the clock and adding its value
- to delay.
- */
- bool post(SkEventSinkID sinkID, SkMSec delay = 0)
- {
- return SkEvent::Post(this, sinkID, delay);
- }
-
- void postTime(SkEventSinkID sinkID, SkMSec time)
- {
- SkEvent::PostTime(this, sinkID, time);
- }
-
- ///////////////////////////////////////////////
- /** Porting layer must call these functions **/
- ///////////////////////////////////////////////
-
- /** Global initialization function for the SkEvent system. Should be called exactly
- once before any other event method is called, and should be called after the
- call to SkGraphics::Init().
- */
- static void Init();
- /** Global cleanup function for the SkEvent system. Should be called exactly once after
- all event methods have been called, and should be called before calling SkGraphics::Term().
- */
- static void Term();
-
- /** Call this to process one event from the queue. If it returns true, there are more events
- to process.
- */
- static bool ProcessEvent();
- /** Call this whenever the requested timer has expired (requested by a call to SetQueueTimer).
- It will post any delayed events whose time as "expired" onto the event queue.
- It may also call SignalQueueTimer() and SignalNonEmptyQueue().
- */
- static void ServiceQueueTimer();
-
- ////////////////////////////////////////////////////
- /** Porting layer must implement these functions **/
- ////////////////////////////////////////////////////
-
- /** Called whenever an SkEvent is posted to an empty queue, so that the OS
- can be told to later call Dequeue().
- */
- static void SignalNonEmptyQueue();
- /** Called whenever the delay until the next delayed event changes. If zero is
- passed, then there are no more queued delay events.
- */
- static void SignalQueueTimer(SkMSec delay);
-
-#ifndef SK_USE_WXWIDGETS
-#ifdef SK_BUILD_FOR_WIN
- static bool WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
-#elif defined(SK_BUILD_FOR_UNIXx)
- static uint32_t HandleTimer(uint32_t, void*);
- static bool WndProc(Display*, Window, XEvent&);
-#endif
-#else
- // Don't know yet what this will be
- //static bool CustomEvent();
-#endif
-
-private:
- SkMetaData fMeta;
- mutable char* fType; // may be characters with low bit set to know that it is not a pointer
- uint32_t f32;
- SkDEBUGCODE(bool fDebugTrace;)
-
- // these are for our implementation of the event queue
- SkEventSinkID fTargetID;
- SkMSec fTime;
- SkEvent* fNextEvent; // either in the delay or normal event queue
- void initialize(const char* type, size_t typeLen);
-
- static bool Enqueue(SkEvent* evt);
- static SkMSec EnqueueTime(SkEvent* evt, SkMSec time);
- static SkEvent* Dequeue(SkEventSinkID* targetID);
- static bool QHasEvents();
-};
-
-#endif
-
diff --git a/skia/include/SkEventSink.h b/skia/include/SkEventSink.h
deleted file mode 100644
index 27a6743..0000000
--- a/skia/include/SkEventSink.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkEventSink_DEFINED
-#define SkEventSink_DEFINED
-
-#include "SkRefCnt.h"
-#include "SkEvent.h"
-
-struct SkTagList;
-
-/** \class SkEventSink
-
- SkEventSink is the base class for all objects that receive SkEvents.
-*/
-class SkEventSink : public SkRefCnt {
-public:
- SkEventSink();
- virtual ~SkEventSink();
-
- /** Returns this eventsink's unique ID. Use this to post SkEvents to
- this eventsink.
- */
- SkEventSinkID getSinkID() const { return fID; }
-
- /** Call this to pass an event to this object for processing. Returns true if the
- event was handled.
- */
- bool doEvent(const SkEvent&);
- /** Returns true if the sink (or one of its subclasses) understands the event as a query.
- If so, the sink may modify the event to communicate its "answer".
- */
- bool doQuery(SkEvent* query);
-
- /** Add sinkID to the list of listeners, to receive events from calls to sendToListeners()
- and postToListeners(). If sinkID already exists in the listener list, no change is made.
- */
- void addListenerID(SkEventSinkID sinkID);
- /** Copy listeners from one event sink to another, typically from parent to child.
- @param from the event sink to copy the listeners from
- */
- void copyListeners(const SkEventSink& from);
- /** Remove sinkID from the list of listeners. If sinkID does not appear in the list,
- no change is made.
- */
- void removeListenerID(SkEventSinkID);
- /** Returns true if there are 1 or more listeners attached to this eventsink
- */
- bool hasListeners() const;
- /** Posts a copy of evt to each of the eventsinks in the lisener list.
- */
- void postToListeners(const SkEvent& evt, SkMSec delay = 0);
-
- enum EventResult {
- kHandled_EventResult, //!< the eventsink returned true from its doEvent method
- kNotHandled_EventResult, //!< the eventsink returned false from its doEvent method
- kSinkNotFound_EventResult //!< no matching eventsink was found for the event's getSink().
- };
- /** DoEvent handles searching for an eventsink object that matches the targetID.
- If one is found, it calls the sink's doEvent method, returning
- either kHandled_EventResult or kNotHandled_EventResult. If no matching
- eventsink is found, kSinkNotFound_EventResult is returned.
- */
- static EventResult DoEvent(const SkEvent&, SkEventSinkID targetID);
-
- /** Returns the matching eventsink, or null if not found
- */
- static SkEventSink* FindSink(SkEventSinkID);
-
-protected:
- /** Override this to handle events in your subclass. Be sure to call the inherited version
- for events that you don't handle.
- */
- virtual bool onEvent(const SkEvent&);
- virtual bool onQuery(SkEvent*);
-
- SkTagList* findTagList(U8CPU tag) const;
- void addTagList(SkTagList*);
- void removeTagList(U8CPU tag);
-
-private:
- SkEventSinkID fID;
- SkTagList* fTagHead;
-
- // for our private link-list
- SkEventSink* fNextSink;
-};
-
-#endif
-
diff --git a/skia/include/SkFlattenable.h b/skia/include/SkFlattenable.h
deleted file mode 100644
index d23e20f..0000000
--- a/skia/include/SkFlattenable.h
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkFlattenable_DEFINED
-#define SkFlattenable_DEFINED
-
-#include "SkRefCnt.h"
-#include "SkBitmap.h"
-#include "SkReader32.h"
-#include "SkTDArray.h"
-#include "SkWriter32.h"
-
-class SkFlattenableReadBuffer;
-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.
- */
-class SkFlattenable : public SkRefCnt {
-public:
- 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;
- /** Override this to write data specific to your subclass into the buffer,
- being sure to call your super-class' version first. This data will later
- be passed to your Factory function, returned by getFactory().
- */
- virtual void flatten(SkFlattenableWriteBuffer&);
-
- static Factory NameToFactory(const char name[]);
- static const char* FactoryToName(Factory);
- static void Register(const char name[], Factory);
-
- class Registrar {
- public:
- Registrar(const char name[], Factory factory) {
- SkFlattenable::Register(name, factory);
- }
- };
-
-protected:
- SkFlattenable(SkFlattenableReadBuffer&) {}
-};
-
-///////////////////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////////////////
-
-class SkTypeface;
-
-class SkFlattenableReadBuffer : public SkReader32 {
-public:
- SkFlattenableReadBuffer();
- explicit SkFlattenableReadBuffer(const void* data);
- SkFlattenableReadBuffer(const void* data, size_t size);
-
- void setRefCntArray(SkRefCnt* array[], int count) {
- fRCArray = array;
- fRCCount = count;
- }
-
- void setTypefaceArray(SkTypeface* array[], int count) {
- fTFArray = array;
- fTFCount = count;
- }
-
- void setFactoryPlayback(SkFlattenable::Factory array[], int count) {
- fFactoryArray = array;
- fFactoryCount = count;
- }
-
- SkTypeface* readTypeface();
- SkRefCnt* readRefCnt();
- void* readFunctionPtr();
- SkFlattenable* readFlattenable();
-
-private:
- SkRefCnt** fRCArray;
- int fRCCount;
-
- SkTypeface** fTFArray;
- int fTFCount;
-
- SkFlattenable::Factory* fFactoryArray;
- int fFactoryCount;
-
- typedef SkReader32 INHERITED;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-#include "SkPtrRecorder.h"
-
-class SkRefCntRecorder : public SkPtrRecorder {
-public:
- virtual ~SkRefCntRecorder();
-
- /** Add a refcnt object to the set and ref it if not already present,
- or if it is already present, do nothing. Either way, returns 0 if obj
- is null, or a base-1 index if obj is not null.
- */
- uint32_t record(SkRefCnt* ref) {
- return this->recordPtr(ref);
- }
-
- // This does not change the owner counts on the objects
- void get(SkRefCnt* array[]) const {
- this->getPtrs((void**)array);
- }
-
-protected:
- // overrides
- virtual void incPtr(void*);
- virtual void decPtr(void*);
-
-private:
- typedef SkPtrRecorder INHERITED;
-};
-
-class SkFactoryRecorder : public SkPtrRecorder {
-public:
- /** Add a factory to the set. If it is null return 0, otherwise return a
- base-1 index for the factory.
- */
- uint32_t record(SkFlattenable::Factory fact) {
- return this->recordPtr((void*)fact);
- }
-
- void get(SkFlattenable::Factory array[]) const {
- this->getPtrs((void**)array);
- }
-
-private:
- typedef SkPtrRecorder INHERITED;
-};
-
-class SkFlattenableWriteBuffer : public SkWriter32 {
-public:
- SkFlattenableWriteBuffer(size_t minSize);
- virtual ~SkFlattenableWriteBuffer();
-
- void writeTypeface(SkTypeface*);
- void writeRefCnt(SkRefCnt*);
- void writeFunctionPtr(void*);
- void writeFlattenable(SkFlattenable* flattenable);
-
- SkRefCntRecorder* getTypefaceRecorder() const { return fTFRecorder; }
- SkRefCntRecorder* setTypefaceRecorder(SkRefCntRecorder*);
-
- SkRefCntRecorder* getRefCntRecorder() const { return fRCRecorder; }
- SkRefCntRecorder* setRefCntRecorder(SkRefCntRecorder*);
-
- SkFactoryRecorder* getFactoryRecorder() const { return fFactoryRecorder; }
- SkFactoryRecorder* setFactoryRecorder(SkFactoryRecorder*);
-
- enum Flags {
- kCrossProcess_Flag = 0x01
- };
- Flags getFlags() const { return fFlags; }
- void setFlags(Flags flags) { fFlags = flags; }
-
- bool isCrossProcess() const { return (fFlags & kCrossProcess_Flag) != 0; }
-
- bool persistBitmapPixels() const {
- return (fFlags & kCrossProcess_Flag) != 0;
- }
-
- bool persistTypeface() const { return (fFlags & kCrossProcess_Flag) != 0; }
-
-private:
- Flags fFlags;
- SkRefCntRecorder* fTFRecorder;
- SkRefCntRecorder* fRCRecorder;
- SkFactoryRecorder* fFactoryRecorder;
-
- typedef SkWriter32 INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkFlipPixelRef.h b/skia/include/SkFlipPixelRef.h
deleted file mode 100644
index 3b4e97a..0000000
--- a/skia/include/SkFlipPixelRef.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkFlipPixelRef_DEFINED
-#define SkFlipPixelRef_DEFINED
-
-#include "SkBitmap.h"
-#include "SkPageFlipper.h"
-#include "SkPixelRef.h"
-#include "SkThread.h"
-
-class SkRegion;
-
-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(); }
-
- void inval() { fFlipper.inval(); }
- void inval(const SkIRect& rect) { fFlipper.inval(rect); }
- void inval(const SkRegion& rgn) { fFlipper.inval(rgn); }
- void inval(const SkRect& r, bool doAA) { fFlipper.inval(r, doAA); }
-
- const SkRegion& beginUpdate(SkBitmap* device);
- void endUpdate();
-
-private:
- void getFrontBack(const void** front, void** back) const {
- if (front) {
- *front = fPage0;
- }
- if (back) {
- *back = fPage1;
- }
- }
-
- void swapPages();
-
- // Helper to copy pixels from srcAddr to the dst bitmap, clipped to clip.
- // srcAddr points to memory with the same config as dst.
- static void CopyBitsFromAddr(const SkBitmap& dst, const SkRegion& clip,
- const void* srcAddr);
-
- // serialization
-
-public:
- virtual Factory getFactory() const { return Create; }
- virtual void flatten(SkFlattenableWriteBuffer&) const;
- static SkPixelRef* Create(SkFlattenableReadBuffer& buffer);
-
-protected:
- virtual void* onLockPixels(SkColorTable**);
- virtual void onUnlockPixels();
-
- SkFlipPixelRef(SkFlattenableReadBuffer&);
-
-private:
- SkMutex fMutex;
- SkPageFlipper fFlipper;
-
- void* fStorage;
- void* fPage0; // points into fStorage;
- void* fPage1; // points into fStorage;
- size_t fSize; // size of 1 page. fStorage holds 2 pages
- SkBitmap::Config fConfig;
-
- typedef SkPixelRef INHERITED;
-};
-
-class SkAutoFlipUpdate : SkNoncopyable {
-public:
- SkAutoFlipUpdate(SkFlipPixelRef* ref) : fRef(ref) {
- fDirty = &ref->beginUpdate(&fBitmap);
- }
- ~SkAutoFlipUpdate() {
- if (fRef) {
- 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) {
- fRef->endUpdate();
- fRef = NULL;
- }
- }
-
-private:
- SkFlipPixelRef* fRef;
- SkBitmap fBitmap;
- const SkRegion* fDirty;
-};
-
-#endif
diff --git a/skia/include/SkFontCodec.h b/skia/include/SkFontCodec.h
deleted file mode 100644
index 09725dc..0000000
--- a/skia/include/SkFontCodec.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkFontCodec_DEFINED
-#define SkFontCodec_DEFINED
-
-#include "SkSFNT.h"
-
-class SkFontCodec {
-public:
- static void Compress(SkSFNT& font, const char fileName[]);
-
- /* Format is [count] + [instruction, bitcount] * count
- Allocated with sk_malloc()
- */
- static U8* BuildInstrHuffmanTable(SkSFNT&);
- static U8* BuildOutlineHuffmanTable(SkSFNT& font);
-
- SkDEBUGCODE(static void UnitTest();)
-};
-
-#endif
-
diff --git a/skia/include/SkFontHost.h b/skia/include/SkFontHost.h
deleted file mode 100644
index d140dec..0000000
--- a/skia/include/SkFontHost.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkFontHost_DEFINED
-#define SkFontHost_DEFINED
-
-#include "SkScalerContext.h"
-#include "SkTypeface.h"
-
-class SkDescriptor;
-class SkStream;
-class SkWStream;
-
-typedef uint32_t SkFontTableTag;
-typedef uint32_t SkFontID;
-
-/** \class SkFontHost
-
- This class is ported to each environment. It is responsible for bridging
- the gap between the (sort of) abstract class SkTypeface and the
- platform-specific implementation that provides access to font files.
-
- One basic task is for each create (subclass of) SkTypeface, the FontHost is
- resonsible for assigning a uniqueID. The ID should be unique for the
- underlying font file/data, not unique per typeface instance. Thus it is
- possible/common to request a typeface for the same font more than once
- (e.g. asking for the same font by name several times). The FontHost may
- return seperate typeface instances in that case, or it may choose to use a
- cache and return the same instance (but calling typeface->ref(), since the
- caller is always responsible for calling unref() on each instance that is
- returned). Either way, the fontID for those instance(s) will be the same.
- In addition, the fontID should never be set to 0. That value is used as a
- sentinel to indicate no-font-id.
-
- The major aspects are:
- 1) Given either a name/style, return a subclass of SkTypeface that
- references the closest matching font available on the host system.
- 2) Given the data for a font (either in a stream or a file name), return
- a typeface that allows access to that data.
- 3) Each typeface instance carries a 32bit ID for its corresponding font.
- SkFontHost turns that ID into a stream to access the font's data.
- 4) Given a font ID, return a subclass of SkScalerContext, which connects a
- font scaler (e.g. freetype or other) to the font's data.
- 5) Utilites to manage the font cache (budgeting) and gamma correction
-*/
-class SkFontHost {
-public:
- /** Return the closest matching typeface given either an existing family
- (specified by a typeface in that family) or by a familyName, and a
- requested style.
- 1) If familyFace is null, use famillyName.
- 2) If famillyName is null, use familyFace.
- 3) If both are null, return the default font that best matches style
- */
- static SkTypeface* FindTypeface(const SkTypeface* familyFace,
- const char famillyName[],
- SkTypeface::Style style);
-
- /** Return the typeface associated with the uniqueID, or null if that ID
- does not match any faces.
- */
- static SkTypeface* ResolveTypeface(SkFontID uniqueID);
-
- /** Return a new stream to read the font data, or null if the uniqueID does
- not match an existing typeface
- */
- static SkStream* OpenStream(SkFontID uniqueID);
- static void CloseStream(SkFontID uniqueID, SkStream*);
-
- /** Return a new typeface given the data buffer (owned by the caller).
- If the data does not represent a valid font, return null.
- */
- static SkTypeface* CreateTypeface(SkStream*);
-
- ///////////////////////////////////////////////////////////////////////////
-
- /** Return the number of tables in the font
- */
- static int CountTables(SkFontID);
-
- /** 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.
- */
- static int GetTableTags(SkFontID, SkFontTableTag[]);
-
- /** Given a table tag, return the size of its contents, or 0 if not present
- */
- static size_t GetTableSize(SkFontID, SkFontTableTag);
-
- /** 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
- copy should start from.
- @param length The number of bytes, starting at offset, of table data
- to copy.
- @param data storage address where the table contents are copied to
- @return the number of bytes actually copied into data. If offset+length
- exceeds the table's size, then only the bytes up to the table's
- size are actually copied, and this is the value returned. If
- offset > the table's size, or tag is not a valid table,
- then 0 is returned.
- */
- static size_t GetTableData(SkFontID fontID, SkFontTableTag tag,
- size_t offset, size_t length, void* data);
-
- ///////////////////////////////////////////////////////////////////////////
-
- /** Write a unique identifier to the stream, so that the same typeface can
- be retrieved with Deserialize().
- */
- static void Serialize(const SkTypeface*, SkWStream*);
- static SkTypeface* Deserialize(SkStream*);
-
- ///////////////////////////////////////////////////////////////////////////
-
- /** Return a subclass of SkScalarContext
- */
- static SkScalerContext* CreateScalerContext(const SkDescriptor* desc);
- /** Return a scalercontext using the "fallback" font. If there is no designated
- fallback, return null.
- */
- static SkScalerContext* CreateFallbackScalerContext(const SkScalerContext::Rec&);
-
- /** Return the number of bytes (approx) that should be purged from the font
- cache. The input parameter is the cache's estimate of how much as been
- allocated by the cache so far.
- To purge (basically) everything, return the input parameter.
- To purge nothing, return 0
- */
- static size_t ShouldPurgeFontCache(size_t sizeAllocatedSoFar);
-
- /** Return SkScalerContext gamma flag, or 0, based on the paint that will be
- used to draw something with antialiasing.
- */
- static int ComputeGammaFlag(const SkPaint& paint);
-
- /** Return NULL or a pointer to 256 bytes for the black (table[0]) and
- white (table[1]) gamma tables.
- */
- static void GetGammaTables(const uint8_t* tables[2]);
-};
-
-#endif
-
diff --git a/skia/include/SkGLCanvas.h b/skia/include/SkGLCanvas.h
deleted file mode 100644
index 40fc52d..0000000
--- a/skia/include/SkGLCanvas.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkGLCanvas_DEFINED
-#define SkGLCanvas_DEFINED
-
-#include "SkCanvas.h"
-
-#ifdef SK_BUILD_FOR_MAC
- #include <OpenGL/gl.h>
-#elif defined(ANDROID)
- #include <GLES/gl.h>
-#endif
-
-class SkGLDevice;
-class SkGLClipIter;
-
-class SkGLCanvas : public SkCanvas {
-public:
- // notice, we do NOT allow the SkCanvas(bitmap) constructor, since that
- // does not create a SkGLDevice, which we require
- SkGLCanvas();
- virtual ~SkGLCanvas();
-
- // overrides from SkCanvas
-
- virtual bool getViewport(SkIPoint*) const;
- virtual bool setViewport(int width, int height);
-
- virtual SkDevice* createDevice(SkBitmap::Config, int width, int height,
- bool isOpaque, bool isForLayer);
-
- // settings for the global texture cache
-
- static size_t GetTextureCacheMaxCount();
- static void SetTextureCacheMaxCount(size_t count);
-
- static size_t GetTextureCacheMaxSize();
- static void SetTextureCacheMaxSize(size_t size);
-
- /** Call glDeleteTextures for all textures (including those for text)
- This should be called while the gl-context is still valid. Its purpose
- is to free up gl resources. Note that if a bitmap or text is drawn after
- this call, new caches will be created.
- */
- static void DeleteAllTextures();
-
- /** Forget all textures without calling delete (including those for text).
- This should be called if the gl-context has changed, and the texture
- IDs that have been cached are no longer valid.
- */
- static void AbandonAllTextures();
-
-private:
- SkIPoint fViewportSize;
-
- // need to disallow this guy
- virtual SkDevice* setBitmapDevice(const SkBitmap& bitmap) {
- sk_throw();
- return NULL;
- }
-
- typedef SkCanvas INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkGlobals.h b/skia/include/SkGlobals.h
deleted file mode 100644
index 8e28290..0000000
--- a/skia/include/SkGlobals.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkGlobals_DEFINED
-#define SkGlobals_DEFINED
-
-#include "SkThread.h"
-
-class SkGlobals {
-public:
- class Rec {
- public:
- virtual ~Rec();
- private:
- Rec* fNext;
- uint32_t fTag;
-
- friend class SkGlobals;
- };
-
- /** Look for a matching Rec for the specified tag. If one is found, return it.
- If one is not found, if create_proc is null, return null, else
- call the proc, and if it returns a Rec, add it to the global list
- and return it.
-
- create_proc can NOT call back into SkGlobals::Find (it would deadlock)
- */
- static Rec* Find(uint32_t tag, Rec* (*create_proc)());
- /** Helper for Find, when you want to assert that the Rec is already in the list
- */
- static Rec* Get(uint32_t tag)
- {
- Rec* rec = SkGlobals::Find(tag, NULL);
- SkASSERT(rec);
- return rec;
- }
-
- // used by porting layer
- struct BootStrap {
- SkMutex fMutex;
- Rec* fHead;
- };
-
-private:
- static void Init();
- static void Term();
- friend class SkGraphics;
-
- // This last function is implemented in the porting layer
- static BootStrap& GetBootStrap();
-};
-
-#endif
-
diff --git a/skia/include/SkGradientShader.h b/skia/include/SkGradientShader.h
deleted file mode 100644
index 9a8696c..0000000
--- a/skia/include/SkGradientShader.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkGradientShader_DEFINED
-#define SkGradientShader_DEFINED
-
-#include "SkShader.h"
-
-class SkUnitMapper;
-
-/** \class SkGradientShader
-
- SkGradientShader hosts factories for creating subclasses of SkShader that
- render linear and radial gradients.
-*/
-class SkGradientShader {
-public:
- /** Returns a shader that generates a linear gradient between the two
- specified points.
- <p />
- CreateLinear returns a shader with a reference count of 1.
- The caller should decrement the shader's reference count when done with the shader.
- It is an error for count to be < 2.
- @param pts The start and end points for the gradient.
- @param colors The array[count] of colors, to be distributed between the two points
- @param pos May be NULL. array[count] of SkScalars, or NULL, of the relative position of
- each corresponding color in the colors array. If this is NULL,
- 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 mode The tiling mode
- @param mapper May be NULL. Callback to modify the spread of the colors.
- */
- static SkShader* CreateLinear( const SkPoint pts[2],
- const SkColor colors[], const SkScalar pos[], int count,
- SkShader::TileMode mode,
- SkUnitMapper* mapper = NULL);
-
- /** Returns a shader that generates a radial gradient given the center and radius.
- <p />
- CreateRadial returns a shader with a reference count of 1.
- The caller should decrement the shader's reference count when done with the shader.
- It is an error for colorCount to be < 2, or for radius to be <= 0.
- @param center The center of the circle for this gradient
- @param radius Must be positive. The radius of the circle for this gradient
- @param colors The array[count] of colors, to be distributed between the center and edge of the circle
- @param pos May be NULL. The array[count] of SkScalars, or NULL, of the relative position of
- each corresponding color in the colors array. If this is NULL,
- the the colors are distributed evenly between the center and edge of the circle.
- 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 mode The tiling mode
- @param mapper May be NULL. Callback to modify the spread of the colors.
- */
- static SkShader* CreateRadial( const SkPoint& center, SkScalar radius,
- const SkColor colors[], const SkScalar pos[], int count,
- SkShader::TileMode mode,
- SkUnitMapper* mapper = NULL);
-
- /** Returns a shader that generates a sweep gradient given a center.
- <p />
- CreateRadial returns a shader with a reference count of 1.
- The caller should decrement the shader's reference count when done with the shader.
- It is an error for colorCount to be < 2.
- @param cx The X coordinate of the center of the sweep
- @param cx The Y coordinate of the center of the sweep
- @param colors The array[count] of colors, to be distributed around the center.
- @param pos May be NULL. The array[count] of SkScalars, or NULL, of the relative position of
- each corresponding color in the colors array. If this is NULL,
- the the colors are distributed evenly between the center and edge of the circle.
- 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 mapper May be NULL. Callback to modify the spread of the colors.
- */
- static SkShader* CreateSweep(SkScalar cx, SkScalar cy,
- const SkColor colors[], const SkScalar pos[],
- int count, SkUnitMapper* mapper = NULL);
-};
-
-#endif
-
diff --git a/skia/include/SkGraphics.h b/skia/include/SkGraphics.h
deleted file mode 100644
index cb06128..0000000
--- a/skia/include/SkGraphics.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkGraphics_DEFINED
-#define SkGraphics_DEFINED
-
-#include "SkTypes.h"
-
-class SkGraphics {
-public:
- static void Init(bool runUnitTests);
- static void Term();
-
- /** Return the (approximate) number of bytes used by the font cache.
- */
- static size_t GetFontCacheUsed();
-
- /** Attempt to purge the font cache until <= the specified amount remains
- in the cache. Specifying 0 will attempt to purge the entire cache.
- Returns true if some amount was purged from the font cache.
- */
- static bool SetFontCacheUsed(size_t usageInBytes);
-
-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
- with the C++ runtime to call SkGraphics::FreeCaches()
- */
- static void InstallNewHandler();
-};
-
-#endif
-
diff --git a/skia/include/SkImageDecoder.h b/skia/include/SkImageDecoder.h
deleted file mode 100644
index e6389e4..0000000
--- a/skia/include/SkImageDecoder.h
+++ /dev/null
@@ -1,296 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkImageDecoder_DEFINED
-#define SkImageDecoder_DEFINED
-
-#include "SkBitmap.h"
-#include "SkRefCnt.h"
-
-class SkStream;
-
-/** \class SkImageDecoder
-
- Base class for decoding compressed images into a SkBitmap
-*/
-class SkImageDecoder {
-public:
- virtual ~SkImageDecoder();
-
- enum Format {
- kUnknown_Format,
- kBMP_Format,
- kGIF_Format,
- kICO_Format,
- kJPEG_Format,
- kPNG_Format,
- kWBMP_Format,
-
- kLastKnownFormat = kWBMP_Format
- };
-
- /** Return the compressed data's format (see Format enum)
- */
- virtual Format getFormat() const;
-
- /** Returns true if the decoder should try to dither the resulting image.
- The default setting is true.
- */
- bool getDitherImage() const { return fDitherImage; }
-
- /** Set to true if the the decoder should try to dither the resulting image.
- The default setting is true.
- */
- void setDitherImage(bool dither) { fDitherImage = dither; }
-
- /** \class Peeker
-
- Base class for optional callbacks to retrieve meta/chunk data out of
- an image as it is being decoded.
- */
- class Peeker : public SkRefCnt {
- public:
- /** Return true to continue decoding, or false to indicate an error, which
- will cause the decoder to not return the image.
- */
- virtual bool peek(const char tag[], const void* data, size_t length) = 0;
- };
-
- Peeker* getPeeker() const { return fPeeker; }
- Peeker* setPeeker(Peeker*);
-
- /** \class Peeker
-
- Base class for optional callbacks to retrieve meta/chunk data out of
- an image as it is being decoded.
- */
- class Chooser : public SkRefCnt {
- public:
- virtual void begin(int count) {}
- virtual void inspect(int index, SkBitmap::Config config, int width, int height) {}
- /** Return the index of the subimage you want, or -1 to choose none of them.
- */
- virtual int choose() = 0;
- };
-
- Chooser* getChooser() const { return fChooser; }
- Chooser* setChooser(Chooser*);
-
- SkBitmap::Allocator* getAllocator() const { return fAllocator; }
- SkBitmap::Allocator* setAllocator(SkBitmap::Allocator*);
-
- // sample-size, if set to > 1, tells the decoder to return a smaller than
- // original bitmap, sampling 1 pixel for every size pixels. e.g. if sample
- // size is set to 3, then the returned bitmap will be 1/3 as wide and high,
- // and will contain 1/9 as many pixels as the original.
- // Note: this is a hint, and the codec may choose to ignore this, or only
- // approximate the sample size.
- int getSampleSize() const { return fSampleSize; }
- void setSampleSize(int size);
-
- /** Reset the sampleSize to its default of 1
- */
- void resetSampleSize() { this->setSampleSize(1); }
-
- /** Decoding is synchronous, but for long decodes, a different thread can
- call this method safely. This sets a state that the decoders will
- periodically check, and if they see it changed to cancel, they will
- cancel. This will result in decode() returning false. However, there is
- no guarantee that the decoder will see the state change in time, so
- it is possible that cancelDecode() will be called, but will be ignored
- and decode() will return true (assuming no other problems were
- encountered).
-
- This state is automatically reset at the beginning of decode().
- */
- void cancelDecode() {
- // now the subclass must query shouldCancelDecode() to be informed
- // of the request
- fShouldCancelDecode = true;
- }
-
- /** Passed to the decode method. If kDecodeBounds_Mode is passed, then
- only the bitmap's width/height/config need be set. If kDecodePixels_Mode
- is passed, then the bitmap must have pixels or a pixelRef.
- */
- enum Mode {
- kDecodeBounds_Mode, //!< only return width/height/config in bitmap
- kDecodePixels_Mode //!< return entire bitmap (including pixels)
- };
-
- /** Given a stream, decode it into the specified bitmap.
- If the decoder can decompress the image, it calls bitmap.setConfig(),
- and then if the Mode is kDecodePixels_Mode, call allocPixelRef(),
- which will allocated a pixelRef. To access the pixel memory, the codec
- needs to call lockPixels/unlockPixels on the
- bitmap. It can then set the pixels with the decompressed image.
- If the image cannot be decompressed, return false.
-
- note: document use of Allocator, Peeker and Chooser
- */
- bool decode(SkStream*, SkBitmap* bitmap, SkBitmap::Config pref, Mode);
-
- /** Given a stream, this will try to find an appropriate decoder object.
- If none is found, the method returns NULL.
- */
- static SkImageDecoder* Factory(SkStream*);
-
- /** Decode the image stored in the specified file, and store the result
- in bitmap. Return true for success or false on failure.
-
- If pref is kNo_Config, then the decoder is free to choose the most natural
- config given the image data. If pref something other than kNo_Config,
- the decoder will attempt to decode the image into that format, unless
- there is a conflict (e.g. the image has per-pixel alpha and the bitmap's
- config does not support that), in which case the decoder will choose a
- closest match configuration.
- */
- static bool DecodeFile(const char file[], SkBitmap* bitmap,
- SkBitmap::Config prefConfig, Mode);
- static bool DecodeFile(const char file[], SkBitmap* bitmap)
- {
- return DecodeFile(file, bitmap, SkBitmap::kNo_Config, kDecodePixels_Mode);
- }
- /** Decode the image stored in the specified memory buffer, and store the
- result in bitmap. Return true for success or false on failure.
-
- If pref is kNo_Config, then the decoder is free to choose the most natural
- config given the image data. If pref something other than kNo_Config,
- the decoder will attempt to decode the image into that format, unless
- there is a conflict (e.g. the image has per-pixel alpha and the bitmap's
- config does not support that), in which case the decoder will choose a
- closest match configuration.
- */
- static bool DecodeMemory(const void* buffer, size_t size, SkBitmap* bitmap,
- SkBitmap::Config prefConfig, Mode);
- static bool DecodeMemory(const void* buffer, size_t size, SkBitmap* bitmap)
- {
- return DecodeMemory(buffer, size, bitmap, SkBitmap::kNo_Config,
- kDecodePixels_Mode);
- }
- /** Decode the image stored in the specified SkStream, and store the result
- in bitmap. Return true for success or false on failure.
-
- If pref is kNo_Config, then the decoder is free to choose the most
- natural config given the image data. If pref something other than
- kNo_Config, the decoder will attempt to decode the image into that
- format, unless there is a conflict (e.g. the image has per-pixel alpha
- and the bitmap's config does not support that), in which case the
- decoder will choose a closest match configuration.
- */
- static bool DecodeStream(SkStream* stream, SkBitmap* bitmap,
- SkBitmap::Config prefConfig, Mode);
- static bool DecodeStream(SkStream* stream, SkBitmap* bitmap)
- {
- return DecodeStream(stream, bitmap, SkBitmap::kNo_Config,
- kDecodePixels_Mode);
- }
-
- /* Given a format, return true if there is a currently installed decoder
- for that format. Since a given build may not include all codecs (to save
- code-size), this may return false.
- */
- static bool SupportsFormat(Format);
-
- /** Return the default config for the running device.
- Currently this used as a suggestion to image decoders that need to guess
- what config they should decode into.
- Default is kNo_Config, but this can be changed with SetDeviceConfig()
- */
- static SkBitmap::Config GetDeviceConfig();
- /** Set the default config for the running device.
- Currently this used as a suggestion to image decoders that need to guess
- what config they should decode into.
- Default is kNo_Config.
- This can be queried with GetDeviceConfig()
- */
- static void SetDeviceConfig(SkBitmap::Config);
-
- /** @cond UNIT_TEST */
- SkDEBUGCODE(static void UnitTest();)
- /** @endcond */
-
-protected:
- // must be overridden in subclasses. This guy is called by decode(...)
- virtual bool onDecode(SkStream*, SkBitmap* bitmap, SkBitmap::Config pref,
- Mode) = 0;
-
- /** Can be queried from within onDecode, to see if the user (possibly in
- a different thread) has requested the decode to cancel. If this returns
- true, your onDecode() should stop and return false.
- Each subclass needs to decide how often it can query this, to balance
- responsiveness with performance.
-
- Calling this outside of onDecode() may return undefined values.
- */
-
-public:
- bool shouldCancelDecode() const { return fShouldCancelDecode; }
-
-protected:
- SkImageDecoder();
-
- // helper function for decoders to handle the (common) case where there is only
- // once choice available in the image file.
- bool chooseFromOneChoice(SkBitmap::Config config, int width, int height) const;
-
- /* Helper for subclasses. Call this to allocate the pixel memory given the bitmap's
- width/height/rowbytes/config. Returns true on success. This method handles checking
- for an optional Allocator.
- */
- bool allocPixelRef(SkBitmap*, SkColorTable*) const;
-
-private:
- Peeker* fPeeker;
- Chooser* fChooser;
- SkBitmap::Allocator* fAllocator;
- int fSampleSize;
- bool fDitherImage;
- mutable bool fShouldCancelDecode;
-
- // illegal
- SkImageDecoder(const SkImageDecoder&);
- SkImageDecoder& operator=(const SkImageDecoder&);
-};
-
-#ifdef SK_SUPPORT_IMAGE_ENCODE
-
-class SkWStream;
-
-class SkImageEncoder {
-public:
- enum Type {
- kJPEG_Type,
- kPNG_Type
- };
- static SkImageEncoder* Create(Type);
-
- virtual ~SkImageEncoder();
-
- /* Quality ranges from 0..100 */
-
- bool encodeFile(const char file[], const SkBitmap&, int quality = 80);
- bool encodeStream(SkWStream*, const SkBitmap&, int quality = 80);
-
-protected:
- virtual bool onEncode(SkWStream*, const SkBitmap&, int quality) = 0;
-};
-
-#endif /* SK_SUPPORT_IMAGE_ENCODE */
-
-///////////////////////////////////////////////////////////////////////
-
-#endif
diff --git a/skia/include/SkImageRef.h b/skia/include/SkImageRef.h
deleted file mode 100644
index 1e1ed59..0000000
--- a/skia/include/SkImageRef.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkImageRef_DEFINED
-#define SkImageRef_DEFINED
-
-#include "SkPixelRef.h"
-#include "SkBitmap.h"
-#include "SkImageDecoder.h"
-#include "SkString.h"
-
-class SkImageRefPool;
-class SkStream;
-
-// define this to enable dumping whenever we add/remove/purge an imageref
-//#define DUMP_IMAGEREF_LIFECYCLE
-
-class SkImageRef : public SkPixelRef {
-public:
- /** Create a new imageref from a stream. NOTE: the stream is not copied, but
- 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. Ownership
- of this stream is transferred to the imageref, and
- therefore the stream's ownercount must be 1.
- @param config The preferred config of the decoded bitmap.
- @param sampleSize Requested sampleSize for decoding. Defaults to 1.
- */
- SkImageRef(SkStream*, SkBitmap::Config config, int sampleSize = 1);
- virtual ~SkImageRef();
-
- const char* getName() const { return fName.c_str(); }
- void setName(const char name[]) { fName.set(name); }
-
- /** 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);
-
- // overrides
- virtual void flatten(SkFlattenableWriteBuffer&) const;
-
-protected:
- /** Override if you want to install a custom allocator.
- When this is called we will have already acquired the mutex!
- */
- virtual bool onDecode(SkImageDecoder* codec, SkStream*, SkBitmap*,
- SkBitmap::Config, SkImageDecoder::Mode);
-
- /* Overrides from SkPixelRef
- When these are called, we will have already acquired the mutex!
- */
-
- virtual void* onLockPixels(SkColorTable**);
- // override this in your subclass to clean up when we're unlocking pixels
- virtual void onUnlockPixels();
-
- SkImageRef(SkFlattenableReadBuffer&);
-
- SkBitmap fBitmap;
-
-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)
- bool prepareBitmap(SkImageDecoder::Mode);
-
- SkStream* fStream;
- SkBitmap::Config fConfig;
- int fSampleSize;
- bool fErrorInDecoding;
-
- SkString fName; // for debugging
-
- friend class SkImageRefPool;
-
- SkImageRef* fPrev, *fNext;
- size_t ramUsed() const;
-
- typedef SkPixelRef INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkImageRef_GlobalPool.h b/skia/include/SkImageRef_GlobalPool.h
deleted file mode 100644
index a9d4dce..0000000
--- a/skia/include/SkImageRef_GlobalPool.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkImageRef_GlobalPool_DEFINED
-#define SkImageRef_GlobalPool_DEFINED
-
-#include "SkImageRef.h"
-
-class SkImageRef_GlobalPool : public SkImageRef {
-public:
- // if pool is null, use the global pool
- SkImageRef_GlobalPool(SkStream*, SkBitmap::Config, int sampleSize = 1);
- virtual ~SkImageRef_GlobalPool();
-
- // overrides
- virtual Factory getFactory() const {
- return Create;
- }
- static SkPixelRef* Create(SkFlattenableReadBuffer&);
-
- // API to control the global pool
-
- /** 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 <=
- to the requested amount. In addition, because of the
- chunky nature of the cache, the resulting usage may be < the requested
- 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:
- typedef SkImageRef INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkImageView.h b/skia/include/SkImageView.h
deleted file mode 100644
index 157abb1..0000000
--- a/skia/include/SkImageView.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkImageView_DEFINED
-#define SkImageView_DEFINED
-
-#include "SkView.h"
-#include "SkString.h"
-
-class SkAnimator;
-class SkBitmap;
-struct SkMatrix;
-
-class SkImageView : public SkView {
-public:
- SkImageView();
- virtual ~SkImageView();
-
- void getUri(SkString*) const;
- void setUri(const char []);
- void setUri(const SkString&);
-
-
- enum ScaleType {
- kMatrix_ScaleType,
- kFitXY_ScaleType,
- kFitStart_ScaleType,
- kFitCenter_ScaleType,
- kFitEnd_ScaleType
- };
- ScaleType getScaleType() const { return (ScaleType)fScaleType; }
- void setScaleType(ScaleType);
-
- bool getImageMatrix(SkMatrix*) const;
- void setImageMatrix(const SkMatrix*);
-
-protected:
- // overrides
- 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 ,,,,,
- union {
- SkAnimator* fAnim;
- SkBitmap* fBitmap;
- } fData;
- uint8_t fScaleType;
- SkBool8 fDataIsAnim; // as opposed to bitmap
- SkBool8 fUriIsValid;
-
- void onUriChange();
- bool getDataBounds(SkRect* bounds);
- bool freeData();
- bool ensureUriIsLoaded();
-
- typedef SkView INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkJS.h b/skia/include/SkJS.h
deleted file mode 100644
index fe76352..0000000
--- a/skia/include/SkJS.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#include "SkTypes.h"
-#include "SkWindow.h"
-
-extern "C" {
- typedef long JSWord;
- typedef JSWord jsword;
- typedef jsword jsval;
- typedef struct JSRuntime JSRuntime;
- typedef struct JSContext JSContext;
- typedef struct JSObject JSObject;
-}
-
-class SkString;
-
-class SkJS : public SkOSWindow {
-public:
- SkJS(void* hwnd);
- ~SkJS();
- SkBool EvaluateScript(const char* script, jsval* rVal);
- SkBool ValueToString(jsval value, SkString* string);
-#ifdef SK_DEBUG
- static void Test(void* hwnd);
-#endif
-protected:
- void InitializeDisplayables(const SkBitmap& , JSContext *, JSObject *, JSObject *);
- void DisposeDisplayables();
- JSRuntime *fRuntime;
- JSContext *fContext;
- JSObject *fGlobal;
-};
-
diff --git a/skia/include/SkKernel33MaskFilter.h b/skia/include/SkKernel33MaskFilter.h
deleted file mode 100644
index 84136e2..0000000
--- a/skia/include/SkKernel33MaskFilter.h
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkKernel33MaskFilter_DEFINED
-#define SkKernel33MaskFilter_DEFINED
-
-#include "SkMaskFilter.h"
-
-class SkKernel33ProcMaskFilter : public SkMaskFilter {
-public:
- SkKernel33ProcMaskFilter(unsigned percent256 = 256)
- : 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*);
-
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer& wb);
-
-protected:
- SkKernel33ProcMaskFilter(SkFlattenableReadBuffer& rb);
-
-private:
- int fPercent256;
-
- typedef SkMaskFilter INHERITED;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-class SkKernel33MaskFilter : public SkKernel33ProcMaskFilter {
-public:
- SkKernel33MaskFilter(const int coeff[3][3], int shift, int percent256 = 256)
- : SkKernel33ProcMaskFilter(percent256)
- {
- memcpy(fKernel, coeff, 9 * sizeof(int));
- fShift = shift;
- }
-
- // override from SkKernel33ProcMaskFilter
- virtual uint8_t computeValue(uint8_t* const* srcRows);
-
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer& wb);
- virtual Factory getFactory();
-
-private:
- int fKernel[3][3];
- int fShift;
-
- SkKernel33MaskFilter(SkFlattenableReadBuffer& rb);
- static SkFlattenable* Create(SkFlattenableReadBuffer& rb);
-
- typedef SkKernel33ProcMaskFilter INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkKey.h b/skia/include/SkKey.h
deleted file mode 100644
index 3fd5114..0000000
--- a/skia/include/SkKey.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkKey_DEFINED
-#define SkKey_DEFINED
-
-#include "SkTypes.h"
-
-enum SkKey {
- //reordering these to match android.app.KeyEvent
- kNONE_SkKey, //corresponds to android's UNKNOWN
-
- kLeftSoftKey_SkKey,
- kRightSoftKey_SkKey,
-
- kHome_SkKey, //!< the home key - added to match android
- kBack_SkKey, //!< (CLR)
- kSend_SkKey, //!< the green (talk) key
- kEnd_SkKey, //!< the red key
-
- k0_SkKey,
- k1_SkKey,
- k2_SkKey,
- k3_SkKey,
- k4_SkKey,
- k5_SkKey,
- k6_SkKey,
- k7_SkKey,
- k8_SkKey,
- k9_SkKey,
- kStar_SkKey, //!< the * key
- kHash_SkKey, //!< the # key
-
- kUp_SkKey,
- kDown_SkKey,
- kLeft_SkKey,
- kRight_SkKey,
-
- kOK_SkKey, //!< the center key
-
- kVolUp_SkKey, //!< volume up - match android
- kVolDown_SkKey, //!< volume down - same
- kPower_SkKey, //!< power button - same
- kCamera_SkKey, //!< camera - same
-
- kSkKeyCount
-};
-
-#endif
-
diff --git a/skia/include/SkLayerDrawLooper.h b/skia/include/SkLayerDrawLooper.h
deleted file mode 100644
index 670ac23..0000000
--- a/skia/include/SkLayerDrawLooper.h
+++ /dev/null
@@ -1,70 +0,0 @@
-#ifndef SkLayerDrawLooper_DEFINED
-#define SkLayerDrawLooper_DEFINED
-
-#include "SkDrawLooper.h"
-
-struct SkPoint;
-
-class SkLayerDrawLooper : public SkDrawLooper {
-public:
- SkLayerDrawLooper();
- virtual ~SkLayerDrawLooper();
-
- /** Call for each layer you want to add (from top to bottom).
- This returns a paint you can modify, but that ptr is only valid until
- the next call made to this object.
- */
- SkPaint* addLayer(SkScalar dx, SkScalar dy);
-
- /** Helper for addLayer() which passes (0, 0) for the offset parameters
- */
- SkPaint* addLayer() {
- return this->addLayer(0, 0);
- }
-
- // overrides from SkDrawLooper
- virtual void init(SkCanvas*, SkPaint*);
- virtual bool next();
- virtual void restore();
-
- // must be public for Registrar :(
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return SkNEW_ARGS(SkLayerDrawLooper, (buffer));
- }
-
-protected:
- SkLayerDrawLooper(SkFlattenableReadBuffer&);
-
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer& );
- virtual Factory getFactory() { return CreateProc; }
-
-private:
- struct Rec {
- Rec* fNext;
- SkPaint fPaint;
- SkPoint fOffset;
-
- static Rec* Reverse(Rec*);
- };
- Rec* fRecs;
- int fCount;
-
- struct Iter {
- SkPaint fSavedPaint;
- SkPaint* fPaint;
- SkCanvas* fCanvas;
- Rec* fRec;
- };
- Iter fIter;
-
- class MyRegistrar : public SkFlattenable::Registrar {
- public:
- MyRegistrar();
- };
-
- typedef SkDrawLooper INHERITED;
-};
-
-
-#endif
diff --git a/skia/include/SkLayerRasterizer.h b/skia/include/SkLayerRasterizer.h
deleted file mode 100644
index 820f6fc..0000000
--- a/skia/include/SkLayerRasterizer.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkLayerRasterizer_DEFINED
-#define SkLayerRasterizer_DEFINED
-
-#include "SkRasterizer.h"
-#include "SkDeque.h"
-#include "SkScalar.h"
-
-class SkPaint;
-
-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.
- */
- void addLayer(const SkPaint& paint, SkScalar dx, SkScalar dy);
-
- // overrides from SkFlattenable
- virtual Factory getFactory();
- virtual void flatten(SkFlattenableWriteBuffer&);
-
-protected:
- SkLayerRasterizer(SkFlattenableReadBuffer&);
-
- // override from SkRasterizer
- virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix,
- const SkIRect* clipBounds,
- SkMask* mask, SkMask::CreateMode mode);
-
-private:
- SkDeque fLayers;
-
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
-
- typedef SkRasterizer INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkMMapStream.h b/skia/include/SkMMapStream.h
deleted file mode 100644
index 600c621..0000000
--- a/skia/include/SkMMapStream.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkMMapStream_DEFINED
-#define SkMMapStream_DEFINED
-
-#include "SkStream.h"
-
-class SkMMAPStream : public SkMemoryStream {
-public:
- SkMMAPStream(const char filename[]);
- virtual ~SkMMAPStream();
-
- virtual void setMemory(const void* data, size_t length);
-private:
- int fFildes;
- void* fAddr;
- size_t fSize;
-
- void closeMMap();
-
- typedef SkMemoryStream INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkMallocPixelRef.h b/skia/include/SkMallocPixelRef.h
deleted file mode 100644
index b6a013d..0000000
--- a/skia/include/SkMallocPixelRef.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkMallocPixelRef_DEFINED
-#define SkMallocPixelRef_DEFINED
-
-#include "SkPixelRef.h"
-
-/** We explicitly use the same allocator for our pixels that SkMask does,
- so that we can freely assign memory allocated by one class to the other.
-*/
-class SkMallocPixelRef : public SkPixelRef {
-public:
- /** Allocate the specified buffer for pixels. The memory is freed when the
- last owner of this pixelref is gone.
- */
- SkMallocPixelRef(void* addr, size_t size, SkColorTable* ctable);
- virtual ~SkMallocPixelRef();
-
- //! Return the allocation size for the pixels
- size_t getSize() const { return fSize; }
-
- // overrides from SkPixelRef
- virtual void flatten(SkFlattenableWriteBuffer&) const;
- virtual Factory getFactory() const {
- return Create;
- }
- static SkPixelRef* Create(SkFlattenableReadBuffer& buffer) {
- return SkNEW_ARGS(SkMallocPixelRef, (buffer));
- }
-
-protected:
- // overrides from SkPixelRef
- virtual void* onLockPixels(SkColorTable**);
- virtual void onUnlockPixels();
-
- SkMallocPixelRef(SkFlattenableReadBuffer& buffer);
-
-private:
- void* fStorage;
- size_t fSize;
- SkColorTable* fCTable;
-
- typedef SkPixelRef INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkMask.h b/skia/include/SkMask.h
deleted file mode 100644
index 77f1f36..0000000
--- a/skia/include/SkMask.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkMask_DEFINED
-#define SkMask_DEFINED
-
-#include "SkRect.h"
-
-/** \class SkMask
- SkMask is used to describe alpha bitmaps, either 1bit, 8bit, or
- the 3-channel 3D format. These are passed to SkMaskFilter objects.
-*/
-struct SkMask {
- enum Format {
- kBW_Format, //!< 1bit per pixel mask (e.g. monochrome)
- kA8_Format, //!< 8bits per pixel mask (e.g. antialiasing)
- k3D_Format, //!< 3 8bit per pixl planes: alpha, mul, add
- kLCD_Format //!< 3 bytes/pixel: r/g/b
- };
-
- enum {
- kCountMaskFormats = kLCD_Format + 1
- };
-
- uint8_t* fImage;
- SkIRect fBounds;
- uint16_t fRowBytes;
- uint8_t fFormat; // Format
-
- /** Returns true if the mask is empty: i.e. it has an empty bounds.
- */
- bool isEmpty() const { return fBounds.isEmpty(); }
-
- /** Return the byte size of the mask, assuming only 1 plane.
- Does not account for k3D_Format. For that, use computeTotalImageSize()
- If there is an overflow of 32bits, then returns 0.
- */
- size_t computeImageSize() const;
- /** Return the byte size of the mask, taking into account
- any extra planes (e.g. k3D_Format).
- If there is an overflow of 32bits, then returns 0.
- */
- size_t computeTotalImageSize() const;
-
- /** Returns the address of the byte that holds the specified bit.
- Asserts that the mask is kBW_Format, and that x,y are in range.
- x,y are in the same coordiate space as fBounds.
- */
- uint8_t* getAddr1(int x, int y) const
- {
- SkASSERT(fFormat == kBW_Format);
- SkASSERT(fBounds.contains(x, y));
- SkASSERT(fImage != NULL);
- return fImage + ((x - fBounds.fLeft) >> 3) + (y - fBounds.fTop) * fRowBytes;
- }
- /** Returns the address of the specified byte.
- Asserts that the mask is kA8_Format, and that x,y are in range.
- x,y are in the same coordiate space as fBounds.
- */
- uint8_t* getAddr(int x, int y) const
- {
- SkASSERT(fFormat != kBW_Format);
- SkASSERT(fBounds.contains(x, y));
- SkASSERT(fImage != NULL);
- return fImage + x - fBounds.fLeft + (y - fBounds.fTop) * fRowBytes;
- }
-
- static uint8_t* AllocImage(size_t bytes);
- static void FreeImage(void* image);
-
- enum CreateMode {
- kJustComputeBounds_CreateMode, //!< compute bounds and return
- kJustRenderImage_CreateMode, //!< render into preallocate mask
- kComputeBoundsAndRenderImage_CreateMode //!< compute bounds, alloc image and render into it
- };
-};
-
-#endif
-
diff --git a/skia/include/SkMaskFilter.h b/skia/include/SkMaskFilter.h
deleted file mode 100644
index 749a73a..0000000
--- a/skia/include/SkMaskFilter.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkMaskFilter_DEFINED
-#define SkMaskFilter_DEFINED
-
-#include "SkFlattenable.h"
-#include "SkMask.h"
-
-class SkBlitter;
-class SkBounder;
-class SkMatrix;
-class SkPath;
-class SkRegion;
-
-/** \class SkMaskFilter
-
- SkMaskFilter is the base class for object that perform transformations on
- an alpha-channel mask before drawing it. A subclass of SkMaskFilter may be
- installed into a SkPaint. Once there, each time a primitive is drawn, it
- is first scan converted into a SkMask::kA8_Format mask, and handed to the
- filter, calling its filterMask() method. If this returns true, then the
- new mask is used to render into the device.
-
- Blur and emboss are implemented as subclasses of SkMaskFilter.
-*/
-class SkMaskFilter : public SkFlattenable {
-public:
- SkMaskFilter() {}
-
- /** Returns the format of the resulting mask that this subclass will return
- when its filterMask() method is called.
- */
- virtual SkMask::Format getFormat() = 0;
-
- /** Create a new mask by filter the src mask.
- If src.fImage == null, then do not allocate or create the dst image
- but do fill out the other fields in dstMask.
- If you do allocate a dst image, use SkMask::AllocImage()
- If this returns false, dst mask is ignored.
- @param dst the result of the filter. If src.fImage == null, dst should not allocate its image
- @param src the original image to be filtered.
- @param matrix the CTM
- @param margin if not null, return the buffer dx/dy need when calculating the effect. Used when
- drawing a clipped object to know how much larger to allocate the src before
- applying the filter. If returning false, ignore this parameter.
- @return true if the dst mask was correctly created.
- */
- virtual bool filterMask(SkMask* dst, const SkMask& src, const SkMatrix&, SkIPoint* margin);
-
- /** Helper method that, given a path in device space, will rasterize it into a kA8_Format mask
- and then call filterMask(). If this returns true, the specified blitter will be called
- to render that mask. Returns false if filterMask() returned false.
- This method is not exported to java.
- */
- bool filterPath(const SkPath& devPath, const SkMatrix& devMatrix,
- const SkRegion& devClip, SkBounder*, SkBlitter* blitter);
-
- virtual void flatten(SkFlattenableWriteBuffer& ) {}
-protected:
- // empty for now, but lets get our subclass to remember to init us for the future
- SkMaskFilter(SkFlattenableReadBuffer&) {}
-};
-
-/** \class SkAutoMaskImage
-
- Stack class used to manage the fImage buffer in a SkMask.
- When this object loses scope, the buffer is freed with SkMask::FreeImage().
-*/
-class SkAutoMaskImage {
-public:
- SkAutoMaskImage(SkMask* mask, bool alloc)
- {
- if (alloc)
- mask->fImage = SkMask::AllocImage(mask->computeImageSize());
- fImage = mask->fImage;
- }
- ~SkAutoMaskImage()
- {
- SkMask::FreeImage(fImage);
- }
-private:
- uint8_t* fImage;
-};
-
-#endif
-
diff --git a/skia/include/SkMetaData.h b/skia/include/SkMetaData.h
deleted file mode 100644
index 21739fe..0000000
--- a/skia/include/SkMetaData.h
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkMetaData_DEFINED
-#define SkMetaData_DEFINED
-
-#include "SkScalar.h"
-
-class SkMetaData {
-public:
- SkMetaData();
- SkMetaData(const SkMetaData& src);
- ~SkMetaData();
-
- SkMetaData& operator=(const SkMetaData& src);
-
- void reset();
-
- bool findS32(const char name[], int32_t* value = NULL) const;
- bool findScalar(const char name[], SkScalar* value = NULL) const;
- const SkScalar* findScalars(const char name[], int* count, SkScalar values[] = NULL) const;
- const char* findString(const char name[]) const;
- bool findPtr(const char name[], void** value = NULL) const;
- bool findBool(const char name[], bool* value = NULL) const;
-
- bool hasS32(const char name[], int32_t value) const
- {
- int32_t v;
- return this->findS32(name, &v) && v == value;
- }
- bool hasScalar(const char name[], SkScalar value) const
- {
- SkScalar v;
- return this->findScalar(name, &v) && v == value;
- }
- bool hasString(const char name[], const char value[]) const
- {
- const char* v = this->findString(name);
- return v == NULL && value == NULL ||
- v != NULL && value != NULL && !strcmp(v, value);
- }
- bool hasPtr(const char name[], void* value) const
- {
- void* v;
- return this->findPtr(name, &v) && v == value;
- }
- bool hasBool(const char name[], bool value) const
- {
- bool v;
- return this->findBool(name, &v) && v == value;
- }
-
- void setS32(const char name[], int32_t value);
- void setScalar(const char name[], SkScalar value);
- SkScalar* setScalars(const char name[], int count, const SkScalar values[] = NULL);
- void setString(const char name[], const char value[]);
- void setPtr(const char name[], void* value);
- void setBool(const char name[], bool value);
-
- bool removeS32(const char name[]);
- bool removeScalar(const char name[]);
- bool removeString(const char name[]);
- bool removePtr(const char name[]);
- bool removeBool(const char name[]);
-
- SkDEBUGCODE(static void UnitTest();)
-
- enum Type {
- kS32_Type,
- kScalar_Type,
- kString_Type,
- kPtr_Type,
- kBool_Type,
-
- kTypeCount
- };
-
- struct Rec;
- class Iter;
- friend class Iter;
-
- class Iter {
- public:
- Iter() : fRec(NULL) {}
- Iter(const SkMetaData&);
-
- /** Reset the iterator, so that calling next() will return the first
- data element. This is done implicitly in the constructor.
- */
- void reset(const SkMetaData&);
-
- /** Each time next is called, it returns the name of the next data element,
- or null when there are no more elements. If non-null is returned, then the
- element's type is returned (if not null), and the number of data values
- is returned in count (if not null).
- */
- const char* next(Type*, int* count);
-
- private:
- Rec* fRec;
- };
-
-public:
- struct Rec {
- Rec* fNext;
- uint16_t fDataCount; // number of elements
- uint8_t fDataLen; // sizeof a single element
-#ifdef SK_DEBUG
- Type fType;
-#else
- uint8_t fType;
-#endif
-
-#ifdef SK_DEBUG
- const char* fName;
- union {
- int32_t fS32;
- SkScalar fScalar;
- const char* fString;
- void* fPtr;
- bool fBool;
- } fData;
-#endif
-
- const void* data() const { return (this + 1); }
- void* data() { return (this + 1); }
- const char* name() const { return (const char*)this->data() + fDataLen * fDataCount; }
- char* name() { return (char*)this->data() + fDataLen * fDataCount; }
-
- static Rec* Alloc(size_t);
- static void Free(Rec*);
- };
- Rec* fRec;
-
- const Rec* find(const char name[], Type) const;
- void* set(const char name[], const void* data, size_t len, Type, int count);
- bool remove(const char name[], Type);
-};
-
-#endif
-
diff --git a/skia/include/SkMovie.h b/skia/include/SkMovie.h
deleted file mode 100644
index 45962a5..0000000
--- a/skia/include/SkMovie.h
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkMovie_DEFINED
-#define SkMovie_DEFINED
-
-#include "SkRefCnt.h"
-#include "SkCanvas.h"
-
-class SkStream;
-
-class SkMovie : public SkRefCnt {
-public:
- /** Try to create a movie from the stream. If the stream format is not
- supported, return NULL.
- */
- static SkMovie* DecodeStream(SkStream*);
- /** Try to create a movie from the specified file path. If the file is not
- found, or the format is not supported, return NULL. If a movie is
- returned, the stream may be retained by the movie (via ref()) until
- the movie is finished with it (by calling unref()).
- */
- static SkMovie* DecodeFile(const char path[]);
- /** Try to create a movie from the specified memory.
- If the format is not supported, return NULL. If a movie is returned,
- the data will have been read or copied, and so the caller may free
- it.
- */
- static SkMovie* DecodeMemory(const void* data, size_t length);
-
- SkMSec duration();
- 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
- redraw).
- */
- bool setTime(SkMSec);
-
- // return the right bitmap for the current time code
- const SkBitmap& bitmap();
-
-protected:
- struct Info {
- SkMSec fDuration;
- int fWidth;
- int fHeight;
- bool fIsOpaque;
- };
-
- virtual bool onGetInfo(Info*) = 0;
- virtual bool onSetTime(SkMSec) = 0;
- virtual bool onGetBitmap(SkBitmap*) = 0;
-
- // visible for subclasses
- SkMovie();
-
-private:
- Info fInfo;
- SkMSec fCurrTime;
- SkBitmap fBitmap;
- bool fNeedBitmap;
-
- void ensureInfo();
-};
-
-#endif
diff --git a/skia/include/SkNinePatch.h b/skia/include/SkNinePatch.h
deleted file mode 100644
index a655621..0000000
--- a/skia/include/SkNinePatch.h
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkNinePatch_DEFINED
-#define SkNinePatch_DEFINED
-
-#include "SkRect.h"
-#include "SkRegion.h"
-
-class SkBitmap;
-class SkCanvas;
-class SkPaint;
-
-class SkNinePatch {
-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,
- const int32_t yDivs[], int numYDivs,
- const SkPaint* paint = NULL);
-};
-
-#endif
diff --git a/skia/include/SkOSFile.h b/skia/include/SkOSFile.h
deleted file mode 100644
index de8090c..0000000
--- a/skia/include/SkOSFile.h
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-//
-#ifndef SkOSFile_DEFINED
-#define SkOSFile_DEFINED
-
-#include "SkString.h"
-
-#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_UNIX)
- #include <dirent.h>
-#endif
-
-struct SkFILE;
-
-enum SkFILE_Flags {
- kRead_SkFILE_Flag = 0x01,
- kWrite_SkFILE_Flag = 0x02
-};
-
-SkFILE* sk_fopen(const char path[], SkFILE_Flags);
-void sk_fclose(SkFILE*);
-
-size_t sk_fgetsize(SkFILE*);
-/** Return true if the file could seek back to the beginning
-*/
-bool sk_frewind(SkFILE*);
-
-size_t sk_fread(void* buffer, size_t byteCount, SkFILE*);
-size_t sk_fwrite(const void* buffer, size_t byteCount, SkFILE*);
-void sk_fflush(SkFILE*);
-
-int sk_fseek( SkFILE*, size_t, int );
-size_t sk_ftell( SkFILE* );
-
-class SkOSFile {
-public:
- class Iter {
- public:
- Iter();
- Iter(const char path[], const char suffix[] = NULL);
- ~Iter();
-
- void reset(const char path[], const char suffix[] = NULL);
- bool next(SkString* name, bool getDir = false);
-
- private:
-#ifdef SK_BUILD_FOR_WIN
- HANDLE fHandle;
- uint16_t* fPath16;
-#elif defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_UNIX)
- DIR* fDIR;
- SkString fPath, fSuffix;
-#endif
- };
-};
-
-class SkUTF16_Str {
-public:
- SkUTF16_Str(const char src[]);
- ~SkUTF16_Str()
- {
- sk_free(fStr);
- }
- const uint16_t* get() const { return fStr; }
-
-private:
- uint16_t* fStr;
-};
-
-#endif
-
diff --git a/skia/include/SkOSMenu.h b/skia/include/SkOSMenu.h
deleted file mode 100644
index 433a601..0000000
--- a/skia/include/SkOSMenu.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkOSMenu_DEFINED
-#define SkOSMenu_DEFINED
-
-#include "SkEvent.h"
-#include "SkTDArray.h"
-
-class SkOSMenu {
-public:
- explicit SkOSMenu(const char title[]);
- ~SkOSMenu();
-
- const char* getTitle() const { return fTitle; }
-
- void appendItem(const char title[], const char eventType[], int32_t eventData);
-
- // called by SkOSWindow when it receives an OS menu event
- int countItems() const;
- const char* getItem(int index, uint32_t* cmdID) const;
-
- SkEvent* createEvent(uint32_t os_cmd);
-
-private:
- const char* fTitle;
-
- struct Item {
- const char* fTitle;
- const char* fEventType;
- uint32_t fEventData;
- uint32_t fOSCmd; // internal
- };
- SkTDArray<Item> fItems;
-
- // illegal
- SkOSMenu(const SkOSMenu&);
- SkOSMenu& operator=(const SkOSMenu&);
-};
-
-#endif
-
diff --git a/skia/include/SkOSSound.h b/skia/include/SkOSSound.h
deleted file mode 100644
index 5d77955..0000000
--- a/skia/include/SkOSSound.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkOSSound_DEFINED
-#define SkOSSound_DEFINED
-
-#include "SkTypes.h"
-
-class SkOSSound {
-public:
- static void Play(const char path[]);
- static void Pause();
- static void Resume();
- static bool TogglePause(); // returns true if we are now playing, or false if we're now paused
- static void Stop();
-
- // volume runs from 0 (silent) to 0xFF (max-volume)
- static uint8_t GetVolume();
- static void SetVolume(U8CPU volume);
-};
-
-#endif
-
diff --git a/skia/include/SkOSWindow_Mac.h b/skia/include/SkOSWindow_Mac.h
deleted file mode 100644
index 1f6a1fa..0000000
--- a/skia/include/SkOSWindow_Mac.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkOSWindow_Mac_DEFINED
-#define SkOSWindow_Mac_DEFINED
-
-#include "SkWindow.h"
-
-class SkOSWindow : public SkWindow {
-public:
- SkOSWindow(void* hwnd);
-
- void* getHWND() const { return fHWND; }
- void updateSize();
-
- static bool PostEvent(SkEvent* evt, SkEventSinkID, SkMSec delay);
-
- static pascal OSStatus SkOSWindow::EventHandler( EventHandlerCallRef inHandler, EventRef inEvent, void* userData );
-
-protected:
- // overrides from SkWindow
- virtual void onHandleInval(const SkIRect&);
- // overrides from SkView
- virtual void onAddMenu(const SkOSMenu*);
- virtual void onSetTitle(const char[]);
-
-private:
- void* fHWND;
-
- void doPaint(void* ctx);
-
- typedef SkWindow INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkOSWindow_Unix.h b/skia/include/SkOSWindow_Unix.h
deleted file mode 100644
index 26f51be..0000000
--- a/skia/include/SkOSWindow_Unix.h
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkOSWindow_Unix_DEFINED
-#define SkOSWindow_Unix_DEFINED
-
-#include "SkWindow.h"
-#include <X11/Xlib.h>
-
-struct SkUnixWindow {
- Display* fDisplay;
- Window fWin;
- size_t fOSWin;
-};
-
-class SkOSWindow : public SkWindow {
-public:
- SkOSWindow(Display* display, Window win);
-
- void* getHWND() const { return (void*)fUnixWindow.fWin; }
- void* getDisplay() const { return (void*)fUnixWindow.fDisplay; }
- void* getUnixWindow() const { return (void*)&fUnixWindow; }
- void setSize(int width, int height);
- void updateSize();
-
- static bool PostEvent(SkEvent* evt, SkEventSinkID, SkMSec delay);
-
- static bool WndProc(SkUnixWindow* w, XEvent &e);
-
-protected:
- // overrides from SkWindow
- virtual void onHandleInval(const SkIRect&);
- // overrides from SkView
- virtual void onAddMenu(const SkOSMenu*);
-
-private:
- SkUnixWindow fUnixWindow;
-
- void doPaint();
-
- void* fMBar;
-
- typedef SkWindow INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkOSWindow_Win.h b/skia/include/SkOSWindow_Win.h
deleted file mode 100644
index 6d821db..0000000
--- a/skia/include/SkOSWindow_Win.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkOSWindow_Win_DEFINED
-#define SkOSWindow_Win_DEFINED
-
-#include "SkWindow.h"
-
-class SkOSWindow : public SkWindow {
-public:
- SkOSWindow(void* hwnd);
-
- void* getHWND() const { return fHWND; }
- void setSize(int width, int height);
- void updateSize();
-
- static bool PostEvent(SkEvent* evt, SkEventSinkID, SkMSec delay);
-
- static bool WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
- static bool SkOSWindow::QuitOnDeactivate(HWND hWnd);
-
- enum {
- SK_WM_SkEvent = WM_APP + 1000,
- SK_WM_SkTimerID = 0xFFFF // just need a non-zero value
- };
-
-protected:
- virtual bool quitOnDeactivate() { return true; }
-
- // overrides from SkWindow
- virtual void onHandleInval(const SkIRect&);
- // overrides from SkView
- virtual void onAddMenu(const SkOSMenu*);
-
-private:
- void* fHWND;
-
- void doPaint(void* ctx);
-
- HMENU fMBar;
-
- typedef SkWindow INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkOSWindow_wxwidgets.h b/skia/include/SkOSWindow_wxwidgets.h
deleted file mode 100644
index c5dfc7c..0000000
--- a/skia/include/SkOSWindow_wxwidgets.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*
- * SkOSWindow_wxwidgets.h
- * wxwidgets
- *
- * Copyright 2005 __MyCompanyName__. All rights reserved.
- *
- */
-
-#ifndef SkOSWindow_wxwidgets_DEFINED
-#define SkOSWindow_wxwidgets_DEFINED
-
-#include "SkWindow.h"
-#include "wx/frame.h"
-
-class SkOSWindow: public SkWindow
-{
-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/skia/include/SkPackBits.h b/skia/include/SkPackBits.h
deleted file mode 100644
index c11231b..0000000
--- a/skia/include/SkPackBits.h
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPackBits_DEFINED
-#define SkPackBits_DEFINED
-
-#include "SkTypes.h"
-
-class SkPackBits {
-public:
- /** Given the number of 16bit values that will be passed to Pack16,
- returns the worst-case size needed for the dst[] buffer.
- */
- static size_t ComputeMaxSize16(int count);
-
- /** Given the number of 8bit values that will be passed to Pack8,
- returns the worst-case size needed for the dst[] buffer.
- */
- static size_t ComputeMaxSize8(int count);
-
- /** Write the src array into a packed format. The packing process may end
- up writing more bytes than it read, so dst[] must be large enough.
- @param src Input array of 16bit values
- @param count Number of entries in src[]
- @param dst Buffer (allocated by caller) to write the packed data
- into
- @return the number of bytes written to dst[]
- */
- static size_t Pack16(const uint16_t src[], int count, uint8_t dst[]);
-
- /** Write the src array into a packed format. The packing process may end
- up writing more bytes than it read, so dst[] must be large enough.
- @param src Input array of 8bit values
- @param count Number of entries in src[]
- @param dst Buffer (allocated by caller) to write the packed data
- into
- @return the number of bytes written to dst[]
- */
- static size_t Pack8(const uint8_t src[], int count, uint8_t dst[]);
-
- /** Unpack the data in src[], and expand it into dst[]. The src[] data was
- written by a previous call to Pack16.
- @param src Input data to unpack, previously created by Pack16.
- @param srcSize Number of bytes of src to unpack
- @param dst Buffer (allocated by caller) to expand the src[] into.
- @return the number of dst elements (not bytes) written into dst.
- */
- static int Unpack16(const uint8_t src[], size_t srcSize, uint16_t dst[]);
-
- /** Unpack the data in src[], and expand it into dst[]. The src[] data was
- written by a previous call to Pack8.
- @param src Input data to unpack, previously created by Pack8.
- @param srcSize Number of bytes of src to unpack
- @param dst Buffer (allocated by caller) to expand the src[] into.
- @return the number of bytes written into dst.
- */
- static int Unpack8(const uint8_t src[], size_t srcSize, uint8_t dst[]);
-
- /** Unpack the data from src[], skip the first dstSkip bytes, then write
- dstWrite bytes into dst[]. The src[] data was written by a previous
- call to Pack8. Return the number of bytes actually writtten into dst[]
- @param src Input data to unpack, previously created by Pack8.
- @param dst Buffer (allocated by caller) to expand the src[] into.
- @param dstSkip Number of bytes of unpacked src to skip before writing
- into dst
- @param dstWrite Number of bytes of unpacked src to write into dst (after
- skipping dstSkip bytes)
- */
- static void Unpack8(uint8_t dst[], size_t dstSkip, size_t dstWrite,
- const uint8_t src[]);
-};
-
-#endif
diff --git a/skia/include/SkPaint.h b/skia/include/SkPaint.h
deleted file mode 100644
index 14691b7..0000000
--- a/skia/include/SkPaint.h
+++ /dev/null
@@ -1,818 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPaint_DEFINED
-#define SkPaint_DEFINED
-
-#include "SkColor.h"
-#include "SkMath.h"
-#include "SkPorterDuff.h"
-
-class SkAutoGlyphCache;
-class SkColorFilter;
-class SkDescriptor;
-class SkFlattenableReadBuffer;
-class SkFlattenableWriteBuffer;
-struct SkGlyph;
-struct SkRect;
-class SkGlyphCache;
-class SkMaskFilter;
-class SkMatrix;
-class SkPath;
-class SkPathEffect;
-class SkRasterizer;
-class SkShader;
-class SkDrawLooper;
-class SkTypeface;
-class SkXfermode;
-
-typedef const SkGlyph& (*SkDrawCacheProc)(SkGlyphCache*, const char**,
- SkFixed x, SkFixed y);
-
-typedef const SkGlyph& (*SkMeasureCacheProc)(SkGlyphCache*, const char**);
-
-/** \class SkPaint
-
- The SkPaint class holds the style and color information about how to draw
- geometries, text and bitmaps.
-*/
-class SkPaint {
-public:
- SkPaint();
- SkPaint(const SkPaint& paint);
- ~SkPaint();
-
- SkPaint& operator=(const SkPaint&);
-
- friend int operator==(const SkPaint& a, const SkPaint& b);
- friend int operator!=(const SkPaint& a, const SkPaint& b)
- {
- return !(a == b);
- }
-
- void flatten(SkFlattenableWriteBuffer&) const;
- void unflatten(SkFlattenableReadBuffer&);
-
- /** Restores the paint to its initial settings.
- */
- void reset();
-
- /** Specifies the bit values that are stored in the paint's flags.
- */
- enum Flags {
- kAntiAlias_Flag = 0x01, //!< mask to enable antialiasing
- kFilterBitmap_Flag = 0x02, //!< mask to enable bitmap filtering
- kDither_Flag = 0x04, //!< mask to enable dithering
- kUnderlineText_Flag = 0x08, //!< mask to enable underline text
- kStrikeThruText_Flag = 0x10, //!< mask to enable strike-thru text
- kFakeBoldText_Flag = 0x20, //!< mask to enable fake-bold text
- kLinearText_Flag = 0x40, //!< mask to enable linear-text
- kSubpixelText_Flag = 0x80, //!< mask to enable subpixel-text
- kDevKernText_Flag = 0x100, //!< mask to enable device kerning text
-
- kAllFlags = 0x1FF
- };
-
- /** Return the paint's flags. Use the Flag enum to test flag values.
- @return the paint's flags (see enums ending in _Flag for bit masks)
- */
- uint32_t getFlags() const { return fFlags; }
-
- /** Set the paint's flags. Use the Flag enum to specific flag values.
- @param flags The new flag bits for the paint (see Flags enum)
- */
- void setFlags(uint32_t flags);
-
- /** Helper for getFlags(), returning true if kAntiAlias_Flag bit is set
- @return true if the antialias bit is set in the paint's flags.
- */
- bool isAntiAlias() const
- {
- return SkToBool(this->getFlags() & kAntiAlias_Flag);
- }
-
- /** Helper for setFlags(), setting or clearing the kAntiAlias_Flag bit
- @param aa true to enable antialiasing, false to disable it
- */
- void setAntiAlias(bool aa);
-
- /** Helper for getFlags(), returning true if kDither_Flag bit is set
- @return true if the dithering bit is set in the paint's flags.
- */
- bool isDither() const
- {
- return SkToBool(this->getFlags() & kDither_Flag);
- }
-
- /** Helper for setFlags(), setting or clearing the kDither_Flag bit
- @param dither true to enable dithering, false to disable it
- */
- void setDither(bool dither);
-
- /** Helper for getFlags(), returning true if kLinearText_Flag bit is set
- @return true if the lineartext bit is set in the paint's flags
- */
- bool isLinearText() const
- {
- return SkToBool(this->getFlags() & kLinearText_Flag);
- }
-
- /** Helper for setFlags(), setting or clearing the kLinearText_Flag bit
- @param linearText true to set the linearText bit in the paint's flags,
- false to clear it.
- */
- void setLinearText(bool linearText);
-
- /** Helper for getFlags(), returning true if kSubpixelText_Flag bit is set
- @return true if the lineartext bit is set in the paint's flags
- */
- bool isSubpixelText() const
- {
- return SkToBool(this->getFlags() & kSubpixelText_Flag);
- }
-
- /** Helper for setFlags(), setting or clearing the kSubpixelText_Flag bit
- @param subpixelText true to set the subpixelText bit in the paint's
- flags, false to clear it.
- */
- void setSubpixelText(bool subpixelText);
-
- /** Helper for getFlags(), returning true if kUnderlineText_Flag bit is set
- @return true if the underlineText bit is set in the paint's flags.
- */
- bool isUnderlineText() const
- {
- return SkToBool(this->getFlags() & kUnderlineText_Flag);
- }
-
- /** Helper for setFlags(), setting or clearing the kUnderlineText_Flag bit
- @param underlineText true to set the underlineText bit in the paint's
- flags, false to clear it.
- */
- void setUnderlineText(bool underlineText);
-
- /** Helper for getFlags(), returns true if kStrikeThruText_Flag bit is set
- @return true if the strikeThruText bit is set in the paint's flags.
- */
- bool isStrikeThruText() const
- {
- return SkToBool(this->getFlags() & kStrikeThruText_Flag);
- }
-
- /** Helper for setFlags(), setting or clearing the kStrikeThruText_Flag bit
- @param strikeThruText true to set the strikeThruText bit in the
- paint's flags, false to clear it.
- */
- void setStrikeThruText(bool strikeThruText);
-
- /** Helper for getFlags(), returns true if kFakeBoldText_Flag bit is set
- @return true if the kFakeBoldText_Flag bit is set in the paint's flags.
- */
- bool isFakeBoldText() const
- {
- return SkToBool(this->getFlags() & kFakeBoldText_Flag);
- }
-
- /** Helper for setFlags(), setting or clearing the kFakeBoldText_Flag bit
- @param fakeBoldText true to set the kFakeBoldText_Flag bit in the paint's
- flags, false to clear it.
- */
- void setFakeBoldText(bool fakeBoldText);
-
- /** Helper for getFlags(), returns true if kDevKernText_Flag bit is set
- @return true if the kernText bit is set in the paint's flags.
- */
- bool isDevKernText() const
- {
- return SkToBool(this->getFlags() & kDevKernText_Flag);
- }
-
- /** Helper for setFlags(), setting or clearing the kKernText_Flag bit
- @param kernText true to set the kKernText_Flag bit in the paint's
- flags, false to clear it.
- */
- void setDevKernText(bool devKernText);
-
- bool isFilterBitmap() const
- {
- return SkToBool(this->getFlags() & kFilterBitmap_Flag);
- }
-
- void setFilterBitmap(bool filterBitmap);
-
- /** Styles apply to rect, oval, path, and text.
- Bitmaps are always drawn in "fill", and lines are always drawn in
- "stroke".
- */
- enum Style {
- kFill_Style, //!< fill with the paint's color
- kStroke_Style, //!< stroke with the paint's color
- kStrokeAndFill_Style, //!< fill and stroke with the paint's color
-
- kStyleCount,
- };
-
- /** Return the paint's style, used for controlling how primitives'
- geometries are interpreted (except for drawBitmap, which always assumes
- kFill_Style).
- @return the paint's Style
- */
- Style getStyle() const { return (Style)fStyle; }
-
- /** Set the paint's style, used for controlling how primitives'
- geometries are interpreted (except for drawBitmap, which always assumes
- Fill).
- @param style The new style to set in the paint
- */
- void setStyle(Style style);
-
- /** Return the paint's color. Note that the color is a 32bit value
- containing alpha as well as r,g,b. This 32bit value is not
- premultiplied, meaning that its alpha can be any value, regardless of
- the values of r,g,b.
- @return the paint's color (and alpha).
- */
- SkColor getColor() const { return fColor; }
-
- /** Set the paint's color. Note that the color is a 32bit value containing
- alpha as well as r,g,b. This 32bit value is not premultiplied, meaning
- that its alpha can be any value, regardless of the values of r,g,b.
- @param color The new color (including alpha) to set in the paint.
- */
- void setColor(SkColor color);
-
- /** Helper to getColor() that just returns the color's alpha value.
- @return the alpha component of the paint's color.
- */
- uint8_t getAlpha() const { return SkToU8(SkColorGetA(fColor)); }
-
- /** Helper to setColor(), that only assigns the color's alpha value,
- leaving its r,g,b values unchanged.
- @param a set the alpha component (0..255) of the paint's color.
- */
- void setAlpha(U8CPU a);
-
- /** Helper to setColor(), that takes a,r,g,b and constructs the color value
- using SkColorSetARGB()
- @param a The new alpha component (0..255) of the paint's color.
- @param r The new red component (0..255) of the paint's color.
- @param g The new green component (0..255) of the paint's color.
- @param b The new blue component (0..255) of the paint's color.
- */
- void setARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b);
-
- /** Return the width for stroking.
- <p />
- A value of 0 strokes in hairline mode.
- Hairlines always draw 1-pixel wide, regardless of the matrix.
- @return the paint's stroke width, used whenever the paint's style is
- Stroke or StrokeAndFill.
- */
- SkScalar getStrokeWidth() const { return fWidth; }
-
- /** Set the width for stroking.
- Pass 0 to stroke in hairline mode.
- Hairlines always draw 1-pixel wide, regardless of the matrix.
- @param width set the paint's stroke width, used whenever the paint's
- style is Stroke or StrokeAndFill.
- */
- void setStrokeWidth(SkScalar width);
-
- /** Return the paint's stroke miter value. This is used to control the
- behavior of miter joins when the joins angle is sharp.
- @return the paint's miter limit, used whenever the paint's style is
- Stroke or StrokeAndFill.
- */
- SkScalar getStrokeMiter() const { return fMiterLimit; }
-
- /** Set the paint's stroke miter value. This is used to control the
- behavior of miter joins when the joins angle is sharp. This value must
- be >= 0.
- @param miter set the miter limit on the paint, used whenever the
- paint's style is Stroke or StrokeAndFill.
- */
- void setStrokeMiter(SkScalar miter);
-
- /** Cap enum specifies the settings for the paint's strokecap. This is the
- treatment that is applied to the beginning and end of each non-closed
- contour (e.g. lines).
- */
- enum Cap {
- kButt_Cap, //!< begin/end contours with no extension
- kRound_Cap, //!< begin/end contours with a semi-circle extension
- kSquare_Cap, //!< begin/end contours with a half square extension
-
- kCapCount,
- kDefault_Cap = kButt_Cap
- };
-
- /** Join enum specifies the settings for the paint's strokejoin. This is
- the treatment that is applied to corners in paths and rectangles.
- */
- enum Join {
- kMiter_Join, //!< connect path segments with a sharp join
- kRound_Join, //!< connect path segments with a round join
- kBevel_Join, //!< connect path segments with a flat bevel join
-
- kJoinCount,
- kDefault_Join = kMiter_Join
- };
-
- /** Return the paint's stroke cap type, controlling how the start and end
- of stroked lines and paths are treated.
- @return the line cap style for the paint, used whenever the paint's
- style is Stroke or StrokeAndFill.
- */
- Cap getStrokeCap() const { return (Cap)fCapType; }
-
- /** Set the paint's stroke cap type.
- @param cap set the paint's line cap style, used whenever the paint's
- style is Stroke or StrokeAndFill.
- */
- void setStrokeCap(Cap cap);
-
- /** Return the paint's stroke join type.
- @return the paint's line join style, used whenever the paint's style is
- Stroke or StrokeAndFill.
- */
- Join getStrokeJoin() const { return (Join)fJoinType; }
-
- /** Set the paint's stroke join type.
- @param join set the paint's line join style, used whenever the paint's
- style is Stroke or StrokeAndFill.
- */
- void setStrokeJoin(Join join);
-
- /** Applies any/all effects (patheffect, stroking) to src, returning the
- result in dst. The result is that drawing src with this paint will be
- the same as drawing dst with a default paint (at least from the
- geometric perspective).
- @param src input path
- @param dst output path (may be the same as src)
- @return true if the path should be filled, or false if it should be
- drawn with a hairline (width == 0)
- */
- bool getFillPath(const SkPath& src, SkPath* dst) const;
-
- /** Returns true if the current paint settings allow for fast computation of
- bounds (i.e. there is nothing complex like a patheffect that would make
- the bounds computation expensive.
- */
- bool canComputeFastBounds() const;
-
- /** 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;
- path.computeBounds(&r, SkPath::kFast_BoundsType);
- const SkRect& fastR = paint.computeFastBounds(r, &storage);
- if (canvas->quickReject(fastR, ...)) {
- // don't draw the path
- }
- }
- */
- const SkRect& computeFastBounds(const SkRect& orig, SkRect* storage) const;
-
- /** Get the paint's shader object.
- <p />
- The shader's reference count is not affected.
- @return the paint's shader (or NULL)
- */
- SkShader* getShader() const { return fShader; }
-
- /** Set or clear the shader object.
- <p />
- Pass NULL to clear any previous shader.
- As a convenience, the parameter passed is also returned.
- If a previous shader exists, its reference count is decremented.
- If shader is not NULL, its reference count is incremented.
- @param shader May be NULL. The shader to be installed in the paint
- @return shader
- */
- SkShader* setShader(SkShader* shader);
-
- /** Get the paint's colorfilter. If there is a colorfilter, its reference
- count is not changed.
- @return the paint's colorfilter (or NULL)
- */
- SkColorFilter* getColorFilter() const { return fColorFilter; }
-
- /** Set or clear the paint's colorfilter, returning the parameter.
- <p />
- If the paint already has a filter, its reference count is decremented.
- If filter is not NULL, its reference count is incremented.
- @param filter May be NULL. The filter to be installed in the paint
- @return filter
- */
- SkColorFilter* setColorFilter(SkColorFilter* filter);
-
- /** Get the paint's xfermode object.
- <p />
- The xfermode's reference count is not affected.
- @return the paint's xfermode (or NULL)
- */
- SkXfermode* getXfermode() const { return fXfermode; }
-
- /** Set or clear the xfermode object.
- <p />
- Pass NULL to clear any previous xfermode.
- As a convenience, the parameter passed is also returned.
- If a previous xfermode exists, its reference count is decremented.
- If xfermode is not NULL, its reference count is incremented.
- @param xfermode May be NULL. The new xfermode to be installed in the
- paint
- @return xfermode
- */
- SkXfermode* setXfermode(SkXfermode* xfermode);
-
- /** Helper for setXfermode, passing the corresponding xfermode object
- returned from the PorterDuff factory.
- @param mode The porter-duff mode used to create an xfermode for the
- paint.
- @return the resulting xfermode object (or NULL if the mode is
- SrcOver)
- */
- SkXfermode* setPorterDuffXfermode(SkPorterDuff::Mode mode);
-
- /** Get the paint's patheffect object.
- <p />
- The patheffect reference count is not affected.
- @return the paint's patheffect (or NULL)
- */
- SkPathEffect* getPathEffect() const { return fPathEffect; }
-
- /** Set or clear the patheffect object.
- <p />
- Pass NULL to clear any previous patheffect.
- As a convenience, the parameter passed is also returned.
- If a previous patheffect exists, its reference count is decremented.
- If patheffect is not NULL, its reference count is incremented.
- @param effect May be NULL. The new patheffect to be installed in the
- paint
- @return effect
- */
- SkPathEffect* setPathEffect(SkPathEffect* effect);
-
- /** Get the paint's maskfilter object.
- <p />
- The maskfilter reference count is not affected.
- @return the paint's maskfilter (or NULL)
- */
- SkMaskFilter* getMaskFilter() const { return fMaskFilter; }
-
- /** Set or clear the maskfilter object.
- <p />
- Pass NULL to clear any previous maskfilter.
- As a convenience, the parameter passed is also returned.
- If a previous maskfilter exists, its reference count is decremented.
- If maskfilter is not NULL, its reference count is incremented.
- @param maskfilter May be NULL. The new maskfilter to be installed in
- the paint
- @return maskfilter
- */
- SkMaskFilter* setMaskFilter(SkMaskFilter* maskfilter);
-
- // These attributes are for text/fonts
-
- /** Get the paint's typeface object.
- <p />
- The typeface object identifies which font to use when drawing or
- measuring text. The typeface reference count is not affected.
- @return the paint's typeface (or NULL)
- */
- SkTypeface* getTypeface() const { return fTypeface; }
-
- /** Set or clear the typeface object.
- <p />
- Pass NULL to clear any previous typeface.
- As a convenience, the parameter passed is also returned.
- If a previous typeface exists, its reference count is decremented.
- If typeface is not NULL, its reference count is incremented.
- @param typeface May be NULL. The new typeface to be installed in the
- paint
- @return typeface
- */
- SkTypeface* setTypeface(SkTypeface* typeface);
-
- /** Get the paint's rasterizer (or NULL).
- <p />
- The raster controls how paths/text are turned into alpha masks.
- @return the paint's rasterizer (or NULL)
- */
- SkRasterizer* getRasterizer() const { return fRasterizer; }
-
- /** Set or clear the rasterizer object.
- <p />
- Pass NULL to clear any previous rasterizer.
- As a convenience, the parameter passed is also returned.
- If a previous rasterizer exists in the paint, its reference count is
- decremented. If rasterizer is not NULL, its reference count is
- incremented.
- @param rasterizer May be NULL. The new rasterizer to be installed in
- the paint.
- @return rasterizer
- */
- SkRasterizer* setRasterizer(SkRasterizer* rasterizer);
-
- SkDrawLooper* getLooper() const { return fLooper; }
- SkDrawLooper* setLooper(SkDrawLooper*);
-
- enum Align {
- kLeft_Align,
- kCenter_Align,
- kRight_Align,
-
- kAlignCount
- };
- /** Return the paint's Align value for drawing text.
- @return the paint's Align value for drawing text.
- */
- Align getTextAlign() const { return (Align)fTextAlign; }
- /** Set the paint's text alignment.
- @param align set the paint's Align value for drawing text.
- */
- void setTextAlign(Align align);
-
- /** Return the paint's text size.
- @return the paint's text size.
- */
- SkScalar getTextSize() const { return fTextSize; }
-
- /** Set the paint's text size. This value must be > 0
- @param textSize set the paint's text size.
- */
- void setTextSize(SkScalar textSize);
-
- /** Return the paint's horizontal scale factor for text. The default value
- is 1.0.
- @return the paint's scale factor in X for drawing/measuring text
- */
- SkScalar getTextScaleX() const { return fTextScaleX; }
-
- /** Set the paint's horizontal scale factor for text. The default value
- is 1.0. Values > 1.0 will stretch the text wider. Values < 1.0 will
- stretch the text narrower.
- @param scaleX set the paint's scale factor in X for drawing/measuring
- text.
- */
- void setTextScaleX(SkScalar scaleX);
-
- /** Return the paint's horizontal skew factor for text. The default value
- is 0.
- @return the paint's skew factor in X for drawing text.
- */
- SkScalar getTextSkewX() const { return fTextSkewX; }
-
- /** Set the paint's horizontal skew factor for text. The default value
- is 0. For approximating oblique text, use values around -0.25.
- @param skewX set the paint's skew factor in X for drawing text.
- */
- void setTextSkewX(SkScalar skewX);
-
- /** Describes how to interpret the text parameters that are passed to paint
- methods like measureText() and getTextWidths().
- */
- enum TextEncoding {
- kUTF8_TextEncoding, //!< the text parameters are UTF8
- kUTF16_TextEncoding, //!< the text parameters are UTF16
- kGlyphID_TextEncoding //!< the text parameters are glyph indices
- };
-
- TextEncoding getTextEncoding() const
- {
- return (TextEncoding)fTextEncoding;
- }
-
- void setTextEncoding(TextEncoding encoding);
-
- struct FontMetrics {
- SkScalar fTop; //!< The greatest distance above the baseline for any glyph (will be <= 0)
- SkScalar fAscent; //!< The recommended distance above the baseline (will be <= 0)
- SkScalar fDescent; //!< The recommended distance below the baseline (will be >= 0)
- SkScalar fBottom; //!< The greatest distance below the baseline for any glyph (will be >= 0)
- SkScalar fLeading; //!< The recommended distance to add between lines of text (will be >= 0)
- SkScalar fAvgCharWidth; //!< the average charactor width (>= 0)
- SkScalar fXMin; //!< The minimum bounding box x value for all glyphs
- SkScalar fXMax; //!< The maximum bounding box x value for all glyphs
- SkScalar fXHeight; //!< the height of an 'x' in px, or 0 if no 'x' in face
- };
-
- /** Return the recommend spacing between lines (which will be
- fDescent - fAscent + fLeading).
- If metrics is not null, return in it the font metrics for the
- typeface/pointsize/etc. currently set in the paint.
- @param metrics If not null, returns the font metrics for the
- current typeface/pointsize/etc setting in this
- paint.
- @param scale If not 0, return width as if the canvas were scaled
- by this value
- @param return the recommended spacing between lines
- */
- SkScalar getFontMetrics(FontMetrics* metrics, SkScalar scale = 0) const;
-
- /** Return the recommend line spacing. This will be
- fDescent - fAscent + fLeading
- */
- SkScalar getFontSpacing() const { return this->getFontMetrics(NULL, 0); }
-
- /** Convert the specified text into glyph IDs, returning the number of
- glyphs ID written. If glyphs is NULL, it is ignore and only the count
- is returned.
- */
- int textToGlyphs(const void* text, size_t byteLength,
- uint16_t glyphs[]) const;
-
- /** Return the number of drawable units in the specified text buffer.
- This looks at the current TextEncoding field of the paint. If you also
- want to have the text converted into glyph IDs, call textToGlyphs
- instead.
- */
- int countText(const void* text, size_t byteLength) const
- {
- return this->textToGlyphs(text, byteLength, NULL);
- }
-
- /** Return the width of the text.
- @param text The text to be measured
- @param length Number of bytes of text to measure
- @param bounds If not NULL, returns the bounds of the text,
- relative to (0, 0).
- @param scale If not 0, return width as if the canvas were scaled
- by this value
- @return The advance width of the text
- */
- SkScalar measureText(const void* text, size_t length,
- SkRect* bounds, SkScalar scale = 0) const;
-
- /** Return the width of the text.
- @param text Address of the text
- @param length Number of bytes of text to measure
- @return The width of the text
- */
- SkScalar measureText(const void* text, size_t length) const
- {
- return this->measureText(text, length, NULL, 0);
- }
-
- /** Specify the direction the text buffer should be processed in breakText()
- */
- enum TextBufferDirection {
- /** When measuring text for breakText(), begin at the start of the text
- buffer and proceed forward through the data. This is the default.
- */
- kForward_TextBufferDirection,
- /** When measuring text for breakText(), begin at the end of the text
- buffer and proceed backwards through the data.
- */
- kBackward_TextBufferDirection
- };
-
- /** Return the width of the text.
- @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
- widths are <= maxWidth are measured.
- @param measuredWidth Optional. If non-null, this returns the actual
- width of the measured text.
- @param tbd Optional. The direction the text buffer should be
- traversed during measuring.
- @return The number of bytes of text that were measured. Will be
- <= length.
- */
- size_t breakText(const void* text, size_t length, SkScalar maxWidth,
- SkScalar* measuredWidth = NULL,
- TextBufferDirection tbd = kForward_TextBufferDirection)
- const;
-
- /** Return the advance widths for the characters in the string.
- @param text the text
- @param byteLength number of bytes to of text
- @param widths If not null, returns the array of advance widths of
- the glyphs. If not NULL, must be at least a large
- as the number of unichars in the specified text.
- @param bounds If not null, returns the bounds for each of
- character, relative to (0, 0)
- @return the number of unichars in the specified text.
- */
- int getTextWidths(const void* text, size_t byteLength, SkScalar widths[],
- SkRect bounds[] = NULL) const;
-
- /** Return the path (outline) for the specified text.
- Note: just like SkCanvas::drawText, this will respect the Align setting
- in the paint.
- */
- void getTextPath(const void* text, size_t length, SkScalar x, SkScalar y,
- SkPath* path) const;
-
-private:
- SkTypeface* fTypeface;
- SkScalar fTextSize;
- SkScalar fTextScaleX;
- SkScalar fTextSkewX;
-
- SkPathEffect* fPathEffect;
- SkShader* fShader;
- SkXfermode* fXfermode;
- SkMaskFilter* fMaskFilter;
- SkColorFilter* fColorFilter;
- SkRasterizer* fRasterizer;
- SkDrawLooper* fLooper;
-
- SkColor fColor;
- SkScalar fWidth;
- SkScalar fMiterLimit;
- unsigned fFlags : 9;
- unsigned fTextAlign : 2;
- unsigned fCapType : 2;
- unsigned fJoinType : 2;
- unsigned fStyle : 2;
- unsigned fTextEncoding : 2; // 3 values
-
- SkDrawCacheProc getDrawCacheProc() const;
- SkMeasureCacheProc getMeasureCacheProc(TextBufferDirection dir,
- bool needFullMetrics) const;
-
- SkScalar measure_text(SkGlyphCache*, const char* text, size_t length,
- int* count, SkRect* bounds) const;
-
- SkGlyphCache* detachCache(const SkMatrix*) const;
-
- void descriptorProc(const SkMatrix* deviceMatrix,
- void (*proc)(const SkDescriptor*, void*),
- void* context) const;
-
- enum {
- kCanonicalTextSizeForPaths = 64
- };
- friend class SkCanvas;
- friend class SkDraw;
- friend class SkAutoGlyphCache;
- friend class SkTextToPathIter;
-};
-
-//////////////////////////////////////////////////////////////////////////
-
-#include "SkPathEffect.h"
-
-/** \class SkStrokePathEffect
-
- SkStrokePathEffect simulates stroking inside a patheffect, allowing the
- caller to have explicit control of when to stroke a path. Typically this is
- used if the caller wants to stroke before another patheffect is applied
- (using SkComposePathEffect or SkSumPathEffect).
-*/
-class SkStrokePathEffect : public SkPathEffect {
-public:
- SkStrokePathEffect(const SkPaint&);
- SkStrokePathEffect(SkScalar width, SkPaint::Style, SkPaint::Join,
- SkPaint::Cap, SkScalar miterLimit = -1);
-
- // overrides
- // This method is not exported to java.
- virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
-
- // overrides for SkFlattenable
- // This method is not exported to java.
- virtual void flatten(SkFlattenableWriteBuffer&);
- // This method is not exported to java.
- virtual Factory getFactory();
-
-private:
- SkScalar fWidth, fMiter;
- uint8_t fStyle, fJoin, fCap;
-
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
- SkStrokePathEffect(SkFlattenableReadBuffer&);
-
- typedef SkPathEffect INHERITED;
-
- // illegal
- SkStrokePathEffect(const SkStrokePathEffect&);
- SkStrokePathEffect& operator=(const SkStrokePathEffect&);
-};
-
-#endif
-
diff --git a/skia/include/SkPaintFlagsDrawFilter.h b/skia/include/SkPaintFlagsDrawFilter.h
deleted file mode 100644
index 941be245..0000000
--- a/skia/include/SkPaintFlagsDrawFilter.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPaintFlagsDrawFilter_DEFINED
-#define SkPaintFlagsDrawFilter_DEFINED
-
-#include "SkDrawFilter.h"
-
-class SkPaintFlagsDrawFilter : public SkDrawFilter {
-public:
- SkPaintFlagsDrawFilter(uint32_t clearFlags, uint32_t setFlags);
-
- // overrides
- virtual bool filter(SkCanvas*, SkPaint*, Type);
- virtual void restore(SkCanvas*, SkPaint*, Type);
-
-private:
- uint32_t fPrevFlags; // local cache for filter/restore
- uint16_t fClearFlags; // user specified
- uint16_t fSetFlags; // user specified
-};
-
-#endif
-
diff --git a/skia/include/SkParse.h b/skia/include/SkParse.h
deleted file mode 100644
index 57d040c..0000000
--- a/skia/include/SkParse.h
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkParse_DEFINED
-#define SkParse_DEFINED
-
-#include "SkColor.h"
-#include "SkMath.h"
-
-class SkParse {
-public:
- static int Count(const char str[]); // number of scalars or int values
- static int Count(const char str[], char separator);
- static const char* FindColor(const char str[], SkColor* value);
- static const char* FindHex(const char str[], uint32_t* value);
- static const char* FindMSec(const char str[], SkMSec* value);
- static const char* FindNamedColor(const char str[], size_t len, SkColor* color);
- static const char* FindS32(const char str[], int32_t* value);
- static const char* FindScalar(const char str[], SkScalar* value);
- static const char* FindScalars(const char str[], SkScalar value[], int count);
-
- static bool FindBool(const char str[], bool* value);
- // return the index of str in list[], or -1 if not found
- static int FindList(const char str[], const char list[]);
-#ifdef SK_SUPPORT_UNITTEST
- static void TestColor();
- static void UnitTest();
-#endif
-};
-
-#endif
-
diff --git a/skia/include/SkParsePaint.h b/skia/include/SkParsePaint.h
deleted file mode 100644
index d23cd92..0000000
--- a/skia/include/SkParsePaint.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkParsePaint_DEFINED
-#define SkParsePaint_DEFINED
-
-#include "SkPaint.h"
-#include "SkDOM.h"
-
-/** "color" color
- "opacity" scalar [0..1]
- "stroke-width" scalar (0...inf)
- "text-size" scalar (0..inf)
- "is-stroke" bool
- "is-antialias" bool
- "is-lineartext" bool
-*/
-void SkPaint_Inflate(SkPaint*, const SkDOM&, const SkDOM::Node*);
-
-#endif
-
diff --git a/skia/include/SkPath.h b/skia/include/SkPath.h
deleted file mode 100644
index e2409ad..0000000
--- a/skia/include/SkPath.h
+++ /dev/null
@@ -1,588 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPath_DEFINED
-#define SkPath_DEFINED
-
-#include "SkMatrix.h"
-#include "SkTDArray.h"
-
-class SkFlattenableReadBuffer;
-class SkFlattenableWriteBuffer;
-class SkAutoPathBoundsUpdate;
-class SkString;
-
-/** \class SkPath
-
- The SkPath class encapsulates compound (multiple contour) geometric paths
- consisting of straight line segments, quadratic curves, and cubic curves.
-*/
-class SkPath {
-public:
- SkPath();
- SkPath(const SkPath&);
- ~SkPath();
-
- SkPath& operator=(const SkPath&);
-
- enum FillType {
- /** Specifies that "inside" is computed by a non-zero sum of signed
- edge crossings
- */
- kWinding_FillType,
- /** Specifies that "inside" is computed by an odd number of edge
- crossings
- */
- kEvenOdd_FillType,
- /** Same as Winding, but draws outside of the path, rather than inside
- */
- kInverseWinding_FillType,
- /** Same as EvenOdd, but draws outside of the path, rather than inside
- */
- kInverseEvenOdd_FillType
- };
-
- /** Return the path's fill type. This is used to define how "inside" is
- computed. The default value is kWinding_FillType.
-
- @return the path's fill type
- */
- FillType getFillType() const { return (FillType)fFillType; }
-
- /** Set the path's fill type. This is used to define how "inside" is
- computed. The default value is kWinding_FillType.
-
- @param ft The new fill type for this path
- */
- void setFillType(FillType ft) { fFillType = SkToU8(ft); }
-
- /** Returns true if the filltype is one of the Inverse variants */
- bool isInverseFillType() const { return (fFillType & 2) != 0; }
-
- /** Toggle between inverse and normal filltypes. This reverse the return
- value of isInverseFillType()
- */
- void toggleInverseFillType() { fFillType ^= 2; }
-
- /** Clear any lines and curves from the path, making it empty. This frees up
- internal storage associated with those segments.
- This does NOT change the fill-type setting.
- */
- 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.
- This does NOT change the fill-type setting.
- */
- void rewind();
-
- /** Returns true if the path is empty (contains no lines or curves)
-
- @return true if the path is empty (contains no lines or curves)
- */
- bool isEmpty() const;
-
- /** 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
- */
- bool isRect(SkRect* rect) 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
- */
- int getPoints(SkPoint points[], int max) const;
-
- //! Swap contents of this and other. Guaranteed not to throw
- void swap(SkPath& other);
-
- enum BoundsType {
- /** compute the bounds of the path's control points, may be larger than
- with kExact_BoundsType, but may be faster to compute
- */
- kFast_BoundsType,
- /** compute the exact bounds of the path, may be smaller than with
- kFast_BoundsType, but may be slower to compute
- */
- kExact_BoundsType
- };
-
- /** Compute the bounds of the path, and write the answer into bounds. If the
- path contains 0 or 1 points, the bounds is set to (0,0,0,0)
-
- @param bounds Returns the computed bounds of the path
- @param btype Specifies if the computed bounds should be exact
- (slower) or approximate (faster)
- */
- void computeBounds(SkRect* bounds, BoundsType btype) const;
-
- /** Calling this will, if the internal cache of the bounds is out of date,
- update it so that subsequent calls to computeBounds will be instanteous.
- This also means that any copies or simple transformations of the path
- will inherit the cached bounds.
- */
- void updateBoundsCache() const;
-
- // Construction methods
-
- /** 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) {
- this->moveTo(p.fX, p.fY);
- }
-
- /** 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
- previous contour, to specify the start of a new contour
- */
- void rMoveTo(SkScalar dx, SkScalar dy);
-
- /** Add a line from the last point to the specified point (x,y). If no
- moveTo() call has been made for this contour, the first point is
- automatically set to (0,0).
-
- @param x The x-coordinate of the end of a line
- @param y The y-coordinate of the end of a line
- */
- void lineTo(SkScalar x, SkScalar y);
-
- /** Add a line from the last point to the specified point. If no moveTo()
- call has been made for this contour, the first point is automatically
- set to (0,0).
-
- @param p The end of a line
- */
- void lineTo(const SkPoint& p) {
- this->lineTo(p.fX, p.fY);
- }
-
- /** 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
- on this contour, to specify a line
- */
- void rLineTo(SkScalar dx, SkScalar dy);
-
- /** 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
- @param y2 The y-coordinate of the end point on a quadratic curve
- */
- void quadTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2);
-
- /** 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
- */
- void quadTo(const SkPoint& p1, const SkPoint& p2) {
- this->quadTo(p1.fX, p1.fY, p2.fX, p2.fY);
- }
-
- /** Same as quadTo, 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 dx1 The amount to add to the x-coordinate of the last point on
- this contour, to specify the control point of a quadratic curve
- @param dy1 The amount to add to the y-coordinate of the last point on
- this contour, to specify the control point of a quadratic curve
- @param dx2 The amount to add to the x-coordinate of the last point on
- this contour, to specify the end point of a quadratic curve
- @param dy2 The amount to add to the y-coordinate of the last point on
- this contour, to specify the end point of a quadratic curve
- */
- void rQuadTo(SkScalar dx1, SkScalar dy1, SkScalar dx2, SkScalar dy2);
-
- /** 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
- @param y2 The y-coordinate of the 2nd control point on a cubic curve
- @param x3 The x-coordinate of the end point on a cubic curve
- @param y3 The y-coordinate of the end point on a cubic curve
- */
- void cubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
- SkScalar x3, SkScalar y3);
-
- /** 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
- */
- void cubicTo(const SkPoint& p1, const SkPoint& p2, const SkPoint& p3) {
- this->cubicTo(p1.fX, p1.fY, p2.fX, p2.fY, p3.fX, p3.fY);
- }
-
- /** 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
- this contour, to specify the 1st control point of a cubic curve
- @param dx2 The amount to add to the x-coordinate of the last point on
- this contour, to specify the 2nd control point of a cubic curve
- @param dy2 The amount to add to the y-coordinate of the last point on
- this contour, to specify the 2nd control point of a cubic curve
- @param dx3 The amount to add to the x-coordinate of the last point on
- this contour, to specify the end point of a cubic curve
- @param dy3 The amount to add to the y-coordinate of the last point on
- this contour, to specify the end point of a cubic curve
- */
- void rCubicTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
- SkScalar x3, SkScalar y3);
-
- /** Append the specified arc to the path as a new contour. If the start of
- the path is different from the path's current last point, then an
- 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
- treated mod 360.
- @param forceMoveTo If true, always begin a new contour with the arc
- */
- void arcTo(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle,
- bool forceMoveTo);
-
- /** Append a line and arc to the current path. This is the same as the
- PostScript call "arct".
- */
- void arcTo(SkScalar x1, SkScalar y1, SkScalar x2, SkScalar y2,
- SkScalar radius);
-
- /** Append a line and arc to the current path. This is the same as the
- PostScript call "arct".
- */
- void arcTo(const SkPoint p1, const SkPoint p2, SkScalar radius) {
- this->arcTo(p1.fX, p1.fY, p2.fX, p2.fY, radius);
- }
-
- /** Close the current contour. If the current point is not equal to the
- first point of the contour, a line segment is automatically added.
- */
- void close();
-
- enum Direction {
- /** clockwise direction for adding closed contours */
- kCW_Direction,
- /** counter-clockwise direction for adding closed contours */
- kCCW_Direction
- };
-
- /** Add a closed rectangle contour to the path
- @param rect The rectangle to add as a closed contour to the path
- @param dir The direction to wind the rectangle's contour
- */
- void addRect(const SkRect& rect, Direction dir = kCW_Direction);
-
- /** Add a closed rectangle contour to the path
-
- @param left The left side of a rectangle to add as a closed contour
- to the path
- @param top The top of a rectangle to add as a closed contour to the
- path
- @param right The right side of a rectangle to add as a closed contour
- to the path
- @param bottom The bottom of a rectangle to add as a closed contour to
- the path
- @param dir The direction to wind the rectangle's contour
- */
- void addRect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom,
- Direction dir = kCW_Direction);
-
- /** Add a closed oval contour to the path
-
- @param oval The bounding oval to add as a closed contour to the path
- @param dir The direction to wind the oval's contour
- */
- void addOval(const SkRect& oval, Direction dir = kCW_Direction);
-
- /** Add a closed circle contour to the path
-
- @param x The x-coordinate of the center of a circle to add as a
- closed contour to the path
- @param y The y-coordinate of the center of a circle to add as a
- closed contour to the path
- @param radius The radius of a circle to add as a closed contour to the
- path
- @param dir The direction to wind the circle's contour
- */
- void addCircle(SkScalar x, SkScalar y, SkScalar radius,
- 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
- */
- void addArc(const SkRect& oval, SkScalar startAngle, SkScalar sweepAngle);
-
- /** Add a closed round-rectangle contour to the path
- @param rect The bounds of a round-rectangle to add as a closed contour
- @param rx The x-radius of the rounded corners on the round-rectangle
- @param ry The y-radius of the rounded corners on the round-rectangle
- @param dir The direction to wind the round-rectangle's contour
- */
- void addRoundRect(const SkRect& rect, SkScalar rx, SkScalar ry,
- Direction dir = kCW_Direction);
-
- /** Add a closed round-rectangle contour to the path. Each corner receives
- two radius values [X, Y]. The corners are ordered top-left, top-right,
- bottom-right, bottom-left.
- @param rect The bounds of a round-rectangle to add as a closed contour
- @param radii Array of 8 scalars, 4 [X,Y] pairs for each corner
- @param dir The direction to wind the round-rectangle's contour
- */
- void addRoundRect(const SkRect& rect, const SkScalar radii[],
- Direction dir = kCW_Direction);
-
- /** Add a copy of src to the path, offset by (dx,dy)
- @param src The path to add as a new contour
- @param dx The amount to translate the path in X as it is added
- @param dx The amount to translate the path in Y as it is added
- */
- void addPath(const SkPath& src, SkScalar dx, SkScalar dy);
-
- /** Add a copy of src to the path
- */
- void addPath(const SkPath& src) {
- SkMatrix m;
- m.reset();
- this->addPath(src, m);
- }
-
- /** Add a copy of src to the path, transformed by matrix
- @param src The path to add as a new contour
- */
- void addPath(const SkPath& src, const SkMatrix& matrix);
-
- /** 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 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
- */
- void offset(SkScalar dx, SkScalar dy) {
- this->offset(dx, dy, this);
- }
-
- /** 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
- */
- void transform(const SkMatrix& matrix, SkPath* dst) const;
-
- /** Transform the points in this path by matrix
-
- @param matrix The matrix to apply to the path
- */
- void transform(const SkMatrix& matrix) {
- this->transform(matrix, this);
- }
-
- /** Return the last point on the path. If no points have been added, (0,0)
- is returned.
-
- @param lastPt The last point on the path is returned here
- */
- void 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
- */
- void setLastPt(SkScalar x, SkScalar y);
-
- /** Set the last point on the path. If no points have been added, moveTo(p)
- is automatically called.
-
- @param p The new location for the last point
- */
- void setLastPt(const SkPoint& p) {
- this->setLastPt(p.fX, p.fY);
- }
-
- enum Verb {
- kMove_Verb, //!< iter.next returns 1 point
- kLine_Verb, //!< iter.next returns 2 points
- kQuad_Verb, //!< iter.next returns 3 points
- kCubic_Verb, //!< iter.next returns 4 points
- kClose_Verb, //!< iter.next returns 1 point (the last point)
- kDone_Verb //!< iter.next returns 0 points
- };
-
- /** Iterate through all of the segments (lines, quadratics, cubics) of
- each contours in a path.
- */
- class Iter {
- public:
- Iter();
- Iter(const SkPath&, bool forceClose);
-
- void setPath(const SkPath&, bool forceClose);
-
- /** 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
- @return The verb for the current segment
- */
- Verb next(SkPoint pts[4]);
-
- /** If next() returns kLine_Verb, then this query returns true if the
- line was the result of a close() command (i.e. the end point is the
- initial moveto for this contour). If next() returned a different
- verb, this returns an undefined value.
-
- @return If the last call to next() returned kLine_Verb, return true
- if it was the result of an explicit close command.
- */
- bool isCloseLine() const { return SkToBool(fCloseLine); }
-
- /** Returns true if the current contour is closed (has a kClose_Verb)
- @return true if the current contour is closed (has a kClose_Verb)
- */
- bool isClosedContour() const;
-
- private:
- const SkPoint* fPts;
- const uint8_t* fVerbs;
- const uint8_t* fVerbStop;
- SkPoint fMoveTo;
- SkPoint fLastPt;
- SkBool8 fForceClose;
- SkBool8 fNeedClose;
- SkBool8 fNeedMoveTo;
- SkBool8 fCloseLine;
-
- bool cons_moveTo(SkPoint pts[1]);
- Verb autoClose(SkPoint pts[2]);
- };
-
-#ifdef SK_DEBUG
- /** @cond UNIT_TEST */
- void dump(bool forceClose, const char title[] = NULL) const;
- static void UnitTest();
- /** @endcond */
-#endif
-
- void flatten(SkFlattenableWriteBuffer&) const;
- void unflatten(SkFlattenableReadBuffer&);
-
- /** Subdivide the path so that no segment is longer that dist.
- If bendLines is true, then turn all line segments into curves.
- If dst == null, then the original path itself is modified (not const!)
- */
- void subdivide(SkScalar dist, bool bendLines, SkPath* dst = NULL) const;
-
- /** Return an SVG-compatible string of the path.
- */
- void toString(SkString*) const;
-
- SkDEBUGCODE(void validate() const;)
-
-private:
- SkTDArray<SkPoint> fPts;
- SkTDArray<uint8_t> fVerbs;
- mutable SkRect fFastBounds;
- mutable uint8_t fFastBoundsIsDirty;
- uint8_t fFillType;
-
- friend class Iter;
- void cons_moveto();
-
- friend class SkPathStroker;
- /* Append the first contour of path, ignoring path's initial point. If no
- moveTo() call has been made for this contour, the first point is
- automatically set to (0,0).
- */
- void pathTo(const SkPath& path);
-
- /* Append, in reverse order, the first contour of path, ignoring path's
- last point. If no moveTo() call has been made for this contour, the
- first point is automatically set to (0,0).
- */
- void reversePathTo(const SkPath&);
-
- friend const SkPoint* sk_get_path_points(const SkPath&, int index);
- friend class SkAutoPathBoundsUpdate;
-};
-
-#endif
-
diff --git a/skia/include/SkPathEffect.h b/skia/include/SkPathEffect.h
deleted file mode 100644
index f97adb7..0000000
--- a/skia/include/SkPathEffect.h
+++ /dev/null
@@ -1,144 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPathEffect_DEFINED
-#define SkPathEffect_DEFINED
-
-#include "SkFlattenable.h"
-
-class SkPath;
-
-/** \class SkPathEffect
-
- SkPathEffect is the base class for objects in the SkPaint that affect
- the geometry of a drawing primitive before it is transformed by the
- canvas' matrix and drawn.
-
- Dashing is implemented as a subclass of SkPathEffect.
-*/
-class SkPathEffect : public SkFlattenable {
-public:
- // This method is not exported to java.
- SkPathEffect() {}
-
- /** Given a src path and a width value, return true if the patheffect
- has produced a new path (dst) and a new width value. If false is returned,
- ignore dst and width.
- On input, width >= 0 means the src should be stroked
- On output, width >= 0 means the dst should be stroked
- */
- virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width) = 0;
-
-private:
- // illegal
- SkPathEffect(const SkPathEffect&);
- SkPathEffect& operator=(const SkPathEffect&);
-};
-
-/** \class SkPairPathEffect
-
- Common baseclass for Compose and Sum. This subclass manages two pathEffects,
- including flattening them. It does nothing in filterPath, and is only useful
- for managing the lifetimes of its two arguments.
-*/
-class SkPairPathEffect : public SkPathEffect {
-public:
- SkPairPathEffect(SkPathEffect* pe0, SkPathEffect* pe1);
- virtual ~SkPairPathEffect();
-
-protected:
- SkPairPathEffect(SkFlattenableReadBuffer&);
- virtual void flatten(SkFlattenableWriteBuffer&);
- // these are visible to our subclasses
- SkPathEffect* fPE0, *fPE1;
-
-private:
- typedef SkPathEffect INHERITED;
-};
-
-/** \class SkComposePathEffect
-
- This subclass of SkPathEffect composes its two arguments, to create
- a compound pathEffect.
-*/
-class SkComposePathEffect : public SkPairPathEffect {
-public:
- /** Construct a pathEffect whose effect is to apply first the inner pathEffect
- and the the outer pathEffect (e.g. outer(inner(path)))
- The reference counts for outer and inner are both incremented in the constructor,
- and decremented in the destructor.
- */
- SkComposePathEffect(SkPathEffect* outer, SkPathEffect* inner)
- : INHERITED(outer, inner) {}
-
- // overrides
-
- // This method is not exported to java.
- virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
-
-protected:
- virtual Factory getFactory() { return CreateProc; }
-
-private:
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return SkNEW_ARGS(SkComposePathEffect, (buffer));
- }
- SkComposePathEffect(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
-
- // illegal
- SkComposePathEffect(const SkComposePathEffect&);
- SkComposePathEffect& operator=(const SkComposePathEffect&);
-
- typedef SkPairPathEffect INHERITED;
-};
-
-/** \class SkSumPathEffect
-
- This subclass of SkPathEffect applies two pathEffects, one after the other.
- Its filterPath() returns true if either of the effects succeeded.
-*/
-class SkSumPathEffect : public SkPairPathEffect {
-public:
- /** Construct a pathEffect whose effect is to apply two effects, in sequence.
- (e.g. first(path) + second(path))
- The reference counts for first and second are both incremented in the constructor,
- and decremented in the destructor.
- */
- SkSumPathEffect(SkPathEffect* first, SkPathEffect* second)
- : INHERITED(first, second) {}
-
- // overrides
- // This method is not exported to java.
- virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
-
-protected:
- virtual Factory getFactory() { return CreateProc; }
-
-private:
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return SkNEW_ARGS(SkSumPathEffect, (buffer));
- }
- SkSumPathEffect(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
-
- // illegal
- SkSumPathEffect(const SkSumPathEffect&);
- SkSumPathEffect& operator=(const SkSumPathEffect&);
-
- typedef SkPairPathEffect INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkPathMeasure.h b/skia/include/SkPathMeasure.h
deleted file mode 100644
index 5ab97ca..0000000
--- a/skia/include/SkPathMeasure.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPathMeasure_DEFINED
-#define SkPathMeasure_DEFINED
-
-#include "SkPath.h"
-#include "SkTDArray.h"
-
-class SkPathMeasure : SkNoncopyable {
-public:
- SkPathMeasure();
- /** Initialize the pathmeasure with the specified path. The path must remain valid
- for the lifetime of the measure object, or until setPath() is called with
- a different path (or null), since the measure object keeps a pointer to the
- path object (does not copy its data).
- */
- SkPathMeasure(const SkPath& path, bool forceClosed);
- ~SkPathMeasure();
-
- /** Reset the pathmeasure with the specified path. The path must remain valid
- for the lifetime of the measure object, or until setPath() is called with
- a different path (or null), since the measure object keeps a pointer to the
- path object (does not copy its data).
- */
- void setPath(const SkPath*, bool forceClosed);
-
- /** Return the total length of the current contour, or 0 if no path
- is associated (e.g. resetPath(null))
- */
- SkScalar getLength();
-
- /** Pins distance to 0 <= distance <= getLength(), and then computes
- the corresponding position and tangent.
- Returns false if there is no path, or a zero-length path was specified, in which case
- position and tangent are unchanged.
- */
- bool getPosTan(SkScalar distance, SkPoint* position, SkVector* tangent);
-
- enum MatrixFlags {
- kGetPosition_MatrixFlag = 0x01,
- kGetTangent_MatrixFlag = 0x02,
- kGetPosAndTan_MatrixFlag = kGetPosition_MatrixFlag | kGetTangent_MatrixFlag
- };
- /** Pins distance to 0 <= distance <= getLength(), and then computes
- the corresponding matrix (by calling getPosTan).
- Returns false if there is no path, or a zero-length path was specified, in which case
- matrix is unchanged.
- */
- bool getMatrix(SkScalar distance, SkMatrix* matrix, MatrixFlags flags = kGetPosAndTan_MatrixFlag);
- /** Given a start and stop distance, return in dst the intervening segment(s).
- If the segment is zero-length, return false, else return true.
- startD and stopD are pinned to legal values (0..getLength()). If startD <= stopD
- then return false (and leave dst untouched).
- Begin the segment with a moveTo if startWithMoveTo is true
- */
- bool getSegment(SkScalar startD, SkScalar stopD, SkPath* dst, bool startWithMoveTo);
-
- /** Return true if the current contour is closed()
- */
- bool isClosed();
-
- /** Move to the next contour in the path. Return true if one exists, or false if
- we're done with the path.
- */
- bool nextContour();
-
-#ifdef SK_DEBUG
- void dump();
- static void UnitTest();
-#endif
-
-private:
- SkPath::Iter fIter;
- const SkPath* fPath;
- SkScalar fLength; // relative to the current contour
- int fFirstPtIndex; // relative to the current contour
- bool fIsClosed; // relative to the current contour
- bool fForceClosed;
-
- struct Segment {
- SkScalar fDistance; // total distance up to this point
- unsigned fPtIndex : 15;
- unsigned fTValue : 15;
- unsigned fType : 2;
-
- SkScalar getScalarT() const;
- };
- SkTDArray<Segment> fSegments;
-
- static const Segment* NextSegment(const Segment*);
-
- void buildSegments();
- SkScalar compute_quad_segs(const SkPoint pts[3], SkScalar distance,
- int mint, int maxt, int ptIndex);
- SkScalar compute_cubic_segs(const SkPoint pts[3], SkScalar distance,
- int mint, int maxt, int ptIndex);
- const Segment* distanceToSegment(SkScalar distance, SkScalar* t);
-};
-
-#endif
-
diff --git a/skia/include/SkPicture.h b/skia/include/SkPicture.h
deleted file mode 100644
index fa614c9..0000000
--- a/skia/include/SkPicture.h
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPicture_DEFINED
-#define SkPicture_DEFINED
-
-#include "SkRefCnt.h"
-
-class SkCanvas;
-class SkPicturePlayback;
-class SkPictureRecord;
-class SkStream;
-class SkWStream;
-
-/** \class SkPicture
-
- The SkPicture class records the drawing commands made to a canvas, to
- be played back at a later time.
-*/
-class SkPicture : public SkRefCnt {
-public:
- /** The constructor prepares the picture to record.
- @param width the width of the virtual device the picture records.
- @param height the height of the virtual device the picture records.
- */
- SkPicture();
- /** Make a copy of the contents of src. If src records more drawing after
- this call, those elements will not appear in this picture.
- */
- SkPicture(const SkPicture& src);
- explicit SkPicture(SkStream*);
- virtual ~SkPicture();
-
- /**
- * Swap the contents of the two pictures. Guaranteed to succeed.
- */
- void swap(SkPicture& other);
-
- /** Returns the canvas that records the drawing commands.
- @return the picture canvas.
- */
- SkCanvas* beginRecording(int width, int height);
- /** Returns the recording canvas if one is active, or NULL if recording is
- not active. This does not alter the refcnt on the canvas (if present).
- */
- SkCanvas* getRecordingCanvas() const;
- /** Signal that the caller is done recording. This invalidates the canvas
- returned by beginRecording/getRecordingCanvas, and prepares the picture
- for drawing. Note: this happens implicitly the first time the picture
- is drawn.
- */
- void endRecording();
-
- /** Replays the drawing commands on the specified canvas. This internally
- calls endRecording() if that has not already been called.
- @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.
- @return the width of the picture's recording canvas
- */
- int width() const { return fWidth; }
-
- /** Return the height 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.
- @return the height of the picture's recording canvas
- */
- int height() const { return fHeight; }
-
- void serialize(SkWStream*) const;
-
- /** 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.
- */
- void abortPlayback();
-
-private:
- int fWidth, fHeight;
- SkPictureRecord* fRecord;
- SkPicturePlayback* fPlayback;
-
- friend class SkFlatPicture;
- friend class SkPicturePlayback;
-};
-
-class SkAutoPictureRecord : SkNoncopyable {
-public:
- SkAutoPictureRecord(SkPicture* pict, int width, int height) {
- fPicture = pict;
- fCanvas = pict->beginRecording(width, height);
- }
- ~SkAutoPictureRecord() {
- fPicture->endRecording();
- }
-
- /** Return the canvas to draw into for recording into the picture.
- */
- SkCanvas* getRecordingCanvas() const { return fCanvas; }
-
-private:
- SkPicture* fPicture;
- SkCanvas* fCanvas;
-};
-
-
-#endif
diff --git a/skia/include/SkPixelRef.h b/skia/include/SkPixelRef.h
deleted file mode 100644
index 0ddfedc..0000000
--- a/skia/include/SkPixelRef.h
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPixelRef_DEFINED
-#define SkPixelRef_DEFINED
-
-#include "SkRefCnt.h"
-#include "SkString.h"
-
-class SkColorTable;
-class SkMutex;
-class SkFlattenableReadBuffer;
-class SkFlattenableWriteBuffer;
-
-/** \class SkPixelRef
-
- This class is the smart container for pixel memory, and is used with
- SkBitmap. A pixelref is installed into a bitmap, and then the bitmap can
- access the actual pixel memory by calling lockPixels/unlockPixels.
-
- This class can be shared/accessed between multiple threads.
-*/
-class SkPixelRef : public SkRefCnt {
-public:
- explicit SkPixelRef(SkMutex* mutex = NULL);
-
- /** Return the pixel memory returned from lockPixels, or null if the
- lockCount is 0.
- */
- void* pixels() const { return fPixels; }
-
- /** Return the current colorTable (if any) if pixels are locked, or null.
- */
- SkColorTable* colorTable() const { return fColorTable; }
-
- /** Return the current lockcount (defaults to 0)
- */
- int getLockCount() const { return fLockCount; }
-
- /** Call to access the pixel memory, which is returned. Balance with a call
- to unlockPixels().
- */
- void lockPixels();
- /** Call to balanace a previous call to lockPixels(). Returns the pixels
- (or null) after the unlock. NOTE: lock calls can be nested, but the
- matching number of unlock calls must be made in order to free the
- memory (if the subclass implements caching/deferred-decoding.)
- */
- void unlockPixels();
-
- /** Returns a non-zero, unique value corresponding to the pixels in this
- pixelref. Each time the pixels are changed (and notifyPixelsChanged is
- called), a different generation ID will be returned.
- */
- uint32_t getGenerationID() const;
-
- /** Call this if you have changed the contents of the pixels. This will in-
- turn cause a different generation ID value to be returned from
- getGenerationID().
- */
- void notifyPixelsChanged();
-
- /** Returns true if this pixelref is marked as immutable, meaning that the
- contents of its pixels will not change for the lifetime of the pixelref.
- */
- bool isImmutable() const { return fIsImmutable; }
-
- /** Marks this pixelref is immutable, meaning that the contents of its
- pixels will not change for the lifetime of the pixelref. This state can
- be set on a pixelref, but it cannot be cleared once it is set.
- */
- void setImmutable();
-
- /** Return the optional URI string associated with this pixelref. May be
- null.
- */
- const char* getURI() const { return fURI.size() ? fURI.c_str() : NULL; }
-
- /** Assign a URI string to this pixelref. If not null, the string is copied.
- */
- void setURI(const char uri[], size_t len = (size_t)-1) {
- fURI.set(uri, len);
- }
-
- /** Assign a URI string to this pixelref.
- */
- void setURI(const SkString& uri) { fURI = uri; }
-
- // serialization
-
- typedef SkPixelRef* (*Factory)(SkFlattenableReadBuffer&);
-
- virtual Factory getFactory() const { return NULL; }
- virtual void flatten(SkFlattenableWriteBuffer&) const;
-
- static Factory NameToFactory(const char name[]);
- static const char* FactoryToName(Factory);
- static void Register(const char name[], Factory);
-
- class Registrar {
- public:
- Registrar(const char name[], Factory factory) {
- SkPixelRef::Register(name, factory);
- }
- };
-
-protected:
- /** Called when the lockCount goes from 0 to 1. The caller will have already
- acquire a mutex for thread safety, so this method need not do that.
- */
- virtual void* onLockPixels(SkColorTable**) = 0;
- /** Called when the lock count goes from 1 to 0. The caller will have
- already acquire a mutex for thread safety, so this method need not do
- that.
- */
- virtual void onUnlockPixels() = 0;
-
- /** Return the mutex associated with this pixelref. This value is assigned
- in the constructor, and cannot change during the lifetime of the object.
- */
- SkMutex* mutex() const { return fMutex; }
-
- SkPixelRef(SkFlattenableReadBuffer&, SkMutex*);
-
-private:
- SkMutex* fMutex; // must remain in scope for the life of this object
- void* fPixels;
- SkColorTable* fColorTable; // we do not track ownership, subclass does
- int fLockCount;
-
- mutable uint32_t fGenerationID;
-
- SkString fURI;
-
- // can go from false to true, but never from true to false
- bool fIsImmutable;
-};
-
-#endif
diff --git a/skia/include/SkPixelXorXfermode.h b/skia/include/SkPixelXorXfermode.h
deleted file mode 100644
index 369e0e5..0000000
--- a/skia/include/SkPixelXorXfermode.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2007 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPixelXorXfermode_DEFINED
-#define SkPixelXorXfermode_DEFINED
-
-#include "SkXfermode.h"
-
-/** SkPixelXorXfermode implements a simple pixel xor (op ^ src ^ dst).
- This transformation does not follow premultiplied conventions, therefore
- this proc *always* returns an opaque color (alpha == 255). Thus it is
- not really usefull for operating on blended colors.
-*/
-class SkPixelXorXfermode : public SkXfermode {
-public:
- SkPixelXorXfermode(SkColor opColor) : fOpColor(opColor) {}
-
- // override from SkFlattenable
- virtual Factory getFactory();
- virtual void flatten(SkFlattenableWriteBuffer&);
-
-protected:
- // override from SkXfermode
- virtual SkPMColor xferColor(SkPMColor src, SkPMColor dst);
-
-private:
- SkColor fOpColor;
-
- SkPixelXorXfermode(SkFlattenableReadBuffer& rb);
- // our private factory
- static SkFlattenable* Create(SkFlattenableReadBuffer&);
-
- typedef SkXfermode INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkPorterDuff.h b/skia/include/SkPorterDuff.h
deleted file mode 100644
index 44c5477..0000000
--- a/skia/include/SkPorterDuff.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPorterDuff_DEFINED
-#define SkPorterDuff_DEFINED
-
-#include "SkColor.h"
-
-class SkXfermode;
-
-class SkPorterDuff {
-public:
- /** List of predefined xfermodes. In general, the algebra for the modes
- uses the following symbols:
- Sa, Sc - source alpha and color
- Da, Dc - destination alpha and color (before compositing)
- [a, c] - Resulting (alpha, color) values
- For these equations, the colors are in premultiplied state.
- If no xfermode is specified, kSrcOver is assumed.
- */
- enum Mode {
- kClear_Mode, //!< [0, 0]
- kSrc_Mode, //!< [Sa, Sc]
- kDst_Mode, //!< [Da, Dc]
- kSrcOver_Mode, //!< [Sa + Da - Sa*Da, Rc = Sc + (1 - Sa)*Dc]
- kDstOver_Mode, //!< [Sa + Da - Sa*Da, Rc = Dc + (1 - Da)*Sc]
- kSrcIn_Mode, //!< [Sa * Da, Sc * Da]
- kDstIn_Mode, //!< [Sa * Da, Sa * Dc]
- kSrcOut_Mode, //!< [Sa * (1 - Da), Sc * (1 - Da)]
- kDstOut_Mode, //!< [Da * (1 - Sa), Dc * (1 - Sa)]
- kSrcATop_Mode, //!< [Da, Sc * Da + (1 - Sa) * Dc]
- kDstATop_Mode, //!< [Sa, Sa * Dc + Sc * (1 - Da)]
- kXor_Mode, //!< [Sa + Da - 2 * Sa * Da, Sc * (1 - Da) + (1 - Sa) * Dc]
- kDarken_Mode, //!< [Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) + min(Sc, Dc)]
- kLighten_Mode, //!< [Sa + Da - Sa*Da, Sc*(1 - Da) + Dc*(1 - Sa) + max(Sc, Dc)]
- kMultiply_Mode, //!< [Sa * Da, Sc * Dc]
- kScreen_Mode, //!< [Sa + Da - Sa * Da, Sc + Dc - Sc * Dc]
- kAdd_Mode, //!< Saturate(S + D)
-
- kModeCount
- };
- /** 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,
- return false and ignore the mode parameter.
- */
- static bool IsMode(SkXfermode*, Mode* mode);
-};
-
-#endif
-
diff --git a/skia/include/SkProgressBarView.h b/skia/include/SkProgressBarView.h
deleted file mode 100644
index 6341fcb..0000000
--- a/skia/include/SkProgressBarView.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkProgressBarView_DEFINED
-#define SkProgressBarView_DEFINED
-
-#include "SkView.h"
-#include "SkWidgetViews.h"
-#include "SkAnimator.h"
-
-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;
-};
-
-
-
-
-#endif
diff --git a/skia/include/SkPtrRecorder.h b/skia/include/SkPtrRecorder.h
deleted file mode 100644
index ff1e14d..0000000
--- a/skia/include/SkPtrRecorder.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPtrRecorder_DEFINED
-#define SkPtrRecorder_DEFINED
-
-#include "SkRefCnt.h"
-#include "SkTDArray.h"
-
-class SkPtrRecorder : public SkRefCnt {
-public:
- uint32_t recordPtr(void*);
-
- int count() const { return fList.count(); }
- void getPtrs(void* array[]) const;
-
- void reset();
-
-protected:
- virtual void incPtr(void* ptr) {}
- virtual void decPtr(void* ptr) {}
-
-private:
- struct Pair {
- void* fPtr;
- uint32_t fIndex;
- };
- SkTDArray<Pair> fList;
-
- static int Cmp(const Pair& a, const Pair& b);
-
- typedef SkRefCnt INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkRasterizer.h b/skia/include/SkRasterizer.h
deleted file mode 100644
index d81e613..0000000
--- a/skia/include/SkRasterizer.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkRasterizer_DEFINED
-#define SkRasterizer_DEFINED
-
-#include "SkFlattenable.h"
-#include "SkMask.h"
-
-class SkMaskFilter;
-class SkMatrix;
-class SkPath;
-struct SkIRect;
-
-class SkRasterizer : public SkFlattenable {
-public:
- SkRasterizer() {}
-
- /** Turn the path into a mask, respecting the specified local->device matrix.
- */
- bool rasterize(const SkPath& path, const SkMatrix& matrix,
- const SkIRect* clipBounds, SkMaskFilter* filter,
- SkMask* mask, SkMask::CreateMode mode);
-
- virtual void flatten(SkFlattenableWriteBuffer& ) {}
-protected:
- SkRasterizer(SkFlattenableReadBuffer&);
-
- virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix,
- const SkIRect* clipBounds,
- SkMask* mask, SkMask::CreateMode mode);
-
-private:
- typedef SkFlattenable INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkReader32.h b/skia/include/SkReader32.h
deleted file mode 100644
index 1c72a87..0000000
--- a/skia/include/SkReader32.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkReader32_DEFINED
-#define SkReader32_DEFINED
-
-#include "SkTypes.h"
-
-#include "SkScalar.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-
-class SkReader32 : SkNoncopyable {
-public:
- SkReader32() : fCurr(NULL), fStop(NULL), fBase(NULL) {}
- SkReader32(const void* data, size_t size) {
- this->setMemory(data, size);
- }
-
- 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 fStop - fBase; }
- uint32_t offset() const { return fCurr - fBase; }
- bool eof() const { return fCurr >= fStop; }
- const void* base() const { return fBase; }
- const void* peek() const { return fCurr; }
- void rewind() { fCurr = fBase; }
-
- void setOffset(size_t offset) {
- SkASSERT(SkAlign4(offset) == offset);
- 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;
- fCurr += sizeof(value);
- SkASSERT(fCurr <= fStop);
- return value;
- }
-
- SkScalar readScalar() {
- SkASSERT(ptr_align_4(fCurr));
- SkScalar value = *(const SkScalar*)fCurr;
- fCurr += sizeof(value);
- SkASSERT(fCurr <= fStop);
- return value;
- }
-
- const SkPoint* skipPoint() {
- return (const SkPoint*)this->skip(sizeof(SkPoint));
- }
-
- const SkRect* skipRect() {
- return (const SkRect*)this->skip(sizeof(SkRect));
- }
-
- const void* skip(size_t size) {
- SkASSERT(ptr_align_4(fCurr));
- const void* addr = fCurr;
- fCurr += SkAlign4(size);
- SkASSERT(fCurr <= fStop);
- return addr;
- }
-
- void read(void* dst, size_t size) {
- SkASSERT(dst != NULL);
- SkASSERT(ptr_align_4(fCurr));
- memcpy(dst, fCurr, size);
- 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(); }
- uint32_t readU32() { return this->readInt(); }
-
-private:
- // these are always 4-byte aligned
- 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;
- }
-#endif
-};
-
-#endif
diff --git a/skia/include/SkRefCnt.h b/skia/include/SkRefCnt.h
deleted file mode 100644
index adb59dd..0000000
--- a/skia/include/SkRefCnt.h
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkRefCnt_DEFINED
-#define SkRefCnt_DEFINED
-
-#include "SkThread.h"
-
-/** \class SkRefCnt
-
- SkRefCnt is the base class for objects that may be shared by multiple
- objects. When a new owner wants a reference, it calls ref(). When an owner
- wants to release its reference, it calls unref(). When the shared object's
- reference count goes to zero as the result of an unref() call, its (virtual)
- destructor is called. It is an error for the destructor to be called
- explicitly (or via the object going out of scope on the stack or calling
- delete) if getRefCnt() > 1.
-*/
-class SkRefCnt : SkNoncopyable {
-public:
- /** Default construct, initializing the reference count to 1.
- */
- SkRefCnt() : fRefCnt(1) {}
-
- /** Destruct, asserting that the reference count is 1.
- */
- virtual ~SkRefCnt() { SkASSERT(fRefCnt == 1); }
-
- /** Return the reference count.
- */
- int32_t getRefCnt() const { return fRefCnt; }
-
- /** Increment the reference count. Must be balanced by a call to unref().
- */
- void ref() const {
- SkASSERT(fRefCnt > 0);
- sk_atomic_inc(&fRefCnt);
- }
-
- /** Decrement the reference count. If the reference count is 1 before the
- decrement, then call delete on the object. Note that if this is the
- case, then the object needs to have been allocated via new, and not on
- the stack.
- */
- void unref() const {
- SkASSERT(fRefCnt > 0);
- if (sk_atomic_dec(&fRefCnt) == 1) {
- fRefCnt = 1; // so our destructor won't complain
- SkDELETE(this);
- }
- }
-
- /** Helper version of ref(), that first checks to see if this is not null.
- If this is null, then do nothing.
- */
- void safeRef() const {
- if (this) {
- this->ref();
- }
- }
-
- /** Helper version of unref(), that first checks to see if this is not null.
- If this is null, then do nothing.
- */
- void safeUnref() const {
- if (this) {
- this->unref();
- }
- }
-
-private:
- mutable int32_t fRefCnt;
-};
-
-/** \class SkAutoUnref
-
- SkAutoUnref is a stack-helper class that will automatically call unref() on
- the object it points to when the SkAutoUnref object goes out of scope.
- If obj is null, do nothing.
-*/
-class SkAutoUnref : SkNoncopyable {
-public:
- SkAutoUnref(SkRefCnt* obj) : fObj(obj) {}
- ~SkAutoUnref();
-
- SkRefCnt* get() const { return fObj; }
-
- /** If the hosted object is null, do nothing and return false, else call
- ref() on it and return true
- */
- bool ref();
-
- /** If the hosted object is null, do nothing and return false, else call
- unref() on it, set its reference to null, and return true
- */
- bool unref();
-
- /** If the hosted object is null, do nothing and return NULL, else call
- unref() on it, set its reference to null, and return the object
- */
- SkRefCnt* detach();
-
-private:
- SkRefCnt* fObj;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-/** Helper macro to safely assign one SkRefCnt[TS]* to another, checking for
- null in on each side of the assignment, and ensuring that ref() is called
- before unref(), in case the two pointers point to the same object.
-*/
-#define SkRefCnt_SafeAssign(dst, src) \
- do { \
- if (src) src->ref(); \
- if (dst) dst->unref(); \
- dst = src; \
- } while (0)
-
-#endif
-
diff --git a/skia/include/SkSVGAttribute.h b/skia/include/SkSVGAttribute.h
deleted file mode 100644
index 810d11c..0000000
--- a/skia/include/SkSVGAttribute.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkSVGAttribute_DEFINED
-#define SkSVGAttribute_DEFINED
-
-#include "SkTypes.h"
-
-struct SkSVGAttribute {
- const char* fName;
-#ifdef SK_DEBUG
- size_t fOffset;
-#endif
-};
-
-#ifndef SK_OFFSETOF
-#define SK_OFFSETOF(a, b) (((size_t) (&(((a*) 1)->b)))-1)
-#endif
-
-#ifdef SK_DEBUG
-#define SVG_ATTRIBUTE(attr) { #attr, SK_OFFSETOF(BASE_CLASS, f_##attr) }
-#define SVG_LITERAL_ATTRIBUTE(svgAttr, cAttr) { #svgAttr, SK_OFFSETOF(BASE_CLASS, cAttr) }
-#else
-#define SVG_ATTRIBUTE(attr) { #attr }
-#define SVG_LITERAL_ATTRIBUTE(svgAttr, cAttr) { #svgAttr }
-#endif
-
-#define SVG_ADD_ATTRIBUTE(attr) \
- if (f_##attr.size() > 0) \
- parser._addAttributeLen(#attr, f_##attr.c_str(), f_##attr.size())
-
-#define SVG_ADD_ATTRIBUTE_ALIAS(attr, alias) \
- if (f_##alias.size() > 0) \
- parser._addAttributeLen(#attr, f_##alias.c_str(), f_##alias.size())
-
-#endif // SkSVGAttribute_DEFINED
diff --git a/skia/include/SkSVGBase.h b/skia/include/SkSVGBase.h
deleted file mode 100644
index 4d24aed..0000000
--- a/skia/include/SkSVGBase.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkSVGBase_DEFINED
-#define SkSVGBase_DEFINED
-
-#include "SkSVGAttribute.h"
-
-class SkSVGParser;
-
-class SkSVGBase {
-public:
- virtual ~SkSVGBase();
- virtual void addAttribute(SkSVGParser& parser, int attrIndex,
- const char* attrValue, size_t attrLength);
- virtual int getAttributes(const SkSVGAttribute** attrPtr) = 0;
-};
-
-#endif // SkSVGBase_DEFINEDes(const SkSVGAttribute** attrPtr) = 0;
-
diff --git a/skia/include/SkSVGPaintState.h b/skia/include/SkSVGPaintState.h
deleted file mode 100644
index f3f74e1..0000000
--- a/skia/include/SkSVGPaintState.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkSVGPaintState_DEFINED
-#define SkSVGPaintState_DEFINED
-
-#include "SkSVGBase.h"
-#include "SkString.h"
-
-class SkSVGPaint : public SkSVGBase {
-public:
- enum Field {
- kInitial = -1,
- kClipPath,
- kClipRule,
- kEnableBackground,
- kFill,
- kFillRule,
- kFilter,
- kFontFamily,
- kFontSize,
- kLetterSpacing,
- kMask,
- kOpacity,
- kStopColor,
- kStopOpacity,
- kStroke,
- kStroke_Dasharray,
- kStroke_Linecap,
- kStroke_Linejoin,
- kStroke_Miterlimit,
- kStroke_Width,
- kStyle,
- kTransform,
- kTerminal
- };
-
- SkSVGPaint();
- 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);
- static void Push(SkSVGPaint** head, SkSVGPaint* add);
- static void Pop(SkSVGPaint** head);
- SkString* operator[](int index);
- SkString fInitial;
- SkString f_clipPath;
- SkString f_clipRule;
- SkString f_enableBackground;
- SkString f_fill;
- SkString f_fillRule;
- SkString f_filter;
- SkString f_fontFamily;
- SkString f_fontSize;
- SkString f_letterSpacing;
- SkString f_mask;
- SkString f_opacity;
- SkString f_stopColor;
- SkString f_stopOpacity;
- SkString f_stroke;
- SkString f_strokeDasharray;
- SkString f_strokeLinecap;
- SkString f_strokeLinejoin;
- SkString f_strokeMiterlimit;
- SkString f_strokeWidth;
- SkString f_style; // unused, but allows array access to the rest
- SkString f_transform;
-#ifdef SK_DEBUG
- SkString fTerminal;
-#endif
- SkString fTransformID;
- static SkSVGAttribute gAttributes[];
- static const int kAttributesSize;
-private:
- void setSave(SkSVGParser& );
- bool writeChangedAttributes(SkSVGParser& , SkSVGPaint& , bool* changed);
- bool writeChangedElements(SkSVGParser& , SkSVGPaint& , bool* changed);
- SkSVGPaint* fNext;
- friend class SkSVGParser;
- typedef SkSVGPaint BASE_CLASS;
-};
-
-#endif // SkSVGPaintState_DEFINED
diff --git a/skia/include/SkSVGParser.h b/skia/include/SkSVGParser.h
deleted file mode 100644
index 86ae4c2..0000000
--- a/skia/include/SkSVGParser.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkSVGParser_DEFINED
-#define SkSVGParser_DEFINED
-
-#include "SkMatrix.h"
-#include "SkTDict.h"
-#include "SkTDStack.h"
-#include "SkSVGPaintState.h"
-#include "SkSVGTypes.h"
-#include "SkStream.h"
-#include "SkString.h"
-#include "SkXMLParser.h"
-#include "SkXMLWriter.h"
-
-class SkSVGBase;
-class SkSVGElement;
-
-class SkSVGParser : public SkXMLParser {
-public:
- SkSVGParser();
- virtual ~SkSVGParser();
- void _addAttribute(const char* attrName, const char* attrValue) {
- fXMLWriter.addAttribute(attrName, attrValue); }
- void _addAttribute(const char* attrName, SkString& attrValue) {
- fXMLWriter.addAttribute(attrName, attrValue.c_str()); }
- void _addAttributeLen(const char* attrName, const char* attrValue, size_t len) {
- fXMLWriter.addAttributeLen(attrName, attrValue, len); }
- void _endElement() { fXMLWriter.endElement(); }
- int findAttribute(SkSVGBase* , const char* attrValue, size_t len, bool isPaint);
- const char* getFinal();
- SkTDict<SkSVGElement*>& getIDs() { return fIDs; }
- SkString& getPaintLast(SkSVGPaint::Field field);
- void _startElement(const char name[]) { fXMLWriter.startElement(name); }
- void translate(SkSVGElement*, bool isDef);
- void translateMatrix(SkString& , SkString* id);
- static void ConvertToArray(SkString& vals);
-protected:
- virtual bool onAddAttribute(const char name[], const char value[]);
- bool onAddAttributeLen(const char name[], const char value[], size_t len);
- virtual bool onEndElement(const char elem[]);
- virtual bool onStartElement(const char elem[]);
- bool onStartElementLen(const char elem[], size_t len);
- virtual bool onText(const char text[], int len);
-private:
- bool isStrokeAndFill(SkSVGPaint** stroke, SkSVGPaint** fill);
- static SkSVGElement* CreateElement(SkSVGTypes type, SkSVGElement* parent);
- static void Delete(SkTDArray<SkSVGElement*>& fChildren);
- static SkSVGTypes GetType(const char name[], size_t len);
- SkSVGPaint* fHead;
- SkSVGPaint fEmptyPaint;
- SkSVGPaint fLastFlush;
- SkString fLastColor;
- SkMatrix fLastTransform;
- SkTDArray<SkSVGElement*> fChildren;
- SkTDict<SkSVGElement*> fIDs;
- SkTDArray<SkSVGElement*> fParents;
- SkDynamicMemoryWStream fStream;
- SkXMLStreamWriter fXMLWriter;
- SkSVGElement* fCurrElement;
- SkBool8 fInSVG;
- SkBool8 fSuppressPaint;
- friend class SkSVGPaint;
- friend class SkSVGGradient;
-};
-
-#endif // SkSVGParser_DEFINED
diff --git a/skia/include/SkSVGTypes.h b/skia/include/SkSVGTypes.h
deleted file mode 100644
index 38d63ce..0000000
--- a/skia/include/SkSVGTypes.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkSVGTypes_DEFINED
-#define SkSVGTypes_DEFINED
-
-enum SkSVGTypes {
- SkSVGType_Circle,
- SkSVGType_ClipPath,
- SkSVGType_Defs,
- SkSVGType_Ellipse,
- SkSVGType_FeColorMatrix,
- SkSVGType_Filter,
- SkSVGType_G,
- SkSVGType_Image,
- SkSVGType_Line,
- SkSVGType_LinearGradient,
- SkSVGType_Mask,
- SkSVGType_Metadata,
- SkSVGType_Path,
- SkSVGType_Polygon,
- SkSVGType_Polyline,
- SkSVGType_RadialGradient,
- SkSVGType_Rect,
- SkSVGType_SVG,
- SkSVGType_Stop,
- SkSVGType_Symbol,
- SkSVGType_Text,
- SkSVGType_Tspan,
- SkSVGType_Use
-};
-
-#endif // SkSVGTypes_DEFINED
diff --git a/skia/include/SkScalerContext.h b/skia/include/SkScalerContext.h
deleted file mode 100644
index df846f2..0000000
--- a/skia/include/SkScalerContext.h
+++ /dev/null
@@ -1,231 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkScalerContext_DEFINED
-#define SkScalerContext_DEFINED
-
-#include "SkMask.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-#include "SkPath.h"
-#include "SkPoint.h"
-
-class SkDescriptor;
-class SkMaskFilter;
-class SkPathEffect;
-class SkRasterizer;
-
-// needs to be != to any valid SkMask::Format
-#define MASK_FORMAT_JUST_ADVANCE (0xFF)
-
-struct SkGlyph {
- void* fImage;
- SkPath* fPath;
- SkFixed fAdvanceX, fAdvanceY;
-
- uint32_t fID;
- uint16_t fWidth, fHeight;
- int16_t fTop, fLeft;
-
- uint8_t fMaskFormat;
- int8_t fRsbDelta, fLsbDelta; // used by auto-kerning
-
- unsigned rowBytes() const {
- unsigned rb = fWidth;
- if (SkMask::kBW_Format == fMaskFormat) {
- rb = (rb + 7) >> 3;
- } else {
- rb = SkAlign4(rb);
- }
- return rb;
- }
-
- bool isJustAdvance() const {
- return MASK_FORMAT_JUST_ADVANCE == fMaskFormat;
- }
-
- bool isFullMetrics() const {
- return MASK_FORMAT_JUST_ADVANCE != fMaskFormat;
- }
-
- uint16_t getGlyphID() const {
- return ID2Code(fID);
- }
-
- unsigned getGlyphID(unsigned baseGlyphCount) const {
- unsigned code = ID2Code(fID);
- SkASSERT(code >= baseGlyphCount);
- return code - baseGlyphCount;
- }
-
- unsigned getSubX() const {
- return ID2SubX(fID);
- }
-
- SkFixed getSubXFixed() const {
- return SubToFixed(ID2SubX(fID));
- }
-
- SkFixed getSubYFixed() const {
- return SubToFixed(ID2SubY(fID));
- }
-
- size_t computeImageSize() const;
-
- /** Call this to set all of the metrics fields to 0 (e.g. if the scaler
- encounters an error measuring a glyph). Note: this does not alter the
- fImage, fPath, fID, fMaskFormat fields.
- */
- void zeroMetrics();
-
- enum {
- kSubBits = 2,
- kSubMask = ((1 << kSubBits) - 1),
- kSubShift = 24, // must be large enough for glyphs and unichars
- kCodeMask = ((1 << kSubShift) - 1),
- // relative offsets for X and Y subpixel bits
- kSubShiftX = kSubBits,
- kSubShiftY = 0
- };
-
- static unsigned ID2Code(uint32_t id) {
- return id & kCodeMask;
- }
-
- static unsigned ID2SubX(uint32_t id) {
- return id >> (kSubShift + kSubShiftX);
- }
-
- static unsigned ID2SubY(uint32_t id) {
- return (id >> (kSubShift + kSubShiftY)) & kSubMask;
- }
-
- static unsigned FixedToSub(SkFixed n) {
- return (n >> (16 - kSubBits)) & kSubMask;
- }
-
- static SkFixed SubToFixed(unsigned sub) {
- SkASSERT(sub <= kSubMask);
- return sub << (16 - kSubBits);
- }
-
- static uint32_t MakeID(unsigned code) {
- return code;
- }
-
- static uint32_t MakeID(unsigned code, SkFixed x, SkFixed y) {
- SkASSERT(code <= kCodeMask);
- x = FixedToSub(x);
- y = FixedToSub(y);
- return (x << (kSubShift + kSubShiftX)) |
- (y << (kSubShift + kSubShiftY)) |
- code;
- }
-
- void toMask(SkMask* mask) const;
-};
-
-class SkScalerContext {
-public:
- enum Hints {
- kNo_Hints,
- kSubpixel_Hints,
- kNormal_Hints
- };
- enum Flags {
- kFrameAndFill_Flag = 0x01,
- kDevKernText_Flag = 0x02,
- kGammaForBlack_Flag = 0x04, // illegal to set both Gamma flags
- kGammaForWhite_Flag = 0x08 // illegal to set both Gamma flags
- };
- struct Rec {
- uint32_t fFontID;
- SkScalar fTextSize, fPreScaleX, fPreSkewX;
- SkScalar fPost2x2[2][2];
- SkScalar fFrameWidth, fMiterLimit;
- uint8_t fHints;
- uint8_t fMaskFormat;
- uint8_t fStrokeJoin;
- uint8_t fFlags;
-
- void getMatrixFrom2x2(SkMatrix*) const;
- void getLocalMatrix(SkMatrix*) const;
- void getSingleMatrix(SkMatrix*) const;
- };
-
- SkScalerContext(const SkDescriptor* desc);
- virtual ~SkScalerContext();
-
- // remember our glyph offset/base
- void setBaseGlyphCount(unsigned baseGlyphCount) {
- fBaseGlyphCount = baseGlyphCount;
- }
-
- /** Return the corresponding glyph for the specified unichar. Since contexts
- may be chained (under the hood), the glyphID that is returned may in
- fact correspond to a different font/context. In that case, we use the
- base-glyph-count to know how to translate back into local glyph space.
- */
- uint16_t charToGlyphID(SkUnichar uni);
-
- unsigned getGlyphCount() const { return this->generateGlyphCount(); }
- void getAdvance(SkGlyph*);
- void getMetrics(SkGlyph*);
- void getImage(const SkGlyph&);
- void getPath(const SkGlyph&, SkPath*);
- void getFontMetrics(SkPaint::FontMetrics* mX,
- SkPaint::FontMetrics* mY);
-
- static inline void MakeRec(const SkPaint&, const SkMatrix*, Rec* rec);
- static SkScalerContext* Create(const SkDescriptor*);
-
-protected:
- Rec fRec;
- unsigned fBaseGlyphCount;
-
- virtual unsigned generateGlyphCount() const = 0;
- virtual uint16_t generateCharToGlyph(SkUnichar) = 0;
- virtual void generateAdvance(SkGlyph*) = 0;
- virtual void generateMetrics(SkGlyph*) = 0;
- virtual void generateImage(const SkGlyph&) = 0;
- virtual void generatePath(const SkGlyph&, SkPath*) = 0;
- virtual void generateFontMetrics(SkPaint::FontMetrics* mX,
- SkPaint::FontMetrics* mY) = 0;
-
-private:
- SkPathEffect* fPathEffect;
- SkMaskFilter* fMaskFilter;
- SkRasterizer* fRasterizer;
- SkScalar fDevFrameWidth;
-
- void internalGetPath(const SkGlyph& glyph, SkPath* fillPath,
- SkPath* devPath, SkMatrix* fillToDevMatrix);
-
- mutable SkScalerContext* fAuxScalerContext;
-
- SkScalerContext* getGlyphContext(const SkGlyph& glyph) const;
-
- // return loaded fAuxScalerContext or NULL
- SkScalerContext* loadAuxContext() const;
-};
-
-#define kRec_SkDescriptorTag SkSetFourByteTag('s', 'r', 'e', 'c')
-#define kPathEffect_SkDescriptorTag SkSetFourByteTag('p', 't', 'h', 'e')
-#define kMaskFilter_SkDescriptorTag SkSetFourByteTag('m', 's', 'k', 'f')
-#define kRasterizer_SkDescriptorTag SkSetFourByteTag('r', 'a', 's', 't')
-
-#endif
-
diff --git a/skia/include/SkScrollBarView.h b/skia/include/SkScrollBarView.h
deleted file mode 100644
index b8a5209..0000000
--- a/skia/include/SkScrollBarView.h
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkScrollBarView_DEFINED
-#define SkScrollBarView_DEFINED
-
-#include "SkView.h"
-#include "SkWidgetViews.h"
-#include "SkAnimator.h"
-
-class SkScrollBarView : public SkWidgetView {
-public:
- SkScrollBarView();
-
- unsigned getStart() const { return fStartPoint; }
- unsigned getShown() const { return fShownLength; }
- unsigned getTotal() const { return fTotalLength; }
-
- void setStart(unsigned start);
- void setShown(unsigned shown);
- void setTotal(unsigned total);
-
-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;
- unsigned fTotalLength, fStartPoint, fShownLength;
-
- void adjust();
-
- typedef SkWidgetView INHERITED;
-};
-#endif
-
diff --git a/skia/include/SkShader.h b/skia/include/SkShader.h
deleted file mode 100644
index 7c13e3d..0000000
--- a/skia/include/SkShader.h
+++ /dev/null
@@ -1,184 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkShader_DEFINED
-#define SkShader_DEFINED
-
-#include "SkBitmap.h"
-#include "SkFlattenable.h"
-#include "SkMask.h"
-#include "SkMatrix.h"
-#include "SkPaint.h"
-
-class SkPath;
-
-/** \class SkShader
-
- SkShader is the based class for objects that return horizontal spans of colors during drawing.
- A subclass of SkShader is installed in a SkPaint calling paint.setShader(shader). After that
- any object (other than a bitmap) that is drawn with that paint will get its color(s) from the
- shader.
-*/
-class SkShader : public SkFlattenable {
-public:
- SkShader();
- virtual ~SkShader();
-
- /** Return true if the shader has a non-identity local matrix.
- @param localM Optional: If not null, return the shader's local matrix
- @return true if the shader has a non-identity local matrix.
- */
- bool getLocalMatrix(SkMatrix* localM) const;
- /** Set the shader's local matrix.
- @param localM The shader's new local matrix.
- */
- void setLocalMatrix(const SkMatrix& localM);
- /** Reset the shader's local matrix to identity.
- */
- void resetLocalMatrix();
-
- enum TileMode {
- kClamp_TileMode, //!< replicate the edge color if the shader draws outside of its original bounds
- kRepeat_TileMode, //!< repeat the shader's image horizontally and vertically
- kMirror_TileMode, //!< repeat the shader's image horizontally and vertically, alternating mirror images so that adjacent images always seam
-
- kTileModeCount
- };
-
- // override these in your subclass
-
- enum Flags {
- //!< set if all of the colors will be opaque
- kOpaqueAlpha_Flag = 0x01,
- //! set if this shader's shadeSpan16() method can be called
- kHasSpan16_Flag = 0x02,
- /** Set this bit if the shader's native data type is instrinsically 16
- bit, meaning that calling the 32bit shadeSpan() entry point will
- mean the the impl has to up-sample 16bit data into 32bit. Used as a
- a means of clearing a dither request if the it will have no effect
- */
- kIntrinsicly16_Flag = 0x04
- };
-
- /** Called sometimes before drawing with this shader.
- Return the type of alpha your shader will return.
- The default implementation returns 0. Your subclass should override if it can
- (even sometimes) report a non-zero value, since that will enable various blitters
- to perform faster.
- */
- virtual uint32_t getFlags() { return 0; }
-
- /** Return the alpha associated with the data returned by shadeSpan16(). If
- kHasSpan16_Flag is not set, this value is meaningless.
- */
- virtual uint8_t getSpan16Alpha() const { return fPaintAlpha; }
-
- /** Called once before drawing, with the current paint and
- device matrix. Return true if your shader supports these
- parameters, or false if not. If false is returned, nothing
- will be drawn.
- */
- virtual bool setContext( const SkBitmap& device,
- const SkPaint& paint,
- const SkMatrix& matrix);
-
- /** Called for each span of the object being drawn. Your subclass
- should set the appropriate colors (with premultiplied alpha) that
- correspond to the specified device coordinates.
- */
- virtual void shadeSpan(int x, int y, SkPMColor[], int count) = 0;
- /** Called only for 16bit devices when getFlags() returns kOpaqueAlphaFlag | kHasSpan16_Flag
- */
- virtual void shadeSpan16(int x, int y, uint16_t[], int count);
- /** Similar to shadeSpan, but only returns the alpha-channel for a span.
- The default implementation calls shadeSpan() and then extracts the alpha
- values from the returned colors.
- */
- virtual void shadeSpanAlpha(int x, int y, uint8_t alpha[], int count);
-
- /** Helper function that returns true if this shader's shadeSpan16() method can
- be called.
- */
- bool canCallShadeSpan16()
- {
- return SkShader::CanCallShadeSpan16(this->getFlags());
- }
-
- /** Helper to check the flags to know if it is legal to call shadeSpan16()
- */
- static bool CanCallShadeSpan16(uint32_t flags) {
- return (flags & kHasSpan16_Flag) != 0;
- }
-
- /** Called before a session using the shader begins. Some shaders override
- this to defer some of their work (like calling bitmap.lockPixels()).
- Must be balanced by a call to endSession.
- */
- virtual void beginSession();
- virtual void endSession();
-
- /** Optional methods for shaders that can pretend to be a bitmap/texture
- to play along with opengl. Default just returns false and ignores
- the out parameters.
- */
- virtual bool asABitmap(SkBitmap* outTexture, SkMatrix* outMatrix,
- TileMode xy[2]);
-
- //////////////////////////////////////////////////////////////////////////
- // Factory methods for stock shaders
-
- /** Call this to create a new shader that will draw with the specified bitmap.
- @param src The bitmap to use inside the shader
- @param tmx The tiling mode to use when sampling the bitmap in the x-direction.
- @param tmy The tiling mode to use when sampling the bitmap in the y-direction.
- @return Returns a new shader object. Note: this function never returns null.
- */
- static SkShader* CreateBitmapShader(const SkBitmap& src,
- TileMode tmx, TileMode tmy);
-
- virtual void flatten(SkFlattenableWriteBuffer& );
-protected:
- enum MatrixClass {
- kLinear_MatrixClass, // no perspective
- kFixedStepInX_MatrixClass, // fast perspective, need to call fixedStepInX() each scanline
- kPerspective_MatrixClass // slow perspective, need to mappoints each pixel
- };
- static MatrixClass ComputeMatrixClass(const SkMatrix&);
-
- // These can be called by your subclass after setContext() has been called
- uint8_t getPaintAlpha() const { return fPaintAlpha; }
- SkBitmap::Config getDeviceConfig() const { return (SkBitmap::Config)fDeviceConfig; }
- const SkMatrix& getTotalInverse() const { return fTotalInverse; }
- MatrixClass getInverseClass() const { return (MatrixClass)fTotalInverseClass; }
-
- SkShader(SkFlattenableReadBuffer& );
-private:
- SkMatrix* fLocalMatrix;
- SkMatrix fTotalInverse;
- uint8_t fPaintAlpha;
- uint8_t fDeviceConfig;
- uint8_t fTotalInverseClass;
- SkDEBUGCODE(SkBool8 fInSession;)
-
- static SkShader* CreateBitmapShader(const SkBitmap& src,
- TileMode, TileMode,
- void* storage, size_t storageSize);
- friend class SkAutoBitmapShaderInstall;
- typedef SkFlattenable INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkShaderExtras.h b/skia/include/SkShaderExtras.h
deleted file mode 100644
index 765f411..0000000
--- a/skia/include/SkShaderExtras.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkShaderExtras_DEFINED
-#define SkShaderExtras_DEFINED
-
-#include "SkShader.h"
-
-class SkXfermode;
-
-///////////////////////////////////////////////////////////////////////////////////////////
-
-/** \class SkComposeShader
- This subclass of shader returns the coposition of two other shaders, combined by
- a xfermode.
-*/
-class SkComposeShader : public SkShader {
-public:
- /** Create a new compose shader, given shaders A, B, and a combining xfermode mode.
- When the xfermode is called, it will be given the result from shader A as its
- "dst", and the result of from shader B as its "src".
- mode->xfer32(sA_result, sB_result, ...)
- @param shaderA The colors from this shader are seen as the "dst" by the xfermode
- @param shaderB The colors from this shader are seen as the "src" by the xfermode
- @param mode The xfermode that combines the colors from the two shaders. If mode
- is null, then SRC_OVER is assumed.
- */
- 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);
- virtual void beginSession();
- virtual void endSession();
-
-protected:
- SkComposeShader(SkFlattenableReadBuffer& );
- virtual void flatten(SkFlattenableWriteBuffer& );
- virtual Factory getFactory() { return CreateProc; }
-
-private:
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return SkNEW_ARGS(SkComposeShader, (buffer)); }
-
- SkShader* fShaderA;
- SkShader* fShaderB;
- SkXfermode* fMode;
-
- typedef SkShader INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkStackViewLayout.h b/skia/include/SkStackViewLayout.h
deleted file mode 100644
index 8000319..0000000
--- a/skia/include/SkStackViewLayout.h
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkStackViewLayout_DEFINED
-#define SkStackViewLayout_DEFINED
-
-#include "SkView.h"
-
-class SkStackViewLayout : public SkView::Layout {
-public:
- SkStackViewLayout();
-
- enum Orient {
- kHorizontal_Orient,
- kVertical_Orient,
-
- kOrientCount
- };
- Orient getOrient() const { return (Orient)fOrient; }
- void setOrient(Orient);
-
- void getMargin(SkRect*) const;
- void setMargin(const SkRect&);
-
- SkScalar getSpacer() const { return fSpacer; }
- void setSpacer(SkScalar);
-
- /** Controls the posititioning in the same direction as the orientation
- */
- enum Pack {
- kStart_Pack,
- kCenter_Pack,
- kEnd_Pack,
-
- kPackCount
- };
- Pack getPack() const { return (Pack)fPack; }
- void setPack(Pack);
-
- /** Controls the posititioning at right angles to the orientation
- */
- enum Align {
- kStart_Align,
- kCenter_Align,
- kEnd_Align,
- kStretch_Align,
-
- kAlignCount
- };
- Align getAlign() const { return (Align)fAlign; }
- void setAlign(Align);
-
- bool getRound() const { return SkToBool(fRound); }
- void setRound(bool);
-
-protected:
- virtual void onLayoutChildren(SkView* parent);
- virtual void onInflate(const SkDOM&, const SkDOM::Node*);
-
-private:
- SkRect fMargin;
- SkScalar fSpacer;
- uint8_t fOrient, fPack, fAlign, fRound;
-};
-
-class SkFillViewLayout : public SkView::Layout {
-public:
- SkFillViewLayout();
- void getMargin(SkRect*) const;
- void setMargin(const SkRect&);
-
-protected:
- // overrides;
- virtual void onLayoutChildren(SkView* parent);
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node* node);
-
-private:
- SkRect fMargin;
- typedef SkView::Layout INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkStream.h b/skia/include/SkStream.h
deleted file mode 100644
index 26ef43f..0000000
--- a/skia/include/SkStream.h
+++ /dev/null
@@ -1,315 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkStream_DEFINED
-#define SkStream_DEFINED
-
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-
-class SkStream : public SkRefCnt {
-public:
- virtual ~SkStream();
- /** Called to rewind to the beginning of the stream. If this cannot be
- done, return false.
- */
- virtual bool rewind() = 0;
- /** If this stream represents a file, this method returns the file's name.
- If it does not, it returns NULL (the default behavior).
- */
- virtual const char* getFileName();
- /** Called to read or skip size number of bytes.
- If buffer is NULL and size > 0, skip that many bytes, returning how many were skipped.
- If buffer is NULL and size == 0, return the total length of the stream.
- If buffer != NULL, copy the requested number of bytes into buffer, returning how many were copied.
- @param buffer If buffer is NULL, ignore and just skip size bytes, otherwise copy size bytes into buffer
- @param size The number of bytes to skip or copy
- @return bytes read on success
- */
- virtual size_t read(void* buffer, size_t size) = 0;
-
- /** 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.
- */
- size_t skip(size_t bytes);
-
- /** If the stream is backed by RAM, this method returns the starting
- address for the data. If not (i.e. it is backed by a file or other
- structure), this method returns NULL.
- The default implementation returns NULL.
- */
- virtual const void* getMemoryBase();
-
- int8_t readS8();
- int16_t readS16();
- int32_t readS32();
-
- uint8_t readU8() { return (uint8_t)this->readS8(); }
- uint16_t readU16() { return (uint16_t)this->readS16(); }
- uint32_t readU32() { return (uint32_t)this->readS32(); }
-
- bool readBool() { return this->readU8() != 0; }
- SkScalar readScalar();
- size_t readPackedUInt();
-
- static void UnitTest();
-};
-
-class SkWStream : SkNoncopyable {
-public:
- virtual ~SkWStream();
-
- /** Called to write bytes to a SkWStream. Returns true on success
- @param buffer the address of at least size bytes to be written to the stream
- @param size The number of bytes in buffer to write to the stream
- @return true on success
- */
- virtual bool write(const void* buffer, size_t size) = 0;
- virtual void newline();
- virtual void flush();
-
- // helpers
-
- bool write8(U8CPU);
- bool write16(U16CPU);
- bool write32(uint32_t);
-
- bool writeText(const char text[]);
- bool writeDecAsText(int32_t);
- 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);
-
- static void UnitTest();
-};
-
-////////////////////////////////////////////////////////////////////////////////////////
-
-#include "SkString.h"
-
-struct SkFILE;
-
-/** A stream that reads from a FILE*, which is opened in the constructor and
- closed in the destructor
- */
-class SkFILEStream : public SkStream {
-public:
- /** Initialize the stream by calling fopen on the specified path. Will be
- closed in the destructor.
- */
- explicit SkFILEStream(const char path[] = NULL);
- virtual ~SkFILEStream();
-
- /** Returns true if the current path could be opened.
- */
- bool isValid() const { return fFILE != NULL; }
- /** Close the current file, and open a new file with the specified
- path. If path is NULL, just close the current file.
- */
- void setPath(const char path[]);
-
- virtual bool rewind();
- virtual size_t read(void* buffer, size_t size);
- virtual const char* getFileName();
-
-private:
- SkFILE* fFILE;
- SkString fName;
-};
-
-/** A stream that reads from a file descriptor
- */
-class SkFDStream : public SkStream {
-public:
- /** Initialize the stream with a dup() of the specified file descriptor.
- If closeWhenDone is true, then the descriptor will be closed in the
- destructor.
- */
- 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();
- virtual size_t read(void* buffer, size_t size);
- virtual const char* getFileName() { return NULL; }
-
-private:
- int fFD;
- bool fCloseWhenDone;
-};
-
-class SkMemoryStream : public SkStream {
-public:
- SkMemoryStream();
- /** We allocate (and free) the memory. Write to it via getMemoryBase()
- */
- SkMemoryStream(size_t length);
- /** if copyData is true, the stream makes a private copy of the data
- */
- SkMemoryStream(const void* data, size_t length, bool copyData = false);
- virtual ~SkMemoryStream();
-
- /** Resets the stream to the specified data and length,
- just like the constructor.
- if copyData is true, the stream makes a private copy of the data
- */
- virtual void setMemory(const void* data, size_t length,
- bool copyData = false);
- void skipToAlign4();
- virtual bool rewind();
- virtual size_t read(void* buffer, size_t size);
- virtual const void* getMemoryBase();
- const void* getAtPos();
- size_t seek(size_t offset);
- size_t peek() const { return fOffset; }
-
-private:
- const void* fSrc;
- size_t fSize, fOffset;
- SkBool8 fWeOwnTheData;
-};
-
-/** \class SkBufferStream
- This is a wrapper class that adds buffering to another stream.
- The caller can provide the buffer, or ask SkBufferStream to allocated/free
- it automatically.
-*/
-class SkBufferStream : public SkStream {
-public:
- /** Provide the stream to be buffered (proxy), and the size of the buffer that
- should be used. This will be allocated and freed automatically. If bufferSize is 0,
- a default buffer size will be used.
- The proxy stream is referenced, and will be unreferenced in when the
- bufferstream is destroyed.
- */
- SkBufferStream(SkStream* proxy, size_t bufferSize = 0);
- /** Provide the stream to be buffered (proxy), and a buffer and size to be used.
- This buffer is owned by the caller, and must be at least bufferSize bytes big.
- Passing NULL for buffer will cause the buffer to be allocated/freed automatically.
- If buffer is not NULL, it is an error for bufferSize to be 0.
- The proxy stream is referenced, and will be unreferenced in when the
- bufferstream is destroyed.
- */
- SkBufferStream(SkStream* proxy, void* buffer, size_t bufferSize);
- virtual ~SkBufferStream();
-
- virtual bool rewind();
- virtual const char* getFileName();
- virtual size_t read(void* buffer, size_t size);
- virtual const void* getMemoryBase();
-
-private:
- enum {
- kDefaultBufferSize = 128
- };
- // illegal
- SkBufferStream(const SkBufferStream&);
- SkBufferStream& operator=(const SkBufferStream&);
-
- SkStream* fProxy;
- char* fBuffer;
- size_t fOrigBufferSize, fBufferSize, fBufferOffset;
- bool fWeOwnTheBuffer;
-
- void init(void*, size_t);
-};
-
-/////////////////////////////////////////////////////////////////////////////////////////////
-
-class SkFILEWStream : public SkWStream {
-public:
- SkFILEWStream(const char path[]);
- virtual ~SkFILEWStream();
-
- /** Returns true if the current path could be opened.
- */
- bool isValid() const { return fFILE != NULL; }
-
- virtual bool write(const void* buffer, size_t size);
- virtual void flush();
-private:
- SkFILE* fFILE;
-};
-
-class SkMemoryWStream : public SkWStream {
-public:
- SkMemoryWStream(void* buffer, size_t size);
- virtual bool write(const void* buffer, size_t size);
-
-private:
- char* fBuffer;
- size_t fMaxLength;
- size_t fBytesWritten;
-};
-
-class SkDynamicMemoryWStream : public SkWStream {
-public:
- SkDynamicMemoryWStream();
- virtual ~SkDynamicMemoryWStream();
- virtual bool write(const void* buffer, size_t size);
- // random access write
- // modifies stream and returns true if offset + size is less than or equal to getOffset()
- bool write(const void* buffer, size_t offset, size_t size);
- bool read(void* buffer, size_t offset, size_t size);
- size_t getOffset() { return fBytesWritten; }
-
- // copy what has been written to the stream into dst
- void copyTo(void* dst) const;
- /* return a cache of the flattened data returned by copyTo().
- This copy is only valid until the next call to write().
- The memory is managed by the stream class.
- */
- const char* getStream() const;
-
- // same as getStream, but additionally detach the flattened datat
- const char* detach();
-
- // reset the stream to its original state
- void reset();
- void padToAlign4();
-private:
- struct Block;
- Block* fHead;
- Block* fTail;
- size_t fBytesWritten;
- mutable char* fCopyToCache;
-};
-
-
-class SkDebugWStream : public SkWStream {
-public:
- // overrides
- virtual bool write(const void* buffer, size_t size);
- virtual void newline();
-};
-
-// for now
-typedef SkFILEStream SkURLStream;
-
-#endif
-
diff --git a/skia/include/SkStream_Win.h b/skia/include/SkStream_Win.h
deleted file mode 100644
index 1b17450..0000000
--- a/skia/include/SkStream_Win.h
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkStream_Win_DEFINED
-#define SkStream_Win_DEFINED
-
-#ifndef SK_BUILD_FOR_WIN
-#error "only valid for windows and wince builds"
-#endif
-
-#ifndef SkStream_DEFINED
-#include "SkStream.h"
-#endif
-#include "SkString.h"
-#include "Wininet.h"
-
-/** \cond ZERO */
-class SkURLStream : public SkStream {
-public:
- SkURLStream(const char url[] = NULL);
- virtual ~SkURLStream();
-
- /** Close the current URL, and open a new URL.
- If URL is null, just close the current URL.
- */
- void setURL(const char url[]);
-
- // overrides
- virtual bool rewind();
- virtual size_t read(void* buffer, size_t size);
-
-private:
- SkString fURL;
- HINTERNET fConnection;
- HINTERNET fURLStream;
-};
-
-/** \endcond */
-#endif // SkStream_Win_DEFINED
-
diff --git a/skia/include/SkString.h b/skia/include/SkString.h
deleted file mode 100644
index 46b1d9e..0000000
--- a/skia/include/SkString.h
+++ /dev/null
@@ -1,168 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkString_DEFINED
-#define SkString_DEFINED
-
-#include "SkScalar.h"
-
-/* Some helper functions for C strings
-*/
-
-bool SkStrStartsWith(const char string[], const char prefix[]);
-bool SkStrEndsWith(const char string[], const char suffix[]);
-int SkStrStartsWithOneOf(const char string[], const char prefixes[]);
-
-#define SkStrAppendS32_MaxSize 11
-char* SkStrAppendS32(char buffer[], int32_t);
-#define SkStrAppendScalar_MaxSize 11
-char* SkStrAppendScalar(char buffer[], SkScalar);
-
-/** \class SkString
-
- Light weight class for managing strings. Uses reference
- counting to make string assignments and copies very fast
- with no extra RAM cost. Assumes UTF8 encoding.
-*/
-class SkString {
-public:
- SkString();
- explicit SkString(size_t len);
- explicit SkString(const char text[]);
- SkString(const char text[], size_t len);
- explicit SkString(const SkString&);
- ~SkString();
-
- bool isEmpty() const { return fRec->fLength == 0; }
- size_t size() const { return (size_t) fRec->fLength; }
- const char* c_str() const { return fRec->data(); }
-
- bool equals(const SkString&) const;
- bool equals(const char text[]) const;
- bool equals(const char text[], size_t len) const;
-
- bool startsWith(const char prefix[]) const
- {
- return SkStrStartsWith(fRec->data(), prefix);
- }
- bool endsWith(const char suffix[]) const
- {
- return SkStrEndsWith(fRec->data(), suffix);
- }
-
- friend int operator==(const SkString& a, const SkString& b)
- {
- return a.equals(b);
- }
- friend int operator!=(const SkString& a, const SkString& b)
- {
- return !a.equals(b);
- }
-
- // these methods edit the string
-
- SkString& operator=(const SkString&);
-
- char* writable_str();
-
- void reset();
- void resize(size_t len) { this->set(NULL, len); }
- void set(const SkString& src) { *this = src; }
- void set(const char text[]);
- void set(const char text[], size_t len);
- void setUTF16(const uint16_t[]);
- void setUTF16(const uint16_t[], size_t len);
-
- void insert(size_t offset, const SkString& src) { this->insert(offset, src.c_str(), src.size()); }
- void insert(size_t offset, const char text[]);
- void insert(size_t offset, const char text[], size_t len);
- void insertUnichar(size_t offset, SkUnichar);
- void insertS32(size_t offset, int32_t value);
- void insertHex(size_t offset, uint32_t value, int minDigits = 0);
- void insertScalar(size_t offset, SkScalar);
-
- void append(const SkString& str) { this->insert((size_t)-1, str); }
- void append(const char text[]) { this->insert((size_t)-1, text); }
- void append(const char text[], size_t len) { this->insert((size_t)-1, text, len); }
- void appendUnichar(SkUnichar uni) { this->insertUnichar((size_t)-1, uni); }
- void appendS32(int32_t value) { this->insertS32((size_t)-1, value); }
- void appendHex(uint32_t value, int minDigits = 0) { this->insertHex((size_t)-1, value, minDigits); }
- void appendScalar(SkScalar value) { this->insertScalar((size_t)-1, value); }
-
- void prepend(const SkString& str) { this->insert(0, str); }
- void prepend(const char text[]) { this->insert(0, text); }
- void prepend(const char text[], size_t len) { this->insert(0, text, len); }
- void prependUnichar(SkUnichar uni) { this->insertUnichar(0, uni); }
- void prependS32(int32_t value) { this->insertS32(0, value); }
- void prependHex(uint32_t value, int minDigits = 0) { this->insertHex(0, value, minDigits); }
- void prependScalar(SkScalar value) { this->insertScalar((size_t)-1, value); }
-
- void printf(const char format[], ...);
-
- void remove(size_t offset, size_t length);
-
- /** Swap contents between this and other. This function is guaranteed
- to never fail or throw.
- */
- void swap(SkString& other);
-
- /** @cond UNIT_TEST */
- SkDEBUGCODE(static void UnitTest();)
- /** @endcond */
-
-private:
- struct Rec {
- public:
- uint16_t fLength;
- uint16_t fRefCnt;
- char fBeginningOfData;
-
- char* data() { return &fBeginningOfData; }
- const char* data() const { return &fBeginningOfData; }
- };
- Rec* fRec;
-
-#ifdef SK_DEBUG
- const char* fStr;
- void validate() const;
-#else
- void validate() const {}
-#endif
-
- static const Rec gEmptyRec;
- static Rec* AllocRec(const char text[], U16CPU len);
- static Rec* RefRec(Rec*);
-};
-
-class SkAutoUCS2 {
-public:
- SkAutoUCS2(const char utf8[]);
- ~SkAutoUCS2();
-
- /** This returns the number of ucs2 characters
- */
- int count() const { return fCount; }
- /** This returns a null terminated ucs2 string
- */
- const uint16_t* getUCS2() const { return fUCS2; }
-
-private:
- int fCount;
- uint16_t* fUCS2;
-};
-
-#endif
-
diff --git a/skia/include/SkStroke.h b/skia/include/SkStroke.h
deleted file mode 100644
index b593b69..0000000
--- a/skia/include/SkStroke.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkStroke_DEFINED
-#define SkStroke_DEFINED
-
-#include "SkPoint.h"
-#include "SkPaint.h"
-
-struct SkRect;
-class SkPath;
-
-#define SK_DefaultStrokeWidth SK_Scalar1
-#define SK_DefaultMiterLimit SkIntToScalar(4)
-
-
-/** \class SkStroke
- SkStroke is the utility class that constructs paths by stroking
- geometries (lines, rects, ovals, roundrects, paths). This is
- invoked when a geometry or text is drawn in a canvas with the
- kStroke_Mask bit set in the paint.
-*/
-class SkStroke {
-public:
- SkStroke();
- SkStroke(const SkPaint&);
- SkStroke(const SkPaint&, SkScalar width); // width overrides paint.getStrokeWidth()
-
- SkPaint::Cap getCap() const { return (SkPaint::Cap)fCap; }
- void setCap(SkPaint::Cap);
-
- SkPaint::Join getJoin() const { return (SkPaint::Join)fJoin; }
- void setJoin(SkPaint::Join);
-
- void setMiterLimit(SkScalar);
- void setWidth(SkScalar);
-
- bool getDoFill() const { return SkToBool(fDoFill); }
- void setDoFill(bool doFill) { fDoFill = SkToU8(doFill); }
-
- void strokeLine(const SkPoint& start, const SkPoint& end, SkPath*) const;
- void strokeRect(const SkRect& rect, SkPath*) const;
- void strokeOval(const SkRect& oval, SkPath*) const;
- void strokeRRect(const SkRect& rect, SkScalar rx, SkScalar ry, SkPath*) const;
- void strokePath(const SkPath& path, SkPath*) const;
-
- ////////////////////////////////////////////////////////////////
-
-private:
- SkScalar fWidth, fMiterLimit;
- uint8_t fCap, fJoin;
- SkBool8 fDoFill;
-
- friend class SkPaint;
-};
-
-#endif
-
diff --git a/skia/include/SkSystemEventTypes.h b/skia/include/SkSystemEventTypes.h
deleted file mode 100644
index 8dfe8be..0000000
--- a/skia/include/SkSystemEventTypes.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkSystemEventTypes_DEFINED
-#define SkSystemEventTypes_DEFINED
-
-/*
- The goal of these strings is two-fold:
- 1) make funny strings (containing at least one char < 32) to avoid colliding with "user" strings
- 2) keep them <= 4 bytes, so we can avoid an allocation in SkEvent::setType()
-*/
-#define SK_EventType_Delay "\xd" "lay"
-#define SK_EventType_Inval "nv" "\xa" "l"
-#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"
-
-#endif
diff --git a/skia/include/SkTDArray.h b/skia/include/SkTDArray.h
deleted file mode 100644
index 4d2d7f7..0000000
--- a/skia/include/SkTDArray.h
+++ /dev/null
@@ -1,293 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkTDArray_DEFINED
-#define SkTDArray_DEFINED
-
-#include "SkTypes.h"
-
-template <typename T> class SkTDArray {
-public:
- SkTDArray() {
- fReserve = fCount = 0;
- fArray = NULL;
-#ifdef SK_DEBUG
- fData = NULL;
-#endif
- }
- SkTDArray(const T src[], size_t count) {
- SkASSERT(src || count == 0);
-
- fReserve = fCount = 0;
- fArray = NULL;
-#ifdef SK_DEBUG
- fData = NULL;
-#endif
- if (count) {
- fArray = (T*)sk_malloc_throw(count * sizeof(T));
-#ifdef SK_DEBUG
- fData = (ArrayT*)fArray;
-#endif
- memcpy(fArray, src, sizeof(T) * count);
- fReserve = fCount = count;
- }
- }
- SkTDArray(const SkTDArray<T>& src) {
- fReserve = fCount = 0;
- fArray = NULL;
-#ifdef SK_DEBUG
- fData = NULL;
-#endif
- SkTDArray<T> tmp(src.fArray, src.fCount);
- this->swap(tmp);
- }
- ~SkTDArray() {
- sk_free(fArray);
- }
-
- SkTDArray<T>& operator=(const SkTDArray<T>& src) {
- if (this != &src) {
- if (src.fCount > fReserve) {
- SkTDArray<T> tmp(src.fArray, src.fCount);
- this->swap(tmp);
- } else {
- memcpy(fArray, src.fArray, sizeof(T) * src.fCount);
- fCount = src.fCount;
- }
- }
- return *this;
- }
-
- friend int operator==(const SkTDArray<T>& a, const SkTDArray<T>& b) {
- return a.fCount == b.fCount &&
- (a.fCount == 0 ||
- !memcmp(a.fArray, b.fArray, a.fCount * sizeof(T)));
- }
-
- void swap(SkTDArray<T>& other) {
- SkTSwap(fArray, other.fArray);
-#ifdef SK_DEBUG
- SkTSwap(fData, other.fData);
-#endif
- SkTSwap(fReserve, other.fReserve);
- SkTSwap(fCount, other.fCount);
- }
-
- bool isEmpty() const { return fCount == 0; }
- int count() const { return fCount; }
- T* begin() const { return fArray; }
- T* end() const { return fArray ? fArray + fCount : NULL; }
- T& operator[](int index) const {
- SkASSERT((unsigned)index < fCount);
- return fArray[index];
- }
-
- void reset() {
- if (fArray) {
- sk_free(fArray);
- fArray = NULL;
-#ifdef SK_DEBUG
- fData = NULL;
-#endif
- fReserve = fCount = 0;
- } else {
- SkASSERT(fReserve == 0 && fCount == 0);
- }
- }
-
- void rewind() {
- // same as setCount(0)
- fCount = 0;
- }
-
- void setCount(size_t count) {
- if (count > fReserve) {
- this->growBy(count - fCount);
- } else {
- fCount = count;
- }
- }
-
- void setReserve(size_t reserve) {
- if (reserve > fReserve) {
- SkASSERT(reserve > fCount);
- size_t count = fCount;
- this->growBy(reserve - fCount);
- fCount = count;
- }
- }
-
- T* prepend() {
- this->growBy(1);
- memmove(fArray + 1, fArray, (fCount - 1) * sizeof(T));
- return fArray;
- }
-
- T* append() {
- return this->append(1, NULL);
- }
- T* append(size_t count, const T* src = NULL) {
- unsigned oldCount = fCount;
- if (count) {
- SkASSERT(src == NULL || fArray == NULL ||
- src + count <= fArray || fArray + oldCount <= src);
-
- this->growBy(count);
- if (src) {
- memcpy(fArray + oldCount, src, sizeof(T) * count);
- }
- }
- return fArray + oldCount;
- }
-
- T* appendClear() {
- T* result = this->append();
- *result = 0;
- return result;
- }
-
- T* insert(size_t index) {
- return this->insert(index, 1, NULL);
- }
- T* insert(size_t index, size_t count, const T* src = NULL) {
- SkASSERT(count);
- SkASSERT(index <= fCount);
- int oldCount = fCount;
- this->growBy(count);
- T* dst = fArray + index;
- memmove(dst + count, dst, sizeof(T) * (oldCount - index));
- if (src) {
- memcpy(dst, src, sizeof(T) * count);
- }
- return dst;
- }
-
- void remove(size_t index, size_t count = 1) {
- SkASSERT(index + count <= fCount);
- fCount = fCount - count;
- memmove(fArray + index, fArray + index + count, sizeof(T) * (fCount - index));
- }
-
- void removeShuffle(size_t index) {
- SkASSERT(index < fCount);
- unsigned newCount = fCount - 1;
- fCount = newCount;
- if (index != newCount) {
- memcpy(fArray + index, fArray + newCount, sizeof(T));
- }
- }
-
- int find(const T& elem) const {
- const T* iter = fArray;
- const T* stop = fArray + fCount;
-
- for (; iter < stop; iter++) {
- if (*iter == elem) {
- return (int) (iter - fArray);
- }
- }
- return -1;
- }
-
- int rfind(const T& elem) const {
- const T* iter = fArray + fCount;
- const T* stop = fArray;
-
- while (iter > stop) {
- if (*--iter == elem) {
- return iter - stop;
- }
- }
- return -1;
- }
-
- // routines to treat the array like a stack
- T* push() { return this->append(); }
- void push(const T& elem) { *this->append() = elem; }
- const T& top() const { return (*this)[fCount - 1]; }
- T& top() { return (*this)[fCount - 1]; }
- void pop(T* elem) { if (elem) *elem = (*this)[fCount - 1]; --fCount; }
- void pop() { --fCount; }
-
- void deleteAll() {
- T* iter = fArray;
- T* stop = fArray + fCount;
- while (iter < stop) {
- delete (*iter);
- iter += 1;
- }
- this->reset();
- }
-
- void freeAll() {
- T* iter = fArray;
- T* stop = fArray + fCount;
- while (iter < stop) {
- sk_free(*iter);
- iter += 1;
- }
- this->reset();
- }
-
- void unrefAll() {
- T* iter = fArray;
- T* stop = fArray + fCount;
- while (iter < stop) {
- (*iter)->unref();
- iter += 1;
- }
- this->reset();
- }
-
-#ifdef SK_DEBUG
- void validate() const {
- SkASSERT((fReserve == 0 && fArray == NULL) ||
- (fReserve > 0 && fArray != NULL));
- SkASSERT(fCount <= fReserve);
- SkASSERT(fData == (ArrayT*)fArray);
- }
-#endif
-
-private:
-#ifdef SK_DEBUG
- enum {
- kDebugArraySize = 16
- };
- typedef T ArrayT[kDebugArraySize];
- ArrayT* fData;
-#endif
- T* fArray;
- size_t fReserve, fCount;
-
- void growBy(size_t extra) {
- SkASSERT(extra);
-
- if (fCount + extra > fReserve) {
- size_t size = fCount + extra + 4;
- size += size >> 2;
-
- fArray = (T*)sk_realloc_throw(fArray, size * sizeof(T));
-#ifdef SK_DEBUG
- fData = (ArrayT*)fArray;
-#endif
- fReserve = size;
- }
- fCount += extra;
- }
-};
-
-#endif
-
diff --git a/skia/include/SkTDStack.h b/skia/include/SkTDStack.h
deleted file mode 100644
index 5bc10ee..0000000
--- a/skia/include/SkTDStack.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkTDStack_DEFINED
-#define SkTDStack_DEFINED
-
-#include "SkTypes.h"
-
-template <typename T> class SkTDStack : SkNoncopyable {
-public:
- SkTDStack() : fCount(0), fTotalCount(0)
- {
- fInitialRec.fNext = NULL;
- fRec = &fInitialRec;
-
- // fCount = kSlotCount;
- }
- ~SkTDStack()
- {
- Rec* rec = fRec;
- while (rec != &fInitialRec)
- {
- Rec* next = rec->fNext;
- sk_free(rec);
- rec = next;
- }
- }
-
- int count() const { return fTotalCount; }
-
- T* push()
- {
- SkASSERT(fCount <= kSlotCount);
- if (fCount == kSlotCount)
- {
- Rec* rec = (Rec*)sk_malloc_throw(sizeof(Rec));
- rec->fNext = fRec;
- fRec = rec;
- fCount = 0;
- }
- ++fTotalCount;
- return &fRec->fSlots[fCount++];
- }
- void push(const T& elem) { *this->push() = elem; }
- const T& index(int idx) const
- {
- SkASSERT(fRec && fCount > idx);
- return fRec->fSlots[fCount - idx - 1];
- }
- T& index(int idx)
- {
- SkASSERT(fRec && fCount > idx);
- return fRec->fSlots[fCount - idx - 1];
- }
- const T& top() const
- {
- SkASSERT(fRec && fCount > 0);
- return fRec->fSlots[fCount - 1];
- }
- T& top()
- {
- SkASSERT(fRec && fCount > 0);
- return fRec->fSlots[fCount - 1];
- }
- void pop(T* elem)
- {
- if (elem)
- *elem = fRec->fSlots[fCount - 1];
- this->pop();
- }
- void pop()
- {
- SkASSERT(fCount > 0 && fRec);
- --fTotalCount;
- if (--fCount == 0)
- {
- if (fRec != &fInitialRec)
- {
- Rec* rec = fRec->fNext;
- sk_free(fRec);
- fCount = kSlotCount;
- fRec = rec;
- }
- else
- SkASSERT(fTotalCount == 0);
- }
- }
-
-private:
- enum {
- kSlotCount = 8
- };
-
- struct Rec;
- friend struct Rec;
-
- struct Rec {
- Rec* fNext;
- T fSlots[kSlotCount];
- };
- Rec fInitialRec;
- Rec* fRec;
- int fCount, fTotalCount;
-};
-
-#endif
-
diff --git a/skia/include/SkTDict.h b/skia/include/SkTDict.h
deleted file mode 100644
index 0b92779..0000000
--- a/skia/include/SkTDict.h
+++ /dev/null
@@ -1,169 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkTDict_DEFINED
-#define SkTDict_DEFINED
-
-#include "SkChunkAlloc.h"
-#include "SkTSearch.h"
-#include "SkTDArray.h"
-
-template <typename T> class SkTDict : SkNoncopyable {
-public:
- SkTDict(size_t minStringAlloc) : fStrings(minStringAlloc) {}
-
- void reset()
- {
- fArray.reset();
- fStrings.reset();
- }
-
- int count() const { return fArray.count(); }
-
- bool set(const char name[], const T& value)
- {
- return set(name, strlen(name), value);
- }
-
- bool set(const char name[], size_t len, const T& value)
- {
- SkASSERT(name);
-
- int index = this->find_index(name, len);
-
- if (index >= 0)
- {
- fArray[index].fValue = value;
- return false;
- }
- else
- {
- Pair* pair = fArray.insert(~index);
- char* copy = (char*)fStrings.alloc(len + 1, SkChunkAlloc::kThrow_AllocFailType);
- memcpy(copy, name, len);
- copy[len] = '\0';
- pair->fName = copy;
- pair->fValue = value;
- return true;
- }
- }
-
- bool find(const char name[]) const
- {
- return this->find_index(name) >= 0;
- }
-
- bool find(const char name[], size_t len) const
- {
- return this->find_index(name, len) >= 0;
- }
-
- bool find(const char name[], T* value) const
- {
- return find(name, strlen(name), value);
- }
-
- bool find(const char name[], size_t len, T* value) const
- {
- int index = this->find_index(name, len);
-
- if (index >= 0)
- {
- if (value)
- *value = fArray[index].fValue;
- return true;
- }
- return false;
- }
-
- bool findKey(T& value, const char** name) const
- {
- Pair* end = fArray.end();
- for (Pair* pair = fArray.begin(); pair < end; pair++) {
- if (pair->fValue != value)
- continue;
- *name = pair->fName;
- return true;
- }
- return false;
- }
-
-public:
- struct Pair {
- const char* fName;
- T fValue;
-
- friend int operator<(const Pair& a, const Pair& b)
- {
- return strcmp(a.fName, b.fName);
- }
- friend int operator!=(const Pair& a, const Pair& b)
- {
- return strcmp(a.fName, b.fName);
- }
- };
- friend class Iter;
-
-public:
- class Iter {
- public:
- Iter(const SkTDict<T>& dict)
- {
- fIter = dict.fArray.begin();
- fStop = dict.fArray.end();
- }
- const char* next(T* value)
- {
- const char* name = NULL;
- if (fIter < fStop)
- {
- name = fIter->fName;
- if (value)
- *value = fIter->fValue;
- fIter += 1;
- }
- return name;
- }
- private:
- Pair* fIter;
- Pair* fStop;
- };
-
-private:
- SkTDArray<Pair> fArray;
- SkChunkAlloc fStrings;
-
- int find_index(const char name[]) const
- {
- return find_index(name, strlen(name));
- }
-
- int find_index(const char name[], size_t len) const
- {
- SkASSERT(name);
-
- int count = fArray.count();
- int index = ~0;
-
- if (count)
- index = SkStrSearch(&fArray.begin()->fName, count, name, len, sizeof(Pair));
- return index;
- }
- friend class Iter;
-};
-
-#endif
-
diff --git a/skia/include/SkTextBox.h b/skia/include/SkTextBox.h
deleted file mode 100644
index 2c34448..0000000
--- a/skia/include/SkTextBox.h
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkTextBox_DEFINED
-#define SkTextBox_DEFINED
-
-#include "SkCanvas.h"
-
-/** \class SkTextBox
-
- SkTextBox is a helper class for drawing 1 or more lines of text
- within a rectangle. The textbox is positioned and clipped by its Frame.
- The Margin rectangle controls where the text is drawn relative to
- the Frame. Line-breaks occur inside the Margin rectangle.
-
- Spacing is a linear equation used to compute the distance between lines
- of text. Spacing consists of two scalars: mul and add, and the spacing
- between lines is computed as: spacing = paint.getTextSize() * mul + add
-*/
-class SkTextBox {
-public:
- SkTextBox();
-
- enum Mode {
- kOneLine_Mode,
- kLineBreak_Mode,
-
- kModeCount
- };
- Mode getMode() const { return (Mode)fMode; }
- void setMode(Mode);
-
- enum SpacingAlign {
- kStart_SpacingAlign,
- kCenter_SpacingAlign,
- kEnd_SpacingAlign,
-
- kSpacingAlignCount
- };
- SpacingAlign getSpacingAlign() const { return (SpacingAlign)fSpacingAlign; }
- void setSpacingAlign(SpacingAlign);
-
- void getBox(SkRect*) const;
- void setBox(const SkRect&);
- void setBox(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom);
-
- void getSpacing(SkScalar* mul, SkScalar* add) const;
- void setSpacing(SkScalar mul, SkScalar add);
-
- void draw(SkCanvas*, const char text[], size_t len, const SkPaint&);
-
-private:
- SkRect fBox;
- SkScalar fSpacingMul, fSpacingAdd;
- uint8_t fMode, fSpacingAlign;
-};
-
-class SkTextLineBreaker {
-public:
- static int CountLines(const char text[], size_t len, const SkPaint&, SkScalar width);
-};
-
-#endif
-
diff --git a/skia/include/SkTime.h b/skia/include/SkTime.h
deleted file mode 100644
index 9ee7110..0000000
--- a/skia/include/SkTime.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkTime_DEFINED
-#define SkTime_DEFINED
-
-#include "SkTypes.h"
-
-/** \class SkTime
- Platform-implemented utilities to return time of day, and millisecond counter.
-*/
-class SkTime {
-public:
- struct DateTime {
- uint16_t fYear; //!< e.g. 2005
- uint8_t fMonth; //!< 1..12
- uint8_t fDayOfWeek; //!< 0..6, 0==Sunday
- uint8_t fDay; //!< 1..31
- uint8_t fHour; //!< 0..23
- uint8_t fMinute; //!< 0..59
- uint8_t fSecond; //!< 0..59
- };
- static void GetDateTime(DateTime*);
-
- static SkMSec GetMSecs();
-};
-
-#if defined(SK_DEBUG) && defined(SK_BUILD_FOR_WIN32)
- extern SkMSec gForceTickCount;
-#endif
-
-#define SK_TIME_FACTOR 1
-
-///////////////////////////////////////////////////////////////////////////////
-
-class SkAutoTime {
-public:
- // The label is not deep-copied, so its address must remain valid for the
- // lifetime of this object
- SkAutoTime(const char* label = NULL, SkMSec minToDump = 0) : fLabel(label)
- {
- fNow = SkTime::GetMSecs();
- fMinToDump = minToDump;
- }
- ~SkAutoTime()
- {
- SkMSec dur = SkTime::GetMSecs() - fNow;
- if (dur >= fMinToDump) {
- SkDebugf("%s %d\n", fLabel ? fLabel : "", dur);
- }
- }
-private:
- const char* fLabel;
- SkMSec fNow;
- SkMSec fMinToDump;
-};
-
-#endif
-
diff --git a/skia/include/SkTransparentShader.h b/skia/include/SkTransparentShader.h
deleted file mode 100644
index 8bc60ff..0000000
--- a/skia/include/SkTransparentShader.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkTransparentShader_DEFINED
-#define SkTransparentShader_DEFINED
-
-#include "SkShader.h"
-
-class SkTransparentShader : public SkShader {
-public:
- SkTransparentShader() {}
- virtual uint32_t getFlags();
- virtual bool setContext( const SkBitmap& device,
- const SkPaint& paint,
- const SkMatrix& matrix);
- virtual void shadeSpan(int x, int y, SkPMColor[], int count);
- virtual void shadeSpan16(int x, int y, uint16_t span[], int count);
-
- // overrides for SkFlattenable
- virtual Factory getFactory() { return Create; }
- virtual void flatten(SkFlattenableWriteBuffer& buffer)
- {
- this->INHERITED::flatten(buffer);
- }
-
-private:
- // these are a cache from the call to setContext()
- const SkBitmap* fDevice;
- uint8_t fAlpha;
-
- SkTransparentShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
-
- static SkFlattenable* Create(SkFlattenableReadBuffer& buffer)
- {
- return SkNEW_ARGS(SkTransparentShader, (buffer));
- }
-
- typedef SkShader INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkTypeface.h b/skia/include/SkTypeface.h
deleted file mode 100644
index 546edca..0000000
--- a/skia/include/SkTypeface.h
+++ /dev/null
@@ -1,131 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkTypeface_DEFINED
-#define SkTypeface_DEFINED
-
-#include "SkRefCnt.h"
-
-class SkStream;
-class SkWStream;
-
-/** \class SkTypeface
-
- The SkTypeface class specifies the typeface and intrinsic style of a font.
- This is used in the paint, along with optionally algorithmic settings like
- textSize, textSkewX, textScaleX, kFakeBoldText_Mask, to specify
- how text appears when drawn (and measured).
-
- Typeface objects are immutable, and so they can be shred between threads.
- To enable this, Typeface inherits from the thread-safe version of SkRefCnt.
-*/
-class SkTypeface : public SkRefCnt {
-public:
- /** Style specifies the intrinsic style attributes of a given typeface
- */
- enum Style {
- kNormal = 0,
- kBold = 0x01,
- kItalic = 0x02,
-
- // helpers
- kBoldItalic = 0x03
- };
-
- /** Returns the typeface's intrinsic style attributes
- */
- Style style() const { return fStyle; }
-
- /** DEPRECATED */
- Style getStyle() const { return this->style(); }
-
- /** Returns true if getStyle() has the kBold bit set.
- */
- bool isBold() const { return (fStyle & kBold) != 0; }
-
- /** Returns true if getStyle() has the kItalic bit set.
- */
- bool isItalic() const { return (fStyle & kItalic) != 0; }
-
- uint32_t 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.
- */
- static uint32_t UniqueID(const SkTypeface* face);
-
- /** Return a new reference to the typeface that most closely matches the
- requested familyName and style. Pass null as the familyName to return
- the default font for the requested style. Will never return null
-
- @param familyName May be NULL. The name of the font family.
- @param style The style (normal, bold, italic) of the typeface.
- @return reference to the closest-matching typeface. Call must call
- unref() when they are done.
- */
- static SkTypeface* Create(const char familyName[], Style style = kNormal);
-
- /** Return a new reference to the typeface that most closely matches the
- requested typeface and specified Style. Use this call if you want to
- pick a new style from the same family of the existing typeface.
- If family is NULL, this selects from the default font's family.
-
- @param family May be NULL. The name of the existing type face.
- @param s The style (normal, bold, italic) of the type face.
- @return reference to the closest-matching typeface. Call must call
- unref() when they are done.
- */
- static SkTypeface* CreateFromTypeface(const SkTypeface* family, Style s);
-
- /** Returns true if the two typefaces reference the same underlying font,
- even if one is null (which maps to the default font).
- */
- static bool Equal(const SkTypeface* facea, const SkTypeface* faceb);
-
- /** Returns a 32bit hash value for the typeface. Takes care of mapping null
- to the default typeface.
- */
- static uint32_t Hash(const SkTypeface* face);
-
- /** Return a new typeface given a file. If the file does not exist, or is
- not a valid font file, returns null.
- */
- static SkTypeface* CreateFromFile(const char path[]);
-
- /** Return a new typeface given a stream. If the stream is
- not a valid font file, returns null. Ownership of the stream is
- transferred, so the caller must not reference it again.
- */
- static SkTypeface* CreateFromStream(SkStream* stream);
-
- // Serialization
- void serialize(SkWStream*) const;
- static SkTypeface* Deserialize(SkStream*);
-
-protected:
- /** uniqueID must be unique (please!) and non-zero
- */
- SkTypeface(Style style, uint32_t uniqueID)
- : fUniqueID(uniqueID), fStyle(style) {}
-
-private:
- uint32_t fUniqueID;
- Style fStyle;
-
- typedef SkRefCnt INHERITED;
-};
-
-#endif
diff --git a/skia/include/SkUnPreMultiply.h b/skia/include/SkUnPreMultiply.h
deleted file mode 100644
index 4bdb980..0000000
--- a/skia/include/SkUnPreMultiply.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-
-
-
-#ifndef SkUnPreMultiply_DEFINED
-#define SkUnPreMultiply_DEFINED
-
-#include "SkColor.h"
-
-class SkUnPreMultiply {
-public:
- typedef uint32_t Scale;
-
- // index this table with alpha [0..255]
- static const Scale* GetScaleTable() {
- return gTable;
- }
-
- static Scale GetScale(U8CPU alpha) {
- 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
- }
- */
- static U8CPU ApplyScale(Scale scale, U8CPU component) {
- SkASSERT(component <= 255);
- return (scale * component + (1 << 23)) >> 24;
- }
-
- static SkColor PMColorToColor(SkPMColor c);
-
-private:
- static const uint32_t gTable[256];
-};
-
-#endif
diff --git a/skia/include/SkUnitMapper.h b/skia/include/SkUnitMapper.h
deleted file mode 100644
index 5d1ea35..0000000
--- a/skia/include/SkUnitMapper.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkUnitMapper_DEFINED
-#define SkUnitMapper_DEFINED
-
-#include "SkRefCnt.h"
-#include "SkScalar.h"
-
-#include "SkFlattenable.h"
-
-class SkUnitMapper : public SkFlattenable {
-public:
- SkUnitMapper() {}
-
- /** 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) {}
-};
-
-#endif
-
diff --git a/skia/include/SkUnitMappers.h b/skia/include/SkUnitMappers.h
deleted file mode 100644
index 51708b6..0000000
--- a/skia/include/SkUnitMappers.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkUnitMappers_DEFINED
-#define SkUnitMappers_DEFINED
-
-#include "SkUnitMapper.h"
-
-/** This discretizes the range [0...1) into N discret values.
-*/
-class SkDiscreteMapper : public SkUnitMapper {
-public:
- SkDiscreteMapper(int segments);
- // override from SkUnitMapper
- virtual uint16_t mapUnit16(uint16_t x);
-
-protected:
- SkDiscreteMapper(SkFlattenableReadBuffer& );
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer& );
- virtual Factory getFactory();
-private:
- int fSegments;
- SkFract fScale; // computed from fSegments
-
- static SkFlattenable* Create(SkFlattenableReadBuffer& buffer);
-
- typedef SkUnitMapper INHERITED;
-};
-
-/** This returns cos(x), to simulate lighting a sphere, where 0 maps to the
- center of the sphere, and 1 maps to the edge.
-*/
-class SkCosineMapper : public SkUnitMapper {
-public:
- SkCosineMapper() {}
- // override from SkUnitMapper
- virtual uint16_t mapUnit16(uint16_t x);
-
-protected:
- SkCosineMapper(SkFlattenableReadBuffer&);
- // overrides from SkFlattenable
- virtual Factory getFactory();
-
-private:
- static SkFlattenable* Create(SkFlattenableReadBuffer&);
-
- typedef SkUnitMapper INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkUtils.h b/skia/include/SkUtils.h
deleted file mode 100644
index f3e3341..0000000
--- a/skia/include/SkUtils.h
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkUtils_DEFINED
-#define SkUtils_DEFINED
-
-#include "SkTypes.h"
-
-///////////////////////////////////////////////////////////////////////////
-
-/** Similar to memset(), but it assigns a 16bit value into the buffer.
- @param buffer The memory to have value copied into it
- @param value The 16bit value to be copied into buffer
- @param count The number of times value should be copied into the buffer.
-*/
-void sk_memset16_portable(uint16_t dst[], uint16_t value, int count);
-
-/** Similar to memset(), but it assigns a 32bit value into the buffer.
- @param buffer The memory to have value copied into it
- @param value The 32bit value to be copied into buffer
- @param count The number of times value should be copied into the buffer.
-*/
-void sk_memset32_portable(uint32_t dst[], uint32_t value, int count);
-
-#ifdef ANDROID
- #include "cutils/memory.h"
-
- #define sk_memset16(dst, value, count) android_memset16(dst, value, (count) << 1)
- #define sk_memset32(dst, value, count) android_memset32(dst, value, (count) << 2)
-#endif
-
-#ifndef sk_memset16
- #define sk_memset16(dst, value, count) sk_memset16_portable(dst, value, count)
-#endif
-
-#ifndef sk_memset32
- #define sk_memset32(dst, value, count) sk_memset32_portable(dst, value, count)
-#endif
-
-
-///////////////////////////////////////////////////////////////////////////
-
-#define kMaxBytesInUTF8Sequence 4
-
-#ifdef SK_DEBUG
- int SkUTF8_LeadByteToCount(unsigned c);
-#else
- #define SkUTF8_LeadByteToCount(c) ((((0xE5 << 24) >> ((unsigned)c >> 4 << 1)) & 3) + 1)
-#endif
-
-inline int SkUTF8_CountUTF8Bytes(const char utf8[])
-{
- SkASSERT(utf8);
- return SkUTF8_LeadByteToCount(*(const uint8_t*)utf8);
-}
-
-int SkUTF8_CountUnichars(const char utf8[]);
-int SkUTF8_CountUnichars(const char utf8[], size_t byteLength);
-SkUnichar SkUTF8_ToUnichar(const char utf8[]);
-SkUnichar SkUTF8_NextUnichar(const char**);
-SkUnichar SkUTF8_PrevUnichar(const char**);
-
-/** Return the number of bytes need to convert a unichar
- into a utf8 sequence. Will be 1..kMaxBytesInUTF8Sequence,
- or 0 if uni is illegal.
-*/
-size_t SkUTF8_FromUnichar(SkUnichar uni, char utf8[] = NULL);
-
-///////////////////////////////////////////////////////////////////////////////
-
-#define SkUTF16_IsHighSurrogate(c) (((c) & 0xFC00) == 0xD800)
-#define SkUTF16_IsLowSurrogate(c) (((c) & 0xFC00) == 0xDC00)
-
-int SkUTF16_CountUnichars(const uint16_t utf16[]);
-int SkUTF16_CountUnichars(const uint16_t utf16[],
- int numberOf16BitValues);
-// returns the current unichar and then moves past it (*p++)
-SkUnichar SkUTF16_NextUnichar(const uint16_t**);
-// this guy backs up to the previus unichar value, and returns it (*--p)
-SkUnichar SkUTF16_PrevUnichar(const uint16_t**);
-size_t SkUTF16_FromUnichar(SkUnichar uni, uint16_t utf16[] = NULL);
-
-size_t SkUTF16_ToUTF8(const uint16_t utf16[], int numberOf16BitValues,
- char utf8[] = NULL);
-
-class SkUtils {
-public:
-#ifdef SK_DEBUG
- static void UnitTest();
-#endif
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-class SkAutoTrace {
-public:
- /** NOTE: label contents are not copied, just the ptr is
- retained, so DON'T DELETE IT.
- */
- SkAutoTrace(const char label[]) : fLabel(label) {
- SkDebugf("--- trace: %s Enter\n", fLabel);
- }
- ~SkAutoTrace() {
- SkDebugf("--- trace: %s Leave\n", fLabel);
- }
-private:
- const char* fLabel;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-class SkAutoMemoryUsageProbe {
-public:
- /** Record memory usage in constructor, and dump the result
- (delta and current total) in the destructor, with the optional
- label. NOTE: label contents are not copied, just the ptr is
- retained, so DON'T DELETE IT.
- */
- SkAutoMemoryUsageProbe(const char label[]);
- ~SkAutoMemoryUsageProbe();
-private:
- const char* fLabel;
- size_t fBytesAllocated;
-};
-
-#endif
-
diff --git a/skia/include/SkView.h b/skia/include/SkView.h
deleted file mode 100644
index d5d89df..0000000
--- a/skia/include/SkView.h
+++ /dev/null
@@ -1,345 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkView_DEFINED
-#define SkView_DEFINED
-
-#include "SkEventSink.h"
-#include "SkRect.h"
-#include "SkDOM.h"
-#include "SkTDict.h"
-
-class SkCanvas;
-class SkLayerView;
-
-/** \class SkView
-
- SkView is the base class for screen management. All widgets and controls inherit
- from SkView.
-*/
-class SkView : public SkEventSink {
-public:
- enum Flag_Shift {
- kVisible_Shift,
- kEnabled_Shift,
- kFocusable_Shift,
- kFlexH_Shift,
- kFlexV_Shift,
-
- kFlagShiftCount
- };
- enum Flag_Mask {
- kVisible_Mask = 1 << kVisible_Shift, //!< set if the view is visible
- kEnabled_Mask = 1 << kEnabled_Shift, //!< set if the view is enabled
- kFocusable_Mask = 1 << kFocusable_Shift, //!< set if the view can receive focus
- kFlexH_Mask = 1 << kFlexH_Shift, //!< set if the view's width is stretchable
- kFlexV_Mask = 1 << kFlexV_Shift, //!< set if the view's height is stretchable
-
- kAllFlagMasks = (uint32_t)(0 - 1) >> (32 - kFlagShiftCount)
- };
-
- SkView(uint32_t flags = 0);
- virtual ~SkView();
-
- /** Return the flags associated with the view
- */
- uint32_t getFlags() const { return fFlags; }
- /** Set the flags associated with the view
- */
- void setFlags(uint32_t flags);
-
- /** Helper that returns non-zero if the kVisible_Mask bit is set in the view's flags
- */
- int isVisible() const { return fFlags & kVisible_Mask; }
- int isEnabled() const { return fFlags & kEnabled_Mask; }
- int isFocusable() const { return fFlags & kFocusable_Mask; }
- /** Helper to set/clear the view's kVisible_Mask flag */
- void setVisibleP(bool);
- void setEnabledP(bool);
- void setFocusableP(bool);
-
- /** Return the view's width */
- SkScalar width() const { return fWidth; }
- /** Return the view's height */
- SkScalar height() const { return fHeight; }
- /** Set the view's width and height. These must both be >= 0. This does not affect the view's loc */
- void setSize(SkScalar width, SkScalar height);
- void setSize(const SkPoint& size) { this->setSize(size.fX, size.fY); }
- void setWidth(SkScalar width) { this->setSize(width, fHeight); }
- void setHeight(SkScalar height) { this->setSize(fWidth, height); }
- /** Return a rectangle set to [0, 0, width, height] */
- void getLocalBounds(SkRect* bounds) const;
-
- /** Return the view's left edge */
- SkScalar locX() const { return fLoc.fX; }
- /** Return the view's top edge */
- SkScalar locY() const { return fLoc.fY; }
- /** Set the view's left and top edge. This does not affect the view's size */
- void setLoc(SkScalar x, SkScalar y);
- 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); }
- /** Offset (move) the view by the specified dx and dy. This does not affect the view's size */
- void offset(SkScalar dx, SkScalar dy);
-
- /** Call this to have the view draw into the specified canvas. */
- void draw(SkCanvas* canvas);
- /** Call this to invalidate part of all of a view, requesting that the view's
- draw method be called. The rectangle parameter specifies the part of the view
- that should be redrawn. If it is null, it specifies the entire view bounds.
- */
- void inval(SkRect* rectOrNull);
-
- // Focus management
-
- SkView* getFocusView() const;
- bool hasFocus() const;
-
- enum FocusDirection {
- kNext_FocusDirection,
- kPrev_FocusDirection,
-
- kFocusDirectionCount
- };
- bool acceptFocus();
- SkView* moveFocus(FocusDirection);
-
- // Click handling
-
- class Click {
- public:
- Click(SkView* target);
- virtual ~Click();
-
- const char* getType() const { return fType; }
- bool isType(const char type[]) const;
- void setType(const char type[]); // does NOT make a copy of the string
- void copyType(const char type[]); // makes a copy of the string
-
- enum State {
- kDown_State,
- kMoved_State,
- kUp_State
- };
- SkPoint fOrig, fPrev, fCurr;
- SkIPoint fIOrig, fIPrev, fICurr;
- State fState;
- private:
- SkEventSinkID fTargetID;
- char* fType;
- bool fWeOwnTheType;
-
- void resetType();
-
- friend class SkView;
- };
- Click* findClickHandler(SkScalar x, SkScalar y);
-
- static void DoClickDown(Click*, int x, int y);
- static void DoClickMoved(Click*, int x, int y);
- static void DoClickUp(Click*, int x, int y);
-
- /** Send the event to the view's parent, and its parent etc. until one of them
- returns true from its onEvent call. This view is returned. If no parent handles
- the event, null is returned.
- */
- SkView* sendEventToParents(const SkEvent&);
- /** Depricated helper function. Just call event->post(sinkID, delay);
- */
- bool postEvent(SkEvent* evt, SkEventSinkID sinkID, SkMSec delay) { return evt->post(sinkID, delay); }
-
- // View hierarchy management
-
- /** Return the view's parent, or null if it has none. This does not affect the parent's reference count. */
- SkView* getParent() const { return fParent; }
- SkView* attachChildToFront(SkView* child);
- /** Attach the child view to this view, and increment the child's reference count. The child view is added
- such that it will be drawn before all other child views.
- The child view parameter is returned.
- */
- SkView* attachChildToBack(SkView* child);
- /** If the view has a parent, detach the view from its parent and decrement the view's reference count.
- If the parent was the only owner of the view, this will cause the view to be deleted.
- */
- void detachFromParent();
- /** Attach the child view to this view, and increment the child's reference count. The child view is added
- such that it will be drawn after all other child views.
- The child view parameter is returned.
- */
- /** Detach all child views from this view. */
- void detachAllChildren();
-
- /** Convert the specified point from global coordinates into view-local coordinates
- */
- void globalToLocal(SkPoint* pt) const { if (pt) this->globalToLocal(pt->fX, pt->fY, pt); }
- /** Convert the specified x,y from global coordinates into view-local coordinates, returning
- the answer in the local parameter.
- */
- void 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
- next() returns null, there are no more child views.
- */
- class F2BIter {
- public:
- F2BIter(const SkView* parent);
- SkView* next();
- private:
- SkView* fFirstChild, *fChild;
- };
-
- /** \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
- next() returns null, there are no more child views.
- */
- class B2FIter {
- public:
- B2FIter(const SkView* parent);
- SkView* next();
- private:
- SkView* fFirstChild, *fChild;
- };
-
- /** \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.
- */
- class Artist : public SkRefCnt {
- public:
- void draw(SkView*, SkCanvas*);
- void inflate(const SkDOM&, const SkDOM::Node*);
- protected:
- virtual void onDraw(SkView*, SkCanvas*) = 0;
- virtual void onInflate(const SkDOM&, const SkDOM::Node*);
- };
- /** Return the artist attached to this view (or null). The artist's reference
- count is not affected.
- */
- Artist* getArtist() const;
- /** Attach the specified artist (or null) to the view, replacing any existing
- artist. If the new artist is not null, its reference count is incremented.
- The artist parameter is returned.
- */
- 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.
- */
- class Layout : public SkRefCnt {
- public:
- void layoutChildren(SkView* parent);
- void inflate(const SkDOM&, const SkDOM::Node*);
- protected:
- virtual void onLayoutChildren(SkView* parent) = 0;
- virtual void onInflate(const SkDOM&, const SkDOM::Node*);
- };
-
- /** Return the layout attached to this view (or null). The layout's reference
- count is not affected.
- */
- Layout* getLayout() const;
- /** Attach the specified layout (or null) to the view, replacing any existing
- layout. If the new layout is not null, its reference count is incremented.
- The layout parameter is returned.
- */
- Layout* setLayout(Layout*, bool invokeLayoutNow = true);
- /** If a layout is attached to this view, call its layoutChildren() method
- */
- void invokeLayout();
-
- /** Call this to initialize this view based on the specified XML node
- */
- void inflate(const SkDOM& dom, const SkDOM::Node* node);
- /** After a view hierarchy is inflated, this may be called with a dictionary
- containing pairs of <name, view*>, where the name string was the view's
- "id" attribute when it was inflated.
-
- This will call the virtual onPostInflate for this view, and the recursively
- call postInflate on all of the view's children.
- */
- void postInflate(const SkTDict<SkView*>& ids);
-
- SkDEBUGCODE(void dump(bool recurse) const;)
-
-protected:
- /** Override this to draw inside the view. Be sure to call the inherited version too */
- virtual void onDraw(SkCanvas*);
- /** Override this to be notified when the view's size changes. Be sure to call the inherited version too */
- virtual void onSizeChange();
- /** Override this if you want to handle an inval request from this view or one of its children.
- Tyically this is only overridden by the by the "window". If your subclass does handle the
- request, return true so the request will not continue to propogate to the parent.
- */
- virtual bool handleInval(const SkRect&);
- virtual SkCanvas* beforeChildren(SkCanvas* c) { return c; }
- virtual void afterChildren(SkCanvas* orig) {}
- /** Override this if you might handle the click
- */
- virtual Click* onFindClickHandler(SkScalar x, SkScalar y);
- /** Override this to track clicks, returning true as long as you want to track
- the pen/mouse.
- */
- virtual bool onClick(Click*);
- /** Override this to initialize your subclass from the XML node. Be sure to call the inherited version too */
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node* node);
- /** Override this if you want to perform post initialization work based on the ID dictionary built
- during XML parsing. Be sure to call the inherited version too.
- */
- virtual void onPostInflate(const SkTDict<SkView*>&);
-
-public:
- // default action is to inval the view
- virtual void onFocusChange(bool gainFocusP);
-protected:
-
- // override these if you're acting as a layer/host
- virtual bool onGetFocusView(SkView**) const { return false; }
- virtual bool onSetFocusView(SkView*) { return false; }
-
-private:
- SkScalar fWidth, fHeight;
- SkPoint fLoc;
- SkView* fParent;
- SkView* fFirstChild;
- SkView* fNextSibling;
- SkView* fPrevSibling;
- uint8_t fFlags;
- uint8_t fContainsFocus;
-
- friend class B2FIter;
- friend class F2BIter;
-
- friend class SkLayerView;
-
- bool setFocusView(SkView* fvOrNull);
- SkView* acceptFocus(FocusDirection);
- void detachFromParent_NoLayout();
-};
-
-#endif
-
diff --git a/skia/include/SkViewInflate.h b/skia/include/SkViewInflate.h
deleted file mode 100644
index 3ec65a6..0000000
--- a/skia/include/SkViewInflate.h
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkViewInflate_DEFINED
-#define SkViewInflate_DEFINED
-
-#include "SkDOM.h"
-#include "SkTDict.h"
-#include "SkEvent.h"
-
-class SkView;
-
-class SkViewInflate {
-public:
- SkViewInflate();
- virtual ~SkViewInflate();
-
- /** Return the tree of inflated views. If root is null, create the root element
- as a view, otherwise assume root is that view, and just "inflate" it.
-
- Returns null if the tree cannot be built.
- */
- SkView* inflate(const SkDOM& dom, const SkDOM::Node* node, SkView* root = NULL);
- SkView* inflate(const char xml[], size_t len, SkView* root = NULL);
-
- /** Given an id attribute value, return the corresponding view, or null
- if no match is found.
- */
- SkView* findViewByID(const char id[]) const;
-
- SkDEBUGCODE(void dump() const;)
-
-protected:
- /* Override this in your subclass to handle instantiating views
- Call the inherited version for nodes you don't recognize.
-
- Do not call "inflate" on the view, just return it. This will
- get called automatically after createView returns.
- */
- virtual SkView* createView(const SkDOM& dom, const SkDOM::Node* node);
- /** Base implementation calls view->inflate(dom, node). Subclasses may override this
- to perform additional initializations to view, either before or after calling
- the inherited version.
- */
- virtual void inflateView(SkView* view, const SkDOM& dom, const SkDOM::Node* node);
-
-private:
- enum {
- kMinIDStrAlloc = 64
- };
- SkTDict<SkView*> fIDs;
-
- struct IDStr {
- SkView* fView;
- char* fStr;
- };
- SkTDArray<IDStr> fListenTo, fBroadcastTo;
- SkChunkAlloc fStrings;
-
- void addIDStr(SkTDArray<IDStr>* list, SkView*, const char* str);
-
- void rInflate(const SkDOM& dom, const SkDOM::Node* node, SkView* parent);
-};
-
-#endif
-
diff --git a/skia/include/SkWidget.h b/skia/include/SkWidget.h
deleted file mode 100644
index db85f01..0000000
--- a/skia/include/SkWidget.h
+++ /dev/null
@@ -1,476 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkWidget_DEFINED
-#define SkWidget_DEFINED
-
-#include "SkView.h"
-#include "SkBitmap.h"
-#include "SkDOM.h"
-#include "SkPaint.h"
-#include "SkString.h"
-#include "SkTDArray.h"
-
-//////////////////////////////////////////////////////////////////////////////
-
-class SkWidget : public SkView {
-public:
- SkWidget(uint32_t flags = 0) : SkView(flags | kFocusable_Mask | kEnabled_Mask) {}
-
- /** Call this to post the widget's event to its listeners */
- void postWidgetEvent();
-
- static void Init();
- static void Term();
-protected:
- // override to add slots to an event before posting
- virtual void prepareWidgetEvent(SkEvent*);
- virtual void onEnabledChange();
-
- // <event ...> to initialize the event from XML
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node* node);
-
-private:
- SkEvent fEvent;
- typedef SkView INHERITED;
-};
-
-class SkHasLabelWidget : public SkWidget {
-public:
- SkHasLabelWidget(uint32_t flags = 0) : SkWidget(flags) {}
-
- size_t getLabel(SkString* label = NULL) const;
- size_t getLabel(char lable[] = NULL) const;
- void setLabel(const SkString&);
- void setLabel(const char label[]);
- void setLabel(const char label[], size_t len);
-
-protected:
- // called when the label changes
- virtual void onLabelChange();
-
- // overrides
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node*);
-
-private:
- SkString fLabel;
- typedef SkWidget INHERITED;
-};
-
-class SkButtonWidget : public SkHasLabelWidget {
-public:
- SkButtonWidget(uint32_t flags = 0) : SkHasLabelWidget(flags), fState(kOff_State) {}
-
- enum State {
- kOff_State, //!< XML: buttonState="off"
- kOn_State, //!< XML: buttonState="on"
- kUnknown_State //!< XML: buttonState="unknown"
- };
- State getButtonState() const { return fState; }
- void setButtonState(State);
-
-protected:
- /** called when the label changes. default behavior is to inval the widget */
- virtual void onButtonStateChange();
-
- // overrides
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node*);
-
-private:
- State fState;
- typedef SkHasLabelWidget INHERITED;
-};
-
-class SkPushButtonWidget : public SkButtonWidget {
-public:
- SkPushButtonWidget(uint32_t flags = 0) : SkButtonWidget(flags) {}
-
-protected:
- virtual bool onEvent(const SkEvent&);
- virtual void onDraw(SkCanvas*);
- virtual Click* onFindClickHandler(SkScalar x, SkScalar y);
- virtual bool onClick(Click* click);
-
-private:
- typedef SkButtonWidget INHERITED;
-};
-
-class SkCheckBoxWidget : public SkButtonWidget {
-public:
- SkCheckBoxWidget(uint32_t flags = 0);
-
-protected:
- virtual bool onEvent(const SkEvent&);
- virtual void onDraw(SkCanvas*);
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node*);
-
-private:
- typedef SkButtonWidget INHERITED;
-};
-
-#include "SkTextBox.h"
-
-class SkStaticTextView : public SkView {
-public:
- SkStaticTextView(uint32_t flags = 0);
- virtual ~SkStaticTextView();
-
- enum Mode {
- kFixedSize_Mode,
- kAutoWidth_Mode,
- kAutoHeight_Mode,
-
- kModeCount
- };
- Mode getMode() const { return (Mode)fMode; }
- void setMode(Mode);
-
- SkTextBox::SpacingAlign getSpacingAlign() const { return (SkTextBox::SpacingAlign)fSpacingAlign; }
- void setSpacingAlign(SkTextBox::SpacingAlign);
-
- void getMargin(SkPoint* margin) const;
- void setMargin(SkScalar dx, SkScalar dy);
-
- size_t getText(SkString* text = NULL) const;
- size_t getText(char text[] = NULL) const;
- void setText(const SkString&);
- void setText(const char text[]);
- void setText(const char text[], size_t len);
-
- void getPaint(SkPaint*) const;
- void setPaint(const SkPaint&);
-
-protected:
- // overrides
- virtual void onDraw(SkCanvas*);
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node*);
-
-private:
- SkPoint fMargin;
- SkString fText;
- SkPaint fPaint;
- uint8_t fMode;
- uint8_t fSpacingAlign;
-
- void computeSize();
-
- typedef SkView INHERITED;
-};
-
-class SkBitmapView : public SkView {
-public:
- SkBitmapView(uint32_t flags = 0);
- virtual ~SkBitmapView();
-
- bool getBitmap(SkBitmap*) const;
- void setBitmap(const SkBitmap*, bool viewOwnsPixels);
- bool loadBitmapFromFile(const char path[]);
-
-protected:
- virtual void onDraw(SkCanvas*);
- virtual void onInflate(const SkDOM&, const SkDOM::Node*);
-
-private:
- SkBitmap fBitmap;
- typedef SkView INHERITED;
-};
-
-/////////////////////////////////////////////////////////////////////////////
-
-class SkShader;
-class SkInterpolator;
-
-class SkWidgetView : public SkView {
-public:
- SkWidgetView(uint32_t flags = 0);
- virtual ~SkWidgetView();
-
- static const char* GetEventType();
-};
-
-class SkSliderView : public SkWidgetView {
-public:
- SkSliderView(uint32_t flags = 0);
-
- uint16_t getValue() const { return fValue; }
- uint16_t getMax() const { return fMax; }
-
- void setMax(U16CPU max);
- void setValue(U16CPU value);
-
-protected:
- virtual void onDraw(SkCanvas*);
- virtual Click* onFindClickHandler(SkScalar x, SkScalar y);
- virtual bool onClick(Click*);
-
-private:
- uint16_t fValue, fMax;
-
- typedef SkWidgetView INHERITED;
-};
-
-//////////////////////////////////////////////////////////////////////////////
-
-class SkHasLabelView : public SkView {
-public:
- void getLabel(SkString*) const;
- void setLabel(const SkString&);
- void setLabel(const char label[]);
-
-protected:
- SkString fLabel;
-
- // called when the label changes
- virtual void onLabelChange();
-
- // overrides
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node*);
-};
-
-class SkPushButtonView : public SkHasLabelView {
-public:
- SkPushButtonView(uint32_t flags = 0);
-
-protected:
- virtual void onDraw(SkCanvas*);
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node*);
-};
-
-class SkCheckBoxView : public SkHasLabelView {
-public:
- SkCheckBoxView(uint32_t flags = 0);
-
- enum State {
- kOff_State,
- kOn_State,
- kMaybe_State
- };
- State getState() const { return fState; }
- void setState(State);
-
-protected:
- virtual void onDraw(SkCanvas*);
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node*);
-
-private:
- State fState;
-};
-
-class SkProgressView : public SkView {
-public:
- SkProgressView(uint32_t flags = 0);
- virtual ~SkProgressView();
-
- uint16_t getValue() const { return fValue; }
- uint16_t getMax() const { return fMax; }
-
- void setMax(U16CPU max);
- void setValue(U16CPU value);
-
-protected:
- virtual void onDraw(SkCanvas*);
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node* node);
-
-private:
- uint16_t fValue, fMax;
- SkShader* fOnShader, *fOffShader;
- SkInterpolator* fInterp;
- bool fDoInterp;
-
- typedef SkView INHERITED;
-};
-
-class SkTextView : public SkView {
-public:
- SkTextView(uint32_t flags = 0);
- virtual ~SkTextView();
-
- enum AnimaDir {
- kNeutral_AnimDir,
- kForward_AnimDir,
- kBackward_AnimDir,
- kAnimDirCount
- };
-
- void getText(SkString*) const;
- void setText(const SkString&, AnimaDir dir = kNeutral_AnimDir);
- void setText(const char text[], AnimaDir dir = kNeutral_AnimDir);
- void setText(const char text[], size_t len, AnimaDir dir = kNeutral_AnimDir);
-
- void getMargin(SkPoint* margin) const;
- void setMargin(const SkPoint&);
-
- SkPaint& paint() { return fPaint; }
-
-protected:
- virtual void onDraw(SkCanvas*);
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node* node);
-
-private:
- SkString fText;
- SkPaint fPaint;
- SkPoint fMargin;
-
- class Interp;
- Interp* fInterp;
- bool fDoInterp;
- // called by the other setText methods. This guy does not check for !=
- // before doing the assign, so the caller must check for us
- void privSetText(const SkString&, AnimaDir dir);
-
- typedef SkView INHERITED;
-};
-
-//////////////////////////////////////////////////////////
-
-class SkEvent;
-
-class SkListSource : public SkEventSink {
-public:
- virtual int countRows() = 0;
- virtual void getRow(int index, SkString* left, SkString* right) = 0;
- virtual SkEvent* getEvent(int index);
-
- static SkListSource* CreateFromDir(const char path[], const char suffix[],
- const char targetPrefix[]);
- static SkListSource* CreateFromDOM(const SkDOM& dom, const SkDOM::Node* node);
-};
-
-class SkListView : public SkWidgetView {
-public:
- SkListView(uint32_t flags = 0);
- virtual ~SkListView();
-
- SkScalar getRowHeight() const { return fRowHeight; }
- void setRowHeight(SkScalar);
-
- /** Return the index of the selected row, or -1 if none
- */
- int getSelection() const { return fCurrIndex; }
- /** Set the index of the selected row, or -1 for none
- */
- void setSelection(int);
-
- void moveSelectionUp();
- void moveSelectionDown();
-
- enum Attr {
- kBG_Attr,
- kNormalText_Attr,
- kHiliteText_Attr,
- kHiliteCell_Attr,
- kAttrCount
- };
- SkPaint& paint(Attr);
-
- SkListSource* getListSource() const { return fSource; }
- SkListSource* setListSource(SkListSource*);
-
-#if 0
- enum Action {
- kSelectionChange_Action,
- kSelectionPicked_Action,
- kActionCount
- };
- /** If event is not null, it is retained by the view, and a copy
- of the event will be posted to its listeners when the specified
- action occurs. If event is null, then no event will be posted for
- the specified action.
- */
- void setActionEvent(Action, SkEvent* event);
-#endif
-
-protected:
- virtual void onDraw(SkCanvas*);
- virtual void onSizeChange();
- virtual bool onEvent(const SkEvent&);
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node* node);
-
-private:
- SkPaint fPaint[kAttrCount];
- SkListSource* fSource;
- SkScalar fRowHeight;
- int fCurrIndex; // logical index
- int fScrollIndex; // logical index of top-most visible row
- int fVisibleRowCount;
- SkString* fStrCache;
-
- void dirtyStrCache();
- void ensureStrCache(int visibleCount);
-
- int logicalToVisualIndex(int index) const { return index - fScrollIndex; }
- void invalSelection();
- bool getRowRect(int index, SkRect*) const;
- void ensureSelectionIsVisible();
-
- typedef SkWidgetView INHERITED;
-};
-
-//////////////////////////////////////////////////////////
-
-class SkGridView : public SkWidgetView {
-public:
- SkGridView(uint32_t flags = 0);
- virtual ~SkGridView();
-
- void getCellSize(SkPoint*) const;
- void setCellSize(SkScalar x, SkScalar y);
-
- /** Return the index of the selected item, or -1 if none
- */
- int getSelection() const { return fCurrIndex; }
- /** Set the index of the selected row, or -1 for none
- */
- void setSelection(int);
-
- void moveSelectionUp();
- void moveSelectionDown();
-
- enum Attr {
- kBG_Attr,
- kHiliteCell_Attr,
- kAttrCount
- };
- SkPaint& paint(Attr);
-
- SkListSource* getListSource() const { return fSource; }
- SkListSource* setListSource(SkListSource*);
-
-protected:
- virtual void onDraw(SkCanvas*);
- virtual void onSizeChange();
- virtual bool onEvent(const SkEvent&);
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node* node);
-
-private:
- SkView* fScrollBar;
- SkPaint fPaint[kAttrCount];
- SkListSource* fSource;
- int fCurrIndex; // logical index
-
- SkPoint fCellSize;
- SkIPoint fVisibleCount;
-
- int logicalToVisualIndex(int index) const { return index; }
- void invalSelection();
- bool getCellRect(int index, SkRect*) const;
- void ensureSelectionIsVisible();
-
- typedef SkWidgetView INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/SkWidgetViews.h b/skia/include/SkWidgetViews.h
deleted file mode 100644
index 4dd8866..0000000
--- a/skia/include/SkWidgetViews.h
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkWidgetViews_DEFINED
-#define SkWidgetViews_DEFINED
-
-#include "SkView.h"
-
-
-enum SkWidgetEnum {
- kBorder_WidgetEnum, //!< <sk-border>
- kButton_WidgetEnum, //!< <sk-button>
- kImage_WidgetEnum, //!< <sk-image>
- kList_WidgetEnum, //!< <sk-list>
- kProgress_WidgetEnum, //!< <sk-progress>
- kScroll_WidgetEnum, //!< <sk-scroll>
- kText_WidgetEnum, //!< <sk-text>
-
- kWidgetEnumCount
-};
-
-//determines which skin to use
-enum SkinEnum {
- kBorder_SkinEnum,
- kButton_SkinEnum,
- kProgress_SkinEnum,
- kScroll_SkinEnum,
- kStaticText_SkinEnum,
-
- kSkinEnumCount
-};
-
-#include "SkAnimator.h"
-//used for inflates
-const char* get_skin_enum_path(SkinEnum se);
-void init_skin_anim(const char path[], SkAnimator* anim);
-void init_skin_anim(SkinEnum se, SkAnimator* anim);
-void init_skin_paint(SkinEnum se, SkPaint* paint);
-void inflate_paint(const SkDOM& dom, const SkDOM::Node* node, SkPaint* paint);
-
-/** Given an enum value, return an instance of the specified widget.
- If the enum is out of range, returns null
-*/
-SkView* SkWidgetFactory(SkWidgetEnum);
-/** Given the inflate/element name of a widget, return an instance of
- the specified widget, or null if name does not match any known
- widget type.
-*/
-SkView* SkWidgetFactory(const char name[]);
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-class SkWidgetView : public SkView {
-public:
- SkWidgetView();
-
- const char* getLabel() const;
- void getLabel(SkString* label) const;
-
- void setLabel(const char[]);
- void setLabel(const char[], size_t len);
- void setLabel(const SkString&);
-
- SkEvent& event() { return fEvent; }
- const SkEvent& event() const { return fEvent; }
-
- /** 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&);
-
-protected:
- /** called when the label changes. override in subclasses. default action invals the view's bounds.
- called with the old and new labels, before the label has actually changed.
- */
- virtual void onLabelChange(const char oldLabel[], const char newLabel[]);
- /** called before posting the event to our listeners. Override to add slots to the event
- before posting. Return true to proceed with posting, or false to not post the event to any
- listener. Note: the event passed in may not be the same as calling this->event().
- Be sure to call your INHERITED method as well, so that all classes in the hierarchy get a shot
- at modifying the event (and possibly returning false to abort).
- */
- virtual bool onPrepareWidgetEvent(SkEvent* evt);
-
- // overrides
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node*);
-
-private:
- SkString fLabel;
- SkEvent fEvent;
-
- typedef SkView INHERITED;
-};
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-class SkButtonView : public SkWidgetView {
-public:
- // inflate: "sk-button"
-
-protected:
- // overrides
- virtual bool onEvent(const SkEvent&);
-};
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-class SkCheckButtonView : public SkWidgetView {
-public:
- SkCheckButtonView();
-
- // inflate: "sk-checkbutton"
-
- enum CheckState {
- kOff_CheckState, //!< inflate: check-state="off"
- kOn_CheckState, //!< inflate: check-state="on"
- kUnknown_CheckState //!< inflate: check-state="unknown"
- };
- CheckState getCheckState() const { return (CheckState)fCheckState; }
- void setCheckState(CheckState);
-
- /** use this to extract the CheckState from an event (i.e. one that as posted
- by a SkCheckButtonView). Returns true if the proper slot was present in the event,
- and sets state to that value. If no proper slot is found, returns false and does not
- modify state.
- */
- static bool GetWidgetEventCheckState(const SkEvent&, CheckState* state);
-
-protected:
- // called when the check-state is about to change, but before it actually has
- virtual void onCheckStateChange(CheckState oldState, CheckState newState);
-
- // overrides
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node*);
- virtual bool onPrepareWidgetEvent(SkEvent* evt);
-
-private:
- uint8_t fCheckState;
-
- typedef SkWidgetView INHERITED;
-};
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-#include "SkTextBox.h"
-
-class SkStaticTextView : public SkView {
-public:
- SkStaticTextView();
- virtual ~SkStaticTextView();
-
- enum Mode {
- kFixedSize_Mode,
- kAutoWidth_Mode,
- kAutoHeight_Mode,
-
- kModeCount
- };
- Mode getMode() const { return (Mode)fMode; }
- void setMode(Mode);
-
- SkTextBox::SpacingAlign getSpacingAlign() const { return (SkTextBox::SpacingAlign)fSpacingAlign; }
- void setSpacingAlign(SkTextBox::SpacingAlign);
-
- void getMargin(SkPoint* margin) const;
- void setMargin(SkScalar dx, SkScalar dy);
-
- size_t getText(SkString* text = NULL) const;
- size_t getText(char text[] = NULL) const;
- void setText(const SkString&);
- void setText(const char text[]);
- void setText(const char text[], size_t len);
-
- void getPaint(SkPaint*) const;
- void setPaint(const SkPaint&);
-
-protected:
- // overrides
- virtual void onDraw(SkCanvas*);
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node*);
-
-private:
- SkPoint fMargin;
- SkString fText;
- SkPaint fPaint;
- uint8_t fMode;
- uint8_t fSpacingAlign;
-
- void computeSize();
-
- typedef SkView INHERITED;
-};
-
-////////////////////////////////////////////////////////////////////////////////////////////////
-
-class SkAnimator;
-class SkListSource;
-class SkScrollBarView;
-
-class SkListView : public SkWidgetView {
-public:
- SkListView();
- virtual ~SkListView();
-
- bool hasScrollBar() const { return fScrollBar != NULL; }
- void setHasScrollBar(bool);
-
- /** Return the number of visible rows
- */
- int getVisibleRowCount() const { return fVisibleRowCount; }
- /** Return the index of the selected row, or -1 if none
- */
- int getSelection() const { return fCurrIndex; }
- /** Set the index of the selected row, or -1 for none
- */
- void setSelection(int);
- /** If possible, move the selection up and return true,
- else do nothing and return false
- If nothing is selected, select the last item (unless there are no items).
- */
- bool moveSelectionUp();
- /** If possible, move the selection down and return true,
- else do nothing and return false.
- If nothing is selected, select the first item (unless there are no items).
- */
- bool moveSelectionDown();
-
- SkListSource* getListSource() const { return fSource; }
- SkListSource* setListSource(SkListSource*);
-
- /** Call this in your event handler. If the specified event is from a SkListView,
- then it returns the index of the selected item in this list, otherwise it
- returns -1
- */
- static int GetWidgetEventListIndex(const SkEvent&);
-
-protected:
- // overrides
- virtual void onDraw(SkCanvas*);
- virtual void onSizeChange();
- virtual bool onEvent(const SkEvent&);
- virtual void onInflate(const SkDOM& dom, const SkDOM::Node* node);
- virtual bool onPrepareWidgetEvent(SkEvent*);
-
-private:
- enum DirtyFlags {
- kAnimCount_DirtyFlag = 0x01,
- kAnimContent_DirtyFlag = 0x02
- };
- void dirtyCache(unsigned dirtyFlags);
- bool ensureCache();
-
- int logicalToVisualIndex(int index) const { return index - fScrollIndex; }
- void invalSelection();
- SkScalar getContentWidth() const;
- bool getRowRect(int index, SkRect*) const;
- void ensureSelectionIsVisible();
- void ensureVisibleRowCount();
-
- struct BindingRec;
-
- enum Heights {
- kNormal_Height,
- kSelected_Height
- };
- SkListSource* fSource;
- SkScrollBarView* fScrollBar;
- SkAnimator* fAnims;
- BindingRec* fBindings;
- SkString fSkinName;
- SkScalar fHeights[2];
- int16_t fScrollIndex, fCurrIndex;
- uint16_t fVisibleRowCount, fBindingCount;
- SkBool8 fAnimContentDirty;
- SkBool8 fAnimFocusDirty;
-
- typedef SkWidgetView INHERITED;
-};
-
-class SkListSource : public SkRefCnt {
-public:
- virtual int countFields();
- virtual void getFieldName(int index, SkString* field);
- /** Return the index of the named field, or -1 if not found */
- virtual int findFieldIndex(const char field[]);
-
- virtual int countRecords();
- virtual void getRecord(int rowIndex, int fieldIndex, SkString* data);
-
- virtual bool prepareWidgetEvent(SkEvent*, int rowIndex);
-
- static SkListSource* Factory(const char name[]);
-};
-
-#endif
diff --git a/skia/include/SkWindow.h b/skia/include/SkWindow.h
deleted file mode 100644
index 96262ee..0000000
--- a/skia/include/SkWindow.h
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkWindow_DEFINED
-#define SkWindow_DEFINED
-
-#include "SkView.h"
-#include "SkBitmap.h"
-#include "SkRegion.h"
-#include "SkEvent.h"
-#include "SkKey.h"
-#include "SkTDArray.h"
-
-#ifdef SK_BUILD_FOR_WINCEx
- #define SHOW_FPS
-#endif
-//#define USE_GX_SCREEN
-
-class SkOSMenu;
-
-class SkWindow : public SkView {
-public:
- SkWindow();
- virtual ~SkWindow();
-
- const SkBitmap& getBitmap() const { return fBitmap; }
-
- void setConfig(SkBitmap::Config);
- void resize(int width, int height, SkBitmap::Config config = SkBitmap::kNo_Config);
- void eraseARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU b);
- void eraseRGB(U8CPU r, U8CPU g, U8CPU b);
-
- bool isDirty() const { return !fDirtyRgn.isEmpty(); }
- bool update(SkIRect* updateArea);
- bool handleClick(int x, int y, Click::State);
- bool handleChar(SkUnichar);
- bool handleKey(SkKey);
- bool handleKeyUp(SkKey);
- bool handleMenu(uint32_t os_cmd);
-
- void addMenu(SkOSMenu*);
- void setTitle(const char title[]);
-
-protected:
- virtual bool onEvent(const SkEvent&);
-
- // called if part of our bitmap is invalidated
- virtual void onHandleInval(const SkIRect&);
- virtual bool onHandleChar(SkUnichar);
- virtual bool onHandleKey(SkKey);
- virtual bool onHandleKeyUp(SkKey);
- virtual void onAddMenu(const SkOSMenu*) {}
- virtual void onSetTitle(const char title[]) {}
-
- // overrides from SkView
- virtual bool handleInval(const SkRect&);
- virtual bool onGetFocusView(SkView** focus) const;
- virtual bool onSetFocusView(SkView* focus);
-
-private:
- SkBitmap::Config fConfig;
- SkBitmap fBitmap;
- SkRegion fDirtyRgn;
- Click* fClick; // to track clicks
-
- SkTDArray<SkOSMenu*> fMenus;
-
- SkView* fFocusView;
- bool fWaitingOnInval;
-
- typedef SkView INHERITED;
-};
-
-///////////////////////////////////////////////////////////
-
-#ifndef SK_USE_WXWIDGETS
-#ifdef SK_BUILD_FOR_MAC
- #include "SkOSWindow_Mac.h"
-#elif defined(SK_BUILD_FOR_WIN)
- #include "SkOSWindow_Win.h"
-#elif defined(SK_BUILD_FOR_UNIXx)
- #include "SkOSWindow_Unix.h"
-#endif
-#else
- #include "SkOSWindow_wxwidgets.h"
-#endif
-
-#endif
-
diff --git a/skia/include/SkWriter32.h b/skia/include/SkWriter32.h
deleted file mode 100644
index aeeb37d..0000000
--- a/skia/include/SkWriter32.h
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkWriter32_DEFINED
-#define SkWriter32_DEFINED
-
-#include "SkTypes.h"
-
-#include "SkScalar.h"
-#include "SkPoint.h"
-#include "SkRect.h"
-
-class SkStream;
-class SkWStream;
-
-class SkWriter32 : SkNoncopyable {
-public:
- SkWriter32(size_t minSize) {
- fMinSize = minSize;
- fSize = 0;
- fHead = fTail = NULL;
- }
- ~SkWriter32();
-
- bool writeBool(bool value) {
- 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 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;
- }
-
- // write count bytes (must be a multiple of 4)
- void writeMul4(const void* values, size_t size) {
- SkASSERT(SkAlign4(size) == size);
- // if we could query how much is avail in the current block, we might
- // copy that much, and then alloc the rest. That would reduce the waste
- // in the current block
- memcpy(this->reserve(size), values, size);
- }
-
- void writePad(const void* src, size_t size);
-
- // return the current offset (will always be a multiple of 4)
- uint32_t size() const { return fSize; }
- void reset();
- uint32_t* reserve(size_t size); // size MUST be multiple of 4
-
- // return the address of the 4byte int at the specified offset (which must
- // 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:
- size_t fMinSize;
- uint32_t fSize;
-
- struct Block;
- Block* fHead;
- Block* fTail;
-
- Block* newBlock(size_t bytes);
-};
-
-#endif
diff --git a/skia/include/SkXMLParser.h b/skia/include/SkXMLParser.h
deleted file mode 100644
index ddad273..0000000
--- a/skia/include/SkXMLParser.h
+++ /dev/null
@@ -1,161 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkXMLParser_DEFINED
-#define SkXMLParser_DEFINED
-
-#include "SkMath.h"
-#include "SkString.h"
-
-class SkStream;
-
-class SkDOM;
-struct SkDOMNode;
-
-class SkXMLParserError {
-public:
- enum ErrorCode {
- kNoError,
- kEmptyFile,
- kUnknownElement,
- kUnknownAttributeName,
- kErrorInAttributeValue,
- kDuplicateIDs,
- kUnknownError
- };
-
- SkXMLParserError();
- virtual ~SkXMLParserError();
- ErrorCode getErrorCode() const { return fCode; }
- virtual void getErrorString(SkString* str) const;
- int getLineNumber() const { return fLineNumber; }
- int getNativeCode() const { return fNativeCode; }
- bool hasError() const { return fCode != kNoError || fNativeCode != -1; }
- bool hasNoun() const { return fNoun.size() > 0; }
- void reset();
- void setCode(ErrorCode code) { fCode = code; }
- void setNoun(const SkString& str) { fNoun.set(str); }
- void setNoun(const char* ch) { fNoun.set(ch); }
- void setNoun(const char* ch, size_t len) { fNoun.set(ch, len); }
-protected:
- ErrorCode fCode;
-private:
- int fLineNumber;
- int fNativeCode;
- SkString fNoun;
- friend class SkXMLParser;
-};
-
-class SkXMLParser {
-public:
- SkXMLParser(SkXMLParserError* parserError = NULL);
- virtual ~SkXMLParser();
-
- /** Returns true for success
- */
- bool parse(const char doc[], size_t len);
- bool parse(SkStream& docStream);
- bool parse(const SkDOM&, const SkDOMNode*);
-
- static void GetNativeErrorString(int nativeErrorCode, SkString* str);
-
-protected:
- // override in subclasses; return true to stop parsing
- virtual bool onStartElement(const char elem[]);
- virtual bool onAddAttribute(const char name[], const char value[]);
- virtual bool onEndElement(const char elem[]);
- virtual bool onText(const char text[], int len);
-
-public:
- // public for ported implementation, not meant for clients to call
- 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);
- void* fParser;
-protected:
- SkXMLParserError* fError;
-private:
- void reportError(void* parser);
-};
-
-class SkXMLPullParser {
-public:
- SkXMLPullParser();
- explicit SkXMLPullParser(SkStream*);
- virtual ~SkXMLPullParser();
-
- SkStream* getStream() const { return fStream; }
- SkStream* setStream(SkStream* stream);
-
- enum EventType {
- ERROR = -1,
- START_DOCUMENT,
- END_DOCUMENT,
- START_TAG,
- END_TAG,
- TEXT,
- CDSECT,
- ENTITY_REF,
- IGNORABLE_WHITESPACE,
- PROCESSING_INSTRUCTION,
- COMMENT,
- DOCDECL
- };
-
- EventType nextToken();
- EventType getEventType() const { return fCurr.fEventType; }
-
- struct AttrInfo {
- 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);
-
-public:
- struct Curr {
- EventType fEventType;
- const char* fName;
- AttrInfo* fAttrInfos;
- int fAttrInfoCount;
- bool fIsWhitespace;
- };
-
-private:
- // implemented in the porting layer
- bool onInit(); // return false on failure
- EventType onNextToken();
- void onExit();
-
- SkStream* fStream;
- Curr fCurr;
- int fDepth;
-
- struct Impl;
- Impl* fImpl;
-};
-
-#endif
diff --git a/skia/include/SkXMLWriter.h b/skia/include/SkXMLWriter.h
deleted file mode 100644
index 742e7f1..0000000
--- a/skia/include/SkXMLWriter.h
+++ /dev/null
@@ -1,93 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkXMLWriter_DEFINED
-#define SkXMLWriter_DEFINED
-
-#include "SkTDArray.h"
-#include "SkString.h"
-#include "SkDOM.h"
-
-class SkWStream;
-class SkXMLParser;
-
-class SkXMLWriter {
-public:
- SkXMLWriter(bool doEscapeMarkup = true);
- virtual ~SkXMLWriter();
-
- void addS32Attribute(const char name[], int32_t value);
- void addAttribute(const char name[], const char value[]);
- void addAttributeLen(const char name[], const char value[], size_t length);
- void addHexAttribute(const char name[], uint32_t value, int minDigits = 0);
- void addScalarAttribute(const char name[], SkScalar value);
- void endElement() { this->onEndElement(); }
- void startElement(const char elem[]);
- void startElementLen(const char elem[], size_t length);
- void writeDOM(const SkDOM&, const SkDOM::Node*, bool skipRoot);
- void flush();
- virtual void writeHeader();
-
-protected:
- virtual void onStartElementLen(const char elem[], size_t length) = 0;
- virtual void onAddAttributeLen(const char name[], const char value[], size_t length) = 0;
- virtual void onEndElement() = 0;
-
- struct Elem {
- SkString fName;
- bool fHasChildren;
- };
- void doEnd(Elem* elem);
- bool doStart(const char name[], size_t length);
- Elem* getEnd();
- const char* getHeader();
- SkTDArray<Elem*> fElems;
-
-private:
- bool fDoEscapeMarkup;
- // illegal
- SkXMLWriter& operator=(const SkXMLWriter&);
-};
-
-class SkXMLStreamWriter : public SkXMLWriter {
-public:
- SkXMLStreamWriter(SkWStream*);
- virtual ~SkXMLStreamWriter();
- virtual void writeHeader();
- SkDEBUGCODE(static void UnitTest();)
-protected:
- virtual void onStartElementLen(const char elem[], size_t length);
- virtual void onEndElement();
- virtual void onAddAttributeLen(const char name[], const char value[], size_t length);
-private:
- SkWStream& fStream;
-};
-
-class SkXMLParserWriter : public SkXMLWriter {
-public:
- SkXMLParserWriter(SkXMLParser*);
- virtual ~SkXMLParserWriter();
-protected:
- virtual void onStartElementLen(const char elem[], size_t length);
- virtual void onEndElement();
- virtual void onAddAttributeLen(const char name[], const char value[], size_t length);
-private:
- SkXMLParser& fParser;
-};
-
-
-#endif
-
diff --git a/skia/include/SkXfermode.h b/skia/include/SkXfermode.h
deleted file mode 100644
index f7e6510..0000000
--- a/skia/include/SkXfermode.h
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkXfermode_DEFINED
-#define SkXfermode_DEFINED
-
-#include "SkFlattenable.h"
-#include "SkColor.h"
-
-/** \class SkXfermode
-
- SkXfermode is the base class for objects that are called to implement custom
- "transfer-modes" in the drawing pipeline. The static function Create(Modes)
- can be called to return an instance of any of the predefined subclasses as
- specified in the Modes enum. When an SkXfermode is assigned to an SkPaint,
- then objects drawn with that paint have the xfermode applied.
-*/
-class SkXfermode : public SkFlattenable {
-public:
- SkXfermode() {}
-
- virtual void xfer32(SkPMColor dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]);
- virtual void xfer16(uint16_t dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]);
- virtual void xfer4444(uint16_t dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]);
- virtual void xferA8(SkAlpha dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]);
-
- enum Coeff {
- kZero_Coeff,
- kOne_Coeff,
- kSC_Coeff,
- kISC_Coeff,
- kDC_Coeff,
- kIDC_Coeff,
- kSA_Coeff,
- kISA_Coeff,
- kDA_Coeff,
- kIDA_Coeff,
-
- kCoeffCount
- };
- virtual bool asCoeff(Coeff* src, Coeff* dst);
-
-protected:
- SkXfermode(SkFlattenableReadBuffer& rb) : SkFlattenable(rb) {}
-
- /** The default implementation of xfer32/xfer16/xferA8 in turn call this
- method, 1 color at a time (upscaled to a SkPMColor). The default
- implmentation of this method just returns dst. If performance is
- important, your subclass should override xfer32/xfer16/xferA8 directly.
-
- This method will not be called directly by the client, so it need not
- be implemented if your subclass has overridden xfer32/xfer16/xferA8
- */
- virtual SkPMColor xferColor(SkPMColor src, SkPMColor dst);
-
-private:
- typedef SkFlattenable INHERITED;
-};
-
-///////////////////////////////////////////////////////////////////////////////
-
-/** \class SkProcXfermode
-
- SkProcXfermode is a xfermode that applies the specified proc to its colors.
- This class is not exported to java.
-*/
-class SkProcXfermode : public SkXfermode {
-public:
- SkProcXfermode(SkXfermodeProc proc) : fProc(proc) {}
-
- // overrides from SkXfermode
- virtual void xfer32(SkPMColor dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]);
- virtual void xfer16(uint16_t dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]);
- virtual void xfer4444(uint16_t dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]);
- virtual void xferA8(SkAlpha dst[], const SkPMColor src[], int count,
- const SkAlpha aa[]);
-
- // overrides from SkFlattenable
- virtual Factory getFactory() { return CreateProc; }
- virtual void flatten(SkFlattenableWriteBuffer&);
-
-protected:
- SkProcXfermode(SkFlattenableReadBuffer&);
-
-private:
- SkXfermodeProc fProc;
-
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return SkNEW_ARGS(SkProcXfermode, (buffer)); }
-
- typedef SkXfermode INHERITED;
-};
-
-#endif
-
diff --git a/skia/include/corecg/Sk64.h b/skia/include/corecg/Sk64.h
deleted file mode 100644
index c4ae41e..0000000
--- a/skia/include/corecg/Sk64.h
+++ /dev/null
@@ -1,245 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef Sk64_DEFINED
-#define Sk64_DEFINED
-
-#include "SkFixed.h"
-#include "SkMath.h"
-
-/** \class Sk64
-
- Sk64 is a 64-bit math package that does not require long long support from the compiler.
-*/
-struct Sk64 {
- int32_t fHi; //!< the high 32 bits of the number (including sign)
- uint32_t fLo; //!< the low 32 bits of the number
-
- /** Returns non-zero if the Sk64 can be represented as a signed 32 bit integer
- */
- SkBool is32() const { return fHi == ((int32_t)fLo >> 31); }
-
- /** Returns non-zero if the Sk64 cannot be represented as a signed 32 bit integer
- */
- SkBool is64() const { return fHi != ((int32_t)fLo >> 31); }
-
- /** Returns non-zero if the Sk64 can be represented as a signed 48 bit integer. Used to know
- if we can shift the value down by 16 to treat it as a SkFixed.
- */
- SkBool isFixed() const;
-
- /** Return the signed 32 bit integer equivalent. Asserts that is32() returns non-zero.
- */
- int32_t get32() const { SkASSERT(this->is32()); return (int32_t)fLo; }
-
- /** Return the number >> 16. Asserts that this does not loose any significant high bits.
- */
- SkFixed getFixed() const {
- SkASSERT(this->isFixed());
-
- uint32_t sum = fLo + (1 << 15);
- int32_t hi = fHi;
- if (sum < fLo) {
- hi += 1;
- }
- return (hi << 16) | (sum >> 16);
- }
-
- /** Return the number >> 30. Asserts that this does not loose any
- significant high bits.
- */
- SkFract getFract() const;
-
- /** Returns the square-root of the number as a signed 32 bit value. */
- int32_t getSqrt() const;
-
- /** Returns the number of leading zeros of the absolute value of this.
- Will return in the range [0..64]
- */
- int getClzAbs() const;
-
- /** Returns non-zero if the number is zero */
- SkBool isZero() const { return (fHi | fLo) == 0; }
-
- /** Returns non-zero if the number is non-zero */
- SkBool nonZero() const { return fHi | fLo; }
-
- /** Returns non-zero if the number is negative (number < 0) */
- SkBool isNeg() const { return (uint32_t)fHi >> 31; }
-
- /** Returns non-zero if the number is positive (number > 0) */
- SkBool isPos() const { return ~(fHi >> 31) & (fHi | fLo); }
-
- /** Returns -1,0,+1 based on the sign of the number */
- int sign() const { return (fHi >> 31) | Sk32ToBool(fHi | fLo); }
-
- /** Negate the number */
- void negate();
-
- /** If the number < 0, negate the number
- */
- void abs();
-
- /** Returns the number of bits needed to shift the Sk64 to the right
- in order to make it fit in a signed 32 bit integer.
- */
- int shiftToMake32() const;
-
- /** Set the number to zero */
- void setZero() { fHi = fLo = 0; }
-
- /** Set the high and low 32 bit values of the number */
- void set(int32_t hi, uint32_t lo) { fHi = hi; fLo = lo; }
-
- /** Set the number to the specified 32 bit integer */
- void set(int32_t a) { fHi = a >> 31; fLo = a; }
-
- /** Set the number to the product of the two 32 bit integers */
- void setMul(int32_t a, int32_t b);
-
- /** extract 32bits after shifting right by bitCount.
- Note: itCount must be [0..63].
- Asserts that no significant high bits were lost.
- */
- int32_t getShiftRight(unsigned bitCount) const;
-
- /** Shift the number left by the specified number of bits.
- @param bits How far to shift left, must be [0..63]
- */
- void shiftLeft(unsigned bits);
-
- /** Shift the number right by the specified number of bits.
- @param bits How far to shift right, must be [0..63]. This
- performs an arithmetic right-shift (sign extending).
- */
- void shiftRight(unsigned bits);
-
- /** Shift the number right by the specified number of bits, but
- round the result.
- @param bits How far to shift right, must be [0..63]. This
- performs an arithmetic right-shift (sign extending).
- */
- void roundRight(unsigned bits);
-
- /** Add the specified 32 bit integer to the number */
- void add(int32_t lo) {
- int32_t hi = lo >> 31; // 0 or -1
- uint32_t sum = fLo + (uint32_t)lo;
-
- fHi = fHi + hi + (sum < fLo);
- fLo = sum;
- }
-
- /** Add the specified Sk64 to the number */
- void add(int32_t hi, uint32_t lo) {
- uint32_t sum = fLo + lo;
-
- fHi = fHi + hi + (sum < fLo);
- fLo = sum;
- }
-
- /** Add the specified Sk64 to the number */
- void add(const Sk64& other) { this->add(other.fHi, other.fLo); }
-
- /** Subtract the specified Sk64 from the number. (*this) = (*this) - num
- */
- void sub(const Sk64& num);
-
- /** Subtract the number from the specified Sk64. (*this) = num - (*this)
- */
- void rsub(const Sk64& num);
-
- /** Multiply the number by the specified 32 bit integer
- */
- void mul(int32_t);
-
- enum DivOptions {
- kTrunc_DivOption, //!< truncate the result when calling div()
- kRound_DivOption //!< round the result when calling div()
- };
-
- /** Divide the number by the specified 32 bit integer, using the specified
- divide option (either truncate or round).
- */
- void div(int32_t, DivOptions);
-
- /** return (this + other >> 16) as a 32bit result */
- SkFixed addGetFixed(const Sk64& other) const {
- return this->addGetFixed(other.fHi, other.fLo);
- }
-
- /** return (this + Sk64(hi, lo) >> 16) as a 32bit result */
- SkFixed addGetFixed(int32_t hi, uint32_t lo) const {
-#ifdef SK_DEBUG
- Sk64 tmp(*this);
- tmp.add(hi, lo);
-#endif
-
- uint32_t sum = fLo + lo;
- hi += fHi + (sum < fLo);
- lo = sum;
-
- sum = lo + (1 << 15);
- if (sum < lo)
- hi += 1;
-
- hi = (hi << 16) | (sum >> 16);
- SkASSERT(hi == tmp.getFixed());
- return hi;
- }
-
- /** Return the result of dividing the number by denom, treating the answer
- as a SkFixed. (*this) << 16 / denom. It is an error for denom to be 0.
- */
- SkFixed getFixedDiv(const Sk64& denom) const;
-
- friend bool operator==(const Sk64& a, const Sk64& b) {
- return a.fHi == b.fHi && a.fLo == b.fLo;
- }
-
- friend bool operator!=(const Sk64& a, const Sk64& b) {
- return a.fHi != b.fHi || a.fLo != b.fLo;
- }
-
- friend bool operator<(const Sk64& a, const Sk64& b) {
- return a.fHi < b.fHi || (a.fHi == b.fHi && a.fLo < b.fLo);
- }
-
- friend bool operator<=(const Sk64& a, const Sk64& b) {
- return a.fHi < b.fHi || (a.fHi == b.fHi && a.fLo <= b.fLo);
- }
-
- friend bool operator>(const Sk64& a, const Sk64& b) {
- return a.fHi > b.fHi || (a.fHi == b.fHi && a.fLo > b.fLo);
- }
-
- friend bool operator>=(const Sk64& a, const Sk64& b) {
- return a.fHi > b.fHi || (a.fHi == b.fHi && a.fLo >= b.fLo);
- }
-
-#ifdef SkLONGLONG
- SkLONGLONG getLongLong() const;
-#endif
-
-#ifdef SK_DEBUG
- /** @cond UNIT_TEST */
- static void UnitTest();
- /** @endcond */
-#endif
-};
-
-#endif
-
diff --git a/skia/include/corecg/SkBuffer.h b/skia/include/corecg/SkBuffer.h
deleted file mode 100644
index bc11a1e..0000000
--- a/skia/include/corecg/SkBuffer.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkBuffer_DEFINED
-#define SkBuffer_DEFINED
-
-#include "SkScalar.h"
-
-/** \class SkRBuffer
-
- 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).
-*/
-class SkRBuffer : SkNoncopyable {
-public:
- SkRBuffer() : fData(0), fPos(0), fStop(0) {}
- /** Initialize RBuffer with a data pointer, but no specified length.
- This signals the RBuffer to not perform range checks during reading.
- */
- SkRBuffer(const void* data)
- {
- fData = (const char*)data;
- fPos = (const char*)data;
- fStop = 0; // no bounds checking
- }
- /** Initialize RBuffer with a data point and length.
- */
- SkRBuffer(const void* data, size_t size)
- {
- SkASSERT(data != 0 || size == 0);
- fData = (const char*)data;
- 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.
- */
- size_t pos() const { return fPos - fData; }
- /** Return the total size of the data pointer. Only defined if the length was
- specified in the constructor or in a call to reset().
- */
- size_t size() const { return fStop - fData; }
- /** Return true if the buffer has read to the end of the data pointer.
- Only defined if the length was specified in the constructor or in a call
- to reset(). Always returns true if the length was not specified.
- */
- bool eof() const { return fPos >= fStop; }
-
- /** Read the specified number of bytes from the data pointer. If buffer is not
- null, copy those bytes into buffer.
- */
- void read(void* buffer, size_t size) { if (size) this->readNoSizeCheck(buffer, size); }
- const void* skip(size_t size); // return start of skipped data
- size_t skipToAlign4();
-
- void* readPtr() { void* ptr; read(&ptr, sizeof(ptr)); return ptr; }
- SkScalar readScalar() { SkScalar x; read(&x, 4); return x; }
- uint32_t readU32() { uint32_t x; read(&x, 4); return x; }
- int32_t readS32() { int32_t x; read(&x, 4); return x; }
- uint16_t readU16() { uint16_t x; read(&x, 2); return x; }
- int16_t readS16() { int16_t x; read(&x, 2); return x; }
- uint8_t readU8() { uint8_t x; read(&x, 1); return x; }
- bool readBool() { return this->readU8() != 0; }
-
-protected:
- void readNoSizeCheck(void* buffer, size_t size);
-
- const char* fData;
- const char* fPos;
- const char* fStop;
-};
-
-/** \class SkWBuffer
-
- Light weight class for writing data to a memory block.
- The WBuffer is given the buffer to write into, with either a specified size
- or no size, in which case no range checking is performed. An empty WBuffer
- is legal, in which case no data is ever written, but the relative pos()
- is updated.
-*/
-class SkWBuffer : SkNoncopyable {
-public:
- SkWBuffer() : fData(0), fPos(0), fStop(0) {}
- SkWBuffer(void* data) { reset(data); }
- SkWBuffer(void* data, size_t size) { reset(data, size); }
-
- void reset(void* data)
- {
- fData = (char*)data;
- fPos = (char*)data;
- fStop = 0; // no bounds checking
- }
- void reset(void* data, size_t size)
- {
- SkASSERT(data != 0 || size == 0);
- fData = (char*)data;
- fPos = (char*)data;
- fStop = (char*)data + size;
- }
-
- void* data() const { return fData; }
- size_t pos() const { return fPos - fData; }
- size_t size() const { return fStop - fData; }
- bool eof() const { return fPos >= fStop; }
- void* skip(size_t size); // return start of skipped data
- void write(const void* buffer, size_t size) { if (size) this->writeNoSizeCheck(buffer, size); }
- size_t padToAlign4();
-
- void writePtr(const void* x) { this->writeNoSizeCheck(&x, sizeof(x)); }
- void writeScalar(SkScalar x) { this->writeNoSizeCheck(&x, 4); }
- void write32(int32_t x) { this->writeNoSizeCheck(&x, 4); }
- void write16(int16_t x) { this->writeNoSizeCheck(&x, 2); }
- void write8(int8_t x) { this->writeNoSizeCheck(&x, 1); }
- void writeBool(bool x) { this->write8(x); }
-
-protected:
- void writeNoSizeCheck(const void* buffer, size_t size);
-
- char* fData;
- char* fPos;
- char* fStop;
-};
-
-#endif
-
diff --git a/skia/include/corecg/SkChunkAlloc.h b/skia/include/corecg/SkChunkAlloc.h
deleted file mode 100644
index 0e9ad18..0000000
--- a/skia/include/corecg/SkChunkAlloc.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkChunkAlloc_DEFINED
-#define SkChunkAlloc_DEFINED
-
-#include "SkTypes.h"
-
-class SkChunkAlloc : SkNoncopyable {
-public:
- SkChunkAlloc(size_t minSize);
- ~SkChunkAlloc();
-
- /** Free up all allocated blocks. This invalidates all returned
- pointers.
- */
- void reset();
-
- /** Reuse all allocated blocks. This invalidates all returned
- pointers (like reset) but doesn't necessarily free up all
- of the privately allocated blocks. This is more efficient
- if you plan to reuse the allocator multiple times.
- */
- void reuse();
-
- enum AllocFailType {
- kReturnNil_AllocFailType,
- kThrow_AllocFailType
- };
-
- void* alloc(size_t bytes, AllocFailType);
- void* allocThrow(size_t bytes) {
- return this->alloc(bytes, kThrow_AllocFailType);
- }
-
- size_t totalCapacity() const { return fTotalCapacity; }
-
-private:
- struct Block;
- Block* fBlock;
- size_t fMinSize;
- Block* fPool;
- size_t fTotalCapacity;
-
- Block* newBlock(size_t bytes, AllocFailType ftype);
-};
-
-#endif
diff --git a/skia/include/corecg/SkEndian.h b/skia/include/corecg/SkEndian.h
deleted file mode 100644
index f08a9a9..0000000
--- a/skia/include/corecg/SkEndian.h
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkEndian_DEFINED
-#define SkEndian_DEFINED
-
-#include "SkTypes.h"
-
-/** \file SkEndian.h
-
- Macros and helper functions for handling 16 and 32 bit values in
- big and little endian formats.
-*/
-
-#if defined(SK_CPU_LENDIAN) && defined(SK_CPU_BENDIAN)
- #error "can't have both LENDIAN and BENDIAN defined"
-#endif
-
-#if !defined(SK_CPU_LENDIAN) && !defined(SK_CPU_BENDIAN)
- #error "need either LENDIAN or BENDIAN defined"
-#endif
-
-/** Swap the two bytes in the low 16bits of the parameters.
- e.g. 0x1234 -> 0x3412
-*/
-inline uint16_t SkEndianSwap16(U16CPU value)
-{
- SkASSERT(value == (uint16_t)value);
- return (uint16_t)((value >> 8) | (value << 8));
-}
-
-/** Vector version of SkEndianSwap16(), which swaps the
- low two bytes of each value in the array.
-*/
-inline void SkEndianSwap16s(uint16_t array[], int count)
-{
- SkASSERT(count == 0 || array != NULL);
-
- while (--count >= 0)
- {
- *array = SkEndianSwap16(*array);
- array += 1;
- }
-}
-
-/** Reverse all 4 bytes in a 32bit value.
- e.g. 0x12345678 -> 0x78563412
-*/
-inline uint32_t SkEndianSwap32(uint32_t value)
-{
- return ((value & 0xFF) << 24) |
- ((value & 0xFF00) << 8) |
- ((value & 0xFF0000) >> 8) |
- (value >> 24);
-}
-
-/** Vector version of SkEndianSwap16(), which swaps the
- bytes of each value in the array.
-*/
-inline void SkEndianSwap32s(uint32_t array[], int count)
-{
- SkASSERT(count == 0 || array != NULL);
-
- while (--count >= 0)
- {
- *array = SkEndianSwap32(*array);
- array += 1;
- }
-}
-
-#ifdef SK_CPU_LENDIAN
- #define SkEndian_SwapBE16(n) SkEndianSwap16(n)
- #define SkEndian_SwapBE32(n) SkEndianSwap32(n)
- #define SkEndian_SwapLE16(n) (n)
- #define SkEndian_SwapLE32(n) (n)
-#else // SK_CPU_BENDIAN
- #define SkEndian_SwapBE16(n) (n)
- #define SkEndian_SwapBE32(n) (n)
- #define SkEndian_SwapLE16(n) SkEndianSwap16(n)
- #define SkEndian_SwapLE32(n) SkEndianSwap32(n)
-#endif
-
-
-#endif
-
diff --git a/skia/include/corecg/SkFDot6.h b/skia/include/corecg/SkFDot6.h
deleted file mode 100644
index a4b9cf7..0000000
--- a/skia/include/corecg/SkFDot6.h
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkFDot6_DEFINED
-#define SkFDot6_DEFINED
-
-#include "SkMath.h"
-
-typedef int32_t SkFDot6;
-
-#define SK_FDot61 (64)
-#define SK_FDot6Half (32)
-
-#ifdef SK_DEBUG
- inline SkFDot6 SkIntToFDot6(S16CPU x)
- {
- SkASSERT(SkToS16(x) == x);
- return x << 6;
- }
-#else
- #define SkIntToFDot6(x) ((x) << 6)
-#endif
-
-#define SkFDot6Floor(x) ((x) >> 6)
-#define SkFDot6Ceil(x) (((x) + 63) >> 6)
-#define SkFDot6Round(x) (((x) + 32) >> 6)
-
-#define SkFixedToFDot6(x) ((x) >> 10)
-
-inline SkFixed SkFDot6ToFixed(SkFDot6 x)
-{
- SkASSERT((x << 10 >> 10) == x);
-
- return x << 10;
-}
-
-#ifdef SK_SCALAR_IS_FLOAT
- #define SkScalarToFDot6(x) (SkFDot6)((x) * 64)
-#else
- #define SkScalarToFDot6(x) ((x) >> 10)
-#endif
-
-inline SkFixed SkFDot6Div(SkFDot6 a, SkFDot6 b)
-{
- SkASSERT(b != 0);
-
- if (a == (int16_t)a)
- return (a << 16) / b;
- else
- return SkFixedDiv(a, b);
-}
-
-#endif
-
diff --git a/skia/include/corecg/SkFixed.h b/skia/include/corecg/SkFixed.h
deleted file mode 100644
index be4bf99..0000000
--- a/skia/include/corecg/SkFixed.h
+++ /dev/null
@@ -1,253 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkFixed_DEFINED
-#define SkFixed_DEFINED
-
-#include "SkTypes.h"
-
-/** \file SkFixed.h
-
- Types and macros for 16.16 fixed point
-*/
-
-/** 32 bit signed integer used to represent fractions values with 16 bits to the right of the decimal point
-*/
-typedef int32_t SkFixed;
-#define SK_Fixed1 (1 << 16)
-#define SK_FixedHalf (1 << 15)
-#define SK_FixedMax (0x7FFFFFFF)
-#define SK_FixedMin (0x1)
-#define SK_FixedNaN ((int) 0x80000000)
-#define SK_FixedPI (0x3243F)
-#define SK_FixedSqrt2 (92682)
-#define SK_FixedTanPIOver8 (0x6A0A)
-#define SK_FixedRoot2Over2 (0xB505)
-
-#ifdef SK_CAN_USE_FLOAT
- #define SkFixedToFloat(x) ((x) * 1.5258789e-5f)
- #define SkFloatToFixed(x) ((SkFixed)((x) * SK_Fixed1))
-
- #define SkFixedToDouble(x) ((x) * 1.5258789e-5)
- #define SkDoubleToFixed(x) ((SkFixed)((x) * SK_Fixed1))
-#endif
-
-/** 32 bit signed integer used to represent fractions values with 30 bits to the right of the decimal point
-*/
-typedef int32_t SkFract;
-#define SK_Fract1 (1 << 30)
-#define Sk_FracHalf (1 << 29)
-#define SK_FractPIOver180 (0x11DF46A)
-
-#ifdef SK_CAN_USE_FLOAT
- #define SkFractToFloat(x) ((float)(x) * 0.00000000093132257f)
- #define SkFloatToFract(x) ((SkFract)((x) * SK_Fract1))
-#endif
-
-/** Converts an integer to a SkFixed, asserting that the result does not overflow
- a 32 bit signed integer
-*/
-#ifdef SK_DEBUG
- inline SkFixed SkIntToFixed(int n)
- {
- SkASSERT(n >= -32768 && n <= 32767);
- return n << 16;
- }
-#else
- // force the cast to SkFixed to ensure that the answer is signed (like the debug version)
- #define SkIntToFixed(n) (SkFixed)((n) << 16)
-#endif
-
-/** Converts a SkFixed to a SkFract, asserting that the result does not overflow
- a 32 bit signed integer
-*/
-#ifdef SK_DEBUG
- inline SkFract SkFixedToFract(SkFixed x)
- {
- SkASSERT(x >= (-2 << 16) && x <= (2 << 16) - 1);
- return x << 14;
- }
-#else
- #define SkFixedToFract(x) ((x) << 14)
-#endif
-
-/** Returns the signed fraction of a SkFixed
-*/
-inline SkFixed SkFixedFraction(SkFixed x)
-{
- SkFixed mask = x >> 31 << 16;
- return (x & 0xFFFF) | mask;
-}
-
-/** Converts a SkFract to a SkFixed
-*/
-#define SkFractToFixed(x) ((x) >> 14)
-/** Round a SkFixed to an integer
-*/
-#define SkFixedRound(x) (((x) + SK_FixedHalf) >> 16)
-#define SkFixedCeil(x) (((x) + SK_Fixed1 - 1) >> 16)
-#define SkFixedFloor(x) ((x) >> 16)
-#define SkFixedAbs(x) SkAbs32(x)
-#define SkFixedAve(a, b) (((a) + (b)) >> 1)
-
-SkFixed SkFixedMul_portable(SkFixed, SkFixed);
-SkFract SkFractMul_portable(SkFract, SkFract);
-inline SkFixed SkFixedSquare_portable(SkFixed value)
-{
- uint32_t a = SkAbs32(value);
- uint32_t ah = a >> 16;
- uint32_t al = a & 0xFFFF;
- return ah * a + al * ah + (al * al >> 16);
-}
-
-#define SkFixedDiv(numer, denom) SkDivBits(numer, denom, 16)
-SkFixed SkFixedDivInt(int32_t numer, int32_t denom);
-SkFixed SkFixedMod(SkFixed numer, SkFixed denom);
-#define SkFixedInvert(n) SkDivBits(SK_Fixed1, n, 16)
-SkFixed SkFixedFastInvert(SkFixed n);
-#define SkFixedSqrt(n) SkSqrtBits(n, 23)
-SkFixed SkFixedMean(SkFixed a, SkFixed b); //*< returns sqrt(x*y)
-int SkFixedMulCommon(SkFixed, int , int bias); // internal used by SkFixedMulFloor, SkFixedMulCeil, SkFixedMulRound
-
-#define SkFractDiv(numer, denom) SkDivBits(numer, denom, 30)
-#define SkFractSqrt(n) SkSqrtBits(n, 30)
-
-SkFixed SkFixedSinCos(SkFixed radians, SkFixed* cosValueOrNull);
-#define SkFixedSin(radians) SkFixedSinCos(radians, NULL)
-inline SkFixed SkFixedCos(SkFixed radians)
-{
- SkFixed cosValue;
- (void)SkFixedSinCos(radians, &cosValue);
- return cosValue;
-}
-SkFixed SkFixedTan(SkFixed radians);
-SkFixed SkFixedASin(SkFixed);
-SkFixed SkFixedACos(SkFixed);
-SkFixed SkFixedATan2(SkFixed y, SkFixed x);
-SkFixed SkFixedExp(SkFixed);
-SkFixed SkFixedLog(SkFixed);
-
-#define SK_FixedNearlyZero (SK_Fixed1 >> 12)
-
-inline bool SkFixedNearlyZero(SkFixed x, SkFixed tolerance = SK_FixedNearlyZero)
-{
- SkASSERT(tolerance > 0);
- return SkAbs32(x) < tolerance;
-}
-
-//////////////////////////////////////////////////////////////////////////////////////////////////////
-// Now look for ASM overrides for our portable versions (should consider putting this in its own file)
-
-#ifdef SkLONGLONG
- inline SkFixed SkFixedMul_longlong(SkFixed a, SkFixed b)
- {
- return (SkFixed)((SkLONGLONG)a * b >> 16);
- }
- inline SkFract SkFractMul_longlong(SkFract a, SkFract b)
- {
- return (SkFixed)((SkLONGLONG)a * b >> 30);
- }
- inline SkFixed SkFixedSquare_longlong(SkFixed value)
- {
- return (SkFixed)((SkLONGLONG)value * value >> 16);
- }
- #define SkFixedMul(a,b) SkFixedMul_longlong(a,b)
- #define SkFractMul(a,b) SkFractMul_longlong(a,b)
- #define SkFixedSquare(a) SkFixedSquare_longlong(a)
-#endif
-
-#if defined(__arm__) && !defined(__thumb__)
- /* This guy does not handle NaN or other obscurities, but is faster than
- than (int)(x*65536) when we only have software floats
- */
- inline SkFixed SkFloatToFixed_arm(float x)
- {
- register int32_t y, z;
- asm("movs %1, %3, lsl #1 \n"
- "mov %2, #0x8E \n"
- "sub %1, %2, %1, lsr #24 \n"
- "mov %2, %3, lsl #8 \n"
- "orr %2, %2, #0x80000000 \n"
- "mov %1, %2, lsr %1 \n"
- "rsbcs %1, %1, #0 \n"
- : "=r"(x), "=&r"(y), "=&r"(z)
- : "r"(x)
- : "cc"
- );
- return y;
- }
- inline SkFixed SkFixedMul_arm(SkFixed x, SkFixed y)
- {
- register int32_t t;
- asm("smull %0, %2, %1, %3 \n"
- "mov %0, %0, lsr #16 \n"
- "orr %0, %0, %2, lsl #16 \n"
- : "=r"(x), "=&r"(y), "=r"(t)
- : "r"(x), "1"(y)
- :
- );
- return x;
- }
- inline SkFixed SkFixedMulAdd_arm(SkFixed x, SkFixed y, SkFixed a)
- {
- register int32_t t;
- asm("smull %0, %3, %1, %4 \n"
- "add %0, %2, %0, lsr #16 \n"
- "add %0, %0, %3, lsl #16 \n"
- : "=r"(x), "=&r"(y), "=&r"(a), "=r"(t)
- : "%r"(x), "1"(y), "2"(a)
- :
- );
- return x;
- }
- inline SkFixed SkFractMul_arm(SkFixed x, SkFixed y)
- {
- register int32_t t;
- asm("smull %0, %2, %1, %3 \n"
- "mov %0, %0, lsr #30 \n"
- "orr %0, %0, %2, lsl #2 \n"
- : "=r"(x), "=&r"(y), "=r"(t)
- : "r"(x), "1"(y)
- :
- );
- return x;
- }
- #undef SkFixedMul
- #undef SkFractMul
- #define SkFixedMul(x, y) SkFixedMul_arm(x, y)
- #define SkFractMul(x, y) SkFractMul_arm(x, y)
- #define SkFixedMulAdd(x, y, a) SkFixedMulAdd_arm(x, y, a)
-
- #undef SkFloatToFixed
- #define SkFloatToFixed(x) SkFloatToFixed_arm(x)
-#endif
-
-/////////////////////// Now define our macros to the portable versions if they weren't overridden
-
-#ifndef SkFixedSquare
- #define SkFixedSquare(x) SkFixedSquare_portable(x)
-#endif
-#ifndef SkFixedMul
- #define SkFixedMul(x, y) SkFixedMul_portable(x, y)
-#endif
-#ifndef SkFractMul
- #define SkFractMul(x, y) SkFractMul_portable(x, y)
-#endif
-#ifndef SkFixedMulAdd
- #define SkFixedMulAdd(x, y, a) (SkFixedMul(x, y) + (a))
-#endif
-
-#endif
diff --git a/skia/include/corecg/SkFloatBits.h b/skia/include/corecg/SkFloatBits.h
deleted file mode 100644
index 1628f6e..0000000
--- a/skia/include/corecg/SkFloatBits.h
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkFloatBits_DEFINED
-#define SkFloatBits_DEFINED
-
-#include "SkTypes.h"
-
-/** Convert a sign-bit int (i.e. float interpreted as int) into a 2s compliement
- int. This also converts -0 (0x80000000) to 0. Doing this to a float allows
- it to be compared using normal C operators (<, <=, etc.)
-*/
-static inline int32_t SkSignBitTo2sCompliment(int32_t x) {
- if (x < 0) {
- x &= 0x7FFFFFFF;
- x = -x;
- }
- return x;
-}
-
-/** Convert a 2s compliment int to a sign-bit (i.e. int interpreted as float).
- This undoes the result of SkSignBitTo2sCompliment().
- */
-static inline int32_t Sk2sComplimentToSignBit(int32_t x) {
- int sign = x >> 31;
- // make x positive
- x = (x ^ sign) - sign;
- // set the sign bit as needed
- x |= sign << 31;
- return x;
-}
-
-/** Given the bit representation of a float, return its value cast to an int.
- If the value is out of range, or NaN, return return +/- SK_MaxS32
-*/
-int32_t SkFloatBits_toIntCast(int32_t floatBits);
-
-/** Given the bit representation of a float, return its floor as an int.
- If the value is out of range, or NaN, return return +/- SK_MaxS32
- */
-int32_t SkFloatBits_toIntFloor(int32_t floatBits);
-
-/** Given the bit representation of a float, return it rounded to an int.
- If the value is out of range, or NaN, return return +/- SK_MaxS32
- */
-int32_t SkFloatBits_toIntRound(int32_t floatBits);
-
-/** Given the bit representation of a float, return its ceiling as an int.
- If the value is out of range, or NaN, return return +/- SK_MaxS32
- */
-int32_t SkFloatBits_toIntCeil(int32_t floatBits);
-
-
-#ifdef SK_CAN_USE_FLOAT
-
-union SkFloatIntUnion {
- float fFloat;
- int32_t fSignBitInt;
-};
-
-// Helper to see a float as its bit pattern (w/o aliasing warnings)
-static inline int32_t SkFloat2Bits(float x) {
- SkFloatIntUnion data;
- data.fFloat = x;
- return data.fSignBitInt;
-}
-
-// Helper to see a bit pattern as a float (w/o aliasing warnings)
-static inline float SkBits2Float(int32_t floatAsBits) {
- SkFloatIntUnion data;
- data.fSignBitInt = floatAsBits;
- return data.fFloat;
-}
-
-/** Return the float as a 2s compliment int. Just to be used to compare floats
- to each other or against positive float-bit-constants (like 0). This does
- not return the int equivalent of the float, just something cheaper for
- compares-only.
- */
-static inline int32_t SkFloatAs2sCompliment(float x) {
- return SkSignBitTo2sCompliment(SkFloat2Bits(x));
-}
-
-/** Return the 2s compliment int as a float. This undos the result of
- SkFloatAs2sCompliment
- */
-static inline float Sk2sComplimentAsFloat(int32_t x) {
- return SkBits2Float(Sk2sComplimentToSignBit(x));
-}
-
-/** Return x cast to a float (i.e. (float)x)
-*/
-float SkIntToFloatCast(int x);
-float SkIntToFloatCast_NoOverflowCheck(int x);
-
-/** Return the float cast to an int.
- If the value is out of range, or NaN, return +/- SK_MaxS32
-*/
-static inline int32_t SkFloatToIntCast(float x) {
- return SkFloatBits_toIntCast(SkFloat2Bits(x));
-}
-
-/** Return the floor of the float as an int.
- If the value is out of range, or NaN, return +/- SK_MaxS32
-*/
-static inline int32_t SkFloatToIntFloor(float x) {
- return SkFloatBits_toIntFloor(SkFloat2Bits(x));
-}
-
-/** Return the float rounded to an int.
- If the value is out of range, or NaN, return +/- SK_MaxS32
-*/
-static inline int32_t SkFloatToIntRound(float x) {
- return SkFloatBits_toIntRound(SkFloat2Bits(x));
-}
-
-/** Return the ceiling of the float as an int.
- If the value is out of range, or NaN, return +/- SK_MaxS32
-*/
-static inline int32_t SkFloatToIntCeil(float x) {
- return SkFloatBits_toIntCeil(SkFloat2Bits(x));
-}
-
-#endif
-
-// Scalar wrappers for float-bit routines
-
-#ifdef SK_SCALAR_IS_FLOAT
- #define SkScalarAs2sCompliment(x) SkFloatAs2sCompliment(x)
- #define Sk2sComplimentAsScalar(x) Sk2sComplimentAsFloat(x)
-#else
- #define SkScalarAs2sCompliment(x) (x)
- #define Sk2sComplimentAsScalar(x) (x)
-#endif
-
-#endif
-
diff --git a/skia/include/corecg/SkFloatingPoint.h b/skia/include/corecg/SkFloatingPoint.h
deleted file mode 100644
index d3a6fc5..0000000
--- a/skia/include/corecg/SkFloatingPoint.h
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkFloatingPoint_DEFINED
-#define SkFloatingPoint_DEFINED
-
-#include "SkTypes.h"
-
-#ifdef SK_CAN_USE_FLOAT
-
-#include <math.h>
-#include <float.h>
-#include "SkFloatBits.h"
-
-#ifdef SK_BUILD_FOR_WINCE
- #define sk_float_sqrt(x) (float)::sqrt(x)
- #define sk_float_sin(x) (float)::sin(x)
- #define sk_float_cos(x) (float)::cos(x)
- #define sk_float_tan(x) (float)::tan(x)
- #define sk_float_acos(x) (float)::acos(x)
- #define sk_float_asin(x) (float)::asin(x)
- #define sk_float_atan2(y,x) (float)::atan2(y,x)
- #define sk_float_abs(x) (float)::fabs(x)
- #define sk_float_mod(x,y) (float)::fmod(x,y)
- #define sk_float_exp(x) (float)::exp(x)
- #define sk_float_log(x) (float)::log(x)
- #define sk_float_floor(x) (float)::floor(x)
- #define sk_float_ceil(x) (float)::ceil(x)
-#else
- #define sk_float_sqrt(x) sqrtf(x)
- #define sk_float_sin(x) sinf(x)
- #define sk_float_cos(x) cosf(x)
- #define sk_float_tan(x) tanf(x)
- #define sk_float_floor(x) floorf(x)
- #define sk_float_ceil(x) ceilf(x)
-#ifdef SK_BUILD_FOR_MAC
- #define sk_float_acos(x) acos(x)
- #define sk_float_asin(x) asin(x)
-#else
- #define sk_float_acos(x) acosf(x)
- #define sk_float_asin(x) asinf(x)
-#endif
- #define sk_float_atan2(y,x) atan2f(y,x)
- #define sk_float_abs(x) fabsf(x)
- #define sk_float_mod(x,y) fmodf(x,y)
- #define sk_float_exp(x) expf(x)
- #define sk_float_log(x) logf(x)
- #define sk_float_isNaN(x) _isnan(x)
-#endif
-
-#ifdef SK_USE_FLOATBITS
- #define sk_float_floor2int(x) SkFloatToIntFloor(x)
- #define sk_float_round2int(x) SkFloatToIntRound(x)
- #define sk_float_ceil2int(x) SkFloatToIntCeil(x)
-#else
- #define sk_float_floor2int(x) (int)sk_float_floor(x)
- #define sk_float_round2int(x) (int)sk_float_floor((x) + 0.5f)
- #define sk_float_ceil2int(x) (int)sk_float_ceil(x)
-#endif
-
-#endif
-#endif
diff --git a/skia/include/corecg/SkInterpolator.h b/skia/include/corecg/SkInterpolator.h
deleted file mode 100644
index c03eb23..0000000
--- a/skia/include/corecg/SkInterpolator.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkInterpolator_DEFINED
-#define SkInterpolator_DEFINED
-
-#include "SkScalar.h"
-
-class SkInterpolatorBase : SkNoncopyable {
-public:
- enum Result {
- kNormal_Result,
- kFreezeStart_Result,
- kFreezeEnd_Result
- };
-protected:
- SkInterpolatorBase();
- ~SkInterpolatorBase();
-public:
- void reset(int elemCount, int frameCount);
-
- /** Return the start and end time for this interpolator.
- If there are no key frames, return false.
- @param startTime If not null, returns the time (in milliseconds) of the
- first keyframe. If there are no keyframes, this param
- is ignored (left unchanged).
- @param endTime If not null, returns the time (in milliseconds) of the
- last keyframe. If there are no keyframes, this parameter
- is ignored (left unchanged).
- @return True if there are key frames, or false if there are none.
- */
- bool getDuration(SkMSec* startTime, SkMSec* endTime) const;
-
-
- /** Set the whether the repeat is mirrored.
- @param mirror If true, the odd repeats interpolate from the last key
- frame and the first.
- */
- void setMirror(bool mirror) {
- fFlags = SkToU8((fFlags & ~kMirror) | (int)mirror);
- }
-
- /** Set the repeat count. The repeat count may be fractional.
- @param repeatCount Multiplies the total time by this scalar.
- */
- void setRepeatCount(SkScalar repeatCount) { fRepeat = repeatCount; }
-
- /** Set the whether the repeat is mirrored.
- @param reset If true, the odd repeats interpolate from the last key
- frame and the first.
- */
- void setReset(bool reset) {
- fFlags = SkToU8((fFlags & ~kReset) | (int)reset);
- }
-
- Result timeToT(SkMSec time, SkScalar* T, int* index, SkBool* exact) const;
-
-protected:
- enum Flags {
- kMirror = 1,
- kReset = 2,
- kHasBlend = 4
- };
- static SkScalar ComputeRelativeT(SkMSec time, SkMSec prevTime,
- SkMSec nextTime, const SkScalar blend[4] = NULL);
- int16_t fFrameCount;
- uint8_t fElemCount;
- uint8_t fFlags;
- SkScalar fRepeat;
- struct SkTimeCode {
- SkMSec fTime;
- SkScalar fBlend[4];
- };
- SkTimeCode* fTimes; // pointer into fStorage
- void* fStorage;
-#ifdef SK_DEBUG
- SkTimeCode(* fTimesArray)[10];
-#endif
-};
-
-class SkInterpolator : public SkInterpolatorBase {
-public:
- SkInterpolator();
- SkInterpolator(int elemCount, int frameCount);
- void reset(int elemCount, int frameCount);
-
- /** Add or replace a key frame, copying the values[] data into the
- interpolator.
- @param index The index of this frame (frames must be ordered by time)
- @param time The millisecond time for this frame
- @param values The array of values [elemCount] for this frame. The data
- is copied into the interpolator.
- @param blend A positive scalar specifying how to blend between this
- and the next key frame. [0...1) is a cubic lag/log/lag
- blend (slow to change at the beginning and end)
- 1 is a linear blend (default)
- */
- bool setKeyFrame(int index, SkMSec time, const SkScalar values[],
- const SkScalar blend[4] = NULL);
-
- /** Return the computed values given the specified time. Return whether
- those values are the result of pinning to either the first
- (kFreezeStart) or last (kFreezeEnd), or from interpolated the two
- nearest key values (kNormal).
- @param time The time to sample (in milliseconds)
- @param (may be null) where to write the computed values.
- */
- Result timeToValues(SkMSec time, SkScalar values[] = NULL) const;
-
- SkDEBUGCODE(static void UnitTest();)
-private:
- SkScalar* fValues; // pointer into fStorage
-#ifdef SK_DEBUG
- SkScalar(* fScalarsArray)[10];
-#endif
- typedef SkInterpolatorBase INHERITED;
-};
-
-/** Given all the parameters are [0...1], apply the cubic specified by (0,0)
- (bx,by) (cx,cy) (1,1) to value, returning the answer, also [0...1].
-*/
-SkScalar SkUnitCubicInterp(SkScalar value, SkScalar bx, SkScalar by,
- SkScalar cx, SkScalar cy);
-
-#endif
-
diff --git a/skia/include/corecg/SkMath.h b/skia/include/corecg/SkMath.h
deleted file mode 100644
index 5c2b475..0000000
--- a/skia/include/corecg/SkMath.h
+++ /dev/null
@@ -1,230 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkMath_DEFINED
-#define SkMath_DEFINED
-
-#include "SkTypes.h"
-
-//! Returns the number of leading zero bits (0...32)
-int SkCLZ_portable(uint32_t);
-
-/** Computes the 64bit product of a * b, and then shifts the answer down by
- shift bits, returning the low 32bits. shift must be [0..63]
- e.g. to perform a fixedmul, call SkMulShift(a, b, 16)
-*/
-int32_t SkMulShift(int32_t a, int32_t b, unsigned shift);
-
-/** Computes numer1 * numer2 / denom in full 64 intermediate precision.
- It is an error for denom to be 0. There is no special handling if
- the result overflows 32bits.
-*/
-int32_t SkMulDiv(int32_t numer1, int32_t numer2, int32_t denom);
-
-/** Computes (numer1 << shift) / denom in full 64 intermediate precision.
- It is an error for denom to be 0. There is no special handling if
- the result overflows 32bits.
-*/
-int32_t SkDivBits(int32_t numer, int32_t denom, int shift);
-
-/** Return the integer square root of value, with a bias of bitBias
-*/
-int32_t SkSqrtBits(int32_t value, int bitBias);
-
-/** Return the integer square root of n, treated as a SkFixed (16.16)
-*/
-#define SkSqrt32(n) SkSqrtBits(n, 15)
-
-/** Return the integer cube root of value, with a bias of bitBias
- */
-int32_t SkCubeRootBits(int32_t value, int bitBias);
-
-/** Returns -1 if n < 0, else returns 0
-*/
-#define SkExtractSign(n) ((int32_t)(n) >> 31)
-
-/** If sign == -1, returns -n, else sign must be 0, and returns n.
- Typically used in conjunction with SkExtractSign().
-*/
-static inline int32_t SkApplySign(int32_t n, int32_t sign) {
- SkASSERT(sign == 0 || sign == -1);
- return (n ^ sign) - sign;
-}
-
-/** Returns (value < 0 ? 0 : value) efficiently (i.e. no compares or branches)
-*/
-static inline int SkClampPos(int value) {
- return value & ~(value >> 31);
-}
-
-/** Given an integer and a positive (max) integer, return the value
- pinned against 0 and max, inclusive.
- Note: only works as long as max - value doesn't wrap around
- @param value The value we want returned pinned between [0...max]
- @param max The positive max value
- @return 0 if value < 0, max if value > max, else value
-*/
-static inline int SkClampMax(int value, int max) {
- // ensure that max is positive
- SkASSERT(max >= 0);
- // ensure that if value is negative, max - value doesn't wrap around
- SkASSERT(value >= 0 || max - value > 0);
-
-#ifdef SK_CPU_HAS_CONDITIONAL_INSTR
- if (value < 0) {
- value = 0;
- }
- if (value > max) {
- value = max;
- }
- return value;
-#else
-
- int diff = max - value;
- // clear diff if diff is positive
- diff &= diff >> 31;
-
- // clear the result if value < 0
- return (value + diff) & ~(value >> 31);
-#endif
-}
-
-/** Given a positive value and a positive max, return the value
- pinned against max.
- Note: only works as long as max - value doesn't wrap around
- @return max if value >= max, else value
-*/
-static inline unsigned SkClampUMax(unsigned value, unsigned max) {
-#ifdef SK_CPU_HAS_CONDITIONAL_INSTR
- if (value > max) {
- value = max;
- }
- return value;
-#else
- int diff = max - value;
- // clear diff if diff is positive
- diff &= diff >> 31;
-
- return value + diff;
-#endif
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-#if defined(__arm__) && !defined(__thumb__)
- #define SkCLZ(x) __builtin_clz(x)
-#endif
-
-#ifndef SkCLZ
- #define SkCLZ(x) SkCLZ_portable(x)
-#endif
-
-///////////////////////////////////////////////////////////////////////////////
-
-/** Returns the smallest power-of-2 that is >= the specified value. If value
- is already a power of 2, then it is returned unchanged. It is undefined
- if value is <= 0.
-*/
-static inline int SkNextPow2(int value) {
- SkASSERT(value > 0);
- return 1 << (32 - SkCLZ(value - 1));
-}
-
-/** Returns the log2 of the specified value, were that value to be rounded up
- to the next power of 2. It is undefined to pass 0. Examples:
- SkNextLog2(1) -> 0
- SkNextLog2(2) -> 1
- SkNextLog2(3) -> 2
- SkNextLog2(4) -> 2
- SkNextLog2(5) -> 3
-*/
-static inline int SkNextLog2(uint32_t value) {
- SkASSERT(value != 0);
- return 32 - SkCLZ(value - 1);
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-/** SkMulS16(a, b) multiplies a * b, but requires that a and b are both int16_t.
- With this requirement, we can generate faster instructions on some
- architectures.
-*/
-#if defined(__arm__) && !defined(__thumb__)
- static inline int32_t SkMulS16(S16CPU x, S16CPU y) {
- SkASSERT((int16_t)x == x);
- SkASSERT((int16_t)y == y);
- int32_t product;
- asm("smulbb %0, %1, %2 \n"
- : "=r"(product)
- : "r"(x), "r"(y)
- :
- );
- return product;
- }
-#else
- #ifdef SK_DEBUG
- static inline int32_t SkMulS16(S16CPU x, S16CPU y) {
- SkASSERT((int16_t)x == x);
- SkASSERT((int16_t)y == y);
- return x * y;
- }
- #else
- #define SkMulS16(x, y) ((x) * (y))
- #endif
-#endif
-
-/** Return a*b/255, truncating away any fractional bits. Only valid if both
- a and b are 0..255
-*/
-static inline U8CPU SkMulDiv255Trunc(U8CPU a, U8CPU b) {
- SkASSERT((uint8_t)a == a);
- SkASSERT((uint8_t)b == b);
- unsigned prod = SkMulS16(a, b) + 1;
- return (prod + (prod >> 8)) >> 8;
-}
-
-/** Return a*b/255, rounding any fractional bits. Only valid if both
- a and b are 0..255
- */
-static inline U8CPU SkMulDiv255Round(U8CPU a, U8CPU b) {
- SkASSERT((uint8_t)a == a);
- SkASSERT((uint8_t)b == b);
- unsigned prod = SkMulS16(a, b) + 128;
- return (prod + (prod >> 8)) >> 8;
-}
-
-/** Return a*b/((1 << shift) - 1), rounding any fractional bits.
- Only valid if a and b are unsigned and <= 32767 and shift is > 0 and <= 8
-*/
-static inline unsigned SkMul16ShiftRound(unsigned a, unsigned b, int shift) {
- SkASSERT(a <= 32767);
- SkASSERT(b <= 32767);
- SkASSERT(shift > 0 && shift <= 8);
- unsigned prod = SkMulS16(a, b) + (1 << (shift - 1));
- return (prod + (prod >> shift)) >> shift;
-}
-
-///////////////////////////////////////////////////////////////////////////////
-
-#ifdef SK_DEBUG
- class SkMath {
- public:
- static void UnitTest();
- };
-#endif
-
-#endif
-
diff --git a/skia/include/corecg/SkMatrix.h b/skia/include/corecg/SkMatrix.h
deleted file mode 100644
index 04751f2..0000000
--- a/skia/include/corecg/SkMatrix.h
+++ /dev/null
@@ -1,476 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkMatrix_DEFINED
-#define SkMatrix_DEFINED
-
-#include "SkRect.h"
-
-/** \class SkMatrix
-
- The SkMatrix class holds a 3x3 matrix for transforming coordinates.
- SkMatrix does not have a constructor, so it must be explicitly initialized
- using either reset() - to construct an identity matrix, or one of the set
- functions (e.g. setTranslate, setRotate, etc.).
-*/
-class SkMatrix {
-public:
- /** Enum of bit fields for the mask return by getType().
- Use this to identify the complexity of the matrix.
- */
- enum TypeMask {
- kIdentity_Mask = 0,
- kTranslate_Mask = 0x01, //!< set if the matrix has translation
- kScale_Mask = 0x02, //!< set if the matrix has X or Y scale
- kAffine_Mask = 0x04, //!< set if the matrix skews or rotates
- kPerspective_Mask = 0x08 //!< set if the matrix is in perspective
- };
-
- /** Returns a mask bitfield describing the types of transformations
- that the matrix will perform. This information is used by routines
- like mapPoints, to optimize its inner loops to only perform as much
- arithmetic as is necessary.
- */
- TypeMask getType() const {
- if (fTypeMask & kUnknown_Mask) {
- fTypeMask = this->computeTypeMask();
- }
- // only return the public masks
- return (TypeMask)(fTypeMask & 0xF);
- }
-
- /** Returns true if the matrix is identity.
- */
- bool isIdentity() const {
- return this->getType() == 0;
- }
-
- /** Returns true if will map a rectangle to another rectangle. This can be
- true if the matrix is identity, scale-only, or rotates a multiple of
- 90 degrees.
- */
- bool rectStaysRect() const {
- if (fTypeMask & kUnknown_Mask) {
- fTypeMask = this->computeTypeMask();
- }
- return (fTypeMask & kRectStaysRect_Mask) != 0;
- }
-
- enum {
- kMScaleX,
- kMSkewX,
- kMTransX,
- kMSkewY,
- kMScaleY,
- kMTransY,
- kMPersp0,
- kMPersp1,
- kMPersp2
- };
-
- SkScalar operator[](int index) const {
- 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]; }
- SkScalar getSkewX() const { return fMat[kMSkewX]; }
- SkScalar getTranslateX() const { return fMat[kMTransX]; }
- SkScalar getTranslateY() const { return fMat[kMTransY]; }
- SkScalar getPerspX() const { return fMat[kMPersp0]; }
- SkScalar getPerspY() const { return fMat[kMPersp1]; }
-
- void set(int index, SkScalar value) {
- SkASSERT((unsigned)index < 9);
- fMat[index] = value;
- this->setTypeMask(kUnknown_Mask);
- }
-
- void setScaleX(SkScalar v) { this->set(kMScaleX, v); }
- void setScaleY(SkScalar v) { this->set(kMScaleY, v); }
- void setSkewY(SkScalar v) { this->set(kMSkewY, v); }
- void setSkewX(SkScalar v) { this->set(kMSkewX, v); }
- void setTranslateX(SkScalar v) { this->set(kMTransX, v); }
- void setTranslateY(SkScalar v) { this->set(kMTransY, v); }
- void setPerspX(SkScalar v) { this->set(kMPersp0, v); }
- void setPerspY(SkScalar v) { this->set(kMPersp1, v); }
-
- /** Set the matrix to identity
- */
- void reset();
-
- /** Set the matrix to translate by (dx, dy).
- */
- void setTranslate(SkScalar dx, SkScalar dy);
- /** Set the matrix to scale by sx and sy, with a pivot point at (px, py).
- The pivot point is the coordinate that should remain unchanged by the
- specified transformation.
- */
- void setScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py);
- /** Set the matrix to scale by sx and sy.
- */
- void setScale(SkScalar sx, SkScalar sy);
- /** Set the matrix to rotate by the specified number of degrees, with a
- pivot point at (px, py). The pivot point is the coordinate that should
- remain unchanged by the specified transformation.
- */
- void setRotate(SkScalar degrees, SkScalar px, SkScalar py);
- /** Set the matrix to rotate about (0,0) by the specified number of degrees.
- */
- void setRotate(SkScalar degrees);
- /** Set the matrix to rotate by the specified sine and cosine values, with
- a pivot point at (px, py). The pivot point is the coordinate that
- should remain unchanged by the specified transformation.
- */
- void setSinCos(SkScalar sinValue, SkScalar cosValue,
- SkScalar px, SkScalar py);
- /** Set the matrix to rotate by the specified sine and cosine values.
- */
- void setSinCos(SkScalar sinValue, SkScalar cosValue);
- /** Set the matrix to skew by sx and sy, with a pivot point at (px, py).
- The pivot point is the coordinate that should remain unchanged by the
- specified transformation.
- */
- void setSkew(SkScalar kx, SkScalar ky, SkScalar px, SkScalar py);
- /** Set the matrix to skew by sx and sy.
- */
- void setSkew(SkScalar kx, SkScalar ky);
- /** Set the matrix to the concatenation of the two specified matrices,
- returning true if the the result can be represented. Either of the
- two matrices may also be the target matrix. *this = a * b;
- */
- bool setConcat(const SkMatrix& a, const SkMatrix& b);
-
- /** Preconcats the matrix with the specified translation.
- M' = M * T(dx, dy)
- */
- bool preTranslate(SkScalar dx, SkScalar dy);
- /** Preconcats the matrix with the specified scale.
- M' = M * S(sx, sy, px, py)
- */
- bool preScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py);
- /** Preconcats the matrix with the specified scale.
- M' = M * S(sx, sy)
- */
- bool preScale(SkScalar sx, SkScalar sy);
- /** Preconcats the matrix with the specified rotation.
- M' = M * R(degrees, px, py)
- */
- bool preRotate(SkScalar degrees, SkScalar px, SkScalar py);
- /** Preconcats the matrix with the specified rotation.
- M' = M * R(degrees)
- */
- bool preRotate(SkScalar degrees);
- /** Preconcats the matrix with the specified skew.
- M' = M * K(kx, ky, px, py)
- */
- bool preSkew(SkScalar kx, SkScalar ky, SkScalar px, SkScalar py);
- /** Preconcats the matrix with the specified skew.
- M' = M * K(kx, ky)
- */
- bool preSkew(SkScalar kx, SkScalar ky);
- /** Preconcats the matrix with the specified matrix.
- M' = M * other
- */
- bool preConcat(const SkMatrix& other);
-
- /** Postconcats the matrix with the specified translation.
- M' = T(dx, dy) * M
- */
- bool postTranslate(SkScalar dx, SkScalar dy);
- /** Postconcats the matrix with the specified scale.
- M' = S(sx, sy, px, py) * M
- */
- bool postScale(SkScalar sx, SkScalar sy, SkScalar px, SkScalar py);
- /** Postconcats the matrix with the specified scale.
- M' = S(sx, sy) * M
- */
- bool postScale(SkScalar sx, SkScalar sy);
- /** Postconcats the matrix by dividing it by the specified integers.
- M' = S(1/divx, 1/divy, 0, 0) * M
- */
- bool postIDiv(int divx, int divy);
- /** Postconcats the matrix with the specified rotation.
- M' = R(degrees, px, py) * M
- */
- bool postRotate(SkScalar degrees, SkScalar px, SkScalar py);
- /** Postconcats the matrix with the specified rotation.
- M' = R(degrees) * M
- */
- bool postRotate(SkScalar degrees);
- /** Postconcats the matrix with the specified skew.
- M' = K(kx, ky, px, py) * M
- */
- bool postSkew(SkScalar kx, SkScalar ky, SkScalar px, SkScalar py);
- /** Postconcats the matrix with the specified skew.
- M' = K(kx, ky) * M
- */
- bool postSkew(SkScalar kx, SkScalar ky);
- /** Postconcats the matrix with the specified matrix.
- M' = other * M
- */
- bool postConcat(const SkMatrix& other);
-
- enum ScaleToFit {
- /**
- * Scale in X and Y independently, so that src matches dst exactly.
- * This may change the aspect ratio of the src.
- */
- kFill_ScaleToFit,
- /**
- * Compute a scale that will maintain the original src aspect ratio,
- * but will also ensure that src fits entirely inside dst. At least one
- * axis (X or Y) will fit exactly. kStart aligns the result to the
- * left and top edges of dst.
- */
- kStart_ScaleToFit,
- /**
- * Compute a scale that will maintain the original src aspect ratio,
- * but will also ensure that src fits entirely inside dst. At least one
- * axis (X or Y) will fit exactly. The result is centered inside dst.
- */
- kCenter_ScaleToFit,
- /**
- * Compute a scale that will maintain the original src aspect ratio,
- * but will also ensure that src fits entirely inside dst. At least one
- * axis (X or Y) will fit exactly. kEnd aligns the result to the
- * right and bottom edges of dst.
- */
- kEnd_ScaleToFit
- };
-
- /** Set the matrix to the scale and translate values that map the source
- rectangle to the destination rectangle, returning true if the the result
- can be represented.
- @param src the source rectangle to map from.
- @param dst the destination rectangle to map to.
- @param stf the ScaleToFit option
- @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
- @param dst The array of dst points
- @param count The number of points to use for the transformation
- @return true if the matrix was set to the specified transformation
- */
- bool setPolyToPoly(const SkPoint src[], const SkPoint dst[], int count);
-
- /** If this matrix can be inverted, return true and if inverse is not null,
- set inverse to be the inverse of this matrix. If this matrix cannot be
- inverted, ignore inverse and return false
- */
- bool invert(SkMatrix* inverse) const;
-
- /** Apply this matrix to the array of points specified by src, and write
- the transformed points into the array of points specified by dst.
- dst[] = M * src[]
- @param dst Where the transformed coordinates are written. It must
- contain at least count entries
- @param src The original coordinates that are to be transformed. It
- must contain at least count entries
- @param count The number of points in src to read, and then transform
- into dst.
- */
- void mapPoints(SkPoint dst[], const SkPoint src[], int count) const;
-
- /** Apply this matrix to the array of points, overwriting it with the
- transformed values.
- dst[] = M * pts[]
- @param pts The points to be transformed. It must contain at least
- count entries
- @param count The number of points in pts.
- */
- void mapPoints(SkPoint pts[], int count) const {
- this->mapPoints(pts, pts, count);
- }
-
- void mapXY(SkScalar x, SkScalar y, SkPoint* result) const {
- SkASSERT(result);
- this->getMapXYProc()(*this, x, y, result);
- }
-
- /** Apply this matrix to the array of vectors specified by src, and write
- the transformed vectors into the array of vectors specified by dst.
- This is similar to mapPoints, but ignores any translation in the matrix.
- @param dst Where the transformed coordinates are written. It must
- contain at least count entries
- @param src The original coordinates that are to be transformed. It
- must contain at least count entries
- @param count The number of vectors in src to read, and then transform
- into dst.
- */
- void mapVectors(SkVector dst[], const SkVector src[], int count) const;
-
- /** Apply this matrix to the array of vectors specified by src, and write
- the transformed vectors into the array of vectors specified by dst.
- This is similar to mapPoints, but ignores any translation in the matrix.
- @param vecs The vectors to be transformed. It must contain at least
- count entries
- @param count The number of vectors in vecs.
- */
- void mapVectors(SkVector vecs[], int count) const {
- this->mapVectors(vecs, vecs, count);
- }
-
- /** Apply this matrix to the src rectangle, and write the transformed
- rectangle into dst. This is accomplished by transforming the 4 corners
- of src, and then setting dst to the bounds of those points.
- @param dst Where the transformed rectangle is written.
- @param src The original rectangle to be transformed.
- @return the result of calling rectStaysRect()
- */
- bool mapRect(SkRect* dst, const SkRect& src) const;
-
- /** Apply this matrix to the rectangle, and write the transformed rectangle
- back into it. This is accomplished by transforming the 4 corners of
- rect, and then setting it to the bounds of those points
- @param rect The rectangle to transform.
- @return the result of calling rectStaysRect()
- */
- bool mapRect(SkRect* rect) const {
- return this->mapRect(rect, *rect);
- }
-
- /** Return the mean radius of a circle after it has been mapped by
- this matrix. NOTE: in perspective this value assumes the circle
- has its center at the origin.
- */
- SkScalar mapRadius(SkScalar radius) const;
-
- typedef void (*MapXYProc)(const SkMatrix& mat, SkScalar x, SkScalar y,
- SkPoint* result);
-
- static MapXYProc GetMapXYProc(TypeMask mask) {
- SkASSERT((mask & ~kAllMasks) == 0);
- return gMapXYProcs[mask & kAllMasks];
- }
-
- MapXYProc getMapXYProc() const {
- return GetMapXYProc(this->getType());
- }
-
- typedef void (*MapPtsProc)(const SkMatrix& mat, SkPoint dst[],
- const SkPoint src[], int count);
-
- static MapPtsProc GetMapPtsProc(TypeMask mask) {
- SkASSERT((mask & ~kAllMasks) == 0);
- return gMapPtsProcs[mask & kAllMasks];
- }
-
- MapPtsProc getMapPtsProc() const {
- return GetMapPtsProc(this->getType());
- }
-
- /** If the matrix can be stepped in X (not complex perspective)
- then return true and if step[XY] is not null, return the step[XY] value.
- If it cannot, return false and ignore step.
- */
- bool fixedStepInX(SkScalar y, SkFixed* stepX, SkFixed* stepY) const;
-
- friend bool operator==(const SkMatrix& a, const SkMatrix& b) {
- return memcmp(a.fMat, b.fMat, sizeof(a.fMat)) == 0;
- }
-
- friend bool operator!=(const SkMatrix& a, const SkMatrix& b) {
- return memcmp(a.fMat, b.fMat, sizeof(a.fMat)) != 0;
- }
-
- void dump() const;
-
-#ifdef SK_DEBUG
- /** @cond UNIT_TEST */
-
- static void UnitTest();
- /** @endcond */
-#endif
-
-private:
- enum {
- /** 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 is not set if the matrix is identity.
-
- This bit will be set on identity matrices
- */
- kRectStaysRect_Mask = 0x10,
-
- kUnknown_Mask = 0x80,
-
- kAllMasks = kTranslate_Mask |
- kScale_Mask |
- kAffine_Mask |
- kPerspective_Mask |
- kRectStaysRect_Mask
- };
-
- SkScalar fMat[9];
- mutable uint8_t fTypeMask;
-
- uint8_t computeTypeMask() const;
-
- void setTypeMask(int mask) {
- // allow kUnknown or a valid mask
- SkASSERT(kUnknown_Mask == mask || (mask & kAllMasks) == mask);
- fTypeMask = SkToU8(mask);
- }
-
- void clearTypeMask(int mask) {
- // only allow a valid mask
- SkASSERT((mask & kAllMasks) == mask);
- fTypeMask &= ~mask;
- }
-
- 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);
-
- static void Identity_xy(const SkMatrix&, SkScalar, SkScalar, SkPoint*);
- static void Trans_xy(const SkMatrix&, SkScalar, SkScalar, SkPoint*);
- static void Scale_xy(const SkMatrix&, SkScalar, SkScalar, SkPoint*);
- static void ScaleTrans_xy(const SkMatrix&, SkScalar, SkScalar, SkPoint*);
- 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);
- static void ScaleTrans_pts(const SkMatrix&, SkPoint dst[], const SkPoint[],
- int count);
- static void Rot_pts(const SkMatrix&, SkPoint dst[], const SkPoint[], int);
- 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;
-};
-
-#endif
-
diff --git a/skia/include/corecg/SkPageFlipper.h b/skia/include/corecg/SkPageFlipper.h
deleted file mode 100644
index 0d791ee..0000000
--- a/skia/include/corecg/SkPageFlipper.h
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPageFlipper_DEFINED
-#define SkPageFlipper_DEFINED
-
-#include "SkRegion.h"
-
-/** SkPageFlipper manages alternating inval/dirty regions for a rectangular area
- (like a bitmap). You call inval() to accumulate inval areas, and then when
- you're ready to "flip" pages (i.e. draw into the one you've been
- invalidating) you call update, which swaps the inval regions, and returns
- two things to you: 1) the final inval region to be drawn into, and 2) the
- region of pixels that should be copied from the "front" page onto the one
- you're about to draw into. This copyBits region will be disjoint from the
- inval region, so both need to be handled.
- */
-class SkPageFlipper {
-public:
- SkPageFlipper();
- SkPageFlipper(int width, int height);
-
- int width() const { return fWidth; }
- int height() const { return fHeight; }
-
- void resize(int width, int height);
-
- bool isDirty() const { return !fDirty1->isEmpty(); }
- const SkRegion& dirtyRgn() const { return *fDirty1; }
-
- void inval();
- void inval(const SkIRect&);
- void inval(const SkRegion&);
- void inval(const SkRect&, bool antialias);
-
- /** When you're ready to write to the back page, call update. The returned
- region is the invalidate are that needs to be drawn to. The copyBits
- 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.
- */
- const SkRegion& update(SkRegion* copyBits);
-
-private:
- SkRegion* fDirty0;
- SkRegion* fDirty1;
- SkRegion fDirty0Storage;
- SkRegion fDirty1Storage;
- int fWidth;
- int fHeight;
-};
-
-#endif
-
diff --git a/skia/include/corecg/SkPerspIter.h b/skia/include/corecg/SkPerspIter.h
deleted file mode 100644
index 81ce7c8..0000000
--- a/skia/include/corecg/SkPerspIter.h
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPerspIter_DEFINED
-#define SkPerspIter_DEFINED
-
-#include "SkMatrix.h"
-
-class SkPerspIter {
-public:
- /** Iterate a line through the matrix [x,y] ... [x+count-1, y].
- @param m The matrix we will be iterating a line through
- @param x The initial X coordinate to be mapped through the matrix
- @param y The initial Y coordinate to be mapped through the matrix
- @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().
- */
- const SkFixed* getXY() const { return fStorage; }
-
- /** Return the number of [x,y] pairs that have been filled in the getXY() buffer.
- When this returns 0, the iterator is finished.
- */
- int next();
-
-private:
- enum {
- kShift = 4,
- kCount = (1 << kShift)
- };
- const SkMatrix& fMatrix;
- SkFixed fStorage[kCount * 2];
- SkFixed fX, fY;
- SkScalar fSX, fSY;
- int fCount;
-};
-
-#endif
diff --git a/skia/include/corecg/SkPoint.h b/skia/include/corecg/SkPoint.h
deleted file mode 100644
index f038afb..0000000
--- a/skia/include/corecg/SkPoint.h
+++ /dev/null
@@ -1,288 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPoint_DEFINED
-#define SkPoint_DEFINED
-
-#include "SkMath.h"
-#include "SkScalar.h"
-
-/** \struct SkIPoint
-
- SkIPoint holds two 32 bit integer coordinates
-*/
-struct SkIPoint {
- int32_t fX, fY;
-
- /** Set the x and y values of the point. */
- void set(int32_t x, int32_t y) { fX = x; fY = y; }
-
- /** Rotate the point clockwise, writing the new point into dst
- It is legal for dst == this
- */
- void rotateCW(SkIPoint* dst) const;
-
- /** Rotate the point clockwise, writing the new point back into the point
- */
-
- void rotateCW() { this->rotateCW(this); }
-
- /** Rotate the point counter-clockwise, writing the new point into dst.
- It is legal for dst == this
- */
- void rotateCCW(SkIPoint* dst) const;
-
- /** Rotate the point counter-clockwise, writing the new point back into
- the point
- */
- void rotateCCW() { this->rotateCCW(this); }
-
- /** Negate the X and Y coordinates of the point.
- */
- void negate() { fX = -fX; fY = -fY; }
-
- /** Return a new point whose X and Y coordinates are the negative of the
- original point's
- */
- SkIPoint operator-() const {
- SkIPoint neg;
- neg.fX = -fX;
- neg.fY = -fY;
- return neg;
- }
-
- /** Add v's coordinates to this point's */
- void operator+=(const SkIPoint& v) {
- fX += v.fX;
- fY += v.fY;
- }
-
- /** Subtract v's coordinates from this point's */
- void operator-=(const SkIPoint& v) {
- fX -= v.fX;
- fY -= v.fY;
- }
-
- /** Returns true if the point's coordinates equal (x,y) */
- bool equals(int32_t x, int32_t y) const {
- return fX == x && fY == y;
- }
-
- friend bool operator==(const SkIPoint& a, const SkIPoint& b) {
- return a.fX == b.fX && a.fY == b.fY;
- }
-
- friend bool operator!=(const SkIPoint& a, const SkIPoint& b) {
- return a.fX != b.fX || a.fY != b.fY;
- }
-
- /** Returns a new point whose coordinates are the difference between
- a and b (i.e. a - b)
- */
- friend SkIPoint operator-(const SkIPoint& a, const SkIPoint& b) {
- SkIPoint v;
- v.set(a.fX - b.fX, a.fY - b.fY);
- return v;
- }
-
- /** Returns a new point whose coordinates are the sum of a and b (a + b)
- */
- friend SkIPoint operator+(const SkIPoint& a, const SkIPoint& b) {
- SkIPoint v;
- v.set(a.fX + b.fX, a.fY + b.fY);
- return v;
- }
-
- /** Returns the dot product of a and b, treating them as 2D vectors
- */
- static int32_t DotProduct(const SkIPoint& a, const SkIPoint& b) {
- return a.fX * b.fX + a.fY * b.fY;
- }
-
- /** Returns the cross product of a and b, treating them as 2D vectors
- */
- static int32_t CrossProduct(const SkIPoint& a, const SkIPoint& b) {
- return a.fX * b.fY - a.fY * b.fX;
- }
-};
-
-struct SkPoint {
- SkScalar fX, fY;
-
- /** Set the point's X and Y coordinates */
- void set(SkScalar x, SkScalar y) { fX = x; fY = y; }
-
- /** Set the point's X and Y coordinates by automatically promoting (x,y) to
- SkScalar values.
- */
- void iset(int32_t x, int32_t y) {
- fX = SkIntToScalar(x);
- fY = SkIntToScalar(y);
- }
-
- /** Set the point's X and Y coordinates by automatically promoting p's
- coordinates to SkScalar values.
- */
- void iset(const SkIPoint& p) {
- fX = SkIntToScalar(p.fX);
- fY = SkIntToScalar(p.fY);
- }
-
- /** Return the euclidian distance from (0,0) to the point
- */
- SkScalar length() const { return SkPoint::Length(fX, fY); }
-
- /** Set the point (vector) to be unit-length in the same direction as it
- currently is, and return its old length. If the old length is
- degenerately small (nearly zero), do nothing and return false, otherwise
- return true.
- */
- bool normalize();
-
- /** Set the point (vector) to be unit-length in the same direction as the
- x,y params. If the vector (x,y) has a degenerate length (i.e. nearly 0)
- then return false and do nothing, otherwise return true.
- */
- bool setNormalize(SkScalar x, SkScalar y);
-
- /** Scale the point (vector) to have the specified length, and return that
- length. If the original length is degenerately small (nearly zero),
- do nothing and return false, otherwise return true.
- */
- bool setLength(SkScalar length);
-
- /** Set the point (vector) to have the specified length in the same
- direction as (x,y). If the vector (x,y) has a degenerate length
- (i.e. nearly 0) then return false and do nothing, otherwise return true.
- */
- bool setLength(SkScalar x, SkScalar y, SkScalar length);
-
- /** Scale the point's coordinates by scale, writing the answer into dst.
- It is legal for dst == this.
- */
- void scale(SkScalar scale, SkPoint* dst) const;
-
- /** Scale the point's coordinates by scale, writing the answer back into
- the point.
- */
- void scale(SkScalar scale) { this->scale(scale, this); }
-
- /** Rotate the point clockwise by 90 degrees, writing the answer into dst.
- It is legal for dst == this.
- */
- void rotateCW(SkPoint* dst) const;
-
- /** Rotate the point clockwise by 90 degrees, writing the answer back into
- the point.
- */
- void rotateCW() { this->rotateCW(this); }
-
- /** Rotate the point counter-clockwise by 90 degrees, writing the answer
- into dst. It is legal for dst == this.
- */
- void rotateCCW(SkPoint* dst) const;
-
- /** Rotate the point counter-clockwise by 90 degrees, writing the answer
- back into the point.
- */
- void rotateCCW() { this->rotateCCW(this); }
-
- /** Negate the point's coordinates
- */
- void negate() {
- fX = -fX;
- fY = -fY;
- }
-
- /** Returns a new point whose coordinates are the negative of the point's
- */
- SkPoint operator-() const {
- SkPoint neg;
- neg.fX = -fX;
- neg.fY = -fY;
- return neg;
- }
-
- /** Add v's coordinates to the point's
- */
- void operator+=(const SkPoint& v) {
- fX += v.fX;
- fY += v.fY;
- }
-
- /** Subtract v's coordinates from the point's
- */
- void operator-=(const SkPoint& v) {
- fX -= v.fX;
- fY -= v.fY;
- }
-
- /** Returns true if the point's coordinates equal (x,y)
- */
- bool equals(SkScalar x, SkScalar y) const { return fX == x && fY == y; }
-
- friend bool operator==(const SkPoint& a, const SkPoint& b) {
- return a.fX == b.fX && a.fY == b.fY;
- }
-
- friend bool operator!=(const SkPoint& a, const SkPoint& b) {
- return a.fX != b.fX || a.fY != b.fY;
- }
-
- /** Returns a new point whose coordinates are the difference between
- a's and b's (a - b)
- */
- friend SkPoint operator-(const SkPoint& a, const SkPoint& b) {
- SkPoint v;
- v.set(a.fX - b.fX, a.fY - b.fY);
- return v;
- }
-
- /** Returns a new point whose coordinates are the sum of a's and b's (a + b)
- */
- friend SkPoint operator+(const SkPoint& a, const SkPoint& b) {
- SkPoint v;
- v.set(a.fX + b.fX, a.fY + b.fY);
- return v;
- }
-
- /** Returns the euclidian distance from (0,0) to (x,y)
- */
- static SkScalar Length(SkScalar x, SkScalar y);
-
- /** Returns the euclidian distance between a and b
- */
- static SkScalar Distance(const SkPoint& a, const SkPoint& b) {
- return Length(a.fX - b.fX, a.fY - b.fY);
- }
-
- /** Returns the dot product of a and b, treating them as 2D vectors
- */
- static SkScalar DotProduct(const SkPoint& a, const SkPoint& b) {
- return SkScalarMul(a.fX, b.fX) + SkScalarMul(a.fY, b.fY);
- }
-
- /** Returns the cross product of a and b, treating them as 2D vectors
- */
- static SkScalar CrossProduct(const SkPoint& a, const SkPoint& b) {
- return SkScalarMul(a.fX, b.fY) - SkScalarMul(a.fY, b.fX);
- }
-};
-
-typedef SkPoint SkVector;
-
-#endif
-
diff --git a/skia/include/corecg/SkPostConfig.h b/skia/include/corecg/SkPostConfig.h
deleted file mode 100644
index 9fb27c4..0000000
--- a/skia/include/corecg/SkPostConfig.h
+++ /dev/null
@@ -1,223 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPostConfig_DEFINED
-#define SkPostConfig_DEFINED
-
-#if defined(SK_BUILD_FOR_WIN32) || defined(SK_BUILD_FOR_WINCE)
- #define SK_BUILD_FOR_WIN
-#endif
-
-#if defined(SK_DEBUG) && defined(SK_RELEASE)
- #error "cannot define both SK_DEBUG and SK_RELEASE"
-#elif !defined(SK_DEBUG) && !defined(SK_RELEASE)
- #error "must define either SK_DEBUG or SK_RELEASE"
-#endif
-
-#if defined SK_SUPPORT_UNITTEST && !defined(SK_DEBUG)
- #error "can't have unittests without debug"
-#endif
-
-#if defined(SK_SCALAR_IS_FIXED) && defined(SK_SCALAR_IS_FLOAT)
- #error "cannot define both SK_SCALAR_IS_FIXED and SK_SCALAR_IS_FLOAT"
-#elif !defined(SK_SCALAR_IS_FIXED) && !defined(SK_SCALAR_IS_FLOAT)
- #ifdef SK_CAN_USE_FLOAT
- #define SK_SCALAR_IS_FLOAT
- #else
- #define SK_SCALAR_IS_FIXED
- #endif
-#endif
-
-#if defined(SK_SCALAR_IS_FLOAT) && !defined(SK_CAN_USE_FLOAT)
- #define SK_CAN_USE_FLOAT
- // we do nothing in the else case: fixed-scalars can have floats or not
-#endif
-
-#if defined(SK_CPU_LENDIAN) && defined(SK_CPU_BENDIAN)
- #error "cannot define both SK_CPU_LENDIAN and SK_CPU_BENDIAN"
-#elif !defined(SK_CPU_LENDIAN) && !defined(SK_CPU_BENDIAN)
- #error "must define either SK_CPU_LENDIAN or SK_CPU_BENDIAN"
-#endif
-
-// ensure the port has defined all of these, or none of them
-#ifdef SK_A32_SHIFT
- #if !defined(SK_R32_SHIFT) || !defined(SK_G32_SHIFT) || !defined(SK_B32_SHIFT)
- #error "all or none of the 32bit SHIFT amounts must be defined"
- #endif
-#else
- #if defined(SK_R32_SHIFT) || defined(SK_G32_SHIFT) || defined(SK_B32_SHIFT)
- #error "all or none of the 32bit SHIFT amounts must be defined"
- #endif
-#endif
-
-///////////////////////////////////////////////////////////////////////////////
-
-#ifndef SkNEW
- #define SkNEW(type_name) new type_name
- #define SkNEW_ARGS(type_name, args) new type_name args
- #define SkNEW_ARRAY(type_name, count) new type_name[count]
- #define SkDELETE(obj) delete obj
- #define SkDELETE_ARRAY(array) delete[] array
-#endif
-
-#ifndef SK_CRASH
-#if 1 // set to 0 for infinite loop, which can help connecting gdb
- #define SK_CRASH() *(int *)(uintptr_t)0xbbadbeef = 0
-#else
- #define SK_CRASH() do {} while (true)
-#endif
-#endif
-
-///////////////////////////////////////////////////////////////////////////////
-
-#if defined(SK_SOFTWARE_FLOAT) && defined(SK_SCALAR_IS_FLOAT)
- // if this is defined, we convert floats to 2scompliment ints for compares
- #ifndef SK_SCALAR_SLOW_COMPARES
- #define SK_SCALAR_SLOW_COMPARES
- #endif
-#endif
-
-#ifdef SK_BUILD_FOR_WIN
- //////////////////////////////////////////////////////////////////////
- // Begin Chrome-specific changes
- // Chrome already defines WIN32_LEAN_AND_MEAN so no need to define it here.
-
- #include <windows.h>
-
- #include <stdio.h>
- #ifndef SK_DEBUGBREAK
- #define SK_DEBUGBREAK(cond) do { if (!(cond)) { \
- SkDebugf("%s:%d: failed assertion \"%s\"\n", \
- __FILE__, __LINE__, #cond); SK_CRASH(); } } while (false)
- #endif
-
- // End Chrome-specific changes
-
- #ifdef SK_BUILD_FOR_WIN32
- #define strcasecmp(a, b) stricmp(a, b)
- #define strncasecmp(a, b, c) strnicmp(a, b, c)
- #elif defined(SK_BUILD_FOR_WINCE)
- #define strcasecmp(a, b) _stricmp(a, b)
- #define strncasecmp(a, b, c) _strnicmp(a, b, c)
- #endif
-#elif defined(SK_BUILD_FOR_MAC)
- #ifndef SK_DEBUGBREAK
- #define SK_DEBUGBREAK(cond) do { if (!(cond)) SK_CRASH(); } while (false)
- #endif
-#else
- #ifdef SK_DEBUG
- #include <stdio.h>
- #ifndef SK_DEBUGBREAK
- #define SK_DEBUGBREAK(cond) do { if (cond) break; \
- SkDebugf("%s:%d: failed assertion \"%s\"\n", \
- __FILE__, __LINE__, #cond); SK_CRASH(); } while (false)
- #endif
- #endif
-#endif
-
-// stdlib macros
-
-#if 0
-#if !defined(strlen) && defined(SK_DEBUG)
- extern size_t sk_strlen(const char*);
- #define strlen(s) sk_strlen(s)
-#endif
-#ifndef sk_strcpy
- #define sk_strcpy(dst, src) strcpy(dst, src)
-#endif
-#ifndef sk_strchr
- #define sk_strchr(s, c) strchr(s, c)
-#endif
-#ifndef sk_strrchr
- #define sk_strrchr(s, c) strrchr(s, c)
-#endif
-#ifndef sk_strcmp
- #define sk_strcmp(s, t) strcmp(s, t)
-#endif
-#ifndef sk_strncmp
- #define sk_strncmp(s, t, n) strncmp(s, t, n)
-#endif
-#ifndef sk_memcpy
- #define sk_memcpy(dst, src, n) memcpy(dst, src, n)
-#endif
-#ifndef memmove
- #define memmove(dst, src, n) memmove(dst, src, n)
-#endif
-#ifndef sk_memset
- #define sk_memset(dst, val, n) memset(dst, val, n)
-#endif
-#ifndef sk_memcmp
- #define sk_memcmp(s, t, n) memcmp(s, t, n)
-#endif
-
-#define sk_strequal(s, t) (!sk_strcmp(s, t))
-#define sk_strnequal(s, t, n) (!sk_strncmp(s, t, n))
-#endif
-
-//////////////////////////////////////////////////////////////////////////////////////////////
-#ifndef SK_BUILD_FOR_WINCE
-#include <string.h>
-#include <stdlib.h>
-#else
-#define _CMNINTRIN_DECLARE_ONLY
-#include "cmnintrin.h"
-#endif
-
-#if defined SK_DEBUG && defined SK_BUILD_FOR_WIN32
-//#define _CRTDBG_MAP_ALLOC
-#ifdef free
-#undef free
-#endif
-#include <crtdbg.h>
-#undef free
-
-#ifdef SK_DEBUGx
-#if defined(SK_SIMULATE_FAILED_MALLOC) && defined(__cplusplus)
- void * operator new(
- size_t cb,
- int nBlockUse,
- const char * szFileName,
- int nLine,
- int foo
- );
- void * operator new[](
- size_t cb,
- int nBlockUse,
- const char * szFileName,
- int nLine,
- int foo
- );
- void operator delete(
- void *pUserData,
- int, const char*, int, int
- );
- void operator delete(
- void *pUserData
- );
- void operator delete[]( void * p );
- #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__, 0)
-#else
- #define DEBUG_CLIENTBLOCK new( _CLIENT_BLOCK, __FILE__, __LINE__)
-#endif
- #define new DEBUG_CLIENTBLOCK
-#else
-#define DEBUG_CLIENTBLOCK
-#endif // _DEBUG
-
-#endif
-
-#endif
-
diff --git a/skia/include/corecg/SkPreConfig.h b/skia/include/corecg/SkPreConfig.h
deleted file mode 100644
index 04f1987..0000000
--- a/skia/include/corecg/SkPreConfig.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkPreConfig_DEFINED
-#define SkPreConfig_DEFINED
-
-#ifdef ANDROID
- #define SK_BUILD_FOR_UNIX
- #define SkLONGLONG int64_t
-#endif
-
-//////////////////////////////////////////////////////////////////////
-
-#if !defined(SK_BUILD_FOR_PALM) && !defined(SK_BUILD_FOR_WINCE) && !defined(SK_BUILD_FOR_WIN32) && !defined(SK_BUILD_FOR_SYMBIAN) && !defined(SK_BUILD_FOR_UNIX) && !defined(SK_BUILD_FOR_MAC)
-
- #if defined(PALMOS_SDK_VERSION)
- #define SK_BUILD_FOR_PALM
- #elif defined(UNDER_CE)
- #define SK_BUILD_FOR_WINCE
- #elif defined(WIN32)
- #define SK_BUILD_FOR_WIN32
- #elif defined(__SYMBIAN32__)
- #define SK_BUILD_FOR_WIN32
- #elif defined(linux)
- #define SK_BUILD_FOR_UNIX
- #else
- #define SK_BUILD_FOR_MAC
- #endif
-
-#endif
-
-//////////////////////////////////////////////////////////////////////
-
-#if !defined(SK_DEBUG) && !defined(SK_RELEASE)
- #ifdef NDEBUG
- #define SK_RELEASE
- #else
- #define SK_DEBUG
- #endif
-#endif
-
-//////////////////////////////////////////////////////////////////////
-
-// define to blank or change this in SkUserConfig.h as needed
-#define SK_RESTRICT __restrict__
-
-//////////////////////////////////////////////////////////////////////
-
-#if defined(SK_BUILD_FOR_WIN32) || defined(SK_BUILD_FOR_MAC)
- #ifndef SK_CAN_USE_FLOAT
- #define SK_CAN_USE_FLOAT
- #endif
- #if !defined(SK_SCALAR_IS_FIXED) && !defined(SK_SCALAR_IS_FLOAT)
- #define SK_SCALAR_IS_FIXED
- #endif
-
- #ifndef SkLONGLONG
- #ifdef SK_BUILD_FOR_WIN32
- #define SkLONGLONG __int64
- #else
- #define SkLONGLONG long long
- #endif
- #endif
-#endif
-
-//////////////////////////////////////////////////////////////////////
-
-#if !defined(SK_CPU_BENDIAN) && !defined(SK_CPU_LENDIAN)
- #if defined (__ppc__) || defined(__ppc64__)
- #define SK_CPU_BENDIAN
- #else
- #define SK_CPU_LENDIAN
- #endif
-#endif
-
-//////////////////////////////////////////////////////////////////////
-
-#if (defined(__arm__) && !defined(__thumb__)) || defined(SK_BUILD_FOR_BREW) || defined(SK_BUILD_FOR_WINCE) || (defined(SK_BUILD_FOR_SYMBIAN) && !defined(__MARM_THUMB__))
- /* e.g. the ARM instructions have conditional execution, making tiny branches cheap */
- #define SK_CPU_HAS_CONDITIONAL_INSTR
-#endif
-
-//////////////////////////////////////////////////////////////////////
-// Conditional features based on build target
-
-#if defined(SK_BUILD_FOR_WIN32) || defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_UNIX)
- #ifndef SK_BUILD_NO_IMAGE_ENCODE
- #define SK_SUPPORT_IMAGE_ENCODE
- #endif
-#endif
-
-#ifdef SK_BUILD_FOR_SYMBIAN
- #define SK_USE_RUNTIME_GLOBALS
-#endif
-
-#endif
-
diff --git a/skia/include/corecg/SkRandom.h b/skia/include/corecg/SkRandom.h
deleted file mode 100644
index 33b563a..0000000
--- a/skia/include/corecg/SkRandom.h
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkRandom_DEFINED
-#define SkRandom_DEFINED
-
-#include "Sk64.h"
-#include "SkScalar.h"
-
-/** \class SkRandom
-
- Utility class that implements pseudo random 32bit numbers using a fast
- linear equation. Unlike rand(), this class holds its own seed (initially
- set to 0), so that multiple instances can be used with no side-effects.
-*/
-class SkRandom {
-public:
- SkRandom() : fSeed(0) {}
- SkRandom(uint32_t seed) : fSeed(seed) {}
-
- /** Return the next pseudo random number as an unsigned 32bit value.
- */
- uint32_t nextU() { uint32_t r = fSeed * kMul + kAdd; fSeed = r; return r; }
-
- /** Return the next pseudo random number as a signed 32bit value.
- */
- int32_t nextS() { return (int32_t)this->nextU(); }
-
- /** Return the next pseudo random number as an unsigned 16bit value.
- */
- U16CPU nextU16() { return this->nextU() >> 16; }
-
- /** Return the next pseudo random number as a signed 16bit value.
- */
- S16CPU nextS16() { return this->nextS() >> 16; }
-
- /** Return the next pseudo random number, as an unsigned value of
- at most bitCount bits.
- @param bitCount The maximum number of bits to be returned
- */
- uint32_t nextBits(unsigned bitCount) {
- SkASSERT(bitCount > 0 && bitCount <= 32);
- return this->nextU() >> (32 - bitCount);
- }
-
- /** Return the next pseudo random unsigned number, mapped to lie within
- [min, max] inclusive.
- */
- uint32_t nextRangeU(uint32_t min, uint32_t max) {
- SkASSERT(min <= max);
- return min + this->nextU() % (max - min + 1);
- }
-
- /** Return the next pseudo random number expressed as an unsigned SkFixed
- in the range [0..SK_Fixed1).
- */
- SkFixed nextUFixed1() { return this->nextU() >> 16; }
-
- /** Return the next pseudo random number expressed as a signed SkFixed
- in the range (-SK_Fixed1..SK_Fixed1).
- */
- SkFixed nextSFixed1() { return this->nextS() >> 15; }
-
- /** Return the next pseudo random number expressed as a SkScalar
- in the range [0..SK_Scalar1).
- */
- SkScalar nextUScalar1() { return SkFixedToScalar(this->nextUFixed1()); }
-
- /** Return the next pseudo random number expressed as a SkScalar
- in the range (-SK_Scalar1..SK_Scalar1).
- */
- SkScalar nextSScalar1() { return SkFixedToScalar(this->nextSFixed1()); }
-
- /** Return the next pseudo random number as a signed 64bit value.
- */
- void next64(Sk64* a) {
- SkASSERT(a);
- a->set(this->nextS(), this->nextU());
- }
-
- /** Set the seed of the random object. The seed is initialized to 0 when the
- object is first created, and is updated each time the next pseudo random
- number is requested.
- */
- void setSeed(int32_t seed) { fSeed = (uint32_t)seed; }
-
-private:
- // See "Numerical Recipes in C", 1992 page 284 for these constants
- enum {
- kMul = 1664525,
- kAdd = 1013904223
- };
- uint32_t fSeed;
-};
-
-#endif
-
diff --git a/skia/include/corecg/SkRect.h b/skia/include/corecg/SkRect.h
deleted file mode 100644
index a9f25aa..0000000
--- a/skia/include/corecg/SkRect.h
+++ /dev/null
@@ -1,435 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkRect_DEFINED
-#define SkRect_DEFINED
-
-#include "SkPoint.h"
-
-/** \struct SkIRect
-
- SkIRect holds four 32 bit integer coordinates for a rectangle
-*/
-struct SkIRect {
- int32_t fLeft, fTop, fRight, fBottom;
-
- /** Return true if the rectangle's width or height are <= 0
- */
- bool isEmpty() const { return fLeft >= fRight || fTop >= fBottom; }
-
- /** Returns the rectangle's width. This does not check for a valid rectangle (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 rectangle (i.e. top <= bottom)
- so the result may be negative.
- */
- int height() const { return fBottom - fTop; }
-
- friend int operator==(const SkIRect& a, const SkIRect& b)
- {
- return !memcmp(&a, &b, sizeof(a));
- }
- friend int operator!=(const SkIRect& a, const SkIRect& b)
- {
- return memcmp(&a, &b, sizeof(a));
- }
-
- /** Set the rectangle to (0,0,0,0)
- */
- void setEmpty() { memset(this, 0, sizeof(*this)); }
-
- void set(int32_t left, int32_t top, int32_t right, int32_t bottom)
- {
- fLeft = left;
- fTop = top;
- fRight = right;
- fBottom = bottom;
- }
-
- /** Offset set the rectangle by adding dx to its left and right,
- and adding dy to its top and bottom.
- */
- void offset(int32_t dx, int32_t dy)
- {
- fLeft += dx;
- fTop += dy;
- fRight += dx;
- fBottom += dy;
- }
-
- /** Inset the rectangle by (dx,dy). If dx is positive, then the sides are moved inwards,
- making the rectangle narrower. If dx is negative, then the sides are moved outwards,
- making the rectangle wider. The same hods true for dy and the top and bottom.
- */
- void inset(int32_t dx, int32_t dy)
- {
- fLeft += dx;
- fTop += dy;
- fRight -= dx;
- fBottom -= dy;
- }
- /** 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
- points (0,0) and (0,9) are inside, while (-1,0) and (5,9) are not.
- */
- bool contains(int32_t x, int32_t y) const
- {
- return (unsigned)(x - fLeft) < (unsigned)(fRight - fLeft) &&
- (unsigned)(y - fTop) < (unsigned)(fBottom - fTop);
- }
-
- /** Returns true if the 4 specified sides of a rectangle are inside or equal to this rectangle.
- If either rectangle is empty, contains() returns false.
- */
- bool contains(int32_t left, int32_t top, int32_t right, int32_t bottom) const
- {
- return left < right && top < bottom && !this->isEmpty() && // check for empties
- fLeft <= left && fTop <= top &&
- fRight >= right && fBottom >= bottom;
- }
-
- /** Returns true if the specified rectangle r is inside or equal to this rectangle.
- */
- bool contains(const SkIRect& r) const
- {
- return !r.isEmpty() && !this->isEmpty() && // check for empties
- fLeft <= r.fLeft && fTop <= r.fTop &&
- fRight >= r.fRight && fBottom >= r.fBottom;
- }
-
- /** Return true if this rectangle contains the specified rectangle.
- For speed, this method does not check if either this or the specified
- rectangles are empty, and if either is, its return value is undefined.
- In the debugging build however, we assert that both this and the
- specified rectangles are non-empty.
- */
- bool containsNoEmptyCheck(int32_t left, int32_t top,
- int32_t right, int32_t bottom) const
- {
- SkASSERT(fLeft < fRight && fTop < fBottom);
- SkASSERT(left < right && top < bottom);
-
- return fLeft <= left && fTop <= top &&
- fRight >= right && fBottom >= bottom;
- }
-
- /** 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.
- */
- bool intersect(const SkIRect& r)
- {
- SkASSERT(&r);
- return this->intersect(r.fLeft, r.fTop, r.fRight, r.fBottom);
- }
-
- /** If rectangles a and b intersect, 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.
- */
- 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)
- {
- fLeft = SkMax32(a.fLeft, b.fLeft);
- fTop = SkMax32(a.fTop, b.fTop);
- fRight = SkMin32(a.fRight, b.fRight);
- fBottom = SkMin32(a.fBottom, b.fBottom);
- return true;
- }
- 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.
- If either is, then the return result is undefined. In the debug build,
- we assert that both rectangles are non-empty.
- */
- 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);
- fTop = SkMax32(a.fTop, b.fTop);
- fRight = SkMin32(a.fRight, b.fRight);
- fBottom = SkMin32(a.fBottom, b.fBottom);
- return true;
- }
- return false;
- }
-
- /** If the rectangle specified by left,top,right,bottom 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.
- */
- bool intersect(int32_t left, int32_t top, int32_t right, int32_t bottom)
- {
- if (left < right && top < bottom && !this->isEmpty() &&
- fLeft < right && left < fRight && fTop < bottom && top < fBottom)
- {
- if (fLeft < left) fLeft = left;
- if (fTop < top) fTop = top;
- if (fRight > right) fRight = right;
- if (fBottom > bottom) fBottom = bottom;
- return true;
- }
- return false;
- }
-
- /** Returns true if a and b are not empty, and they intersect
- */
- static bool Intersects(const SkIRect& a, const SkIRect& b)
- {
- return !a.isEmpty() && !b.isEmpty() && // check for empties
- 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.
- */
- void join(int32_t left, int32_t top, int32_t right, int32_t bottom);
-
- /** 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.
- */
- void join(const SkIRect& r)
- {
- this->join(r.fLeft, r.fTop, r.fRight, r.fBottom);
- }
-
- /** Swap top/bottom or left/right if there are flipped.
- This can be called if the edges are computed separately,
- and may have crossed over each other.
- When this returns, left <= right && top <= bottom
- */
- void sort();
-};
-
-/** \struct SkRect
-*/
-struct SkRect {
- SkScalar fLeft, fTop, fRight, fBottom;
-
- /** Return true if the rectangle's width or height are <= 0
- */
- bool isEmpty() const { return fLeft >= fRight || fTop >= fBottom; }
- SkScalar width() const { return fRight - fLeft; }
- SkScalar height() const { return fBottom - fTop; }
- SkScalar centerX() const { return SkScalarHalf(fLeft + fRight); }
- SkScalar centerY() const { return SkScalarHalf(fTop + fBottom); }
-
- friend int operator==(const SkRect& a, const SkRect& b)
- {
- return !memcmp(&a, &b, sizeof(a));
- }
- friend int operator!=(const SkRect& a, const SkRect& b)
- {
- return memcmp(&a, &b, sizeof(a));
- }
-
- /** return the 4 points that enclose the rectangle
- */
- void toQuad(SkPoint quad[4]) const;
-
- /** Set this rectangle to the empty rectangle (0,0,0,0)
- */
- void setEmpty() { memset(this, 0, sizeof(*this)); }
-
- void set(const SkIRect& src)
- {
- fLeft = SkIntToScalar(src.fLeft);
- fTop = SkIntToScalar(src.fTop);
- fRight = SkIntToScalar(src.fRight);
- fBottom = SkIntToScalar(src.fBottom);
- }
-
- void set(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom)
- {
- fLeft = left;
- fTop = top;
- fRight = right;
- fBottom = bottom;
- }
-
- /** Initialize the rect with the 4 specified integers. The routine handles
- converting them to scalars (by calling SkIntToScalar)
- */
- void iset(int left, int top, int right, int bottom) {
- fLeft = SkIntToScalar(left);
- fTop = SkIntToScalar(top);
- fRight = SkIntToScalar(right);
- fBottom = SkIntToScalar(bottom);
- }
-
- /** Set this rectangle to be the bounds of the array of points.
- If the array is empty (count == 0), then set this rectangle
- to the empty rectangle (0,0,0,0)
- */
- void set(const SkPoint pts[], int count);
-
- /** Offset set the rectangle by adding dx to its left and right,
- and adding dy to its top and bottom.
- */
- void offset(SkScalar dx, SkScalar dy)
- {
- fLeft += dx;
- fTop += dy;
- fRight += dx;
- fBottom += dy;
- }
-
- /** Inset the rectangle by (dx,dy). If dx is positive, then the sides are moved inwards,
- making the rectangle narrower. If dx is negative, then the sides are moved outwards,
- making the rectangle wider. The same hods true for dy and the top and bottom.
- */
- void inset(SkScalar dx, SkScalar dy)
- {
- fLeft += dx;
- fTop += dy;
- fRight -= dx;
- fBottom -= dy;
- }
-
- /** If this rectangle intersects r, 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.
- */
- bool intersect(const SkRect& r);
-
- /** If this rectangle intersects the rectangle specified by left, top, right, bottom,
- 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.
- */
- bool intersect(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom);
-
- /** Return true if this rectangle is not empty, and the specified sides of
- a rectangle are not empty, and they intersect.
- */
- bool intersects(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom) const
- {
- return // first check that both are not empty
- left < right && top < bottom &&
- fLeft < fRight && fTop < fBottom &&
- // now check for intersection
- fLeft < right && left < fRight &&
- fTop < bottom && top < fBottom;
- }
-
- /** Return true if rectangles a and b are not empty and intersect.
- */
- static bool Intersects(const SkRect& a, const SkRect& b)
- {
- return !a.isEmpty() && !b.isEmpty() && // check for empties
- 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.
- */
- void join(SkScalar left, SkScalar top, SkScalar right, SkScalar bottom);
-
- /** 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.
- */
- void join(const SkRect& r)
- {
- this->join(r.fLeft, r.fTop, r.fRight, r.fBottom);
- }
-
- /** Returns true if (p.fX,p.fY) is inside the rectangle. The left and top coordinates of
- the rectangle are considered to be inside, while the right and bottom coordinates
- are not. Thus for the rectangle (0, 0, 5, 10), the points (0,0) and (0,9) are inside,
- while (-1,0) and (5,9) are not.
- If this rectangle is empty, return false.
- */
- bool contains(const SkPoint& p) const
- {
- return !this->isEmpty() &&
- fLeft <= p.fX && p.fX < fRight &&
- fTop <= p.fY && p.fY < fBottom;
- }
-
- /** Returns true if (x,y) is inside the rectangle. The left and top coordinates of
- the rectangle are considered to be inside, while the right and bottom coordinates
- are not. Thus for the rectangle (0, 0, 5, 10), the points (0,0) and (0,9) are inside,
- while (-1,0) and (5,9) are not.
- If this rectangle is empty, return false.
- */
- bool contains(SkScalar x, SkScalar y) const
- {
- return !this->isEmpty() &&
- fLeft <= x && x < fRight &&
- fTop <= y && y < fBottom;
- }
-
- /** Return true if this rectangle contains r.
- If either rectangle is empty, return false.
- */
- bool contains(const SkRect& r) const
- {
- return !r.isEmpty() && !this->isEmpty() && // check for empties
- fLeft <= r.fLeft && fTop <= r.fTop &&
- fRight >= r.fRight && fBottom >= r.fBottom;
- }
-
- /** Set the dst integer rectangle by rounding this rectangle's coordinates
- to their nearest integer values.
- */
- void round(SkIRect* dst) const
- {
- SkASSERT(dst);
- dst->set(SkScalarRound(fLeft), SkScalarRound(fTop), SkScalarRound(fRight), SkScalarRound(fBottom));
- }
-
- /** Set the dst integer rectangle by rounding "out" this rectangle, choosing the floor of top and left,
- and the ceiling of right and bototm.
- */
- void roundOut(SkIRect* dst) const
- {
- SkASSERT(dst);
- dst->set(SkScalarFloor(fLeft), SkScalarFloor(fTop), SkScalarCeil(fRight), SkScalarCeil(fBottom));
- }
-
- /** Swap top/bottom or left/right if there are flipped.
- This can be called if the edges are computed separately,
- and may have crossed over each other.
- When this returns, left <= right && top <= bottom
- */
- void sort();
-};
-
-#endif
-
diff --git a/skia/include/corecg/SkRegion.h b/skia/include/corecg/SkRegion.h
deleted file mode 100644
index d3bfb4a..0000000
--- a/skia/include/corecg/SkRegion.h
+++ /dev/null
@@ -1,349 +0,0 @@
-/*
- * Copyright (C) 2005 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkRegion_DEFINED
-#define SkRegion_DEFINED
-
-#include "SkRect.h"
-
-class SkPath;
-class SkRgnBuilder;
-
-namespace android {
- class Region;
-}
-
-#define SkRegion_gEmptyRunHeadPtr ((SkRegion::RunHead*)-1)
-#define SkRegion_gRectRunHeadPtr 0
-
-/** \class SkRegion
-
- The SkRegion class encapsulates the geometric region used to specify
- clipping areas for drawing.
-*/
-class SkRegion {
-public:
- typedef int32_t RunType;
- enum {
- kRunTypeSentinel = 0x7FFFFFFF
- };
-
- SkRegion();
- SkRegion(const SkRegion&);
- explicit SkRegion(const SkIRect&);
- ~SkRegion();
-
- SkRegion& operator=(const SkRegion&);
-
- friend int operator==(const SkRegion& a, const SkRegion& b);
- friend int operator!=(const SkRegion& a, const SkRegion& b) {
- return !(a == b);
- }
-
- /** Replace this region with the specified region, and return true if the
- resulting region is non-empty.
- */
- bool set(const SkRegion& src) {
- SkASSERT(&src);
- *this = src;
- return !this->isEmpty();
- }
-
- /** Swap the contents of this and the specified region. This operation
- is gauarenteed to never fail.
- */
- void swap(SkRegion&);
-
- /** Return true if this region is empty */
- bool isEmpty() const { return fRunHead == SkRegion_gEmptyRunHeadPtr; }
- /** Return true if this region is a single, non-empty rectangle */
- bool isRect() const { return fRunHead == SkRegion_gRectRunHeadPtr; }
- /** Return true if this region consists of more than 1 rectangular area */
- bool isComplex() const { return !this->isEmpty() && !this->isRect(); }
- /** Return the bounds of this region. If the region is empty, returns an
- empty rectangle.
- */
- const SkIRect& getBounds() const { return fBounds; }
-
- /** Returns true if the region is non-empty, and if so, sets the specified
- path to the boundary(s) of the region.
- */
- bool getBoundaryPath(SkPath* path) const;
-
- /** Set the region to be empty, and return false, since the resulting
- region is empty
- */
- bool setEmpty();
-
- /** If rect is non-empty, set this region to that rectangle and return true,
- otherwise set this region to empty and return false.
- */
- bool setRect(const SkIRect&);
-
- /** If left < right and top < bottom, set this region to that rectangle and
- return true, otherwise set this region to empty and return false.
- */
- bool setRect(int32_t left, int32_t top, int32_t right, int32_t bottom);
-
- /** Set this region to the specified region, and return true if it is
- non-empty. */
- bool setRegion(const SkRegion&);
-
- /** Set this region to the area described by the path, clipped.
- Return true if the resulting region is non-empty.
- This produces a region that is identical to the pixels that would be
- 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.
- */
- bool intersects(const SkRegion&) const;
-
- /** Return true if the specified x,y coordinate is inside the region.
- */
- bool contains(int32_t x, int32_t y) const;
-
- /** Return true if the specified rectangle is completely inside the region.
- This works for simple (rectangular) and complex regions, and always
- returns the correct result. Note: if either this region or the rectangle
- is empty, contains() returns false.
- */
- bool contains(const SkIRect&) const;
-
- /** Return true if the specified region is completely inside the region.
- This works for simple (rectangular) and complex regions, and always
- returns the correct result. Note: if either region is empty, contains()
- returns false.
- */
- bool contains(const SkRegion&) const;
-
- /** Return true if this region is a single rectangle (not complex) and the
- specified rectangle is contained by this region. Returning false is not
- a guarantee that the rectangle is not contained by this region, but
- return true is a guarantee that the rectangle is contained by this region.
- */
- bool quickContains(const SkIRect& r) const {
- return this->quickContains(r.fLeft, r.fTop, r.fRight, r.fBottom);
- }
-
- /** Return true if this region is a single rectangle (not complex) and the
- specified rectangle is contained by this region. Returning false is not
- a guarantee that the rectangle is not contained by this region, but
- return true is a guarantee that the rectangle is contained by this
- region.
- */
- 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
- intersect, but returning true is a guarantee that they do not.
- */
- bool quickReject(const SkIRect& rect) const
- {
- return this->isEmpty() || rect.isEmpty() ||
- !SkIRect::Intersects(fBounds, rect);
- }
-
- /** Return true if this region, or rgn, is empty, or if their bounds do not
- intersect. Returning false is not a guarantee that they intersect, but
- returning true is a guarantee that they do not.
- */
- bool quickReject(const SkRegion& rgn) const {
- return this->isEmpty() || rgn.isEmpty() ||
- !SkIRect::Intersects(fBounds, rgn.fBounds);
- }
-
- /** Translate the region by the specified (dx, dy) amount.
- */
- void translate(int dx, int dy) { this->translate(dx, dy, this); }
-
- /** Translate the region by the specified (dx, dy) amount, writing the
- resulting region into dst. Note: it is legal to pass this region as the
- dst parameter, effectively translating the region in place. If dst is
- null, nothing happens.
- */
- void translate(int dx, int dy, SkRegion* dst) const;
-
- /** The logical operations that can be performed when combining two regions.
- */
- enum Op {
- kDifference_Op, //!< subtract the op region from the first region
- kIntersect_Op, //!< intersect the two regions
- kUnion_Op, //!< union (inclusive-or) the two regions
- kXOR_Op, //!< exclusive-or the two regions
- /** subtract the first region from the op region */
- 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).
- Return true if the resulting region is non-empty.
- */
- bool op(int left, int top, int right, int bottom, Op op) {
- SkIRect rect;
- 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).
- Return true if the resulting region is non-empty.
- */
- bool op(const SkRegion& rgn, Op op) { return this->op(*this, rgn, op); }
- /** Set this region to the result of applying the Op to the specified
- rectangle and region: this = (rect op rgn).
- Return true if the resulting region is non-empty.
- */
- bool op(const SkIRect& rect, const SkRegion& rgn, Op);
- /** Set this region to the result of applying the Op to the specified
- region and rectangle: this = (rgn op rect).
- Return true if the resulting region is non-empty.
- */
- bool op(const SkRegion& rgn, const SkIRect& rect, Op);
- /** Set this region to the result of applying the Op to the specified
- regions: this = (rgna op rgnb).
- Return true if the resulting region is non-empty.
- */
- bool op(const SkRegion& rgna, const SkRegion& rgnb, Op op);
-
- /** Returns the sequence of rectangles, sorted in Y and X, that make up
- this region.
- */
- class Iterator {
- public:
- Iterator() : fRgn(NULL), fDone(true) {}
- Iterator(const SkRegion&);
- // if we have a region, reset to it and return true, else return false
- bool rewind();
- // reset the iterator, using the new region
- void reset(const SkRegion&);
- bool done() { return fDone; }
- void next();
- const SkIRect& rect() const { return fRect; }
-
- private:
- const SkRegion* fRgn;
- const RunType* fRuns;
- SkIRect fRect;
- bool fDone;
- };
-
- /** Returns the sequence of rectangles, sorted in Y and X, that make up
- this region intersected with the specified clip rectangle.
- */
- class Cliperator {
- public:
- Cliperator(const SkRegion&, const SkIRect& clip);
- bool done() { return fDone; }
- void next();
- const SkIRect& rect() const { return fRect; }
-
- private:
- Iterator fIter;
- SkIRect fClip;
- SkIRect fRect;
- bool fDone;
- };
-
- /** Returns the sequence of runs that make up this region for the specified
- Y scanline, clipped to the specified left and right X values.
- */
- class Spanerator {
- public:
- Spanerator(const SkRegion&, int y, int left, int right);
- bool next(int* left, int* right);
-
- private:
- const SkRegion::RunType* fRuns;
- int fLeft, fRight;
- bool fDone;
- };
-
- /** Write the region to the buffer, and return the number of bytes written.
- If buffer is NULL, it still returns the number of bytes.
- */
- uint32_t flatten(void* buffer) const;
- /** Initialized the region from the buffer, returning the number
- of bytes actually read.
- */
- uint32_t unflatten(const void* buffer);
-
- SkDEBUGCODE(void dump() const;)
- SkDEBUGCODE(void validate() const;)
- SkDEBUGCODE(static void UnitTest();)
-
-private:
- enum {
- kOpCount = kReplace_Op + 1
- };
-
- enum {
- kRectRegionRuns = 6 // need to store a region of a rect [T B L R S S]
- };
-
- friend class android::Region; // needed for marshalling efficiently
- void allocateRuns(int count); // allocate space for count runs
-
- struct RunHead;
-
- SkIRect fBounds;
- RunHead* fRunHead;
-
- void freeRuns();
- const RunType* getRuns(RunType tmpStorage[], int* count) const;
- bool setRuns(RunType runs[], int count);
-
- int count_runtype_values(int* itop, int* ibot) const;
-
- static void BuildRectRuns(const SkIRect& bounds,
- RunType runs[kRectRegionRuns]);
- // returns true if runs are just a rect
- static bool ComputeRunBounds(const RunType runs[], int count,
- SkIRect* bounds);
-
- friend struct RunHead;
- friend class Iterator;
- friend class Spanerator;
- friend class SkRgnBuilder;
- friend class SkFlatRegion;
-};
-
-
-#endif
-
diff --git a/skia/include/corecg/SkScalar.h b/skia/include/corecg/SkScalar.h
deleted file mode 100644
index 86341eb..0000000
--- a/skia/include/corecg/SkScalar.h
+++ /dev/null
@@ -1,254 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkScalar_DEFINED
-#define SkScalar_DEFINED
-
-#include "SkFixed.h"
-
-/** \file SkScalar.h
-
- Types and macros for the data type SkScalar. This is the fractional numeric type
- that, depending on the compile-time flag SK_SCALAR_IS_FLOAT, may be implemented
- either as an IEEE float, or as a 16.16 SkFixed. The macros in this file are written
- to allow the calling code to manipulate SkScalar values without knowing which representation
- is in effect.
-*/
-
-#ifdef SK_SCALAR_IS_FLOAT
- #include "SkFloatingPoint.h"
-
- /** SkScalar is our type for fractional values and coordinates. Depending on
- compile configurations, it is either represented as an IEEE float, or
- as a 16.16 fixed point integer.
- */
- typedef float SkScalar;
- extern const uint32_t gIEEENotANumber;
- extern const uint32_t gIEEEInfinity;
-
- /** SK_Scalar1 is defined to be 1.0 represented as an SkScalar
- */
- #define SK_Scalar1 (1.0f)
- /** SK_Scalar1 is defined to be 1/2 represented as an SkScalar
- */
- #define SK_ScalarHalf (0.5f)
- /** SK_ScalarInfinity is defined to be infinity as an SkScalar
- */
- #define SK_ScalarInfinity (*(const float*)&gIEEEInfinity)
- /** SK_ScalarMax is defined to be the largest value representable as an SkScalar
- */
- #define SK_ScalarMax (3.4028235e+38f)
- /** SK_ScalarMin is defined to be the smallest value representable as an SkScalar
- */
- #define SK_ScalarMin (1.1754944e-38f)
- /** SK_ScalarNaN is defined to be 'Not a Number' as an SkScalar
- */
- #define SK_ScalarNaN (*(const float*)(const void*)&gIEEENotANumber)
- /** SkScalarIsNaN(n) returns true if argument is not a number
- */
- static inline bool SkScalarIsNaN(float x) { return x != x; }
- /** SkIntToScalar(n) returns its integer argument as an SkScalar
- */
- #define SkIntToScalar(n) ((float)(n))
- /** SkFixedToScalar(n) returns its SkFixed argument as an SkScalar
- */
- #define SkFixedToScalar(x) SkFixedToFloat(x)
- /** SkScalarToFixed(n) returns its SkScalar argument as an SkFixed
- */
- #define SkScalarToFixed(x) SkFloatToFixed(x)
-
- #define SkScalarToFloat(n) (n)
- #define SkFloatToScalar(n) (n)
-
- #define SkScalarToDouble(n) (double)(n)
- #define SkDoubleToScalar(n) (float)(n)
-
- /** SkScalarFraction(x) returns the signed fractional part of the argument
- */
- #define SkScalarFraction(x) sk_float_mod(x, 1.0f)
- /** Rounds the SkScalar to the nearest integer value
- */
- #define SkScalarRound(x) sk_float_round2int(x)
- /** Returns the smallest integer that is >= the specified SkScalar
- */
- #define SkScalarCeil(x) sk_float_ceil2int(x)
- /** Returns the largest integer that is <= the specified SkScalar
- */
- #define SkScalarFloor(x) sk_float_floor2int(x)
- /** Returns the absolute value of the specified SkScalar
- */
- #define SkScalarAbs(x) sk_float_abs(x)
- /** Returns the value pinned between 0 and max inclusive
- */
- inline SkScalar SkScalarClampMax(SkScalar x, SkScalar max) {
- return x < 0 ? 0 : x > max ? max : x;
- }
- /** Returns the value pinned between min and max inclusive
- */
- inline SkScalar SkScalarPin(SkScalar x, SkScalar min, SkScalar max) {
- return x < min ? min : x > max ? max : x;
- }
- /** Returns the specified SkScalar squared (x*x)
- */
- inline SkScalar SkScalarSquare(SkScalar x) { return x * x; }
- /** Returns the product of two SkScalars
- */
- #define SkScalarMul(a, b) ((float)(a) * (b))
- /** Returns the product of two SkScalars plus a third SkScalar
- */
- #define SkScalarMulAdd(a, b, c) ((float)(a) * (b) + (c))
- /** Returns the product of a SkScalar and an int rounded to the nearest integer value
- */
- #define SkScalarMulRound(a, b) SkScalarRound((float)(a) * (b))
- /** Returns the product of a SkScalar and an int promoted to the next larger int
- */
- #define SkScalarMulCeil(a, b) SkScalarCeil((float)(a) * (b))
- /** Returns the product of a SkScalar and an int truncated to the next smaller int
- */
- #define SkScalarMulFloor(a, b) SkScalarFloor((float)(a) * (b))
- /** Returns the quotient of two SkScalars (a/b)
- */
- #define SkScalarDiv(a, b) ((float)(a) / (b))
- /** Returns the mod of two SkScalars (a mod b)
- */
- #define SkScalarMod(x,y) sk_float_mod(x,y)
- /** Returns the product of the first two arguments, divided by the third argument
- */
- #define SkScalarMulDiv(a, b, c) ((float)(a) * (b) / (c))
- /** Returns the multiplicative inverse of the SkScalar (1/x)
- */
- #define SkScalarInvert(x) (SK_Scalar1 / (x))
- #define SkScalarFastInvert(x) (SK_Scalar1 / (x))
- /** Returns the square root of the SkScalar
- */
- #define SkScalarSqrt(x) sk_float_sqrt(x)
- /** Returns the average of two SkScalars (a+b)/2
- */
- #define SkScalarAve(a, b) (((a) + (b)) * 0.5f)
- /** Returns the geometric mean of two SkScalars
- */
- #define SkScalarMean(a, b) sk_float_sqrt((float)(a) * (b))
- /** Returns one half of the specified SkScalar
- */
- #define SkScalarHalf(a) ((a) * 0.5f)
-
- #define SK_ScalarSqrt2 1.41421356f
- #define SK_ScalarPI 3.14159265f
- #define SK_ScalarTanPIOver8 0.414213562f
- #define SK_ScalarRoot2Over2 0.707106781f
-
- #define SkDegreesToRadians(degrees) ((degrees) * (SK_ScalarPI / 180))
- float SkScalarSinCos(SkScalar radians, SkScalar* cosValue);
- #define SkScalarSin(radians) (float)sk_float_sin(radians)
- #define SkScalarCos(radians) (float)sk_float_cos(radians)
- #define SkScalarTan(radians) (float)sk_float_tan(radians)
- #define SkScalarASin(val) (float)sk_float_asin(val)
- #define SkScalarACos(val) (float)sk_float_acos(val)
- #define SkScalarATan2(y, x) (float)sk_float_atan2(y,x)
- #define SkScalarExp(x) (float)sk_float_exp(x)
- #define SkScalarLog(x) (float)sk_float_log(x)
-
- inline SkScalar SkMaxScalar(SkScalar a, SkScalar b) { return a > b ? a : b; }
- inline SkScalar SkMinScalar(SkScalar a, SkScalar b) { return a < b ? a : b; }
-
-#else
- typedef SkFixed SkScalar;
-
- #define SK_Scalar1 SK_Fixed1
- #define SK_ScalarHalf SK_FixedHalf
- #define SK_ScalarInfinity SK_FixedMax
- #define SK_ScalarMax SK_FixedMax
- #define SK_ScalarMin SK_FixedMin
- #define SK_ScalarNaN SK_FixedNaN
- #define SkScalarIsNaN(x) ((x) == SK_FixedNaN)
- #define SkIntToScalar(n) SkIntToFixed(n)
- #define SkFixedToScalar(x) (x)
- #define SkScalarToFixed(x) (x)
- #ifdef SK_CAN_USE_FLOAT
- #define SkScalarToFloat(n) SkFixedToFloat(n)
- #define SkFloatToScalar(n) SkFloatToFixed(n)
-
- #define SkScalarToDouble(n) SkFixedToDouble(n)
- #define SkDoubleToScalar(n) SkDoubleToFixed(n)
- #endif
- #define SkScalarFraction(x) SkFixedFraction(x)
- #define SkScalarRound(x) SkFixedRound(x)
- #define SkScalarCeil(x) SkFixedCeil(x)
- #define SkScalarFloor(x) SkFixedFloor(x)
- #define SkScalarAbs(x) SkFixedAbs(x)
- #define SkScalarClampMax(x, max) SkClampMax(x, max)
- #define SkScalarPin(x, min, max) SkPin32(x, min, max)
- #define SkScalarSquare(x) SkFixedSquare(x)
- #define SkScalarMul(a, b) SkFixedMul(a, b)
- #define SkScalarMulAdd(a, b, c) SkFixedMulAdd(a, b, c)
- #define SkScalarMulRound(a, b) SkFixedMulCommon(a, b, SK_FixedHalf)
- #define SkScalarMulCeil(a, b) SkFixedMulCommon(a, b, SK_Fixed1 - 1)
- #define SkScalarMulFloor(a, b) SkFixedMulCommon(a, b, 0)
- #define SkScalarDiv(a, b) SkFixedDiv(a, b)
- #define SkScalarMod(a, b) SkFixedMod(a, b)
- #define SkScalarMulDiv(a, b, c) SkMulDiv(a, b, c)
- #define SkScalarInvert(x) SkFixedInvert(x)
- #define SkScalarFastInvert(x) SkFixedFastInvert(x)
- #define SkScalarSqrt(x) SkFixedSqrt(x)
- #define SkScalarAve(a, b) SkFixedAve(a, b)
- #define SkScalarMean(a, b) SkFixedMean(a, b)
- #define SkScalarHalf(a) ((a) >> 1)
-
- #define SK_ScalarSqrt2 SK_FixedSqrt2
- #define SK_ScalarPI SK_FixedPI
- #define SK_ScalarTanPIOver8 SK_FixedTanPIOver8
- #define SK_ScalarRoot2Over2 SK_FixedRoot2Over2
-
- #define SkDegreesToRadians(degrees) SkFractMul(degrees, SK_FractPIOver180)
- #define SkScalarSinCos(radians, cosPtr) SkFixedSinCos(radians, cosPtr)
- #define SkScalarSin(radians) SkFixedSin(radians)
- #define SkScalarCos(radians) SkFixedCos(radians)
- #define SkScalarTan(val) SkFixedTan(val)
- #define SkScalarASin(val) SkFixedASin(val)
- #define SkScalarACos(val) SkFixedACos(val)
- #define SkScalarATan2(y, x) SkFixedATan2(y,x)
- #define SkScalarExp(x) SkFixedExp(x)
- #define SkScalarLog(x) SkFixedLog(x)
-
- #define SkMaxScalar(a, b) SkMax32(a, b)
- #define SkMinScalar(a, b) SkMin32(a, b)
-#endif
-
-#define SK_ScalarNearlyZero (SK_Scalar1 / (1 << 12))
-
-/* <= is slower than < for floats, so we use < for our tolerance test
-*/
-
-inline bool SkScalarNearlyZero(SkScalar x, SkScalar tolerance = SK_ScalarNearlyZero)
-{
- SkASSERT(tolerance > 0);
- return SkScalarAbs(x) < tolerance;
-}
-
-/** Linearly interpolate between A and B, based on t.
- If t is 0, return A
- If t is 1, return B
- else interpolate.
- t must be [0..SK_Scalar1]
-*/
-inline SkScalar SkScalarInterp(SkScalar A, SkScalar B, SkScalar t)
-{
- SkASSERT(t >= 0 && t <= SK_Scalar1);
- return A + SkScalarMul(B - A, t);
-}
-
-#endif
-
diff --git a/skia/include/corecg/SkScalarCompare.h b/skia/include/corecg/SkScalarCompare.h
deleted file mode 100644
index fee554c..0000000
--- a/skia/include/corecg/SkScalarCompare.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkScalarCompare_DEFINED
-#define SkScalarCompare_DEFINED
-
-#include "SkFloatBits.h"
-#include "SkRect.h"
-
-#ifdef SK_SCALAR_SLOW_COMPARES
- typedef int32_t SkScalarCompareType;
- typedef SkIRect SkRectCompareType;
- #define SkScalarToCompareType(x) SkScalarAs2sCompliment(x)
-#else
- typedef SkScalar SkScalarCompareType;
- typedef SkRect SkRectCompareType;
- #define SkScalarToCompareType(x) (x)
-#endif
-
-#endif
-
diff --git a/skia/include/corecg/SkTSearch.h b/skia/include/corecg/SkTSearch.h
deleted file mode 100644
index f29e6f5..0000000
--- a/skia/include/corecg/SkTSearch.h
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkTSearch_DEFINED
-#define SkTSearch_DEFINED
-
-#include "SkTypes.h"
-
-template <typename T>
-int SkTSearch(const T* base, int count, const T& target, size_t elemSize)
-{
- SkASSERT(count >= 0);
- if (count <= 0)
- return ~0;
-
- SkASSERT(base != NULL); // base may be NULL if count is zero
-
- int lo = 0;
- int hi = count - 1;
-
- while (lo < hi)
- {
- int mid = (hi + lo) >> 1;
- const T* elem = (const T*)((const char*)base + mid * elemSize);
-
- if (*elem < target)
- lo = mid + 1;
- else
- hi = mid;
- }
-
- const T* elem = (const T*)((const char*)base + hi * elemSize);
- if (*elem != target)
- {
- if (*elem < target)
- hi += 1;
- hi = ~hi;
- }
- return hi;
-}
-
-template <typename T>
-int SkTSearch(const T* base, int count, const T& target, size_t elemSize,
- int (*compare)(const T&, const T&))
-{
- SkASSERT(count >= 0);
- if (count <= 0) {
- return ~0;
- }
-
- SkASSERT(base != NULL); // base may be NULL if count is zero
-
- int lo = 0;
- int hi = count - 1;
-
- while (lo < hi) {
- int mid = (hi + lo) >> 1;
- const T* elem = (const T*)((const char*)base + mid * elemSize);
-
- if ((*compare)(*elem, target) < 0)
- lo = mid + 1;
- else
- hi = mid;
- }
-
- const T* elem = (const T*)((const char*)base + hi * elemSize);
- int pred = (*compare)(*elem, target);
- if (pred != 0) {
- if (pred < 0)
- hi += 1;
- hi = ~hi;
- }
- return hi;
-}
-
-template <typename T>
-int SkTSearch(const T** base, int count, const T* target, size_t elemSize,
- int (*compare)(const T*, const T*))
-{
- SkASSERT(count >= 0);
- if (count <= 0)
- return ~0;
-
- SkASSERT(base != NULL); // base may be NULL if count is zero
-
- int lo = 0;
- int hi = count - 1;
-
- while (lo < hi)
- {
- int mid = (hi + lo) >> 1;
- const T* elem = *(const T**)((const char*)base + mid * elemSize);
-
- if ((*compare)(elem, target) < 0)
- lo = mid + 1;
- else
- hi = mid;
- }
-
- const T* elem = *(const T**)((const char*)base + hi * elemSize);
- int pred = (*compare)(elem, target);
- if (pred != 0)
- {
- if (pred < 0)
- hi += 1;
- hi = ~hi;
- }
- return hi;
-}
-
-int SkStrSearch(const char*const* base, int count, const char target[],
- size_t target_len, size_t elemSize);
-int SkStrSearch(const char*const* base, int count, const char target[],
- size_t elemSize);
-
-/** Like SkStrSearch, but treats target as if it were all lower-case. Assumes that
- base points to a table of lower-case strings.
-*/
-int SkStrLCSearch(const char*const* base, int count, const char target[],
- size_t target_len, size_t elemSize);
-int SkStrLCSearch(const char*const* base, int count, const char target[],
- size_t elemSize);
-
-/** Helper class to convert a string to lower-case, but only modifying the ascii
- characters. This makes the routine very fast and never changes the string
- length, but it is not suitable for linguistic purposes. Normally this is
- used for buiding and searching string tables.
-*/
-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; }
-
-private:
- char* fLC; // points to either the heap or fStorage
- size_t fLength;
- enum {
- STORAGE = 64
- };
- char fStorage[STORAGE+1];
-};
-
-extern "C" {
- typedef int (*SkQSortCompareProc)(const void*, const void*);
- void SkQSort(void* base, size_t count, size_t elemSize, SkQSortCompareProc);
-}
-
-SkDEBUGCODE(void SkQSort_UnitTest();)
-
-#endif
-
diff --git a/skia/include/corecg/SkTemplates.h b/skia/include/corecg/SkTemplates.h
deleted file mode 100644
index c81be2a..0000000
--- a/skia/include/corecg/SkTemplates.h
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkTemplates_DEFINED
-#define SkTemplates_DEFINED
-
-#include "SkTypes.h"
-
-/** \file SkTemplates.h
-
- This file contains light-weight template classes for type-safe and exception-safe
- resource management.
-*/
-
-/** \class SkAutoTCallVProc
-
- Call a function when this goes out of scope. The template uses two
- parameters, the object, and a function that is to be called in the destructor.
- If detach() is called, the object reference is set to null. If the object
- reference is null when the destructor is called, we do not call the
- function.
-*/
-template <typename T, void (*P)(T*)> class SkAutoTCallVProc : SkNoncopyable {
-public:
- SkAutoTCallVProc(T* obj): fObj(obj) {}
- ~SkAutoTCallVProc() { if (fObj) P(fObj); }
- T* detach() { T* obj = fObj; fObj = NULL; return obj; }
-private:
- T* fObj;
-};
-
-/** \class SkAutoTCallIProc
-
-Call a function when this goes out of scope. The template uses two
-parameters, the object, and a function that is to be called in the destructor.
-If detach() is called, the object reference is set to null. If the object
-reference is null when the destructor is called, we do not call the
-function.
-*/
-template <typename T, int (*P)(T*)> class SkAutoTCallIProc : SkNoncopyable {
-public:
- SkAutoTCallIProc(T* obj): fObj(obj) {}
- ~SkAutoTCallIProc() { if (fObj) P(fObj); }
- T* detach() { T* obj = fObj; fObj = NULL; return obj; }
-private:
- T* fObj;
-};
-
-template <typename T> class SkAutoTDelete : SkNoncopyable {
-public:
- SkAutoTDelete(T* obj) : fObj(obj) {}
- ~SkAutoTDelete() { delete fObj; }
-
- T* get() const { return fObj; }
- void free() { delete fObj; fObj = NULL; }
- T* detach() { T* obj = fObj; fObj = NULL; return obj; }
-
-private:
- T* fObj;
-};
-
-template <typename T> class SkAutoTDeleteArray : SkNoncopyable {
-public:
- SkAutoTDeleteArray(T array[]) : fArray(array) {}
- ~SkAutoTDeleteArray() { delete[] fArray; }
-
- T* get() const { return fArray; }
- void free() { delete[] fArray; fArray = NULL; }
- T* detach() { T* array = fArray; fArray = NULL; return array; }
-
-private:
- T* fArray;
-};
-
-template <typename T> class SkAutoTArray : SkNoncopyable {
-public:
- SkAutoTArray(size_t count)
- {
- fArray = NULL; // init first in case we throw
- if (count)
- fArray = new T[count];
-#ifdef SK_DEBUG
- fCount = count;
-#endif
- }
- ~SkAutoTArray()
- {
- delete[] fArray;
- }
-
- T* get() const { return fArray; }
- T& operator[](int index) const { SkASSERT((unsigned)index < fCount); return fArray[index]; }
-
- void reset()
- {
- if (fArray)
- {
- delete[] fArray;
- fArray = NULL;
- }
- }
-
- void replace(T* array)
- {
- if (fArray != array)
- {
- delete[] fArray;
- fArray = array;
- }
- }
-
- /** Call swap to exchange your pointer to an array of T with the SkAutoTArray object.
- After this call, the SkAutoTArray object will be responsible for deleting your
- array, and you will be responsible for deleting its.
- */
- void swap(T*& other)
- {
- T* tmp = fArray;
- fArray = other;
- other = tmp;
- }
-
-private:
-#ifdef SK_DEBUG
- size_t fCount;
-#endif
- T* fArray;
-};
-
-/** Allocate a temp array on the stack/heap.
- Does NOT call any constructors/destructors on T (i.e. T must be POD)
-*/
-template <typename T> class SkAutoTMalloc : SkNoncopyable {
-public:
- SkAutoTMalloc(size_t count)
- {
- fPtr = (T*)sk_malloc_flags(count * sizeof(T), SK_MALLOC_THROW | SK_MALLOC_TEMP);
- }
- ~SkAutoTMalloc()
- {
- sk_free(fPtr);
- }
- T* get() const { return fPtr; }
-
-private:
- T* fPtr;
-};
-
-template <size_t N, typename T> class SkAutoSTMalloc : SkNoncopyable {
-public:
- SkAutoSTMalloc(size_t count)
- {
- if (count <= N)
- fPtr = fTStorage;
- else
- fPtr = (T*)sk_malloc_flags(count * sizeof(T), SK_MALLOC_THROW | SK_MALLOC_TEMP);
- }
- ~SkAutoSTMalloc()
- {
- if (fPtr != fTStorage)
- sk_free(fPtr);
- }
- T* get() const { return fPtr; }
-
-private:
- T* fPtr;
- union {
- uint32_t fStorage32[(N*sizeof(T) + 3) >> 2];
- T fTStorage[1]; // do NOT want to invoke T::T()
- };
-};
-
-#endif
-
diff --git a/skia/include/corecg/SkThread.h b/skia/include/corecg/SkThread.h
deleted file mode 100644
index 637492d..0000000
--- a/skia/include/corecg/SkThread.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkThread_DEFINED
-#define SkThread_DEFINED
-
-#include "SkTypes.h"
-#include "SkThread_platform.h"
-
-/****** SkThread_platform needs to define the following...
-
-int32_t sk_atomic_inc(int32_t*);
-int32_t sk_atomic_dec(int32_t*);
-
-class SkMutex {
-public:
- SkMutex();
- ~SkMutex();
-
- void acquire();
- void release();
-};
-
-****************/
-
-class SkAutoMutexAcquire : SkNoncopyable {
-public:
- explicit SkAutoMutexAcquire(SkMutex& mutex) : fMutex(&mutex)
- {
- SkASSERT(fMutex != NULL);
- mutex.acquire();
- }
- /** If the mutex has not been release, release it now.
- */
- ~SkAutoMutexAcquire()
- {
- if (fMutex)
- fMutex->release();
- }
- /** If the mutex has not been release, release it now.
- */
- void release()
- {
- if (fMutex)
- {
- fMutex->release();
- fMutex = NULL;
- }
- }
-
-private:
- SkMutex* fMutex;
-};
-
-#endif
diff --git a/skia/include/corecg/SkThread_platform.h b/skia/include/corecg/SkThread_platform.h
deleted file mode 100644
index 825b737..0000000
--- a/skia/include/corecg/SkThread_platform.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkThread_platform_DEFINED
-#define SkThread_platform_DEFINED
-
-#ifdef ANDROID
-
-#include <utils/threads.h>
-#include <utils/Atomic.h>
-
-#define sk_atomic_inc(addr) android_atomic_inc(addr)
-#define sk_atomic_dec(addr) android_atomic_dec(addr)
-
-class SkMutex : android::Mutex {
-public:
- // if isGlobal is true, then ignore any errors in the platform-specific
- // destructor
- SkMutex(bool isGlobal = true) {}
- ~SkMutex() {}
-
- void acquire() { this->lock(); }
- void release() { this->unlock(); }
-};
-
-#else
-
-/** Implemented by the porting layer, this function adds 1 to the int specified
- by the address (in a thread-safe manner), and returns the previous value.
-*/
-int32_t sk_atomic_inc(int32_t* addr);
-/** Implemented by the porting layer, this function subtracts 1 to the int
- specified by the address (in a thread-safe manner), and returns the previous
- value.
-*/
-int32_t sk_atomic_dec(int32_t* addr);
-
-class SkMutex {
-public:
- // if isGlobal is true, then ignore any errors in the platform-specific
- // destructor
- SkMutex(bool isGlobal = true);
- ~SkMutex();
-
- void acquire();
- void release();
-
-private:
- bool fIsGlobal;
- enum {
- kStorageIntCount = 12
- };
- uint32_t fStorage[kStorageIntCount];
-};
-
-#endif
-
-#endif
diff --git a/skia/include/corecg/SkTypes.h b/skia/include/corecg/SkTypes.h
deleted file mode 100644
index ed2cca8..0000000
--- a/skia/include/corecg/SkTypes.h
+++ /dev/null
@@ -1,382 +0,0 @@
-/*
- * Copyright (C) 2006 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef SkTypes_DEFINED
-#define SkTypes_DEFINED
-
-#include "SkPreConfig.h"
-#include "SkUserConfig.h"
-#include "SkPostConfig.h"
-
-#ifndef SK_IGNORE_STDINT_DOT_H
- #include <stdint.h>
-#endif
-
-#include <stdio.h>
-
-/** \file SkTypes.h
-*/
-
-/*
- memory wrappers to be implemented by the porting layer (platform)
-*/
-
-/** Called internally if we run out of memory. The platform implementation must
- not return, but should either throw an exception or otherwise exit.
-*/
-extern void sk_out_of_memory(void);
-/** Called internally if we hit an unrecoverable error.
- The platform implementation must not return, but should either throw
- an exception or otherwise exit.
-*/
-extern void sk_throw(void);
-
-enum {
- SK_MALLOC_TEMP = 0x01, //!< hint to sk_malloc that the requested memory will be freed in the scope of the stack frame
- SK_MALLOC_THROW = 0x02 //!< instructs sk_malloc to call sk_throw if the memory cannot be allocated.
-};
-/** Return a block of memory (at least 4-byte aligned) of at least the
- specified size. If the requested memory cannot be returned, either
- return null (if SK_MALLOC_TEMP bit is clear) or call sk_throw()
- (if SK_MALLOC_TEMP bit is set). To free the memory, call sk_free().
-*/
-extern void* sk_malloc_flags(size_t size, unsigned flags);
-/** Same as sk_malloc(), but hard coded to pass SK_MALLOC_THROW as the flag
-*/
-extern void* sk_malloc_throw(size_t size);
-/** Same as standard realloc(), but this one never returns null on failure. It will throw
- an exception if it fails.
-*/
-extern void* sk_realloc_throw(void* buffer, size_t size);
-/** Free memory returned by sk_malloc(). It is safe to pass null.
-*/
-extern void sk_free(void*);
-
-/** Returns whether sk_malloc() will currently throw. Only false during
- a call to sk_malloc_flags() with SK_MALLOC_THROW not set. This is
- useful to mallocs that would otherwise abort on NULL themselves.
- false indicates that skia will safely handle NULL checking. **/
-extern bool sk_malloc_will_throw();
-///////////////////////////////////////////////////////////////////////
-
-#define SK_INIT_TO_AVOID_WARNING = 0
-
-#ifndef SkDebugf
- void SkDebugf(const char format[], ...);
-#endif
-
-#ifdef SK_DEBUG
- #define SkASSERT(cond) SK_DEBUGBREAK(cond)
- #define SkDEBUGCODE(code) code
- #define SkDECLAREPARAM(type, var) , type var
- #define SkPARAM(var) , var
-// #define SkDEBUGF(args ) SkDebugf##args
- #define SkDEBUGF(args ) SkDebugf args
- #define SkAssertResult(cond) SkASSERT(cond)
-#else
- #define SkASSERT(cond)
- #define SkDEBUGCODE(code)
- #define SkDEBUGF(args)
- #define SkDECLAREPARAM(type, var)
- #define SkPARAM(var)
-
- // unlike SkASSERT, this guy executes its condition in the non-debug build
- #define SkAssertResult(cond) cond
-#endif
-
-///////////////////////////////////////////////////////////////////////
-
-/** Fast type for signed 8 bits. Use for parameter passing and local variables, not for storage
-*/
-typedef int S8CPU;
-/** Fast type for unsigned 8 bits. Use for parameter passing and local variables, not for storage
-*/
-typedef int S16CPU;
-/** Fast type for signed 16 bits. Use for parameter passing and local variables, not for storage
-*/
-typedef unsigned U8CPU;
-/** Fast type for unsigned 16 bits. Use for parameter passing and local variables, not for storage
-*/
-typedef unsigned U16CPU;
-
-/** Meant to be faster than bool (doesn't promise to be 0 or 1, just 0 or non-zero
-*/
-typedef int SkBool;
-/** Meant to be a small version of bool, for storage purposes. Will be 0 or 1
-*/
-typedef uint8_t SkBool8;
-
-#ifdef SK_DEBUG
- int8_t SkToS8(long);
- uint8_t SkToU8(size_t);
- int16_t SkToS16(long);
- uint16_t SkToU16(size_t);
- int32_t SkToS32(long);
- uint32_t SkToU32(size_t);
-#else
- #define SkToS8(x) ((int8_t)(x))
- #define SkToU8(x) ((uint8_t)(x))
- #define SkToS16(x) ((int16_t)(x))
- #define SkToU16(x) ((uint16_t)(x))
- #define SkToS32(x) ((int32_t)(x))
- #define SkToU32(x) ((uint32_t)(x))
-#endif
-
-/** Returns 0 or 1 based on the condition
-*/
-#define SkToBool(cond) ((cond) != 0)
-
-#define SK_MaxS16 32767
-#define SK_MinS16 -32767
-#define SK_MaxU16 0xFFFF
-#define SK_MinU16 0
-#define SK_MaxS32 0x7FFFFFFF
-#define SK_MinS32 0x80000001
-#define SK_MaxU32 0xFFFFFFFF
-#define SK_MinU32 0
-#define SK_NaN32 0x80000000
-
-#ifndef SK_OFFSETOF
- #define SK_OFFSETOF(type, field) ((char*)&(((type*)1)->field) - (char*)1)
-#endif
-
-/** Returns the number of entries in an array (not a pointer)
-*/
-#define SK_ARRAY_COUNT(array) (sizeof(array) / sizeof(array[0]))
-
-/** Returns x rounded up to a multiple of 2
-*/
-#define SkAlign2(x) (((x) + 1) >> 1 << 1)
-/** Returns x rounded up to a multiple of 4
-*/
-#define SkAlign4(x) (((x) + 3) >> 2 << 2)
-
-typedef uint32_t SkFourByteTag;
-#define SkSetFourByteTag(a, b, c, d) (((a) << 24) | ((b) << 16) | ((c) << 8) | (d))
-
-/** 32 bit integer to hold a unicode value
-*/
-typedef int32_t SkUnichar;
-/** 32 bit value to hold a millisecond count
-*/
-typedef uint32_t SkMSec;
-/** 1 second measured in milliseconds
-*/
-#define SK_MSec1 1000
-/** maximum representable milliseconds
-*/
-#define SK_MSecMax 0x7FFFFFFF
-/** Returns a < b for milliseconds, correctly handling wrap-around from 0xFFFFFFFF to 0
-*/
-#define SkMSec_LT(a, b) ((int32_t)(a) - (int32_t)(b) < 0)
-/** Returns a <= b for milliseconds, correctly handling wrap-around from 0xFFFFFFFF to 0
-*/
-#define SkMSec_LE(a, b) ((int32_t)(a) - (int32_t)(b) <= 0)
-
-
-/****************************************************************************
- The rest of these only build with C++
-*/
-#ifdef __cplusplus
-
-/** Faster than SkToBool for integral conditions. Returns 0 or 1
-*/
-inline int Sk32ToBool(uint32_t n)
-{
- return (n | (0-n)) >> 31;
-}
-
-template <typename T> inline void SkTSwap(T& a, T& b)
-{
- T c(a);
- a = b;
- b = c;
-}
-
-inline int32_t SkAbs32(int32_t value)
-{
-#ifdef SK_CPU_HAS_CONDITIONAL_INSTR
- if (value < 0)
- value = -value;
- return value;
-#else
- int32_t mask = value >> 31;
- return (value ^ mask) - mask;
-#endif
-}
-
-inline int32_t SkMax32(int32_t a, int32_t b)
-{
- if (a < b)
- a = b;
- return a;
-}
-
-inline int32_t SkMin32(int32_t a, int32_t b)
-{
- if (a > b)
- a = b;
- return a;
-}
-
-inline int32_t SkSign32(int32_t a)
-{
- return (a >> 31) | ((unsigned) -a >> 31);
-}
-
-inline int32_t SkFastMin32(int32_t value, int32_t max)
-{
-#ifdef SK_CPU_HAS_CONDITIONAL_INSTR
- if (value > max)
- value = max;
- return value;
-#else
- int diff = max - value;
- // clear diff if it is negative (clear if value > max)
- diff &= (diff >> 31);
- return value + diff;
-#endif
-}
-
-/** Returns signed 32 bit value pinned between min and max, inclusively
-*/
-inline int32_t SkPin32(int32_t value, int32_t min, int32_t max)
-{
-#ifdef SK_CPU_HAS_CONDITIONAL_INSTR
- if (value < min)
- value = min;
- if (value > max)
- value = max;
-#else
- if (value < min)
- value = min;
- else if (value > max)
- value = max;
-#endif
- return value;
-}
-
-inline uint32_t SkSetClearShift(uint32_t bits, bool cond, unsigned shift)
-{
- SkASSERT((int)cond == 0 || (int)cond == 1);
- return (bits & ~(1 << shift)) | ((int)cond << shift);
-}
-
-inline uint32_t SkSetClearMask(uint32_t bits, bool cond, uint32_t mask)
-{
- return cond ? bits | mask : bits & ~mask;
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-/** \class SkNoncopyable
-
-SkNoncopyable is the base class for objects that may do not want to
-be copied. It hides its copy-constructor and its assignment-operator.
-*/
-class SkNoncopyable {
-public:
- SkNoncopyable() {}
-
-private:
- SkNoncopyable(const SkNoncopyable&);
- SkNoncopyable& operator=(const SkNoncopyable&);
-};
-
-class SkAutoFree : SkNoncopyable {
-public:
- SkAutoFree() : fPtr(NULL) {}
- explicit SkAutoFree(void* ptr) : fPtr(ptr) {}
- ~SkAutoFree() { sk_free(fPtr); }
-
- /** Return the currently allocate buffer, or null
- */
- void* get() const { return fPtr; }
-
- /** Assign a new ptr allocated with sk_malloc (or null), and return the
- previous ptr. Note it is the caller's responsibility to sk_free the
- returned ptr.
- */
- void* set(void* ptr) {
- void* prev = fPtr;
- fPtr = ptr;
- return prev;
- }
-
- /** Transfer ownership of the current ptr to the caller, setting the
- internal reference to null. Note the caller is reponsible for calling
- sk_free on the returned address.
- */
- void* detach() { return this->set(NULL); }
-
- /** Free the current buffer, and set the internal reference to NULL. Same
- as calling sk_free(detach())
- */
- void free() {
- sk_free(fPtr);
- fPtr = NULL;
- }
-
-private:
- void* fPtr;
- // illegal
- SkAutoFree(const SkAutoFree&);
- SkAutoFree& operator=(const SkAutoFree&);
-};
-
-class SkAutoMalloc : public SkAutoFree {
-public:
- explicit SkAutoMalloc(size_t size)
- : SkAutoFree(sk_malloc_flags(size, SK_MALLOC_THROW | SK_MALLOC_TEMP)) {}
-
- SkAutoMalloc(size_t size, unsigned flags)
- : SkAutoFree(sk_malloc_flags(size, flags)) {}
- SkAutoMalloc() {}
-
- void* alloc(size_t size,
- unsigned flags = (SK_MALLOC_THROW | SK_MALLOC_TEMP)) {
- sk_free(set(sk_malloc_flags(size, flags)));
- return get();
- }
-};
-
-template <size_t kSize> class SkAutoSMalloc : SkNoncopyable {
-public:
- explicit SkAutoSMalloc(size_t size)
- {
- if (size <= kSize)
- fPtr = fStorage;
- else
- fPtr = sk_malloc_flags(size, SK_MALLOC_THROW | SK_MALLOC_TEMP);
- }
- ~SkAutoSMalloc()
- {
- if (fPtr != (void*)fStorage)
- sk_free(fPtr);
- }
- void* get() const { return fPtr; }
-private:
- void* fPtr;
- uint32_t fStorage[(kSize + 3) >> 2];
- // illegal
- SkAutoSMalloc(const SkAutoSMalloc&);
- SkAutoSMalloc& operator=(const SkAutoSMalloc&);
-};
-
-#endif /* C++ */
-
-#endif
-
diff --git a/skia/include/corecg/SkUserConfig.h b/skia/include/corecg/SkUserConfig.h
deleted file mode 100644
index 34340e1..0000000
--- a/skia/include/corecg/SkUserConfig.h
+++ /dev/null
@@ -1,178 +0,0 @@
-/* include/corecg/SkUserConfig.h
-**
-** Copyright 2006, Google Inc.
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
-
-#ifndef SkUserConfig_DEFINED
-#define SkUserConfig_DEFINED
-
-// remove the x if you want to force us into SK_DEBUG mode
-#ifdef SK_RELEASEx
- #undef SK_RELEASE
- #define SK_DEBUG
-#endif
-
-#ifdef ANDROID
- #include <utils/misc.h>
-
-#if 0
- // force fixed
- #define SK_SCALAR_IS_FIXED
- #undef SK_SCALAR_IS_FLOAT
-#else
- // force floats
- #ifdef SK_SCALAR_IS_FIXED
- #undef SK_SCALAR_IS_FIXED
- #endif
- #define SK_SCALAR_IS_FLOAT
-#endif
-
- #define SK_CAN_USE_FLOAT
- #define SkLONGLONG int64_t
-
- #if __BYTE_ORDER == __BIG_ENDIAN
- #define SK_CPU_BENDIAN
- #undef SK_CPU_LENDIAN
- #else
- #define SK_CPU_LENDIAN
- #undef SK_CPU_BENDIAN
- #endif
-
- // define SkDebugf to record file/line
- #define SkDebugf(...) Android_SkDebugf(__FILE__, __LINE__, \
- __FUNCTION__, __VA_ARGS__)
- void Android_SkDebugf(const char* file, int line,
- const char* function, const char* format, ...);
-#endif
-
-/* This file is included before all other headers, except for SkPreConfig.h.
- That file uses various heuristics to make a "best guess" at settings for
- the following build defines.
-
- However, in this file you can override any of those decisions by either
- defining new symbols, or #undef symbols that were already set.
-*/
-
-// experimental for now
-#define SK_SUPPORT_MIPMAP
-
-#ifdef SK_DEBUG
- #define SK_SUPPORT_UNITTEST
- /* Define SK_SIMULATE_FAILED_MALLOC to have
- * sk_malloc throw an exception. Use this to
- * detect unhandled memory leaks. */
- //#define SK_SIMULATE_FAILED_MALLOC
- //#define SK_FIND_MEMORY_LEAKS
-#endif
-
-#ifdef SK_BUILD_FOR_BREW
- #include "SkBrewUserConfig.h"
-#endif
-
-// ===== Begin Chrome-specific definitions =====
-
-#define SK_SCALAR_IS_FLOAT
-#undef SK_SCALAR_IS_FIXED
-
-// Log the file and line number for assertions.
-#define SkDebugf(...) SkDebugf_FileLine(__FILE__, __LINE__, false, __VA_ARGS__)
-void SkDebugf_FileLine(const char* file, int line, bool fatal,
- const char* format, ...);
-
-// Marking the debug print as "fatal" will cause a debug break, so we don't need
-// a separate crash call here.
-#define SK_DEBUGBREAK(cond) do { if (!(cond)) { \
- SkDebugf_FileLine(__FILE__, __LINE__, true, \
- "%s:%d: failed assertion \"%s\"\n", \
- __FILE__, __LINE__, #cond); } } while (false)
-
-#if defined(SK_BUILD_FOR_WIN32)
-
-#define SK_BUILD_FOR_WIN
-
-// VC8 doesn't support stdint.h, so we define those types here.
-#define SK_IGNORE_STDINT_DOT_H
-typedef signed char int8_t;
-typedef unsigned char uint8_t;
-typedef short int16_t;
-typedef unsigned short uint16_t;
-typedef int int32_t;
-typedef unsigned uint32_t;
-#define SK_A32_SHIFT 24
-#define SK_R32_SHIFT 16
-#define SK_G32_SHIFT 8
-#define SK_B32_SHIFT 0
-
-// VC doesn't support __restrict__, so make it a NOP.
-#undef SK_RESTRICT
-#define SK_RESTRICT
-
-// Skia uses this deprecated bzero function to fill zeros into a string.
-#define bzero(str, len) memset(str, 0, len)
-
-#elif defined(SK_BUILD_FOR_MAC)
-
-#define SK_CPU_LENDIAN
-#undef SK_CPU_BENDIAN
-// we want (memory order) RGBA
-#define SK_A32_SHIFT 24
-#define SK_R32_SHIFT 0
-#define SK_G32_SHIFT 8
-#define SK_B32_SHIFT 16
-
-#elif defined(SK_BUILD_FOR_UNIX)
-
-#ifdef SK_CPU_BENDIAN
-// Below we set the order for ARGB channels in registers. I suspect that, on
-// big endian machines, you can keep this the same and everything will work.
-// The in-memory order will be different, of course, but as long as everything
-// is reading memory as words rather than bytes, it will all work. However, if
-// you find that colours are messed up I thought that I would leave a helpful
-// locator for you. Also see the comments in
-// base/gfx/bitmap_platform_device_linux.h
-#error Read the comment at this location
-#endif
-
-// For Linux we want to match the most common X visual, which is
-// ARGB (in registers)
-#define SK_A32_SHIFT 24
-#define SK_R32_SHIFT 16
-#define SK_G32_SHIFT 8
-#define SK_B32_SHIFT 0
-
-#endif
-
-// The default crash macro writes to badbeef which can cause some strange
-// problems. Instead, pipe this through to the logging function as a fatal
-// assertion.
-#define SK_CRASH() SkDebugf_FileLine(__FILE__, __LINE__, true, "SK_CRASH")
-
-// TODO(brettw) bug 6373: Re-enable Skia assertions. This is blocked on fixing
-// some of our transparency handling which generates purposely-invalid colors,
-// in turn causing assertions.
-//#ifndef NDEBUG
-// #define SK_DEBUG
-// #undef SK_RELEASE
- #undef SK_SUPPORT_UNITTEST // This is only necessary in debug mode since
- // we've disabled assertions. When we re-enable
- // them, this line can be removed.
-//#else
- #define SK_RELEASE
- #undef SK_DEBUG
-//#endif
-
-// ===== End Chrome-specific definitions =====
-
-#endif
diff --git a/skia/precompiled.vsprops b/skia/precompiled.vsprops
deleted file mode 100644
index 907c969..0000000
--- a/skia/precompiled.vsprops
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
- ProjectType="Visual C++"
- Version="8.00"
- Name="precompiled"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="2"
- PrecompiledHeaderThrough="SkTypes.h"
- ForcedIncludeFiles="SkTypes.h"
- />
-</VisualStudioPropertySheet>
diff --git a/skia/skia.gyp b/skia/skia.gyp
index 5062420..c84a885 100644
--- a/skia/skia.gyp
+++ b/skia/skia.gyp
@@ -13,214 +13,488 @@
'msvs_guid': 'CD9CA56E-4E94-444C-87D4-58CA1E6F300D',
'sources': [
'precompiled.cc',
- #'animator/SkAnimate.h',
- #'animator/SkAnimateActive.cpp',
- #'animator/SkAnimateActive.h',
- #'animator/SkAnimateBase.cpp',
- #'animator/SkAnimateBase.h',
- #'animator/SkAnimateField.cpp',
- #'animator/SkAnimateMaker.cpp',
- #'animator/SkAnimateMaker.h',
- #'animator/SkAnimateProperties.h',
- #'animator/SkAnimateSet.cpp',
- #'animator/SkAnimateSet.h',
- #'animator/SkAnimator.cpp',
- #'animator/SkAnimatorScript.cpp',
- #'animator/SkAnimatorScript.h',
- #'animator/SkAnimatorScript2.cpp',
- #'animator/SkAnimatorScript2.h',
- #'animator/SkBase64.cpp',
- #'animator/SkBase64.h',
- #'animator/SkBoundable.cpp',
- #'animator/SkBoundable.h',
- #'animator/SkBuildCondensedInfo.cpp',
- #'animator/SkCondensedDebug.cpp',
- #'animator/SkCondensedRelease.cpp',
- #'animator/SkDisplayable.cpp',
- #'animator/SkDisplayable.h',
- #'animator/SkDisplayAdd.cpp',
- #'animator/SkDisplayAdd.h',
- #'animator/SkDisplayApply.cpp',
- #'animator/SkDisplayApply.h',
- #'animator/SkDisplayBounds.cpp',
- #'animator/SkDisplayBounds.h',
- #'animator/SkDisplayEvent.cpp',
- #'animator/SkDisplayEvent.h',
- #'animator/SkDisplayEvents.cpp',
- #'animator/SkDisplayEvents.h',
- #'animator/SkDisplayInclude.cpp',
- #'animator/SkDisplayInclude.h',
- #'animator/SkDisplayInput.cpp',
- #'animator/SkDisplayInput.h',
- #'animator/SkDisplayList.cpp',
- #'animator/SkDisplayList.h',
- #'animator/SkDisplayMath.cpp',
- #'animator/SkDisplayMath.h',
- #'animator/SkDisplayMovie.cpp',
- #'animator/SkDisplayMovie.h',
- #'animator/SkDisplayNumber.cpp',
- #'animator/SkDisplayNumber.h',
- #'animator/SkDisplayPost.cpp',
- #'animator/SkDisplayPost.h',
- #'animator/SkDisplayRandom.cpp',
- #'animator/SkDisplayRandom.h',
- #'animator/SkDisplayScreenplay.cpp',
- #'animator/SkDisplayScreenplay.h',
- #'animator/SkDisplayType.cpp',
- #'animator/SkDisplayType.h',
- #'animator/SkDisplayTypes.cpp',
- #'animator/SkDisplayTypes.h',
- #'animator/SkDisplayXMLParser.cpp',
- #'animator/SkDisplayXMLParser.h',
- #'animator/SkDraw3D.cpp',
- #'animator/SkDraw3D.h',
- #'animator/SkDrawable.cpp',
- #'animator/SkDrawable.h',
- #'animator/SkDrawBitmap.cpp',
- #'animator/SkDrawBitmap.h',
- #'animator/SkDrawBlur.cpp',
- #'animator/SkDrawBlur.h',
- #'animator/SkDrawClip.cpp',
- #'animator/SkDrawClip.h',
- #'animator/SkDrawColor.cpp',
- #'animator/SkDrawColor.h',
- #'animator/SkDrawDash.cpp',
- #'animator/SkDrawDash.h',
- #'animator/SkDrawDiscrete.cpp',
- #'animator/SkDrawDiscrete.h',
- #'animator/SkDrawEmboss.cpp',
- #'animator/SkDrawEmboss.h',
- #'animator/SkDrawExtraPathEffect.cpp',
- #'animator/SkDrawFull.cpp',
- #'animator/SkDrawFull.h',
- #'animator/SkDrawGradient.cpp',
- #'animator/SkDrawGradient.h',
- #'animator/SkDrawGroup.cpp',
- #'animator/SkDrawGroup.h',
- #'animator/SkDrawLine.cpp',
- #'animator/SkDrawLine.h',
- #'animator/SkDrawMatrix.cpp',
- #'animator/SkDrawMatrix.h',
- #'animator/SkDrawOval.cpp',
- #'animator/SkDrawOval.h',
- #'animator/SkDrawPaint.cpp',
- #'animator/SkDrawPaint.h',
- #'animator/SkDrawPath.cpp',
- #'animator/SkDrawPath.h',
- #'animator/SkDrawPoint.cpp',
- #'animator/SkDrawPoint.h',
- #'animator/SkDrawRectangle.cpp',
- #'animator/SkDrawRectangle.h',
- #'animator/SkDrawSaveLayer.cpp',
- #'animator/SkDrawSaveLayer.h',
- #'animator/SkDrawShader.cpp',
- #'animator/SkDrawShader.h',
- #'animator/SkDrawText.cpp',
- #'animator/SkDrawText.h',
- #'animator/SkDrawTextBox.cpp',
- #'animator/SkDrawTextBox.h',
- #'animator/SkDrawTo.cpp',
- #'animator/SkDrawTo.h',
- #'animator/SkDrawTransparentShader.cpp',
- #'animator/SkDrawTransparentShader.h',
- #'animator/SkDump.cpp',
- #'animator/SkDump.h',
- #'animator/SkExtras.h',
- #'animator/SkGetCondensedInfo.cpp',
- #'animator/SkHitClear.cpp',
- #'animator/SkHitClear.h',
- #'animator/SkHitTest.cpp',
- #'animator/SkHitTest.h',
- #'animator/SkIntArray.h',
- #'animator/SkMatrixParts.cpp',
- #'animator/SkMatrixParts.h',
- #'animator/SkMemberInfo.cpp',
- #'animator/SkMemberInfo.h',
- #'animator/SkOpArray.cpp',
- #'animator/SkOpArray.h',
- #'animator/SkOperand.h',
- #'animator/SkOperand2.h',
- #'animator/SkOperandInterpolator.h',
- #'animator/SkOperandIterpolator.cpp',
- #'animator/SkPaintParts.cpp',
- #'animator/SkPaintParts.h',
- #'animator/SkPathParts.cpp',
- #'animator/SkPathParts.h',
- #'animator/SkPostParts.cpp',
- #'animator/SkPostParts.h',
- #'animator/SkScript.cpp',
- #'animator/SkScript.h',
- #'animator/SkScript2.h',
- #'animator/SkScriptCallBack.h',
- #'animator/SkScriptDecompile.cpp',
- #'animator/SkScriptRuntime.cpp',
- #'animator/SkScriptRuntime.h',
- #'animator/SkScriptTokenizer.cpp',
- #'animator/SkSnapshot.cpp',
- #'animator/SkSnapshot.h',
- #'animator/SkSVGPath.cpp',
- #'animator/SkTDArray_Experimental.h',
- #'animator/SkTextOnPath.cpp',
- #'animator/SkTextOnPath.h',
- #'animator/SkTextToPath.cpp',
- #'animator/SkTextToPath.h',
- 'animator/SkTime.cpp',
- #'animator/SkTypedArray.cpp',
- #'animator/SkTypedArray.h',
- #'animator/SkXMLAnimatorWriter.cpp',
- #'animator/SkXMLAnimatorWriter.h',
- 'corecg/Sk64.cpp',
- 'corecg/SkBuffer.cpp',
- 'corecg/SkChunkAlloc.cpp',
- 'corecg/SkCordic.cpp',
- 'corecg/SkCordic.h',
- 'corecg/SkDebug.cpp',
- 'corecg/SkDebug_stdio.cpp',
- 'corecg/SkFloat.cpp',
- 'corecg/SkFloat.h',
- 'corecg/SkFloatBits.cpp',
- 'corecg/SkFloatBits.h',
- 'corecg/SkInterpolator.cpp',
- 'corecg/SkMath.cpp',
- 'corecg/SkMatrix.cpp',
- 'corecg/SkMemory_stdlib.cpp',
- 'corecg/SkPageFlipper.cpp',
- 'corecg/SkPoint.cpp',
- 'corecg/SkRect.cpp',
- 'corecg/SkRegion.cpp',
- 'corecg/SkRegionPriv.h',
- 'corecg/SkSinTable.h',
- 'corecg/SkTSort.h',
- 'effects/Sk1DPathEffect.cpp',
- 'effects/Sk2DPathEffect.cpp',
- 'effects/SkAvoidXfermode.cpp',
- 'effects/SkBlurDrawLooper.cpp',
- 'effects/SkBlurMask.cpp',
- 'effects/SkBlurMask.h',
- 'effects/SkBlurMaskFilter.cpp',
- 'effects/SkCamera.cpp',
- 'effects/SkColorFilters.cpp',
- 'effects/SkColorMatrix.cpp',
- 'effects/SkColorMatrixFilter.cpp',
- 'effects/SkCornerPathEffect.cpp',
- 'effects/SkCullPoints.cpp',
- 'effects/SkDashPathEffect.cpp',
- 'effects/SkDiscretePathEffect.cpp',
- 'effects/SkEmbossMask.cpp',
- 'effects/SkEmbossMask.h',
- 'effects/SkEmbossMask_Table.h',
- 'effects/SkEmbossMaskFilter.cpp',
- 'effects/SkGradientShader.cpp',
- 'effects/SkKernel33MaskFilter.cpp',
- #'effects/SkLayerDrawLooper.cpp',
- 'effects/SkLayerRasterizer.cpp',
- #'effects/SkNinePatch.cpp',
- 'effects/SkPaintFlagsDrawFilter.cpp',
- 'effects/SkPixelXorXfermode.cpp',
- 'effects/SkRadialGradient_Table.h',
- 'effects/SkShaderExtras.cpp',
- 'effects/SkTransparentShader.cpp',
- 'effects/SkUnitMappers.cpp',
+ #'../third_party/skia/src/animator/SkAnimate.h',
+ #'../third_party/skia/src/animator/SkAnimateActive.cpp',
+ #'../third_party/skia/src/animator/SkAnimateActive.h',
+ #'../third_party/skia/src/animator/SkAnimateBase.cpp',
+ #'../third_party/skia/src/animator/SkAnimateBase.h',
+ #'../third_party/skia/src/animator/SkAnimateField.cpp',
+ #'../third_party/skia/src/animator/SkAnimateMaker.cpp',
+ #'../third_party/skia/src/animator/SkAnimateMaker.h',
+ #'../third_party/skia/src/animator/SkAnimateProperties.h',
+ #'../third_party/skia/src/animator/SkAnimateSchema.xsd',
+ #'../third_party/skia/src/animator/SkAnimateSchema.xsx',
+ #'../third_party/skia/src/animator/SkAnimateSet.cpp',
+ #'../third_party/skia/src/animator/SkAnimateSet.h',
+ #'../third_party/skia/src/animator/SkAnimator.cpp',
+ #'../third_party/skia/src/animator/SkAnimatorScript.cpp',
+ #'../third_party/skia/src/animator/SkAnimatorScript.h',
+ #'../third_party/skia/src/animator/SkAnimatorScript2.cpp',
+ #'../third_party/skia/src/animator/SkAnimatorScript2.h',
+ #'../third_party/skia/src/animator/SkBase64.cpp',
+ #'../third_party/skia/src/animator/SkBase64.h',
+ #'../third_party/skia/src/animator/SkBoundable.cpp',
+ #'../third_party/skia/src/animator/SkBoundable.h',
+ #'../third_party/skia/src/animator/SkBuildCondensedInfo.cpp',
+ #'../third_party/skia/src/animator/SkCondensedDebug.cpp',
+ #'../third_party/skia/src/animator/SkCondensedRelease.cpp',
+ #'../third_party/skia/src/animator/SkDisplayAdd.cpp',
+ #'../third_party/skia/src/animator/SkDisplayAdd.h',
+ #'../third_party/skia/src/animator/SkDisplayApply.cpp',
+ #'../third_party/skia/src/animator/SkDisplayApply.h',
+ #'../third_party/skia/src/animator/SkDisplayBounds.cpp',
+ #'../third_party/skia/src/animator/SkDisplayBounds.h',
+ #'../third_party/skia/src/animator/SkDisplayEvent.cpp',
+ #'../third_party/skia/src/animator/SkDisplayEvent.h',
+ #'../third_party/skia/src/animator/SkDisplayEvents.cpp',
+ #'../third_party/skia/src/animator/SkDisplayEvents.h',
+ #'../third_party/skia/src/animator/SkDisplayInclude.cpp',
+ #'../third_party/skia/src/animator/SkDisplayInclude.h',
+ #'../third_party/skia/src/animator/SkDisplayInput.cpp',
+ #'../third_party/skia/src/animator/SkDisplayInput.h',
+ #'../third_party/skia/src/animator/SkDisplayList.cpp',
+ #'../third_party/skia/src/animator/SkDisplayList.h',
+ #'../third_party/skia/src/animator/SkDisplayMath.cpp',
+ #'../third_party/skia/src/animator/SkDisplayMath.h',
+ #'../third_party/skia/src/animator/SkDisplayMovie.cpp',
+ #'../third_party/skia/src/animator/SkDisplayMovie.h',
+ #'../third_party/skia/src/animator/SkDisplayNumber.cpp',
+ #'../third_party/skia/src/animator/SkDisplayNumber.h',
+ #'../third_party/skia/src/animator/SkDisplayPost.cpp',
+ #'../third_party/skia/src/animator/SkDisplayPost.h',
+ #'../third_party/skia/src/animator/SkDisplayRandom.cpp',
+ #'../third_party/skia/src/animator/SkDisplayRandom.h',
+ #'../third_party/skia/src/animator/SkDisplayScreenplay.cpp',
+ #'../third_party/skia/src/animator/SkDisplayScreenplay.h',
+ #'../third_party/skia/src/animator/SkDisplayType.cpp',
+ #'../third_party/skia/src/animator/SkDisplayType.h',
+ #'../third_party/skia/src/animator/SkDisplayTypes.cpp',
+ #'../third_party/skia/src/animator/SkDisplayTypes.h',
+ #'../third_party/skia/src/animator/SkDisplayXMLParser.cpp',
+ #'../third_party/skia/src/animator/SkDisplayXMLParser.h',
+ #'../third_party/skia/src/animator/SkDisplayable.cpp',
+ #'../third_party/skia/src/animator/SkDisplayable.h',
+ #'../third_party/skia/src/animator/SkDraw3D.cpp',
+ #'../third_party/skia/src/animator/SkDraw3D.h',
+ #'../third_party/skia/src/animator/SkDrawBitmap.cpp',
+ #'../third_party/skia/src/animator/SkDrawBitmap.h',
+ #'../third_party/skia/src/animator/SkDrawBlur.cpp',
+ #'../third_party/skia/src/animator/SkDrawBlur.h',
+ #'../third_party/skia/src/animator/SkDrawClip.cpp',
+ #'../third_party/skia/src/animator/SkDrawClip.h',
+ #'../third_party/skia/src/animator/SkDrawColor.cpp',
+ #'../third_party/skia/src/animator/SkDrawColor.h',
+ #'../third_party/skia/src/animator/SkDrawDash.cpp',
+ #'../third_party/skia/src/animator/SkDrawDash.h',
+ #'../third_party/skia/src/animator/SkDrawDiscrete.cpp',
+ #'../third_party/skia/src/animator/SkDrawDiscrete.h',
+ #'../third_party/skia/src/animator/SkDrawEmboss.cpp',
+ #'../third_party/skia/src/animator/SkDrawEmboss.h',
+ #'../third_party/skia/src/animator/SkDrawExtraPathEffect.cpp',
+ #'../third_party/skia/src/animator/SkDrawFull.cpp',
+ #'../third_party/skia/src/animator/SkDrawFull.h',
+ #'../third_party/skia/src/animator/SkDrawGradient.cpp',
+ #'../third_party/skia/src/animator/SkDrawGradient.h',
+ #'../third_party/skia/src/animator/SkDrawGroup.cpp',
+ #'../third_party/skia/src/animator/SkDrawGroup.h',
+ #'../third_party/skia/src/animator/SkDrawLine.cpp',
+ #'../third_party/skia/src/animator/SkDrawLine.h',
+ #'../third_party/skia/src/animator/SkDrawMatrix.cpp',
+ #'../third_party/skia/src/animator/SkDrawMatrix.h',
+ #'../third_party/skia/src/animator/SkDrawOval.cpp',
+ #'../third_party/skia/src/animator/SkDrawOval.h',
+ #'../third_party/skia/src/animator/SkDrawPaint.cpp',
+ #'../third_party/skia/src/animator/SkDrawPaint.h',
+ #'../third_party/skia/src/animator/SkDrawPath.cpp',
+ #'../third_party/skia/src/animator/SkDrawPath.h',
+ #'../third_party/skia/src/animator/SkDrawPoint.cpp',
+ #'../third_party/skia/src/animator/SkDrawPoint.h',
+ #'../third_party/skia/src/animator/SkDrawRectangle.cpp',
+ #'../third_party/skia/src/animator/SkDrawRectangle.h',
+ #'../third_party/skia/src/animator/SkDrawSaveLayer.cpp',
+ #'../third_party/skia/src/animator/SkDrawSaveLayer.h',
+ #'../third_party/skia/src/animator/SkDrawShader.cpp',
+ #'../third_party/skia/src/animator/SkDrawShader.h',
+ #'../third_party/skia/src/animator/SkDrawText.cpp',
+ #'../third_party/skia/src/animator/SkDrawText.h',
+ #'../third_party/skia/src/animator/SkDrawTextBox.cpp',
+ #'../third_party/skia/src/animator/SkDrawTextBox.h',
+ #'../third_party/skia/src/animator/SkDrawTo.cpp',
+ #'../third_party/skia/src/animator/SkDrawTo.h',
+ #'../third_party/skia/src/animator/SkDrawTransparentShader.cpp',
+ #'../third_party/skia/src/animator/SkDrawTransparentShader.h',
+ #'../third_party/skia/src/animator/SkDrawable.cpp',
+ #'../third_party/skia/src/animator/SkDrawable.h',
+ #'../third_party/skia/src/animator/SkDump.cpp',
+ #'../third_party/skia/src/animator/SkDump.h',
+ #'../third_party/skia/src/animator/SkExtraPathEffects.xsd',
+ #'../third_party/skia/src/animator/SkExtras.h',
+ #'../third_party/skia/src/animator/SkGetCondensedInfo.cpp',
+ #'../third_party/skia/src/animator/SkHitClear.cpp',
+ #'../third_party/skia/src/animator/SkHitClear.h',
+ #'../third_party/skia/src/animator/SkHitTest.cpp',
+ #'../third_party/skia/src/animator/SkHitTest.h',
+ #'../third_party/skia/src/animator/SkIntArray.h',
+ #'../third_party/skia/src/animator/SkMatrixParts.cpp',
+ #'../third_party/skia/src/animator/SkMatrixParts.h',
+ #'../third_party/skia/src/animator/SkMemberInfo.cpp',
+ #'../third_party/skia/src/animator/SkMemberInfo.h',
+ #'../third_party/skia/src/animator/SkOpArray.cpp',
+ #'../third_party/skia/src/animator/SkOpArray.h',
+ #'../third_party/skia/src/animator/SkOperand.h',
+ #'../third_party/skia/src/animator/SkOperand2.h',
+ #'../third_party/skia/src/animator/SkOperandInterpolator.h',
+ #'../third_party/skia/src/animator/SkOperandIterpolator.cpp',
+ #'../third_party/skia/src/animator/SkPaintParts.cpp',
+ #'../third_party/skia/src/animator/SkPaintParts.h',
+ #'../third_party/skia/src/animator/SkParseSVGPath.cpp',
+ #'../third_party/skia/src/animator/SkPathParts.cpp',
+ #'../third_party/skia/src/animator/SkPathParts.h',
+ #'../third_party/skia/src/animator/SkPostParts.cpp',
+ #'../third_party/skia/src/animator/SkPostParts.h',
+ #'../third_party/skia/src/animator/SkScript.cpp',
+ #'../third_party/skia/src/animator/SkScript.h',
+ #'../third_party/skia/src/animator/SkScript2.h',
+ #'../third_party/skia/src/animator/SkScriptCallBack.h',
+ #'../third_party/skia/src/animator/SkScriptDecompile.cpp',
+ #'../third_party/skia/src/animator/SkScriptRuntime.cpp',
+ #'../third_party/skia/src/animator/SkScriptRuntime.h',
+ #'../third_party/skia/src/animator/SkScriptTokenizer.cpp',
+ #'../third_party/skia/src/animator/SkSnapshot.cpp',
+ #'../third_party/skia/src/animator/SkSnapshot.h',
+ #'../third_party/skia/src/animator/SkTDArray_Experimental.h',
+ #'../third_party/skia/src/animator/SkTextOnPath.cpp',
+ #'../third_party/skia/src/animator/SkTextOnPath.h',
+ #'../third_party/skia/src/animator/SkTextToPath.cpp',
+ #'../third_party/skia/src/animator/SkTextToPath.h',
+ #'../third_party/skia/src/animator/SkTime.cpp',
+ #'../third_party/skia/src/animator/SkTypedArray.cpp',
+ #'../third_party/skia/src/animator/SkTypedArray.h',
+ #'../third_party/skia/src/animator/SkXMLAnimatorWriter.cpp',
+ #'../third_party/skia/src/animator/SkXMLAnimatorWriter.h',
+
+ '../third_party/skia/src/core/ARGB32_Clamp_Bilinear_BitmapShader.h',
+ '../third_party/skia/src/core/Sk64.cpp',
+ '../third_party/skia/src/core/SkAlphaRuns.cpp',
+ '../third_party/skia/src/core/SkAntiRun.h',
+ '../third_party/skia/src/core/SkBitmap.cpp',
+ '../third_party/skia/src/core/SkBitmapProcShader.cpp',
+ '../third_party/skia/src/core/SkBitmapProcShader.h',
+ '../third_party/skia/src/core/SkBitmapProcState.cpp',
+ '../third_party/skia/src/core/SkBitmapProcState.h',
+ '../third_party/skia/src/core/SkBitmapProcState_matrix.h',
+ '../third_party/skia/src/core/SkBitmapProcState_matrixProcs.cpp',
+ '../third_party/skia/src/core/SkBitmapProcState_sample.h',
+ '../third_party/skia/src/core/SkBitmapSampler.cpp',
+ '../third_party/skia/src/core/SkBitmapSampler.h',
+ '../third_party/skia/src/core/SkBitmapSamplerTemplate.h',
+ '../third_party/skia/src/core/SkBitmapShader.cpp',
+ '../third_party/skia/src/core/SkBitmapShader.h',
+ '../third_party/skia/src/core/SkBitmapShader16BilerpTemplate.h',
+ '../third_party/skia/src/core/SkBitmapShaderTemplate.h',
+ '../third_party/skia/src/core/SkBitmap_scroll.cpp',
+ '../third_party/skia/src/core/SkBlitBWMaskTemplate.h',
+ '../third_party/skia/src/core/SkBlitRow.h',
+ '../third_party/skia/src/core/SkBlitRow_D16.cpp',
+ '../third_party/skia/src/core/SkBlitRow_D4444.cpp',
+ '../third_party/skia/src/core/SkBlitter.cpp',
+ '../third_party/skia/src/core/SkBlitter_4444.cpp',
+ '../third_party/skia/src/core/SkBlitter_A1.cpp',
+ '../third_party/skia/src/core/SkBlitter_A8.cpp',
+ '../third_party/skia/src/core/SkBlitter_ARGB32.cpp',
+ '../third_party/skia/src/core/SkBlitter_RGB16.cpp',
+ '../third_party/skia/src/core/SkBlitter_Sprite.cpp',
+ '../third_party/skia/src/core/SkBuffer.cpp',
+ '../third_party/skia/src/core/SkCanvas.cpp',
+ '../third_party/skia/src/core/SkChunkAlloc.cpp',
+ '../third_party/skia/src/core/SkColor.cpp',
+ '../third_party/skia/src/core/SkColorFilter.cpp',
+ '../third_party/skia/src/core/SkColorTable.cpp',
+ '../third_party/skia/src/core/SkComposeShader.cpp',
+ '../third_party/skia/src/core/SkConcaveToTriangles.cpp',
+ '../third_party/skia/src/core/SkConcaveToTriangles.h',
+ '../third_party/skia/src/core/SkCordic.cpp',
+ '../third_party/skia/src/core/SkCordic.h',
+ '../third_party/skia/src/core/SkCoreBlitters.h',
+ '../third_party/skia/src/core/SkCubicClipper.cpp',
+ '../third_party/skia/src/core/SkCubicClipper.h',
+ '../third_party/skia/src/core/SkDebug.cpp',
+ #'../third_party/skia/src/core/SkDebug_stdio.cpp',
+ '../third_party/skia/src/core/SkDeque.cpp',
+ '../third_party/skia/src/core/SkDevice.cpp',
+ '../third_party/skia/src/core/SkDither.cpp',
+ '../third_party/skia/src/core/SkDraw.cpp',
+ '../third_party/skia/src/core/SkDrawProcs.h',
+ #'../third_party/skia/src/core/SkDrawing.cpp',
+ '../third_party/skia/src/core/SkEdge.cpp',
+ '../third_party/skia/src/core/SkEdge.h',
+ '../third_party/skia/src/core/SkFP.h',
+ '../third_party/skia/src/core/SkFilterProc.cpp',
+ '../third_party/skia/src/core/SkFilterProc.h',
+ '../third_party/skia/src/core/SkFlattenable.cpp',
+ '../third_party/skia/src/core/SkFloat.cpp',
+ '../third_party/skia/src/core/SkFloat.h',
+ '../third_party/skia/src/core/SkFloatBits.cpp',
+ '../third_party/skia/src/core/SkGeometry.cpp',
+ '../third_party/skia/src/core/SkGlobals.cpp',
+ '../third_party/skia/src/core/SkGlyphCache.cpp',
+ '../third_party/skia/src/core/SkGlyphCache.h',
+ '../third_party/skia/src/core/SkGraphics.cpp',
+ '../third_party/skia/src/core/SkMMapStream.cpp',
+ '../third_party/skia/src/core/SkMask.cpp',
+ '../third_party/skia/src/core/SkMaskFilter.cpp',
+ '../third_party/skia/src/core/SkMath.cpp',
+ '../third_party/skia/src/core/SkMatrix.cpp',
+ '../third_party/skia/src/core/SkPackBits.cpp',
+ '../third_party/skia/src/core/SkPaint.cpp',
+ '../third_party/skia/src/core/SkPath.cpp',
+ '../third_party/skia/src/core/SkPathEffect.cpp',
+ '../third_party/skia/src/core/SkPathHeap.cpp',
+ '../third_party/skia/src/core/SkPathHeap.h',
+ '../third_party/skia/src/core/SkPathMeasure.cpp',
+ '../third_party/skia/src/core/SkPicture.cpp',
+ '../third_party/skia/src/core/SkPictureFlat.cpp',
+ '../third_party/skia/src/core/SkPictureFlat.h',
+ '../third_party/skia/src/core/SkPicturePlayback.cpp',
+ '../third_party/skia/src/core/SkPicturePlayback.h',
+ '../third_party/skia/src/core/SkPictureRecord.cpp',
+ '../third_party/skia/src/core/SkPictureRecord.h',
+ '../third_party/skia/src/core/SkPixelRef.cpp',
+ '../third_party/skia/src/core/SkPoint.cpp',
+ '../third_party/skia/src/core/SkProcSpriteBlitter.cpp',
+ '../third_party/skia/src/core/SkPtrRecorder.cpp',
+ '../third_party/skia/src/core/SkQuadClipper.cpp',
+ '../third_party/skia/src/core/SkQuadClipper.h',
+ '../third_party/skia/src/core/SkRasterizer.cpp',
+ '../third_party/skia/src/core/SkRect.cpp',
+ '../third_party/skia/src/core/SkRefCnt.cpp',
+ '../third_party/skia/src/core/SkRegion.cpp',
+ '../third_party/skia/src/core/SkRegionPriv.h',
+ '../third_party/skia/src/core/SkRegion_path.cpp',
+ '../third_party/skia/src/core/SkScalerContext.cpp',
+ '../third_party/skia/src/core/SkScan.cpp',
+ '../third_party/skia/src/core/SkScanPriv.h',
+ '../third_party/skia/src/core/SkScan_AntiPath.cpp',
+ '../third_party/skia/src/core/SkScan_Antihair.cpp',
+ '../third_party/skia/src/core/SkScan_Hairline.cpp',
+ '../third_party/skia/src/core/SkScan_Path.cpp',
+ '../third_party/skia/src/core/SkShader.cpp',
+ '../third_party/skia/src/core/SkSpriteBlitter_ARGB32.cpp',
+ '../third_party/skia/src/core/SkSpriteBlitter_RGB16.cpp',
+ '../third_party/skia/src/core/SkSinTable.h',
+ '../third_party/skia/src/core/SkSpriteBlitter.h',
+ '../third_party/skia/src/core/SkSpriteBlitterTemplate.h',
+ '../third_party/skia/src/core/SkStream.cpp',
+ '../third_party/skia/src/core/SkString.cpp',
+ '../third_party/skia/src/core/SkStroke.cpp',
+ '../third_party/skia/src/core/SkStrokerPriv.cpp',
+ '../third_party/skia/src/core/SkStrokerPriv.h',
+ '../third_party/skia/src/core/SkTSearch.cpp',
+ '../third_party/skia/src/core/SkTSort.h',
+ '../third_party/skia/src/core/SkTemplatesPriv.h',
+ '../third_party/skia/src/core/SkTypeface.cpp',
+ '../third_party/skia/src/core/SkUnPreMultiply.cpp',
+ '../third_party/skia/src/core/SkUtils.cpp',
+ '../third_party/skia/src/core/SkWriter32.cpp',
+ '../third_party/skia/src/core/SkXfermode.cpp',
+ '../third_party/skia/src/core/core_files.mk',
+
+ '../third_party/skia/src/effects/Sk1DPathEffect.cpp',
+ '../third_party/skia/src/effects/Sk2DPathEffect.cpp',
+ '../third_party/skia/src/effects/SkAvoidXfermode.cpp',
+ '../third_party/skia/src/effects/SkBlurDrawLooper.cpp',
+ '../third_party/skia/src/effects/SkBlurMask.cpp',
+ '../third_party/skia/src/effects/SkBlurMask.h',
+ '../third_party/skia/src/effects/SkBlurMaskFilter.cpp',
+ '../third_party/skia/src/effects/SkColorFilters.cpp',
+ '../third_party/skia/src/effects/SkColorMatrixFilter.cpp',
+ '../third_party/skia/src/effects/SkCornerPathEffect.cpp',
+ '../third_party/skia/src/effects/SkDashPathEffect.cpp',
+ '../third_party/skia/src/effects/SkDiscretePathEffect.cpp',
+ '../third_party/skia/src/effects/SkEmbossMask.cpp',
+ '../third_party/skia/src/effects/SkEmbossMask.h',
+ '../third_party/skia/src/effects/SkEmbossMask_Table.h',
+ '../third_party/skia/src/effects/SkEmbossMaskFilter.cpp',
+ '../third_party/skia/src/effects/SkGradientShader.cpp',
+ '../third_party/skia/src/effects/SkKernel33MaskFilter.cpp',
+ '../third_party/skia/src/effects/SkLayerDrawLooper.cpp',
+ '../third_party/skia/src/effects/SkLayerRasterizer.cpp',
+ '../third_party/skia/src/effects/SkNWayCanvas.cpp',
+ '../third_party/skia/src/effects/SkPaintFlagsDrawFilter.cpp',
+ '../third_party/skia/src/effects/SkPixelXorXfermode.cpp',
+ '../third_party/skia/src/effects/SkRadialGradient_Table.h',
+ '../third_party/skia/src/effects/SkTransparentShader.cpp',
+
+ '../third_party/skia/src/images/bmpdecoderhelper.cpp',
+ '../third_party/skia/src/images/bmpdecoderhelper.h',
+ '../third_party/skia/src/images/fpdfemb.h',
+ '../third_party/skia/src/images/fpdfemb_ext.h',
+ '../third_party/skia/src/images/SkBitmap_RLEPixels.h',
+ '../third_party/skia/src/images/SkCreateRLEPixelRef.cpp',
+ #'../third_party/skia/src/images/SkFDStream.cpp',
+ #'../third_party/skia/src/images/SkFlipPixelRef.cpp',
+ '../third_party/skia/src/images/SkImageDecoder.cpp',
+ '../third_party/skia/src/images/SkImageDecoder_Factory.cpp',
+ #'../third_party/skia/src/images/SkImageDecoder_fpdfemb.cpp',
+ #'../third_party/skia/src/images/SkImageDecoder_libbmp.cpp',
+ #'../third_party/skia/src/images/SkImageDecoder_libgif.cpp',
+ #'../third_party/skia/src/images/SkImageDecoder_libico.cpp',
+ #'../third_party/skia/src/images/SkImageDecoder_libjpeg.cpp',
+ #'../third_party/skia/src/images/SkImageDecoder_libpng.cpp',
+ #'../third_party/skia/src/images/SkImageDecoder_libpvjpeg.cpp',
+ #'../third_party/skia/src/images/SkImageDecoder_wbmp.cpp',
+ #'../third_party/skia/src/images/SKImageEncoder.cpp',
+ #'../third_party/skia/src/images/SKImageEncoder_Factory.cpp',
+ #'../third_party/skia/src/images/SkImageRef.cpp',
+ #'../third_party/skia/src/images/SkImageRefPool.cpp',
+ #'../third_party/skia/src/images/SkImageRefPool.h',
+ #'../third_party/skia/src/images/SkImageRef_GlobalPool.cpp',
+ #'../third_party/skia/src/images/SkMovie.cpp',
+ #'../third_party/skia/src/images/SkMovie_gif.cpp',
+ '../third_party/skia/src/images/SkScaledBitmapSampler.cpp',
+ '../third_party/skia/src/images/SkScaledBitmapSampler.h',
+
+ #'../third_party/skia/src/ports/SkFontHost_FONTPATH.cpp',
+ '../third_party/skia/src/ports/SkFontHost_FreeType.cpp',
+ #'../third_party/skia/src/ports/SkFontHost_android.cpp',
+ #'../third_party/skia/src/ports/SkFontHost_ascender.cpp',
+ '../third_party/skia/src/ports/SkFontHost_fontconfig.cpp',
+ '../third_party/skia/src/ports/SkFontHost_tables.cpp',
+ #'../third_party/skia/src/ports/SkFontHost_gamma.cpp',
+ '../third_party/skia/src/ports/SkFontHost_gamma_none.cpp',
+ #'../third_party/skia/src/ports/SkFontHost_linux.cpp',
+ #'../third_party/skia/src/ports/SkFontHost_mac.cpp',
+ '../third_party/skia/src/ports/SkFontHost_none.cpp',
+ #'../third_party/skia/src/ports/SkFontHost_win.cpp',
+ '../third_party/skia/src/ports/SkGlobals_global.cpp',
+ #'../third_party/skia/src/ports/SkImageDecoder_CG.cpp',
+ #'../third_party/skia/src/ports/SkImageDecoder_empty.cpp',
+ #'../third_party/skia/src/ports/SkImageRef_ashmem.cpp',
+ #'../third_party/skia/src/ports/SkImageRef_ashmem.h',
+ #'../third_party/skia/src/ports/SkOSEvent_android.cpp',
+ #'../third_party/skia/src/ports/SkOSEvent_dummy.cpp',
+ '../third_party/skia/src/ports/SkOSFile_stdio.cpp',
+ #'../third_party/skia/src/ports/SkThread_none.cpp',
+ '../third_party/skia/src/ports/SkThread_pthread.cpp',
+ '../third_party/skia/src/ports/SkThread_win.cpp',
+ '../third_party/skia/src/ports/SkTime_Unix.cpp',
+ #'../third_party/skia/src/ports/SkXMLParser_empty.cpp',
+ #'../third_party/skia/src/ports/SkXMLParser_expat.cpp',
+ #'../third_party/skia/src/ports/SkXMLParser_tinyxml.cpp',
+ #'../third_party/skia/src/ports/SkXMLPullParser_expat.cpp',
+ '../third_party/skia/src/ports/sk_predefined_gamma.h',
+
+ '../third_party/skia/include/core/Sk64.h',
+ '../third_party/skia/include/core/SkAutoKern.h',
+ '../third_party/skia/include/core/SkBitmap.h',
+ '../third_party/skia/include/core/SkBlitter.h',
+ '../third_party/skia/include/core/SkBounder.h',
+ '../third_party/skia/include/core/SkBuffer.h',
+ '../third_party/skia/include/core/SkCanvas.h',
+ '../third_party/skia/include/core/SkChunkAlloc.h',
+ '../third_party/skia/include/core/SkColor.h',
+ '../third_party/skia/include/core/SkColorFilter.h',
+ '../third_party/skia/include/core/SkColorPriv.h',
+ '../third_party/skia/include/core/SkColorShader.h',
+ '../third_party/skia/include/core/SkComposeShader.h',
+ '../third_party/skia/include/core/SkDeque.h',
+ '../third_party/skia/include/core/SkDescriptor.h',
+ '../third_party/skia/include/core/SkDevice.h',
+ '../third_party/skia/include/core/SkDither.h',
+ '../third_party/skia/include/core/SkDraw.h',
+ '../third_party/skia/include/core/SkDrawFilter.h',
+ '../third_party/skia/include/core/SkDrawLooper.h',
+ '../third_party/skia/include/core/SkDrawing.h',
+ '../third_party/skia/include/core/SkEndian.h',
+ '../third_party/skia/include/core/SkFDot6.h',
+ '../third_party/skia/include/core/SkFixed.h',
+ '../third_party/skia/include/core/SkFlattenable.h',
+ '../third_party/skia/include/core/SkFloatBits.h',
+ '../third_party/skia/include/core/SkFloatingPoint.h',
+ '../third_party/skia/include/core/SkFontHost.h',
+ '../third_party/skia/include/core/SkGeometry.h',
+ '../third_party/skia/include/core/SkGlobals.h',
+ '../third_party/skia/include/core/SkGraphics.h',
+ '../third_party/skia/include/core/SkMMapStream.h',
+ '../third_party/skia/include/core/SkMallocPixelRef.h',
+ '../third_party/skia/include/core/SkMask.h',
+ '../third_party/skia/include/core/SkMaskFilter.h',
+ '../third_party/skia/include/core/SkMath.h',
+ '../third_party/skia/include/core/SkMatrix.h',
+ '../third_party/skia/include/core/SkOSFile.h',
+ '../third_party/skia/include/core/SkPackBits.h',
+ '../third_party/skia/include/core/SkPaint.h',
+ '../third_party/skia/include/core/SkPath.h',
+ '../third_party/skia/include/core/SkPathEffect.h',
+ '../third_party/skia/include/core/SkPathMeasure.h',
+ '../third_party/skia/include/core/SkPerspIter.h',
+ '../third_party/skia/include/core/SkPicture.h',
+ '../third_party/skia/include/core/SkPixelRef.h',
+ '../third_party/skia/include/core/SkPoint.h',
+ '../third_party/skia/include/core/SkPorterDuff.h',
+ '../third_party/skia/include/core/SkPtrRecorder.h',
+ '../third_party/skia/include/core/SkRandom.h',
+ '../third_party/skia/include/core/SkRasterizer.h',
+ '../third_party/skia/include/core/SkReader32.h',
+ '../third_party/skia/include/core/SkRect.h',
+ '../third_party/skia/include/core/SkRefCnt.h',
+ '../third_party/skia/include/core/SkRegion.h',
+ '../third_party/skia/include/core/SkScalar.h',
+ '../third_party/skia/include/core/SkScalarCompare.h',
+ '../third_party/skia/include/core/SkScalerContext.h',
+ '../third_party/skia/include/core/SkScan.h',
+ '../third_party/skia/include/core/SkShader.h',
+ '../third_party/skia/include/core/SkStream.h',
+ '../third_party/skia/include/core/SkString.h',
+ '../third_party/skia/include/core/SkStroke.h',
+ '../third_party/skia/include/core/SkTDArray.h',
+ '../third_party/skia/include/core/SkTDStack.h',
+ '../third_party/skia/include/core/SkTDict.h',
+ '../third_party/skia/include/core/SkTRegistry.h',
+ '../third_party/skia/include/core/SkTSearch.h',
+ '../third_party/skia/include/core/SkTemplates.h',
+ '../third_party/skia/include/core/SkThread.h',
+ '../third_party/skia/include/core/SkThread_platform.h',
+ '../third_party/skia/include/core/SkTime.h',
+ '../third_party/skia/include/core/SkTypeface.h',
+ '../third_party/skia/include/core/SkTypes.h',
+ '../third_party/skia/include/core/SkUnPreMultiply.h',
+ '../third_party/skia/include/core/SkUnitMapper.h',
+ '../third_party/skia/include/core/SkUtils.h',
+ '../third_party/skia/include/core/SkWriter32.h',
+ '../third_party/skia/include/core/SkXfermode.h',
+
+ '../third_party/skia/include/effects/Sk1DPathEffect.h',
+ '../third_party/skia/include/effects/Sk2DPathEffect.h',
+ '../third_party/skia/include/effects/SkAvoidXfermode.h',
+ '../third_party/skia/include/effects/SkBlurDrawLooper.h',
+ '../third_party/skia/include/effects/SkBlurMaskFilter.h',
+ '../third_party/skia/include/effects/SkColorMatrix.h',
+ '../third_party/skia/include/effects/SkColorMatrixFilter.h',
+ '../third_party/skia/include/effects/SkCornerPathEffect.h',
+ '../third_party/skia/include/effects/SkDashPathEffect.h',
+ '../third_party/skia/include/effects/SkDiscretePathEffect.h',
+ '../third_party/skia/include/effects/SkDrawExtraPathEffect.h',
+ '../third_party/skia/include/effects/SkEmbossMaskFilter.h',
+ '../third_party/skia/include/effects/SkGradientShader.h',
+ '../third_party/skia/include/effects/SkKernel33MaskFilter.h',
+ '../third_party/skia/include/effects/SkLayerDrawLooper.h',
+ '../third_party/skia/include/effects/SkLayerRasterizer.h',
+ '../third_party/skia/include/effects/SkNWayCanvas.h',
+ '../third_party/skia/include/effects/SkPaintFlagsDrawFilter.h',
+ '../third_party/skia/include/effects/SkPixelXorXfermode.h',
+ '../third_party/skia/include/effects/SkTransparentShader.h',
+
+ '../third_party/skia/include/ports/SkStream_Win.h',
+
+ '../third_party/skia/include/images/SkFlipPixelRef.h',
+ '../third_party/skia/include/images/SkImageDecoder.h',
+ '../third_party/skia/include/images/SkImageEncoder.h',
+ '../third_party/skia/include/images/SkImageRef.h',
+ '../third_party/skia/include/images/SkImageRef_GlobalPool.h',
+ '../third_party/skia/include/images/SkMovie.h',
+ '../third_party/skia/include/images/SkPageFlipper.h',
+
'ext/bitmap_platform_device.h',
'ext/bitmap_platform_device_linux.cc',
'ext/bitmap_platform_device_linux.h',
@@ -247,6 +521,8 @@
'ext/platform_device_mac.h',
'ext/platform_device_win.cc',
'ext/platform_device_win.h',
+ 'ext/SkMemory_new_handler.cpp',
+ 'ext/SkTypeface_fake.cpp',
'ext/skia_utils.cc',
'ext/skia_utils.h',
'ext/skia_utils_mac.cc',
@@ -257,402 +533,14 @@
'ext/vector_canvas.h',
'ext/vector_device.cc',
'ext/vector_device.h',
- #'gl/SkGL.cpp',
- #'gl/SkGL.h',
- #'gl/SkGLCanvas.cpp',
- #'gl/SkGLDevice.cpp',
- #'gl/SkGLDevice.h',
- #'gl/SkGLDevice_FBO.cpp',
- #'gl/SkGLDevice_FBO.h',
- #'gl/SkGLDevice_SWLayer.cpp',
- #'gl/SkGLDevice_SWLayer.h',
- #'gl/SkGLTextCache.cpp',
- #'gl/SkGLTextCache.h',
- #'gl/SkTextureCache.cpp',
- #'gl/SkTextureCache.h',
- #'images/bmpdecoderhelper.cpp',
- #'images/bmpdecoderhelper.h',
- #'images/fpdfemb.h',
- #'images/fpdfemb_ext.h',
- #'images/SkBitmap_RLEPixels.h',
- #'images/SkCreateRLEPixelRef.cpp',
- #'images/SkFDStream.cpp',
- #'images/SkFlipPixelRef.cpp',
- 'images/SkImageDecoder.cpp',
- #'images/SkImageDecoder_fpdfemb.cpp',
- #'images/SkImageDecoder_libbmp.cpp',
- #'images/SkImageDecoder_libgif.cpp',
- #'images/SkImageDecoder_libico.cpp',
- #'images/SkImageDecoder_libjpeg.cpp',
- #'images/SkImageDecoder_libpng.cpp',
- #'images/SkImageDecoder_libpvjpeg.cpp',
- #'images/SkImageDecoder_wbmp.cpp',
- 'images/SkImageRef.cpp',
- #'images/SkImageRef_GlobalPool.cpp',
- #'images/SkImageRefPool.cpp',
- #'images/SkImageRefPool.h',
- 'images/SkMMapStream.cpp',
- #'images/SkMovie.cpp',
- #'images/SkMovie_gif.cpp',
- #'images/SkScaledBitmapSampler.cpp',
- #'images/SkScaledBitmapSampler.h',
- 'images/SkStream.cpp',
- 'include/corecg/Sk64.h',
- 'include/corecg/SkBuffer.h',
- 'include/corecg/SkChunkAlloc.h',
- 'include/corecg/SkEndian.h',
- 'include/corecg/SkFDot6.h',
- 'include/corecg/SkFixed.h',
- 'include/corecg/SkFloatBits.h',
- 'include/corecg/SkFloatingPoint.h',
- 'include/corecg/SkInterpolator.h',
- 'include/corecg/SkMath.h',
- 'include/corecg/SkMatrix.h',
- 'include/corecg/SkPageFlipper.h',
- 'include/corecg/SkPerspIter.h',
- 'include/corecg/SkPoint.h',
- 'include/corecg/SkPostConfig.h',
- 'include/corecg/SkPreConfig.h',
- 'include/corecg/SkRandom.h',
- 'include/corecg/SkRect.h',
- 'include/corecg/SkRegion.h',
- 'include/corecg/SkScalar.h',
- 'include/corecg/SkScalarCompare.h',
- 'include/corecg/SkTemplates.h',
- 'include/corecg/SkThread.h',
- 'include/corecg/SkThread_platform.h',
- 'include/corecg/SkTSearch.h',
- 'include/corecg/SkTypes.h',
- 'include/corecg/SkUserConfig.h',
- 'include/Sk1DPathEffect.h',
- 'include/Sk2DPathEffect.h',
- 'include/SkAnimator.h',
- 'include/SkAnimatorView.h',
- 'include/SkApplication.h',
- 'include/SkAvoidXfermode.h',
- 'include/SkBGViewArtist.h',
- 'include/SkBitmap.h',
- 'include/SkBlurDrawLooper.h',
- 'include/SkBlurMaskFilter.h',
- 'include/SkBML_WXMLParser.h',
- 'include/SkBML_XMLParser.h',
- 'include/SkBorderView.h',
- 'include/SkBounder.h',
- 'include/SkCamera.h',
- 'include/SkCanvas.h',
- 'include/SkColor.h',
- 'include/SkColorFilter.h',
- 'include/SkColorMatrix.h',
- 'include/SkColorMatrixFilter.h',
- 'include/SkColorPriv.h',
- 'include/SkColorShader.h',
- 'include/SkCornerPathEffect.h',
- 'include/SkCullPoints.h',
- 'include/SkDashPathEffect.h',
- 'include/SkDeque.h',
- 'include/SkDescriptor.h',
- 'include/SkDevice.h',
- 'include/SkDiscretePathEffect.h',
- 'include/SkDither.h',
- 'include/SkDOM.h',
- 'include/SkDraw.h',
- 'include/SkDrawExtraPathEffect.h',
- 'include/SkDrawFilter.h',
- 'include/SkDrawLooper.h',
- 'include/SkEmbossMaskFilter.h',
- 'include/SkEvent.h',
- 'include/SkEventSink.h',
- 'include/SkFlattenable.h',
- 'include/SkFlipPixelRef.h',
- 'include/SkFontCodec.h',
- 'include/SkFontHost.h',
- 'include/SkGLCanvas.h',
- 'include/SkGlobals.h',
- 'include/SkGradientShader.h',
- 'include/SkGraphics.h',
- 'include/SkImageDecoder.h',
- 'include/SkImageRef.h',
- 'include/SkImageRef_GlobalPool.h',
- 'include/SkImageView.h',
- 'include/SkJS.h',
- 'include/SkKernel33MaskFilter.h',
- 'include/SkKey.h',
- 'include/SkLayerDrawLooper.h',
- 'include/SkLayerRasterizer.h',
- 'include/SkMallocPixelRef.h',
- 'include/SkMask.h',
- 'include/SkMaskFilter.h',
- 'include/SkMetaData.h',
- 'include/SkMMapStream.h',
- 'include/SkMovie.h',
- 'include/SkNinePatch.h',
- 'include/SkOSFile.h',
- 'include/SkOSMenu.h',
- 'include/SkOSSound.h',
- 'include/SkOSWindow_Mac.h',
- 'include/SkOSWindow_Unix.h',
- 'include/SkOSWindow_Win.h',
- 'include/SkOSWindow_wxwidgets.h',
- 'include/SkPackBits.h',
- 'include/SkPaint.h',
- 'include/SkPaintFlagsDrawFilter.h',
- 'include/SkParse.h',
- 'include/SkParsePaint.h',
- 'include/SkPath.h',
- 'include/SkPathEffect.h',
- 'include/SkPathMeasure.h',
- 'include/SkPicture.h',
- 'include/SkPixelRef.h',
- 'include/SkPixelXorXfermode.h',
- 'include/SkPorterDuff.h',
- 'include/SkProgressBarView.h',
- 'include/SkPtrRecorder.h',
- 'include/SkRasterizer.h',
- 'include/SkReader32.h',
- 'include/SkRefCnt.h',
- 'include/SkScalerContext.h',
- 'include/SkScrollBarView.h',
- 'include/SkShader.h',
- 'include/SkShaderExtras.h',
- 'include/SkStackViewLayout.h',
- 'include/SkStream.h',
- 'include/SkStream_Win.h',
- 'include/SkString.h',
- 'include/SkStroke.h',
- 'include/SkSVGAttribute.h',
- 'include/SkSVGBase.h',
- 'include/SkSVGPaintState.h',
- 'include/SkSVGParser.h',
- 'include/SkSVGTypes.h',
- 'include/SkSystemEventTypes.h',
- 'include/SkTDArray.h',
- 'include/SkTDict.h',
- 'include/SkTDStack.h',
- 'include/SkTextBox.h',
- 'include/SkTime.h',
- 'include/SkTransparentShader.h',
- 'include/SkTypeface.h',
- 'include/SkUnitMapper.h',
- 'include/SkUnitMappers.h',
- 'include/SkUnPreMultiply.h',
- 'include/SkUtils.h',
- 'include/SkView.h',
- 'include/SkViewInflate.h',
- 'include/SkWidget.h',
- 'include/SkWidgetViews.h',
- 'include/SkWindow.h',
- 'include/SkWriter32.h',
- 'include/SkXfermode.h',
- 'include/SkXMLParser.h',
- 'include/SkXMLWriter.h',
- 'picture/SkPathHeap.cpp',
- 'picture/SkPathHeap.h',
- 'picture/SkPicture.cpp',
- 'picture/SkPictureFlat.cpp',
- 'picture/SkPictureFlat.h',
- 'picture/SkPicturePlayback.cpp',
- 'picture/SkPicturePlayback.h',
- 'picture/SkPictureRecord.cpp',
- 'picture/SkPictureRecord.h',
- 'ports/sk_predefined_gamma.h',
- #'ports/SkFontHost_android.cpp',
- #'ports/SkFontHost_ascender.cpp',
- 'ports/SkFontHost_fontconfig.cpp',
- #'ports/SkFontHost_FONTPATH.cpp',
- 'ports/SkFontHost_FreeType.cpp',
- 'ports/SkFontHost_tables.cpp',
- #'ports/SkFontHost_gamma.cpp',
- 'ports/SkFontHost_gamma_none.cpp',
- #'ports/SkFontHost_linux.cpp',
- #'ports/SkFontHost_mac.cpp',
- 'ports/SkFontHost_none.cpp',
- #'ports/SkFontHost_win.cpp',
- 'ports/SkGlobals_global.cpp',
- 'ports/SkImageDecoder_Factory.cpp',
- #'ports/SkImageRef_ashmem.cpp',
- #'ports/SkImageRef_ashmem.h',
- #'ports/SkOSEvent_android.cpp',
- #'ports/SkOSEvent_dummy.cpp',
- 'ports/SkOSFile_stdio.cpp',
- #'ports/SkThread_none.cpp',
- 'ports/SkThread_pthread.cpp',
- 'ports/SkThread_win.cpp',
- 'ports/SkTime_Unix.cpp',
- #'ports/SkXMLParser_empty.cpp',
- #'ports/SkXMLParser_expat.cpp',
- #'ports/SkXMLParser_tinyxml.cpp',
- #'ports/SkXMLPullParser_expat.cpp',
- 'sgl/ARGB32_Clamp_Bilinear_BitmapShader.h',
- 'sgl/SkAlphaRuns.cpp',
- 'sgl/SkAntiRun.h',
- 'sgl/SkAutoKern.h',
- 'sgl/SkBitmap.cpp',
- #'sgl/SkBitmap_scroll.cpp',
- 'sgl/SkBitmapProcShader.cpp',
- 'sgl/SkBitmapProcShader.h',
- 'sgl/SkBitmapProcState.cpp',
- 'sgl/SkBitmapProcState.h',
- 'sgl/SkBitmapProcState_matrix.h',
- 'sgl/SkBitmapProcState_matrixProcs.cpp',
- 'sgl/SkBitmapProcState_sample.h',
- 'sgl/SkBitmapSampler.cpp',
- 'sgl/SkBitmapSampler.h',
- 'sgl/SkBitmapSamplerTemplate.h',
- 'sgl/SkBitmapShader.cpp',
- 'sgl/SkBitmapShader.h',
- 'sgl/SkBitmapShader16BilerpTemplate.h',
- 'sgl/SkBitmapShaderTemplate.h',
- 'sgl/SkBlitBWMaskTemplate.h',
- 'sgl/SkBlitRow.h',
- 'sgl/SkBlitRow_D16.cpp',
- 'sgl/SkBlitRow_D4444.cpp',
- 'sgl/SkBlitter.cpp',
- 'sgl/SkBlitter.h',
- 'sgl/SkBlitter_4444.cpp',
- 'sgl/SkBlitter_A1.cpp',
- 'sgl/SkBlitter_A8.cpp',
- 'sgl/SkBlitter_ARGB32.cpp',
- 'sgl/SkBlitter_RGB16.cpp',
- 'sgl/SkBlitter_Sprite.cpp',
- 'sgl/SkCanvas.cpp',
- 'sgl/SkColor.cpp',
- 'sgl/SkColorFilter.cpp',
- 'sgl/SkColorTable.cpp',
- 'sgl/SkCoreBlitters.h',
- 'sgl/SkDeque.cpp',
- 'sgl/SkDevice.cpp',
- 'sgl/SkDither.cpp',
- 'sgl/SkDraw.cpp',
- 'sgl/SkDrawProcs.h',
- 'sgl/SkEdge.cpp',
- 'sgl/SkEdge.h',
- 'sgl/SkFilterProc.cpp',
- 'sgl/SkFilterProc.h',
- 'sgl/SkFlattenable.cpp',
- 'sgl/SkFP.h',
- 'sgl/SkGeometry.cpp',
- 'sgl/SkGeometry.h',
- 'sgl/SkGlobals.cpp',
- 'sgl/SkGlyphCache.cpp',
- 'sgl/SkGlyphCache.h',
- 'sgl/SkGraphics.cpp',
- 'sgl/SkMask.cpp',
- 'sgl/SkMaskFilter.cpp',
- 'sgl/SkPackBits.cpp',
- 'sgl/SkPaint.cpp',
- 'sgl/SkPath.cpp',
- 'sgl/SkPathEffect.cpp',
- 'sgl/SkPathMeasure.cpp',
- 'sgl/SkPixelRef.cpp',
- 'sgl/SkProcSpriteBlitter.cpp',
- 'sgl/SkPtrRecorder.cpp',
- 'sgl/SkRasterizer.cpp',
- 'sgl/SkRefCnt.cpp',
- 'sgl/SkRegion_path.cpp',
- 'sgl/SkScalerContext.cpp',
- 'sgl/SkScan.cpp',
- 'sgl/SkScan.h',
- 'sgl/SkScan_Antihair.cpp',
- 'sgl/SkScan_AntiPath.cpp',
- 'sgl/SkScan_Hairline.cpp',
- 'sgl/SkScan_Path.cpp',
- 'sgl/SkScanPriv.h',
- 'sgl/SkShader.cpp',
- 'sgl/SkSpriteBlitter.h',
- 'sgl/SkSpriteBlitter_ARGB32.cpp',
- 'sgl/SkSpriteBlitter_RGB16.cpp',
- 'sgl/SkSpriteBlitterTemplate.h',
- 'sgl/SkString.cpp',
- 'sgl/SkStroke.cpp',
- 'sgl/SkStrokerPriv.cpp',
- 'sgl/SkStrokerPriv.h',
- 'sgl/SkTemplatesPriv.h',
- 'sgl/SkTSearch.cpp',
- 'sgl/SkTSort.h',
- 'sgl/SkTypeface.cpp',
- 'sgl/SkTypeface_fake.cpp',
- 'sgl/SkUnPreMultiply.cpp',
- 'sgl/SkUtils.cpp',
- 'sgl/SkWriter32.cpp',
- 'sgl/SkXfermode.cpp',
- #'svg/SkSVG.cpp',
- #'svg/SkSVGCircle.cpp',
- #'svg/SkSVGCircle.h',
- #'svg/SkSVGClipPath.cpp',
- #'svg/SkSVGClipPath.h',
- #'svg/SkSVGDefs.cpp',
- #'svg/SkSVGDefs.h',
- #'svg/SkSVGElements.cpp',
- #'svg/SkSVGElements.h',
- #'svg/SkSVGEllipse.cpp',
- #'svg/SkSVGEllipse.h',
- #'svg/SkSVGFeColorMatrix.cpp',
- #'svg/SkSVGFeColorMatrix.h',
- #'svg/SkSVGFilter.cpp',
- #'svg/SkSVGFilter.h',
- #'svg/SkSVGG.cpp',
- #'svg/SkSVGG.h',
- #'svg/SkSVGGradient.cpp',
- #'svg/SkSVGGradient.h',
- #'svg/SkSVGGroup.cpp',
- #'svg/SkSVGGroup.h',
- #'svg/SkSVGImage.cpp',
- #'svg/SkSVGImage.h',
- #'svg/SkSVGLine.cpp',
- #'svg/SkSVGLine.h',
- #'svg/SkSVGLinearGradient.cpp',
- #'svg/SkSVGLinearGradient.h',
- #'svg/SkSVGMask.cpp',
- #'svg/SkSVGMask.h',
- #'svg/SkSVGMetadata.cpp',
- #'svg/SkSVGMetadata.h',
- #'svg/SkSVGPaintState.cpp',
- #'svg/SkSVGParser.cpp',
- #'svg/SkSVGPath.cpp',
- #'svg/SkSVGPath.h',
- #'svg/SkSVGPolygon.cpp',
- #'svg/SkSVGPolygon.h',
- #'svg/SkSVGPolyline.cpp',
- #'svg/SkSVGPolyline.h',
- #'svg/SkSVGRadialGradient.cpp',
- #'svg/SkSVGRadialGradient.h',
- #'svg/SkSVGRect.cpp',
- #'svg/SkSVGRect.h',
- #'svg/SkSVGStop.cpp',
- #'svg/SkSVGStop.h',
- #'svg/SkSVGSVG.cpp',
- #'svg/SkSVGSVG.h',
- #'svg/SkSVGSymbol.cpp',
- #'svg/SkSVGSymbol.h',
- #'svg/SkSVGText.cpp',
- #'svg/SkSVGText.h',
- #'svg/SkSVGUse.cpp',
- #'svg/SkSVGUse.h',
- #'text/ATextEntry.h',
- #'views/SkEvent.cpp',
- #'views/SkEventSink.cpp',
- #'views/SkMetaData.cpp',
- #'views/SkTagList.cpp',
- #'views/SkTagList.h',
- #'views/SkTextBox.cpp',
- #'xml/SkBML_Verbs.h',
- #'xml/SkBML_XMLParser.cpp',
- #'xml/SkDOM.cpp',
- #'xml/SkJS.cpp',
- #'xml/SkJSDisplayable.cpp',
- #'xml/SkParse.cpp',
- #'xml/SkParseColor.cpp',
- #'xml/SkXMLParser.cpp',
- #'xml/SkXMLPullParser.cpp',
- #'xml/SkXMLWriter.cpp',
],
'include_dirs': [
'..',
- 'corecg',
- 'include',
- 'include/corecg',
- 'picture',
- 'sgl',
+ 'config',
+ '../third_party/skia/include/core',
+ '../third_party/skia/include/effects',
+ '../third_party/skia/include/images',
+ '../third_party/skia/include/utils',
],
'msvs_disabled_warnings': [4244, 4267,4345, 4390, 4554, 4800],
'mac_framework_dirs': [
@@ -662,7 +550,7 @@
'SK_BUILD_NO_IMAGE_ENCODE',
],
'sources!': [
- 'include/corecg/SkTypes.h',
+ '../third_party/skia/include/core/SkTypes.h',
'precompiled.cc',
],
'conditions': [
@@ -672,11 +560,13 @@
[ 'OS != "linux"', {
'sources/': [ ['exclude', '_linux\\.(cc|cpp)$'] ],
'sources!': [
- 'ports/SkFontHost_FreeType.cpp',
- 'ports/SkFontHost_gamma_none.cpp',
- 'ports/SkFontHost_fontconfig.cpp',
- 'ports/SkFontHost_tables.cpp',
- 'sgl/SkTypeface.cpp',
+ '../third_party/skia/src/ports/SkFontHost_FreeType.cpp',
+ '../third_party/skia/src/ports/SkFontHost_TryeType_Tables.cpp',
+ '../third_party/skia/src/ports/SkFontHost_gamma_none.cpp',
+ '../third_party/skia/src/ports/SkFontHost_fontconfig.cpp',
+ '../third_party/skia/src/ports/SkFontHost_gamma_none.cpp',
+ '../third_party/skia/src/ports/SkFontHost_tables.cpp',
+ '../third_party/skia/src/core/SkTypeface.cpp',
],
}],
[ 'OS != "win"', {
@@ -699,8 +589,8 @@
'-Wno-unused-function',
],
'sources!': [
- 'ports/SkFontHost_none.cpp',
- 'sgl/SkTypeface_fake.cpp',
+ '../third_party/skia/src/ports/SkFontHost_none.cpp',
+ 'ext/SkTypeface_fake.cpp',
],
'export_dependent_settings': [
'../third_party/harfbuzz/harfbuzz.gyp:harfbuzz',
@@ -714,22 +604,26 @@
}],
[ 'OS == "win"', {
'sources!': [
- 'images/SkMMapStream.cpp',
- 'ports/SkThread_pthread.cpp',
- 'ports/SkTime_Unix.cc',
+ '../third_party/skia/src/core/SkMMapStream.cpp',
+ '../third_party/skia/src/ports/SkThread_pthread.cpp',
+ '../third_party/skia/src/ports/SkTime_Unix.cc',
],
'configurations': {
'Debug': {
- 'msvs_precompiled_header': 'include/corecg/SkTypes.h',
+ 'msvs_precompiled_header': 'include/core/SkTypes.h',
'msvs_precompiled_source': 'precompiled.cc',
},
},
+ 'include_dirs': [
+ 'config/win',
+ ],
},],
],
'direct_dependent_settings': {
'include_dirs': [
- 'include',
- 'include/corecg',
+ 'config',
+ '../third_party/skia/include/core',
+ '../third_party/skia/include/effects',
'ext',
],
},
diff --git a/skia/skia.vsprops b/skia/skia.vsprops
deleted file mode 100644
index f9a825b..0000000
--- a/skia/skia.vsprops
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioPropertySheet
- ProjectType="Visual C++"
- Version="8.00"
- Name="skia"
- InheritedPropertySheets="$(SolutionDir)..\build\common.vsprops;$(SolutionDir)..\build\external_code.vsprops"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="include;include\corecg;corecg;sgl;picture"
- PreprocessorDefinitions="SK_BUILD_NO_IMAGE_ENCODE"
- DisableSpecificWarnings="4244; 4267; 4345; 4390; 4554; 4800"
- />
-</VisualStudioPropertySheet>
diff --git a/skia/using_skia.vsprops b/skia/using_skia.vsprops
index faf27e2..dab2ca8 100644
--- a/skia/using_skia.vsprops
+++ b/skia/using_skia.vsprops
@@ -6,6 +6,6 @@
>
<Tool
Name="VCCLCompilerTool"
- AdditionalIncludeDirectories="&quot;$(SolutionDir)..\skia\include&quot;;&quot;$(SolutionDir)..\skia\include\corecg&quot;;&quot;$(SolutionDir)..\skia\platform&quot;"
+ AdditionalIncludeDirectories="&quot;$(SolutionDir)..\skia\config&quot;;&quot;$(SolutionDir)..\skia\config\win&quot;;&quot;$(SolutionDir)..\third_party\skia\include\core&quot;;&quot;$(SolutionDir)..\third_party\skia\include\effects&quot;"
/>
</VisualStudioPropertySheet>
diff --git a/views/background.cc b/views/background.cc
index f2bd176..37b1251 100644
--- a/views/background.cc
+++ b/views/background.cc
@@ -7,7 +7,7 @@
#include "app/gfx/chrome_canvas.h"
#include "base/logging.h"
#include "skia/ext/skia_utils_win.h"
-#include "skia/include/SkPaint.h"
+#include "third_party/skia/include/core/SkPaint.h"
#include "views/painter.h"
#include "views/view.h"
diff --git a/views/background.h b/views/background.h
index acc3948..efb2a63 100644
--- a/views/background.h
+++ b/views/background.h
@@ -12,7 +12,7 @@
#endif // defined(OS_WIN)
#include "base/basictypes.h"
-#include "skia/include/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
class ChromeCanvas;
diff --git a/views/border.h b/views/border.h
index 7e7e2bd..98086c2 100644
--- a/views/border.h
+++ b/views/border.h
@@ -6,7 +6,7 @@
#define VIEWS_BORDER_H_
#include "app/gfx/insets.h"
-#include "skia/include/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
#include "views/view.h"
class ChromeCanvas;
diff --git a/views/controls/button/image_button.h b/views/controls/button/image_button.h
index c687561..da2e0a4 100644
--- a/views/controls/button/image_button.h
+++ b/views/controls/button/image_button.h
@@ -5,7 +5,7 @@
#ifndef VIEWS_CONTROLS_BUTTON_IMAGE_BUTTON_H_
#define VIEWS_CONTROLS_BUTTON_IMAGE_BUTTON_H_
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "views/controls/button/custom_button.h"
namespace views {
diff --git a/views/controls/button/text_button.h b/views/controls/button/text_button.h
index 16bac57..aeb2b72 100644
--- a/views/controls/button/text_button.h
+++ b/views/controls/button/text_button.h
@@ -6,7 +6,7 @@
#define VIEWS_CONTROLS_BUTTON_TEXT_BUTTON_H_
#include "app/gfx/chrome_font.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "views/border.h"
#include "views/controls/button/custom_button.h"
diff --git a/views/controls/image_view.h b/views/controls/image_view.h
index b7ac792..ca4e2ea 100644
--- a/views/controls/image_view.h
+++ b/views/controls/image_view.h
@@ -5,7 +5,7 @@
#ifndef VIEWS_CONTROLS_IMAGE_VIEW_H_
#define VIEWS_CONTROLS_IMAGE_VIEW_H_
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "views/view.h"
class ChromeCanvas;
diff --git a/views/controls/label.h b/views/controls/label.h
index fa620e4..d5f246e 100644
--- a/views/controls/label.h
+++ b/views/controls/label.h
@@ -7,7 +7,7 @@
#include "app/gfx/chrome_font.h"
#include "googleurl/src/gurl.h"
-#include "skia/include/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
#include "testing/gtest/include/gtest/gtest_prod.h"
#include "views/view.h"
diff --git a/views/controls/menu/chrome_menu.h b/views/controls/menu/chrome_menu.h
index 02caaed..f19af15 100644
--- a/views/controls/menu/chrome_menu.h
+++ b/views/controls/menu/chrome_menu.h
@@ -14,7 +14,7 @@
#include "base/gfx/rect.h"
#include "base/message_loop.h"
#include "base/task.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "views/controls/menu/controller.h"
#include "views/view.h"
diff --git a/views/controls/scrollbar/bitmap_scroll_bar.cc b/views/controls/scrollbar/bitmap_scroll_bar.cc
index 4a93782..e484517 100644
--- a/views/controls/scrollbar/bitmap_scroll_bar.cc
+++ b/views/controls/scrollbar/bitmap_scroll_bar.cc
@@ -8,7 +8,7 @@
#include "app/l10n_util.h"
#include "base/message_loop.h"
#include "grit/generated_resources.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "views/controls/menu/menu.h"
#include "views/controls/scroll_view.h"
#include "views/widget/widget.h"
diff --git a/views/controls/tabbed_pane.cc b/views/controls/tabbed_pane.cc
index 401cb79..04b7273 100644
--- a/views/controls/tabbed_pane.cc
+++ b/views/controls/tabbed_pane.cc
@@ -14,7 +14,7 @@
#include "base/logging.h"
#include "base/stl_util-inl.h"
#include "skia/ext/skia_utils_win.h"
-#include "skia/include/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
#include "views/background.h"
#include "views/fill_layout.h"
#include "views/widget/root_view.h"
diff --git a/views/controls/table/table_view.cc b/views/controls/table/table_view.cc
index bde6bec..5ab86d3 100644
--- a/views/controls/table/table_view.cc
+++ b/views/controls/table/table_view.cc
@@ -15,8 +15,8 @@
#include "base/string_util.h"
#include "base/win_util.h"
#include "skia/ext/skia_utils_win.h"
-#include "skia/include/SkBitmap.h"
-#include "skia/include/SkColorFilter.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+#include "third_party/skia/include/core/SkColorFilter.h"
#include "views/controls/hwnd_view.h"
namespace views {
diff --git a/views/controls/table/table_view.h b/views/controls/table/table_view.h
index 20514c3..2db5234 100644
--- a/views/controls/table/table_view.h
+++ b/views/controls/table/table_view.h
@@ -18,7 +18,7 @@
#include "app/l10n_util.h"
#include "base/logging.h"
-#include "skia/include/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
#if defined(OS_WIN)
// TODO(port): remove the ifdef when native_control.h is ported.
#include "views/controls/native_control.h"
diff --git a/views/controls/text_field.h b/views/controls/text_field.h
index 3b030ba..3ae3ed4 100644
--- a/views/controls/text_field.h
+++ b/views/controls/text_field.h
@@ -13,7 +13,7 @@
#include "app/gfx/chrome_font.h"
#include "base/basictypes.h"
#include "views/view.h"
-#include "skia/include/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
namespace views {
diff --git a/views/controls/throbber.cc b/views/controls/throbber.cc
index d230c55..5f10f1f 100644
--- a/views/controls/throbber.cc
+++ b/views/controls/throbber.cc
@@ -8,7 +8,7 @@
#include "app/resource_bundle.h"
#include "base/time.h"
#include "grit/theme_resources.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
using base::Time;
using base::TimeDelta;
diff --git a/views/focus/focus_manager_unittest.cc b/views/focus/focus_manager_unittest.cc
index 234db1d..7176a0d 100644
--- a/views/focus/focus_manager_unittest.cc
+++ b/views/focus/focus_manager_unittest.cc
@@ -10,7 +10,7 @@
#include "app/resource_bundle.h"
#include "base/gfx/rect.h"
-#include "skia/include/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
#include "views/background.h"
#include "views/border.h"
#include "views/controls/button/checkbox.h"
diff --git a/views/painter.cc b/views/painter.cc
index a2ad4ee..d44eef8 100644
--- a/views/painter.cc
+++ b/views/painter.cc
@@ -7,8 +7,8 @@
#include "app/gfx/chrome_canvas.h"
#include "app/resource_bundle.h"
#include "base/logging.h"
-#include "skia/include/SkBitmap.h"
-#include "skia/include/SkGradientShader.h"
+#include "third_party/skia/include/core/SkBitmap.h"
+#include "third_party/skia/include/effects/SkGradientShader.h"
namespace views {
diff --git a/views/painter.h b/views/painter.h
index 83610c3..71d5565 100644
--- a/views/painter.h
+++ b/views/painter.h
@@ -8,7 +8,7 @@
#include <vector>
#include "base/basictypes.h"
-#include "skia/include/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
class ChromeCanvas;
class SkBitmap;
diff --git a/views/view.cc b/views/view.cc
index 9740fc0..f535c50 100644
--- a/views/view.cc
+++ b/views/view.cc
@@ -16,7 +16,7 @@
#include "base/message_loop.h"
#include "base/scoped_handle.h"
#include "base/string_util.h"
-#include "skia/include/SkShader.h"
+#include "third_party/skia/include/core/SkShader.h"
#include "views/background.h"
#include "views/layout_manager.h"
#include "views/views_delegate.h"
diff --git a/views/widget/root_view_gtk.cc b/views/widget/root_view_gtk.cc
index 231beca..61bb5f5 100644
--- a/views/widget/root_view_gtk.cc
+++ b/views/widget/root_view_gtk.cc
@@ -8,7 +8,7 @@
#include "app/gfx/chrome_canvas.h"
#include "base/logging.h"
-#include "skia/include/SkColor.h"
+#include "third_party/skia/include/core/SkColor.h"
namespace views {
diff --git a/views/window/window_delegate.cc b/views/window/window_delegate.cc
index 5442743..ac5816f 100644
--- a/views/window/window_delegate.cc
+++ b/views/window/window_delegate.cc
@@ -6,7 +6,7 @@
#include "views/views_delegate.h"
#include "views/window/client_view.h"
#include "views/window/window.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
namespace views {
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.checksum
index d962d6f..a1bb212 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.checksum
@@ -1 +1 @@
-6ae2d04137f20ed212f1e52a9b6c0800 \ No newline at end of file
+7ba2678ff639f60b7779b32e50313216 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.png
index 2b8dc65..a859732 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.checksum
index 947ec96..789de4f 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.checksum
@@ -1 +1 @@
-d2e50d1291533fe01b11464e2add8362 \ No newline at end of file
+38510388aef0cb28be0dc2f7b494c7bc \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.png
index a037609..c8e91f7 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.checksum
index 48896c0..a9170f1 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.checksum
@@ -1 +1 @@
-b87745ebe262195b1177aa19c794c1cf \ No newline at end of file
+800c4d1e6e2502f93e3f7214015db975 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.png
index e7539dcd..ea99353 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.checksum
index 25965bf..791bc05 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.checksum
@@ -1 +1 @@
-44c0f0a724864cd036574095b0016c1f \ No newline at end of file
+49847dccfc5773b3498125ff4de26958 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.png
index cb6bdf2..de06681 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/backgrounds/size/zero-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/backgrounds/size/zero-expected.checksum
index 3ed21c3..660f2ad 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/backgrounds/size/zero-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/backgrounds/size/zero-expected.checksum
@@ -1 +1 @@
-54f3c0d623125d930d86e75d973aa08e \ No newline at end of file
+67fd2ce80a2f07d4b0b3e73d8d8fb76d \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/backgrounds/size/zero-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/backgrounds/size/zero-expected.png
index 6640c36..0d94ee9 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/backgrounds/size/zero-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/backgrounds/size/zero-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/canvas/canvas-as-image-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/canvas/canvas-as-image-expected.checksum
index 04b4bec..8600c33 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/canvas/canvas-as-image-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/canvas/canvas-as-image-expected.checksum
@@ -1 +1 @@
-df488383697cc2f271a6ed35c57ac5ec \ No newline at end of file
+2528bf888b42ee1ad9e399d36e570384 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-direction-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-direction-expected.checksum
index 03c0e74..af220f9 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-direction-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-direction-expected.checksum
@@ -1 +1 @@
-00c4ddd35589d5ee2cdff0303b791bb8 \ No newline at end of file
+2440530c6d19dc937bafe261ff1e2100 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-direction-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-direction-expected.png
index e439b04..85bb868 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-direction-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-direction-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-disabled-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-disabled-expected.checksum
index 02172db..963baf3 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-disabled-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-disabled-expected.checksum
@@ -1 +1 @@
-c0c328b5e9884de156f9c544b3e7d9b1 \ No newline at end of file
+304f813d543d7c697fe179dd09c21e04 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-disabled-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-disabled-expected.png
index 95c5812..eea058c 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-disabled-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/file-input-disabled-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/menulist-no-overflow-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/menulist-no-overflow-expected.checksum
index 14c05b2..ac46ebe 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/menulist-no-overflow-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/menulist-no-overflow-expected.checksum
@@ -1 +1 @@
-c0a40811e314f024ddc273560d6839f6 \ No newline at end of file
+cd67e15ffbb84c4086606eda1268b8b0 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/menulist-no-overflow-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/menulist-no-overflow-expected.png
index 1ce4ce5..8727875 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/menulist-no-overflow-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/forms/menulist-no-overflow-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.checksum
index 3851480..c7f5558 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.checksum
@@ -1 +1 @@
-66d2aac6fe24e0f857cf50c80578a2ea \ No newline at end of file
+d8eb517b58a0d53872ce12c4353ac1c6 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.png
index c423737..c89e559 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/reflections/reflection-direction-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/reflections/reflection-direction-expected.checksum
index 6f20f7b..d8328db 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/reflections/reflection-direction-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/reflections/reflection-direction-expected.checksum
@@ -1 +1 @@
-aab92cc98867d1815cfcb9a04cede8c2 \ No newline at end of file
+f848de999cdbdafdc59c2393dc989ea7 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/reflections/reflection-direction-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/reflections/reflection-direction-expected.png
index c5cb9cb..5662a75 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/reflections/reflection-direction-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/reflections/reflection-direction-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/repaint/control-clip-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/repaint/control-clip-expected.checksum
index b504f29..fd8536f 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/repaint/control-clip-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/repaint/control-clip-expected.checksum
@@ -1 +1 @@
-13afa523c52845863f1b65710c6c5320 \ No newline at end of file
+0206fba9f8fd6ed2d24845deebc16709 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/repaint/control-clip-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/repaint/control-clip-expected.png
index 0d0645d..953580b 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/repaint/control-clip-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/repaint/control-clip-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/replaced/width100percent-checkbox-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/replaced/width100percent-checkbox-expected.checksum
index 0671a5d..1009cd8 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/replaced/width100percent-checkbox-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/replaced/width100percent-checkbox-expected.checksum
@@ -1 +1 @@
-d69f4860d0dcf6dd8f37db8e268f28f6 \ No newline at end of file
+1a504e4a9db6a498ea66222d6125adf7 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/replaced/width100percent-checkbox-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/replaced/width100percent-checkbox-expected.png
index 6ce58ea..2c2de4d 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/replaced/width100percent-checkbox-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/fast/replaced/width100percent-checkbox-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.checksum
index 82f1dfa..beb51ab 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.checksum
@@ -1 +1 @@
-b1560114cea8ee19398ff472474a6311 \ No newline at end of file
+45f12f310f8c2fcb11a511375970aee9 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.png
index ddd1f0a..3cfd222 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/custom/stroked-pattern-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/custom/stroked-pattern-expected.checksum
index 438cac9..1e3f828 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/custom/stroked-pattern-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/custom/stroked-pattern-expected.checksum
@@ -1 +1 @@
-56f99a7ca0250be8b6722ee8777b4a3a \ No newline at end of file
+36f8785708d2b44c795708001ad11209 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/custom/stroked-pattern-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/custom/stroked-pattern-expected.png
index 4eed85b..42ad91a 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/custom/stroked-pattern-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/svg/custom/stroked-pattern-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla/bugs/bug23235-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla/bugs/bug23235-expected.checksum
index a3bee8f..6414428 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla/bugs/bug23235-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla/bugs/bug23235-expected.checksum
@@ -1 +1 @@
-ce9b6bd3a7bf0eaef6c86c6f4e03934e \ No newline at end of file
+d3a488bb5f51bb40c56c7399e6fd1d0a \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla/bugs/bug23235-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla/bugs/bug23235-expected.png
index 428dc9d..ce77164 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla/bugs/bug23235-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla/bugs/bug23235-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.checksum b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.checksum
index 4740a26..87e10c5 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.checksum
@@ -1 +1 @@
-573f7975e89a85eed5c96e2080b0425c \ No newline at end of file
+8f98b1e3fa2af922951dfd99b1ff77bd \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.png b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.png
index 2285775..6d6ff2c 100644
--- a/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-linux/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.checksum
index 00d7696..835abe4 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.checksum
@@ -1 +1 @@
-98b8a0a05bcff9f8d31839ffcb4f8140 \ No newline at end of file
+7cbe7e00e976766875e5064d0501360e \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.png
index e0405f32..86edca8 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t090501-c414-flt-ln-01-d-g-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.checksum
index d8f397d..aec80c40 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.checksum
@@ -1 +1 @@
-c775c2f267aeef15bbb11ba00b9c42d1 \ No newline at end of file
+c3a3db6bd33aebd0fd64e17d9d34f95e \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.png
index 2dd6833..9def3b8 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-00-d-g-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.checksum
index fa75d10..84509f8 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.checksum
@@ -1 +1 @@
-5e25a4a1ad251941b868ce1c937b3113 \ No newline at end of file
+ea22bf653266d57bbff07b144cc5870b \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.png
index 3f2b331..f299d9d 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t100304-c43-rpl-bbx-01-d-g-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.checksum
index ddeb97d..fa825c2 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.checksum
@@ -1 +1 @@
-c83cb26c9dbce63d34846ac15e37085e \ No newline at end of file
+7198312fdc52f646f7ab1df728a42911 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.png
index 5b0a77f..8ecad67 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/css2.1/t1004-c5524-width-00-b-g-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/editing/inserting/4960120-1-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/editing/inserting/4960120-1-expected.checksum
index ee00011..ff97e00 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/editing/inserting/4960120-1-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/editing/inserting/4960120-1-expected.checksum
@@ -1 +1 @@
-16ba500b5616d5e2a453dabb7c22f1ac \ No newline at end of file
+bc30e20a43060be9ea3a287410c5a280 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/editing/inserting/4960120-1-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/editing/inserting/4960120-1-expected.png
index 6b7958b..94d3df0 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/editing/inserting/4960120-1-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/editing/inserting/4960120-1-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/backgroundSize02-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/backgroundSize02-expected.checksum
index 1a003a5..4208ea8 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/backgroundSize02-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/backgroundSize02-expected.checksum
@@ -1 +1 @@
-afcabff0579e23755d0daff42e60e3d5 \ No newline at end of file
+64b363adc0b049d05159ec0c3bce810d \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/backgroundSize02-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/backgroundSize02-expected.png
index f570fea..bccc1af 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/backgroundSize02-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/backgroundSize02-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/zero-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/zero-expected.checksum
index f02f317..de8680c 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/zero-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/zero-expected.checksum
@@ -1 +1 @@
-be51a64593c71d1b364db5d5d12a6b09 \ No newline at end of file
+b292183585b609c8c55627110f00ef75 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/zero-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/zero-expected.png
index 212cdd2..85bf41a 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/zero-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/backgrounds/size/zero-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-01-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-01-expected.checksum
index 39a3bc9..19a6162 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-01-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-01-expected.checksum
@@ -1 +1 @@
-a43feb17ebc208d53232a0b66d83ebbf \ No newline at end of file
+590a35878fc999a5416ad5250207ce85 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-01-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-01-expected.png
index a6bcef8..38aff82 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-01-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-01-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-omit-right-slice-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-omit-right-slice-expected.checksum
index ab952eb..d7007fa1 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-omit-right-slice-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-omit-right-slice-expected.checksum
@@ -1 +1 @@
-6a8141102b509cdc7858f7c4869c353d \ No newline at end of file
+47520bd9cb13e406498689ab96e86713 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-omit-right-slice-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-omit-right-slice-expected.png
index c836348..c178d77 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-omit-right-slice-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-omit-right-slice-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-scale-transform-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-scale-transform-expected.checksum
index 53f8bc8..06fa0e07 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-scale-transform-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-scale-transform-expected.checksum
@@ -1 +1 @@
-228dd38d7393aa6d0a18b5744124b50e \ No newline at end of file
+e3123bbf91d65477d84ffd781f535aa5 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-scale-transform-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-scale-transform-expected.png
index 2d61110..8e147f5 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-scale-transform-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/borders/border-image-scale-transform-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/canvas/canvas-as-image-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/canvas/canvas-as-image-expected.checksum
index d723010..ff7cc3e 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/canvas/canvas-as-image-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/canvas/canvas-as-image-expected.checksum
@@ -1 +1 @@
-2bf6d7abf588407a23936586cd1018b5 \ No newline at end of file
+5ec6e68c84c06d3d4a6ae45afd1a3305 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/canvas/canvas-as-image-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/canvas/canvas-as-image-expected.png
index 6e1d883..1f4946e 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/canvas/canvas-as-image-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/canvas/canvas-as-image-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrollbar-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrollbar-expected.checksum
index 6a17d13..ee0ec97 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrollbar-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrollbar-expected.checksum
@@ -1 +1 @@
-bcca7a1ce619e4fc3fa0f7e7970812f0 \ No newline at end of file
+588dec46fd0f5be936c0b644f43421aa \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrollbar-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrollbar-expected.png
index 8c0fb21..80a34890 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrollbar-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrollbar-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrolled-type-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrolled-type-expected.checksum
index ffb42cc..433e9ca 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrolled-type-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrolled-type-expected.checksum
@@ -1 +1 @@
-0d4c69ae370cebe680ef46550684cbed \ No newline at end of file
+f06de0532c7fa8c7d16451f5eb65f18a \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrolled-type-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrolled-type-expected.png
index 8887334..5242755 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrolled-type-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/forms/textarea-scrolled-type-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.checksum
index c8157d7..974194b 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.checksum
@@ -1 +1 @@
-813a8ccff52d2d8e2d6aae957da7ca98 \ No newline at end of file
+e37ca46e84cf9cdaf7471ee80442fa95 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.png
index e72337d..b25221f 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/gradients/border-image-gradient-sides-and-corners-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/layers/self-painting-outline-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/layers/self-painting-outline-expected.checksum
index 6201ffc..6ccfe66 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/layers/self-painting-outline-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/layers/self-painting-outline-expected.checksum
@@ -1 +1 @@
-8ee1716a20c5372bbc52dfc67c593a68 \ No newline at end of file
+cbdf04fad73afde9177bea4c79417d68 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/layers/self-painting-outline-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/layers/self-painting-outline-expected.png
index f8802d6..f9689a2 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/layers/self-painting-outline-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/layers/self-painting-outline-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/overflow/overflow-focus-ring-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/overflow/overflow-focus-ring-expected.checksum
index f4f01fe..5492039 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/overflow/overflow-focus-ring-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/overflow/overflow-focus-ring-expected.checksum
@@ -1 +1 @@
-013c053ef8ddc7304ec95cbd25083c84 \ No newline at end of file
+d3a195006a2017f67ad1c0e3996e1d28 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/overflow/overflow-focus-ring-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/overflow/overflow-focus-ring-expected.png
index 87f5719..b609a53 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/overflow/overflow-focus-ring-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/overflow/overflow-focus-ring-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.checksum
index b666baf..363970b 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.checksum
@@ -1 +1 @@
-0938d024494ecc574e29a65e06b4bb93 \ No newline at end of file
+557d5da11bb19215c50723caa8b66554 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.png
index 66ddd0c..5c43186 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.txt b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.txt
index 34d87f7..2d136c5 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.txt
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/reflections/reflection-direction-expected.txt
@@ -1,23 +1,23 @@
-layer at (0,0) size 1357x614
- RenderView at (0,0) size 785x585
-layer at (0,0) size 1357x614
- RenderBlock {HTML} at (0,0) size 785x614
- RenderBody {BODY} at (8,8) size 769x598
- RenderBlock {DIV} at (0,1) size 671x592
- RenderBR {BR} at (335,296) size 0x0
- RenderBR {BR} at (671,592) size 0x0
- RenderText {#text} at (671,578) size 4x19
- text run at (671,578) width 4: " "
- RenderBlock {DIV} at (675,0) size 674x598
- RenderText {#text} at (335,578) size 4x19
- text run at (335,578) width 4: " "
- RenderText {#text} at (0,0) size 0x0
- RenderText {#text} at (0,0) size 0x0
-layer at (8,9) size 671x296
- RenderImage {IMG} at (0,0) size 335x296
-layer at (344,305) size 335x296
- RenderImage {IMG} at (336,296) size 335x296
-layer at (683,305) size 335x296
- RenderImage {IMG} at (0,297) size 335x296
-layer at (1022,8) size 335x593
- RenderImage {IMG} at (339,0) size 335x296
+layer at (0,0) size 1357x614
+ RenderView at (0,0) size 785x585
+layer at (0,0) size 1357x614
+ RenderBlock {HTML} at (0,0) size 785x614
+ RenderBody {BODY} at (8,8) size 769x598
+ RenderBlock {DIV} at (0,1) size 671x592
+ RenderBR {BR} at (335,296) size 0x0
+ RenderBR {BR} at (671,592) size 0x0
+ RenderText {#text} at (671,578) size 4x19
+ text run at (671,578) width 4: " "
+ RenderBlock {DIV} at (675,0) size 674x598
+ RenderText {#text} at (335,578) size 4x19
+ text run at (335,578) width 4: " "
+ RenderText {#text} at (0,0) size 0x0
+ RenderText {#text} at (0,0) size 0x0
+layer at (8,9) size 671x296
+ RenderImage {IMG} at (0,0) size 335x296
+layer at (344,305) size 335x296
+ RenderImage {IMG} at (336,296) size 335x296
+layer at (683,305) size 335x296
+ RenderImage {IMG} at (0,297) size 335x296
+layer at (1022,8) size 335x593
+ RenderImage {IMG} at (339,0) size 335x296
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-expected.checksum
index b389271..f451a12 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-expected.checksum
@@ -1 +1 @@
-a33391e15753b1f825ea14a5cd843281 \ No newline at end of file
+4002c26094e6e2b405bd8509cb388565 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-expected.png
index 46ab6a2..5aa24ba 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-horizontal-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-horizontal-expected.checksum
index b389271..f451a12 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-horizontal-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-horizontal-expected.checksum
@@ -1 +1 @@
-a33391e15753b1f825ea14a5cd843281 \ No newline at end of file
+4002c26094e6e2b405bd8509cb388565 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-horizontal-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-horizontal-expected.png
index 46ab6a2..5aa24ba 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-horizontal-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/repaint/layer-outline-horizontal-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/001-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/001-expected.checksum
index 27d7780..78f10cc 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/001-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/001-expected.checksum
@@ -1 +1 @@
-69f794de706a5a10c3c6613e1b446be6 \ No newline at end of file
+031d6364f009c3681811073c009374be \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/001-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/001-expected.png
index 362d24e..d8e4726 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/001-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/001-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/002-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/002-expected.checksum
index e86b85f..0840d67 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/002-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/002-expected.checksum
@@ -1 +1 @@
-22a71c3796cc02e12337cfaab00dcbc7 \ No newline at end of file
+98878965b08b62297107a3875e7d3128 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/002-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/002-expected.png
index 6913477..65fc97c 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/002-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/002-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/003-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/003-expected.checksum
index e86b85f..0840d67 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/003-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/003-expected.checksum
@@ -1 +1 @@
-22a71c3796cc02e12337cfaab00dcbc7 \ No newline at end of file
+98878965b08b62297107a3875e7d3128 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/003-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/003-expected.png
index 6913477..65fc97c 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/003-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/fast/replaced/003-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/scrollbars/overflow-scrollbar-combinations-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/scrollbars/overflow-scrollbar-combinations-expected.checksum
index f618563..3cf6513 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/scrollbars/overflow-scrollbar-combinations-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/scrollbars/overflow-scrollbar-combinations-expected.checksum
@@ -1 +1 @@
-662a0c15e91968a63e7d2df8124c69ba \ No newline at end of file
+9ac77f02fa09feae5d2d89212f165c63 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/scrollbars/overflow-scrollbar-combinations-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/scrollbars/overflow-scrollbar-combinations-expected.png
index f13835e..71ab018 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/scrollbars/overflow-scrollbar-combinations-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/scrollbars/overflow-scrollbar-combinations-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/filters-blend-01-b-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/filters-blend-01-b-expected.checksum
index 94d0a86..f6756f4 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/filters-blend-01-b-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/filters-blend-01-b-expected.checksum
@@ -1 +1 @@
-9e84e542274367f65adc09846d4c9b32 \ No newline at end of file
+2a7606ac085983fa7ec2ef84b35cf11e \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/filters-blend-01-b-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/filters-blend-01-b-expected.png
index 011f7cb..43c017a 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/filters-blend-01-b-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/filters-blend-01-b-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.checksum
index 7ed0a78..70c6aea 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.checksum
@@ -1 +1 @@
-5c4285ffb0c8b5ea9f555ae85493c3c6 \ No newline at end of file
+204a120024d135dfc3abf4fd498855ba \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.png
index 32502f6..7a18091 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/paths-data-03-f-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-01-b-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-01-b-expected.checksum
index 7677641..93eb950 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-01-b-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-01-b-expected.checksum
@@ -1 +1 @@
-c2d0e8ddc6fdcf829956136f22eefaa1 \ No newline at end of file
+ad54e81d252541ddf72492cfa242df8f \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-01-b-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-01-b-expected.png
index 011f7cb..86ad6c8 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-01-b-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-01-b-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-03-t-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-03-t-expected.checksum
index 12e4ee7..38d2450 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-03-t-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-03-t-expected.checksum
@@ -1 +1 @@
-689c478372398ac6d53146e8ec00c9ec \ No newline at end of file
+a62b473ca90c990b61653d61fa1d8495 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-03-t-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-03-t-expected.png
index 011f7cb..cd8e946 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-03-t-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/W3C-SVG-1.1/render-groups-03-t-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/carto.net/window-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/carto.net/window-expected.checksum
index 2eaa52f..03628e0 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/carto.net/window-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/carto.net/window-expected.checksum
@@ -1 +1 @@
-0113658fa79beafa257858666da0e773 \ No newline at end of file
+e81d6f6c9106f073a9f50b502c88c416 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/carto.net/window-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/carto.net/window-expected.png
index b28ba30..858d2f0 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/carto.net/window-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/carto.net/window-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/js-late-pattern-creation-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/js-late-pattern-creation-expected.checksum
index 9b168e4..a64501a 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/js-late-pattern-creation-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/js-late-pattern-creation-expected.checksum
@@ -1 +1 @@
-4e944ae601bba6b9a93839d91c02f317 \ No newline at end of file
+85e66a0edc3d4e9fe47424e5b3827bcc \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/js-late-pattern-creation-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/js-late-pattern-creation-expected.png
index 3b6afc8..285d719 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/js-late-pattern-creation-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/js-late-pattern-creation-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.checksum
index f8c4d79..ce46763 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.checksum
@@ -1 +1 @@
-281ccf2a0918f1ed40a36c8267d87bbe \ No newline at end of file
+213c8ee6b6b6e33bbc9cb4b17b55b7e3 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png
index 011f7cb..9063b8f 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/stroked-pattern-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/stroked-pattern-expected.checksum
index 038af99..b80f336 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/stroked-pattern-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/stroked-pattern-expected.checksum
@@ -1 +1 @@
-863511514a31648ddb6537126f387b3e \ No newline at end of file
+18ab6cbc0204d557a163bd9fc41a1af7 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/stroked-pattern-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/stroked-pattern-expected.png
index bd23557..b81d8ec 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/stroked-pattern-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/svg/custom/stroked-pattern-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug12910-2-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug12910-2-expected.checksum
index a15b076..55e18e7 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug12910-2-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug12910-2-expected.checksum
@@ -1 +1 @@
-dfd1bf8661a1fe20eb59b2a7e3293ed1 \ No newline at end of file
+8df0429b28265ebccb7018e38c6d3c17 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug12910-2-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug12910-2-expected.png
index 4405ab9..337684d 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug12910-2-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug12910-2-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1296-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1296-expected.checksum
index 884498e..bc016c2 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1296-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1296-expected.checksum
@@ -1 +1 @@
-c07f1c2b52d545e41e9c9605cb555cbd \ No newline at end of file
+b4ae571b8ac09d8736ad04e45e630e20 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1296-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1296-expected.png
index fc04fba..25b6965 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1296-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1296-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug137388-2-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug137388-2-expected.checksum
index 31df05f3..5604010 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug137388-2-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug137388-2-expected.checksum
@@ -1 +1 @@
-b07f17df31a34a4ff12d6ab8397d53a1 \ No newline at end of file
+5964998a4b3c9541be55d703fedea570 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug137388-2-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug137388-2-expected.png
index f1d4934..961962a 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug137388-2-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug137388-2-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1430-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1430-expected.checksum
index 9042b70..3a81d35 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1430-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1430-expected.checksum
@@ -1 +1 @@
-f5a48539127483876d655c1261358157 \ No newline at end of file
+c47336771ba5846391d48014b151c2a7 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1430-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1430-expected.png
index 6a964ab..d2c8c39 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1430-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug1430-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug23235-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug23235-expected.checksum
index 2bed93f..013b899 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug23235-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug23235-expected.checksum
@@ -1 +1 @@
-d4b4027fd7c6550b1e09f904c8198863 \ No newline at end of file
+1327cc932bb26d4f4f761edbf612cd00 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug23235-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug23235-expected.png
index 9ef4c91..300ffd9 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug23235-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug23235-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4093-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4093-expected.checksum
index f0a151b..98517a7 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4093-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4093-expected.checksum
@@ -1 +1 @@
-33e364975c4fa5c511841d9e2561f9ee \ No newline at end of file
+5ae63d337b4a3ff27280f7614d950020 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4093-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4093-expected.png
index eb6a2c8..dc6d31d 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4093-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4093-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4427-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4427-expected.checksum
index 80ca455..bb3d244 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4427-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4427-expected.checksum
@@ -1 +1 @@
-df259d0285942752f60656754bec5894 \ No newline at end of file
+1756fd807358a5899373036a0854b5d4 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4427-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4427-expected.png
index d220021..b763cc2c 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4427-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4427-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4523-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4523-expected.checksum
index dec3cb6..fb4dace 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4523-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4523-expected.checksum
@@ -1 +1 @@
-bbce254b780f56780423f6309dd9321d \ No newline at end of file
+a0738014f7fd389a7cea77c62c944015 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4523-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4523-expected.png
index 509335f..96cd583 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4523-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug4523-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug625-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug625-expected.checksum
index 1342c5d..2e5ff33 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug625-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug625-expected.checksum
@@ -1 +1 @@
-16ca5725dea90bbf2ddc5beea3ffa7de \ No newline at end of file
+96082294fe3d4a492b5f49dd5c416f78 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug625-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug625-expected.png
index 24df307..8674263 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug625-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug625-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug86708-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug86708-expected.checksum
index 379bc84..14ad2ca 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug86708-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug86708-expected.checksum
@@ -1 +1 @@
-55d2c3939bdbfcff991d312f7f1d070c \ No newline at end of file
+368007802da6e351a1d79e2a7b9064ff \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug86708-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug86708-expected.png
index 194de80..ba2750a 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug86708-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/bugs/bug86708-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/core/bloomberg-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/core/bloomberg-expected.checksum
index 678972b..2b70603 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/core/bloomberg-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/core/bloomberg-expected.checksum
@@ -1 +1 @@
-d02cd8a25cf905ed2a4455fd0b8ef693 \ No newline at end of file
+ada936d19d1819b4e45215aaa0120798 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/core/bloomberg-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/core/bloomberg-expected.png
index e26a343..fbdf0a9 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/core/bloomberg-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla/core/bloomberg-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug1647-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug1647-expected.checksum
index 517bd4a..e3d7690 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug1647-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug1647-expected.checksum
@@ -1 +1 @@
-6064ebe793d3ef48ffdc44ae47bbf683 \ No newline at end of file
+6fbaa69aaf6fd84790710a90160035ca \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug1647-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug1647-expected.png
index 72abf8d..f1df616 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug1647-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug1647-expected.png
Binary files differ
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.checksum b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.checksum
index e7095fb..a63c7e0 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.checksum
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.checksum
@@ -1 +1 @@
-240d2185fbd5a614ab3c701c4519ebb1 \ No newline at end of file
+7ffbc4e83cd3dd645cc63d1619076156 \ No newline at end of file
diff --git a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.png b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.png
index b696c1e..de2e67a 100644
--- a/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.png
+++ b/webkit/data/layout_tests/platform/chromium-win/LayoutTests/tables/mozilla_expected_failures/bugs/bug85016-expected.png
Binary files differ
diff --git a/webkit/glue/image_resource_fetcher.cc b/webkit/glue/image_resource_fetcher.cc
index df0ab7a..5320468c 100644
--- a/webkit/glue/image_resource_fetcher.cc
+++ b/webkit/glue/image_resource_fetcher.cc
@@ -16,7 +16,7 @@ MSVC_POP_WARNING();
#include "base/gfx/size.h"
#include "webkit/glue/image_decoder.h"
#include "webkit/glue/webview_impl.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
ImageResourceFetcher::ImageResourceFetcher(
WebViewImpl* web_view,
diff --git a/webkit/glue/webcursor_win.cc b/webkit/glue/webcursor_win.cc
index 5ed5d67..02cb52e 100644
--- a/webkit/glue/webcursor_win.cc
+++ b/webkit/glue/webcursor_win.cc
@@ -11,7 +11,7 @@
#include "base/logging.h"
#include "base/pickle.h"
#include "grit/webkit_resources.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "webkit/glue/webcursor.h"
using WebCore::PlatformCursor;
diff --git a/webkit/glue/webkit_glue.cc b/webkit/glue/webkit_glue.cc
index 09a72cd..02db375 100644
--- a/webkit/glue/webkit_glue.cc
+++ b/webkit/glue/webkit_glue.cc
@@ -34,7 +34,7 @@
#include "base/string_util.h"
#include "base/sys_info.h"
#include "base/sys_string_conversions.h"
-#include "skia/include/SkBitmap.h"
+#include "third_party/skia/include/core/SkBitmap.h"
#include "webkit/api/public/WebString.h"
#if defined(OS_WIN)
#include "webkit/api/public/win/WebInputEventFactory.h"
diff --git a/webkit/tools/layout_tests/test_expectations.txt b/webkit/tools/layout_tests/test_expectations.txt
index a445ba4..56b4494 100644
--- a/webkit/tools/layout_tests/test_expectations.txt
+++ b/webkit/tools/layout_tests/test_expectations.txt
@@ -2650,6 +2650,16 @@ BUG11613 WIN : LayoutTests/http/tests/navigation/success200-subframeload.html =
BUG11613 WIN : LayoutTests/http/tests/navigation/timerredirect-frames.html = FAIL
BUG11613 WIN : LayoutTests/http/tests/navigation/timerredirect-subframeload.html = FAIL
+// These tests were broken by the latest skia drop (masks and opacity).
+BUG_SENORBLANCO WIN LINUX : LayoutTests/fast/reflections/reflection-masks-opacity.html = FAIL
+BUG_SENORBLANCO WIN LINUX : LayoutTests/fast/reflections/reflection-masks.html = FAIL
+BUG_SENORBLANCO WIN LINUX : LayoutTests/svg/W3C-SVG-1.1/pservers-grad-16-b.svg = FAIL
+BUG_SENORBLANCO LINUX : LayoutTests/svg/custom/circular-marker-reference-3.svg = FAIL
+BUG_SENORBLANCO LINUX : LayoutTests/svg/custom/js-late-marker-creation.svg = FAIL
+BUG_SENORBLANCO WIN : LayoutTests/svg/custom/gradient-stop-corner-cases.svg = FAIL
+BUG_SENORBLANCO WIN : LayoutTests/svg/custom/grayscale-gradient-mask.svg = FAIL
+BUG_SENORBLANCO WIN : LayoutTests/svg/custom/js-late-gradient-and-object-creation.svg = FAIL
+
// This needs to be rebaselined. See http://trac.webkit.org/changeset/43378
BUG11669 LINUX : LayoutTests/fast/layers/remove-only-this-layer-update.html = FAIL