85 Commits

Author SHA1 Message Date
Chinmay Garde
32ba859650 Only attempt to draw in the rasterizer if a valid layer tree is received. (#2958) 2016-08-19 16:03:14 -07:00
Chinmay Garde
d81634b70d Remove the unused gpu_mojo GN target and associated source files. (#2945) 2016-08-18 11:39:55 -07:00
Chinmay Garde
ace7ce8c01 Make the engine provide layer trees to the rasterizer via a pipeline. (#2942) 2016-08-18 11:23:15 -07:00
Chinmay Garde
a413ef0bb0 If GrGLContext setup fails, log OpenGL platform specific information. (#2897) 2016-08-10 11:26:26 -07:00
Adam Barth
9c09565712 Update paths to account for buildroot 2016-08-09 13:52:15 -07:00
Adam Barth
5f75e0bf30 Remove more //base dependencies from //sky/shell (#2889)
This patch hides the base::SingleThreadedTaskRunner, which pulls a big
switchover to ftl::WeakPtr and std::function.
2016-08-08 20:00:37 -07:00
Adam Barth
4fa03ded48 Remove //base dependencies from //sky/shell (#2888) 2016-08-08 14:58:25 -07:00
Jason Simmons
d4b9ce9797 Unblock the Mojo main thread during rasterizer setup (#2868)
Fixes https://github.com/flutter/flutter/issues/4957
2016-08-04 16:52:54 -07:00
Adam Barth
410bc4c313 Remove skia::RefPtr (#2851)
Also, remove the hacks that integrate Skia ref counting with WTF. Now we
just use sk_sp everywhere for managing Skia ref counts.
2016-08-01 22:21:37 -07:00
Adam Barth
d6476a65c3 Port //flow to //lib/ftl (#2847)
This patch removes almost all //base dependency of //flow. The only dependency
left is on tracing.
2016-08-01 15:11:56 -07:00
Jason Simmons
3dac5a71ea Drop the last layer tree when tearing down the rasterizer (#2836)
The LayerTree may be holding references to obsolete Skia/GPU resources,
notably the GrGLGpu.  The old GrGLGpu should be deleted before a new
GrGLGpu is created during the next rasterizer setup.

Fixes https://github.com/flutter/flutter/issues/5074
2016-07-27 15:31:50 -07:00
Adam Barth
7c87227702 Update Skia (#2825) 2016-07-26 12:33:37 -07:00
Adam Barth
11dd5cada9 Add trace events to swap buffers (#2823) 2016-07-26 12:16:32 -07:00
Jason Simmons
d71a864e58 Clear invalid resources from the raster cache when the surface is destroyed (#2821) 2016-07-25 16:14:34 -07:00
Jason Simmons
789c1e799f Disable rendering if the rasterizer can not create a GL/EGL context (#2817)
Fixes https://github.com/flutter/flutter/issues/4972
2016-07-22 11:13:21 -07:00
Jason Simmons
9546168c37 Recreate the EGL surface after a resize in order to correctly handle screen rotation on Android (#2813) 2016-07-21 15:13:26 -07:00
Chinmay Garde
c876974381 Attempt font fallback resolution using CoreText on iOS. (#2800) 2016-07-18 14:58:23 -07:00
Chinmay Garde
fe69b034c0 Remove dependencies on ui, third_party/mesa and mojo/convertors. Provide simple alternatives. (#2783) 2016-07-12 14:47:44 -07:00
Adam Barth
81ae27ab61 Remove startup flicker on Android (#2733)
According to hackbod on Stack Overflow, we're supposed to block in the
surfaceCreated callback until we've actually drawn into the surface:

http://stackoverflow.com/questions/8772862/surfaceview-flashes-black-on-load/8888108#8888108
2016-06-02 21:01:02 -07:00
Adam Barth
44429c06eb Clear the background during load (#2710)
Previously we'd draw uninitialized memory. Now we draw black.

Fixes #3447
2016-05-25 17:45:40 -07:00
Jason Simmons
6110ec2d11 Fall back to an RGBA4444 canvas configuration if 8888 is not supported (#2649) 2016-05-05 11:55:45 -07:00
Adam Barth
6e3228cf81 Revert "Record layer tree to an SkPicture before rasterization (#2628)"
This reverts commit 5bc5c7b5246d62af70780ec7ba0203ac3f318226.

This commit appears to have caused
https://github.com/flutter/flutter/issues/3658
2016-05-01 14:23:13 -07:00
Adam Barth
5bc5c7b524 Record layer tree to an SkPicture before rasterization (#2628)
This lets Skia run an optimization pass over the SkPicture before actually
issuing GL commands.
2016-04-28 10:15:38 -07:00
Adam Barth
625e937442 Update Skia (#2626) 2016-04-27 14:59:06 -07:00
James Robinson
24adf9dbdc Merge pull request #2611 from jamesr/better_tracing
Improve tracing in graphics stack, esp on Mojo
2016-04-22 12:38:55 -07:00
Adam Barth
b9ff394182 Break dependency from Layer to PaintContext (#2609)
Instead, make Layer::Paint take a new PaintContext that has just exactly
the state that it needs, mirroring PrerollContext. Also, rename
PaintContext to CompositorContext because it holds the context for the
whole compositor.
2016-04-21 23:05:41 -07:00
Adam Barth
dda79d0312 Fix style in //flow/instrumentation (#2608)
This patch makes these files better match Google C++ style.

Also, add the engine lap time when running on Mojo.
2016-04-21 22:36:46 -07:00
Tony Gentilcore
4062813e70 Set GLContext before calling MGLEcho. 2016-04-21 15:57:21 -07:00
Adam Barth
70d40c91d3 Use MGLEcho to provide back pressure for Mozart (#2606)
Related to https://github.com/domokit/mojo/issues/684
2016-04-21 14:25:00 -07:00
Adam Barth
d813b3d58c Update to mojo a37b8c21cedc3d1b94f7be276e513cdea88e09ac 2016-04-21 14:12:34 -07:00
Jason Simmons
7182341f85 Merge pull request #2579 from jason-simmons/skia_skp_capture
Add an HTTP server for exporting Flutter debug info and a request han…
2016-04-06 10:22:46 -07:00
Adam Barth
2123899cc6 Jank insted of flicker in Mozart
Currently there's no good way of synchronizing layout changes with children in

Mozart. Previously we flickered when we were out of sync with our child. Now we

jank instead because that's a more acceptable artifact while we work on

improving Mozart.



Fixes https://github.com/flutter/flutter/issues/3024
2016-04-04 12:17:39 -07:00
Adam Barth
4e6fd739d1 Merge pull request #2566 from abarth/roll_mojo
Update Mojo
2016-03-30 15:27:57 -07:00
Chinmay Garde
d43bae3eeb Don't crash if the scene has no root layer set. 2016-03-30 15:14:17 -07:00
Adam Barth
3f7d5ef6f8 Update code to account for Mozart changes
The layout protocol in Mozart changed. Now we need to pipe a scene version
through the system to the compositor.
2016-03-30 15:13:58 -07:00
Adam Barth
e3c3be1c21 Handle 0x0 sizes in Mozart
When we're created off-screen, Mozart gives us a 0x0 view to populate. Rather
than trying to draw a 0x0 texture, we just acknolwedge the frame request
immediately. This matches what we do in the non-Mozart rasterizer.
2016-03-15 13:37:17 -07:00
Adam Barth
3f4224d069 Update mojo_sdk 2016-03-10 12:58:18 -08:00
Adam Barth
e416866484 Enable Mozart hit testing
We now mark our root node as opaque to hit testing. We don't seem to be getting
events in child views, however.
2016-03-04 11:21:51 -08:00
Adam Barth
f7265449bf Move ganesh_canvas to sky/shell/gpu/direct/
We only use the ganesh canvas in the direct configuration. This patch moves the
class into the directory to make that clear.
2016-02-17 11:16:14 -08:00
Adam Barth
c773bcac44 Attach a stencil buffer
Skia can go faster (and crashes less) when we have a stencil buffer.

Fixes https://github.com/flutter/flutter/issues/1931
2016-02-17 11:02:03 -08:00
Adam Barth
d3dbc1cda4 Polish Mojo platform implementation
* Use Node::Combinator::PRUNE, which stops the Mozart launcher from showing red
  when we're loading child views. Instead of blocking the whole app, we'll now
  just prune away the children that aren't ready. Eventually we'll want
  to let authors control these operations.

* Grab the service registry in AcceptConnection rather than CreateView. The
  CreateView comes from the Mozart launcher, which isn't where we want to get
  the service registry. Now we get the service registry from the first app to
  connect, which isn't right either but at least works while we sort out what
  we really want.
2016-02-11 12:43:37 -08:00
Adam Barth
4b921cbb5e Make Mozart draw child views
Previously we weren't factoring in the layer's offset properly and we were
drawing the child views below the background layer.
2016-02-08 14:36:38 -08:00
Adam Barth
e3bf0fa3c1 Include child scenes when uploading to Mozart
Previously we just dropped child scenes on the floor. Now we upload them
to Mozart. However, we just draw them on top of all the other content
and don't apply any clips or blends.
2016-02-03 14:16:09 -08:00
Jason Simmons
052d65cc14 Clear the Flow raster cache when a GrContext is destroyed
After an application is suspended and the GrContext associated with the
Flutter view is destroyed, the raster cache still contains images tied
to the defunct context.  The SkyShell process will crash if these images
are used after the application resumes.
2016-02-01 10:36:09 -08:00
Adam Barth
c3c5af1fbe Move Flow layers to //flow/layers 2016-01-30 23:35:22 -08:00
Adam Barth
411c6bfa4b Port flutter.mojo to Mozart
Everything should work except the keyboard.
2016-01-28 16:04:19 -08:00
Adam Barth
e22e75ea50 Merge pull request #2302 from abarth/rm_scoped_ptr
Remove almost all uses of base::scoped_ptr
2016-01-27 08:38:41 -08:00
Adam Barth
142c5dc5ec Remove almost all uses of base::scoped_ptr
We now use std::unique_ptr more consistently.
2016-01-27 01:05:47 -08:00
Adam Barth
c3a78a1796 Remove dependencies on ui/gfx/geometry
We have enough geometry classes kicking around. We don't need the
ui/gfx/geometry types too.
2016-01-26 23:57:20 -08:00
Adam Barth
0b629d419f Move //sky/compositor to //flow
Now that the compositor doesn't have any tricky deps, we can make it a
top-level project, which saves a bunch of typing.
2016-01-12 22:39:51 -08:00