[go: nahoru, domu]

Add sampling parameter to drawImage[Rect]

This is a big change, but logically straight-forward: Migrate cc/blink to pass sampling explicitly to the drawImage calls (which no longer respect the paint's filter-quality).

This is part of a larger effort/migration to completely eliminate filter-quality from Skia. DrawImage calls already ignore it, and image-shaders soon will too. That shader migration is the subject of a separate CL in chrome.

Note: much of the motivation for this change in Skia is that we can now support finer control over filtering: explicit control of filter and mipmap choices (base, nearest, linear)
explicit coefficients for bicubic: you can control blur-vs-sharp with these.

Note also, that the current/legacy filter-quality has the subtle "bug" that it is treated differently between CPU and GPU backends in Skia (for kMedium). CPU used nearest for the miplevel, and gpu used trilerp. The new sampling struct eliminates this ambiguity, making the choice explicit (by the caller).

This last point is the cause of the diffs in this CL: these changes subtly affect when/where the legacy filter-quality is "interpreted" (i.e. converted logically to sampling). All of the diffs are tiny, and so I propose rebaselining them as part of this CL. When the final migration can land (converting all image-shaders to explicit sampling at construction time), then chrome will have complete control over this behavior, and (likely) there will be another subtle rebaselining effort.

Bug: 1169989
Bug: 1169871
Bug: skia:7650
Change-Id: Iabae6955a7da6287816ae6fd53f270cd58214aca
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2635080
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: vmpstr <vmpstr@chromium.org>
Reviewed-by: Florin Malita <fmalita@chromium.org>
Reviewed-by: Vasiliy Telezhnikov <vasilyt@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#846527}
150 files changed
tree: de383f1c5ae0b8b6445333f0b93230ec8d9dcabd
  1. android_webview/
  2. apps/
  3. ash/
  4. base/
  5. build/
  6. build_overrides/
  7. buildtools/
  8. cc/
  9. chrome/
  10. chromecast/
  11. chromeos/
  12. cloud_print/
  13. codelabs/
  14. components/
  15. content/
  16. courgette/
  17. crypto/
  18. dbus/
  19. device/
  20. docs/
  21. extensions/
  22. fuchsia/
  23. gin/
  24. google_apis/
  25. google_update/
  26. gpu/
  27. headless/
  28. infra/
  29. ios/
  30. ipc/
  31. jingle/
  32. media/
  33. mojo/
  34. native_client_sdk/
  35. net/
  36. pdf/
  37. ppapi/
  38. printing/
  39. remoting/
  40. rlz/
  41. sandbox/
  42. services/
  43. skia/
  44. sql/
  45. storage/
  46. styleguide/
  47. testing/
  48. third_party/
  49. tools/
  50. ui/
  51. url/
  52. weblayer/
  53. .clang-format
  54. .clang-tidy
  55. .eslintrc.js
  56. .git-blame-ignore-revs
  57. .gitattributes
  58. .gitignore
  59. .gn
  60. .vpython
  61. .vpython3
  62. .yapfignore
  63. AUTHORS
  64. BUILD.gn
  65. CODE_OF_CONDUCT.md
  66. codereview.settings
  67. DEPS
  68. DIR_METADATA
  69. ENG_REVIEW_OWNERS
  70. LICENSE
  71. LICENSE.chromium_os
  72. OWNERS
  73. PRESUBMIT.py
  74. PRESUBMIT_test.py
  75. PRESUBMIT_test_mocks.py
  76. README.md
  77. WATCHLISTS
README.md

Logo Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.

The project's web site is https://www.chromium.org.

To check out the source code locally, don't use git clone! Instead, follow the instructions on how to get the code.

Documentation in the source is rooted in docs/README.md.

Learn how to Get Around the Chromium Source Code Directory Structure .

For historical reasons, there are some small top level directories. Now the guidance is that new top level directories are for product (e.g. Chrome, Android WebView, Ash). Even if these products have multiple executables, the code should be in subdirectories of the product.