132 Commits

Author SHA1 Message Date
Sigurd Meldgaard
e58764fbe0
Move texture registry ownership to platform view (#4348)
* Move texture registry ownership to platform view

This enables the texture registry to survive activity pause on Android.
2017-11-22 09:55:45 +01:00
Brian Osman
0a7155d4e1
Disable linear blending, use SkColorSpaceXformCanvas instead (#4355)
This retains gamut correction (adjusting colors for screens with different capabilities), but does all blending and interpolation with sRGB-encoded values. That matches the behavior expected by most users, as well as the behavior of nearly all other systems. It also greatly simplifies the EGL code.

A future Skia change will make this behavior more of a first-class citizen, so some of these implementation details will change again, but the behavior will not. The bulk of this change (elimination of complication from the GL surface code) is permanent - it's just the SkColorSpaceXformCanvas that will be replaced.
2017-11-14 13:33:26 -05:00
Jason Simmons
fe6f3ab33a
In GetTexture, do not insert missing IDs into the texture registry map (#4339)
Fixes https://github.com/flutter/flutter/issues/12924
2017-11-09 10:04:41 -08:00
mikejurka
0e8331aa1a
Fix low-res rasterized images on Fuchsia. (#4325)
Plumb through Scenic display metrics to use during
Preroll.
2017-11-08 14:59:54 -08:00
Mikkel Nygaard Ravn
8eb37a1289
Fix compile error in scene_update_context (#4311) 2017-11-02 12:22:32 +01:00
Chinmay Garde
9a960f82f5 Add texture support (eg video, camera) (#4159) 2017-11-02 10:57:29 +01:00
P.Y. Laligand
6fcb45991d Move //dart to //third_party/dart. (#4245) 2017-10-19 01:20:38 -07:00
P.Y. Laligand
5fae5d52cf Allow the project to be mapped to a location other than //flutter. (#4203)
This is for Fuchsia where we would like it to be located at //third_party/flutter.
2017-10-13 17:00:58 -07:00
Chinmay Garde
a55aa23078 Make flow::Layer::Paint const. (#4200) 2017-10-11 16:48:31 -07:00
Chinmay Garde
0b8efb62a6 Make flow::LayerBuilder virtual and plug in the default layer builder. (#4199) 2017-10-11 16:26:18 -07:00
Chinmay Garde
1793f494a3 Move layer tree construction into flow::LayerBuilder so alternate builders can be plugged in. (#4197) 2017-10-11 12:25:55 -07:00
Adam Barth
160a98c2b2 Update paths to Fuchsia libraries (#4147)
These libraries are in Topaz now.
2017-09-27 13:45:49 -07:00
Jason Simmons
191a2fab39 Set a higher filter quality for drawing raster cache images (#4116)
According to Skia, kLow offers a quality improvement with little cost over
the default kNone

Fixes https://github.com/flutter/flutter/issues/12091
2017-09-18 12:28:52 -07:00
George Kulakowski
550d0c6490 Rename Magenta to Zircon, along with associated abbreviations (#4114) 2017-09-14 22:49:46 -07:00
Michael Goderbauer
08961f8ec5 Format all c-like sources with clang-format (#4088)
* format

* license script adaptions

* updated licenses

* review comments
2017-09-12 15:36:20 -07:00
George Kulakowski
3aa7522c11 Rename ftl to fxl in Fuchsia specific code (#4090) 2017-09-11 15:58:48 -07:00
Petr Hosek
51f12604f7 Add missing virtual destructors to virtual classes (#4083)
These were previously undetected because Wdelete-non-virtual-dtor
didn't work with std::unique_ptr, but that's no longer the case.
2017-09-09 14:01:31 -07:00
Adam Barth
457f92ba48 Update paths for Mozart move (#4081) 2017-09-08 15:24:16 -07:00
Ian McKellar
0047b71aaf Updates for the dart:fidl.internal rename and split. (#4070)
Now it references dart:zircon and dart:fuchsia.
2017-09-06 15:33:43 -07:00
Josh Gargus
321e68e8bf Rename Mozart SceneManager to "Scenic". (#4056) 2017-09-01 17:40:27 -07:00
Adam Barth
107838c0a1 Fix Fuchsia build 2017-08-31 17:23:41 -07:00
Adam Barth
73554a1c32 Add //garnet (#4043)
This repository contains FTL now in the Fuchsia build.
2017-08-31 16:47:13 -07:00
mikejurka
3e245ae812 Fix crash when removing stories. (#4003)
Ensure that a Mozart EntityNode (that corresponds
to an ExportNode) is always released on the
Rasterizer thread.

MZ-259
2017-08-23 17:32:19 -07:00
Ian McKellar
f08b08417d Update to new Dart FIDL bindings API. (#3988)
* Update to new Dart FIDL bindings API.
2017-08-22 13:32:46 -07:00
Jason Simmons
a7ae2abb59 Capture fractional pixel coordinates in the bounds of raster cache bitmaps (#3974)
The bitmap used to hold a prerolled image in the raster cache must have an
integer width/height in pixels.  However, the picture used to draw the image
may have a non-integer width/height in physical coordinates and thus not
completely fill the bitmap.  The compositor should only select the subset
of the bitmap that reflects the portion filled by the rendered picture.
2017-08-10 14:08:16 -07:00
Chinmay Garde
1de56a33d2 On emulators, render onscreen (with warnings) if any of the MakeS32 based SkSurface creation calls fail. (#3947) 2017-08-02 14:29:29 -07:00
Jeff Brown
8ee1910ca9 Use metrics provided by scene events. (#3922)
Compute the necessary texture resolution using more accurate scaling
information provided by Mozart scene node metrics events instead of the
device pixel ratio provided by the Mozart view properties (which we
might remove in the future).

This allows us to allocate smaller textures when a Flutter view is
being scaled down.
2017-07-24 19:17:55 -07:00
Jason Simmons
e687626a65 Incorporate the device pixel ratio when drawing shadows (#3919) 2017-07-24 12:01:43 -07:00
Chinmay Garde
925298d947 Update the content handler to use the Mozart session API. (#3887) 2017-07-18 15:40:18 -07:00
Brian Osman
de00757ddb Revert "Revert "Reland "Run Flutter on iOS and Android with color correct Skia (#3826)" (#3878)" (#3895)
This reverts commit 1db18a40da855b102e391cb11189e73f9c2ec40d.
2017-07-18 15:58:35 -04:00
Benjamin Lerman
ad7f258bfc Fix usage of std::labs (#3891) 2017-07-18 09:54:24 -04:00
Chinmay Garde
015e8cf521 Ensure that the source rect used for the the raster cache replacement is the same as the size of the N32Premul surface. (#3889)
Also adds debug printers for SkRect and SkPoint.
2017-07-17 23:42:40 -07:00
freiling
e758dc361a [flow] remove flush from SceneUpdateContext::ExecutePaintTasks (#3863)
Instead of flushing each canvas, flush once on the context from which each of the canvas is derived.
This gives us a significant performance increase on the fuchsia vulkan backend
2017-07-14 12:06:10 -07:00
Collin Jackson
1db18a40da Revert "Reland "Run Flutter on iOS and Android with color correct Skia (#3826)" (#3878)
This reverts commit 2d9155e174d83e9646c951dbbc85fe1eda8b20e9.

Fixes a regression with semitransparent images (flutter/flutter#11169)
2017-07-13 14:22:25 -07:00
Brian Osman
2d9155e174 Reland "Run Flutter on iOS and Android with color correct Skia (#3826)
* Revert "Revert "Reland "Run Flutter on iOS and Android with color correct Skia" (#3818)" (#3823)"

This reverts commit db8d8a9979901d05b011368226ad5bf61b1da13f.

* Fix test code to match internal API change
2017-06-27 13:30:10 -04:00
Brian Osman
db8d8a9979 Revert "Reland "Run Flutter on iOS and Android with color correct Skia" (#3818)" (#3823)
This reverts commit 2650f529a138de9cc9116bb9194dbe22f8e0df25.
2017-06-23 20:28:24 -04:00
Brian Osman
2650f529a1 Reland "Run Flutter on iOS and Android with color correct Skia" (#3818)
* Revert "Revert "Run Flutter on iOS and Android with color correct Skia (#3743)" (#3775)"

This reverts commit cfe70e07d386d6052267fe3772bbd641c8413a54.

* Enable sRGB on IO thread, too

* Add 4444 as a fallback rendering mode

* Use bare ptr to SkColorSpace (not sk_sp) in PrerollContext
2017-06-23 20:21:29 -04:00
P.Y. Laligand
f61869eba0 Prevent GN from choking on conditional imports. (#3805) 2017-06-20 23:39:18 -07:00
Michael Goderbauer
cfe70e07d3 Revert "Run Flutter on iOS and Android with color correct Skia (#3743)" (#3775)
This reverts commit ffe8181ffe7432b61a67323c80fd8025704e4695.
2017-06-14 16:26:20 -07:00
mattsarett
ffe8181ffe Run Flutter on iOS and Android with color correct Skia (#3743)
* Run Flutter on iOS and Android with color correct Skia (#3716)

***Turns on color correct rendering for Android and iOS
***Communicates dst color space to raster cache
***Turns on color space aware image decoding

Test:
***color_testing_demo on Pixel XL
***flutter_gallery on iPad Mini and iPad Pro (haven't figured out how to run manual_tests on iOS)

TODO:
I needed to split up this CL somewhere. These are follow-up tasks.
***Make desktop backends color correct
***Make debugging tools (ex: encoding frames to png) preserve color space
***Investigate using UIKit API to allow iOS to fine tune color space of rendered content
2017-06-09 08:39:21 -04:00
Chinmay Garde
1c6a531e89 Rework raster cache to fix numerous issues. (#3717)
* Fix pixel rounding error in the picture layer by first ensuring that
  the texture for the image is at least as big as the next integer size
  along each dimension and using kStrict_SrcRectConstraint while
  drawing the same image. We already select the source subset by
  looking at the cull rect of the picture.
* Decompose the transformation matrix into a series of operations that
  generated the same to calculate the scale at which to rasterize the
  picture. This make the rasterization scale resilient to
  transformations that introduce a perspective component to the
  resultant matrix.
* The scale in the decomposed matrix is now part of the key in the
  cache.
* Raster cache images that could never be rasterized were still taking
  part in the cache. Now, those entries are rejected early on. This
  leads to the sweep after the frame iterating over fewer items.
* Added a unit test target.
2017-06-05 15:57:05 -07:00
Chinmay Garde
70b71a49ea Revert "Run Flutter on iOS and Android with color correct Skia" (#3738) 2017-06-05 14:08:22 -07:00
mattsarett
fe82757603 Run Flutter on iOS and Android with color correct Skia (#3716)
***Turns on color correct rendering for Android and iOS
***Communicates dst color space to raster cache
***Turns on color space aware image decoding

Test:
***color_testing_demo on Pixel XL
***flutter_gallery on iPad Mini and iPad Pro (haven't figured out how to run manual_tests on iOS)

TODO:
I needed to split up this CL somewhere. These are follow-up tasks.
***Make desktop backends color correct
***Make debugging tools (ex: encoding frames to png) preserve color space
***Investigate using UIKit API to allow iOS to fine tune color space of rendered content
2017-06-05 14:59:04 -04:00
Jason Simmons
df5f62f236 Add a flag that checkerboards offscreen render targets created by SkCanvas.saveLayer (#3685)
Fixes https://github.com/flutter/flutter/issues/9473
2017-05-11 15:00:16 -07:00
Jason Simmons
c0f1e3b47b Change the shadow elevation parameter to floating point (#3637) 2017-04-27 10:52:13 -07:00
Jason Simmons
40718a59c3 Improved parameters for Skia shadows (#3635) 2017-04-27 10:13:28 -07:00
freiling
2a4af6906e Back Vulkan Rasterizer with Mozart View (#3568)
This version does not recycle buffers. It is meant only as an initial solution,
and the proper buffer recycling logic has been broken out into a separate change
2017-04-07 17:22:53 -07:00
Chinmay Garde
1c07ea530f Remove uses of //base from all //flutter projects and replace them with //fml variants. (#3492) 2017-03-22 15:42:51 -07:00
Jason Simmons
98063f9d41 Improve the shadow drawing parameters (#3499)
See https://github.com/flutter/flutter/issues/8929
2017-03-22 14:47:57 -07:00
Jason Simmons
6b9eda4a40 Canvas.drawShadow API based on SkShadowUtils::drawShadow (#3486) 2017-03-20 14:17:47 -07:00