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
Adam Barth
6d1af600b1
Trim unneeded depedendencies from sky/compositor
...
Now we just depend on Skia and Base, which makes the compositor easier
to understand.
Also, update our skia/ext/refptr.h to match the current version of the
code in Chromium. This version adds support for several useful C++11
patterns.
2016-01-12 22:02:08 -08:00
Adam Barth
2e5d3c4977
Preroll rasterization
...
Prerolling the rasterization tasks reduces the number of render target
switches because we don't interrupt the main render target.
2016-01-08 13:17:13 -08:00
Adam Barth
198094e427
Fix crash with empty rect
...
Don't attempt to draw with a zero-by-zero window.
2015-12-08 14:46:35 -08:00
Adam Barth
535afcb092
Improve the crash fix in rasterizer_mojo
...
The previous version can still crash if we try to draw between the time when we
initialize context_ and when we actually make the MGL context current.
2015-12-08 12:51:50 -08:00
Adam Barth
535eb30855
Don't crash when RasterizerMojo::Draw happens without a context
...
If we don't have a context, we can't draw, so bail out early.
2015-12-08 11:32:30 -08:00
Chinmay Garde
72814b2712
Ensure GL context as soon as the accelerated widget is available
2015-12-03 14:54:32 -08:00
Florian Loitsch
372355ad22
Make rasterizer a mojo service.
2015-12-02 16:28:39 -08:00
George Kulakowski
e08bd29aba
Flip y coordinate on FNL as a workaround
2015-11-30 14:10:07 -08:00
Collin Jackson
0904164fd6
Fix https://github.com/flutter/flutter/issues/371 renaming "sky" and "chromium" to "flutter" in logs and Mac Shell UI
2015-11-16 14:54:18 -08:00
Adam Barth
56601fcfa3
Wire sky_shell.mojo to draw via MGL
...
After this patch, we can execute Dart code and draw the result via MGL. We
still need to plumb in services.
2015-11-14 07:42:25 -08:00
Adam Barth
96b847cd43
Wire sky_shell.mojo up to native_viewport
...
After this patch, we can execute Dart code an create an X window. There's a
sketch of some graphics code, but it's not wired up yet.
2015-11-13 14:00:34 -08:00
Adam Barth
8a6ef54343
Move GPU code into direct
...
I'll add another subdirectory to GPU for Mojo soon.
2015-11-12 19:56:38 -08:00
Chinmay Garde
6d7a56b7ed
Disable instrumentation when rendering to a trace file
2015-10-06 17:29:58 -07:00
Chinmay Garde
b95b5292b8
Setup infrastructure to capture SKP traces when the frame interval exceeds certain thresholds
2015-10-06 17:03:10 -07:00
Chinmay Garde
418ed6f689
Allow visualizing engine and rasterizer statistics simultaneously
2015-09-30 17:18:37 -07:00
Chinmay Garde
60176eb6fa
Account for the canvas flush and surface swap buffers durations in the instrumented frame times (via the ScopedFrame)
2015-09-30 15:07:57 -07:00
Chinmay Garde
f222d57e4d
When capturing a frame, pass the frame size to the top level picture
2015-09-22 14:33:27 -07:00
Chinmay Garde
28aa97988d
Move picture_serializer from sky/shell/gpu to sky/compositor
2015-09-21 16:22:33 -07:00
Chinmay Garde
0a2984c959
Remove the SERIALIZE_LAYER_TREE macro
2015-09-21 15:46:39 -07:00
Chinmay Garde
ef4df93e06
SkPicture tracing to file follows same path as rendering into the OpenGL context
2015-09-21 15:45:09 -07:00
Chinmay Garde
a3af5bd1e8
Remove picture_rasterize.h|cc
2015-09-18 14:31:05 -07:00
Chinmay Garde
08da55706c
Make the paint context own the rasterizer and options. Also give it the ability to vend frames to render into.
2015-09-10 16:41:54 -07:00
Chinmay Garde
d0009550c0
PictureRasterizer for caches pictures as images
2015-09-09 14:52:58 -07:00
Chinmay Garde
153a800578
Update SketchySerializeLayerTree to account for API updates.
...
Usually disabled via the `SERIALIZE_LAYER_TREE` macro.
2015-09-09 10:30:03 -07:00
Chinmay Garde
b44a86c08a
PictureLayers cache the contents of their pictures if the pictures
...
dont mutate from frame to frame
2015-09-09 09:54:30 -07:00
Adam Barth
bdc2cdc1e8
Add a sketchy function for serializing SkPictures
...
We'll need to make this fancier as the compositor gets smarter.
2015-09-08 14:02:13 -07:00
Adam Barth
e5d7e69346
Pass the sky::LayerTree to the GPU thread for drawing
...
Instead of squashing the layers down into a single SkPicture, we now pass the
tree to the GPU thread, which draws everything separately.
2015-09-03 19:20:32 -07:00
Adam Barth
795df1327b
Plumb physical size along with SkPicture
...
Previously we were using the cull rect of the SkPicture to size the GPU buffer,
but Skia is too smart and shrinkwraps the cull rect, which meant we weren't
sizing the GPU buffer to the right size.
Fixes #814
2015-08-26 09:26:51 -07:00
Adam Barth
33994d06f7
Don't corrupt drawing when rotating
...
Previously there was a race condition when updating the size of the GLSurface.
Now we explicitly update the size of the surface to match what we expect.
Fixes #610
2015-08-17 16:45:20 -07:00
Adam Barth
011ce5d8e7
Clear the frame to black before drawing
...
We used to do this in the SkPicture, but it's simpler to do it in the
rasterizer now that we're using multiple SkPictures in Dart.
2015-08-14 10:45:14 -07:00
Adam Barth
5f62ffe1f4
Swith from skia::RefPtr to RefPtr
...
Now that we can use WTF everywhere, we don't need to use skia::RefPtr.
2015-08-10 14:18:38 -07:00