If there are no other gestures in the arena, we should kick off the scroll
gesture right away. This change pulled a refactoring of how we dispatch events
to Widgets. Now we dispatch events to Widgets interleaved with their associated
RenderObjects. (Previously we dispatched to all of the RenderObjects first.)
We need to always remove the widget when you sync a non-visible
widget, even if we already have it, because otherwise we'll try to
sync it with null again later, which causes a crash.
Test in #938.
...and not when we mount and dismount.
Turns out that when we dismount, it's too late -- we've already set
renderObject to null.
We also mark the mixed viewport as dirty when it is removed from its parent.
Without this, we try to reuse the child nodes in subsequent syncs, which is a disaster.
This gets rid of the rest of the files in //gpu and the GLES{2,3}
headers from //third_party/khronos. The GL headers used for GLES{2,3}
come from the platform being targetted, that is
//mojo/public/c/gpu/GLES2 for Mojo,
//third_party/android_tools/ndk/platforms/android-XX/usr/include/GLES2
for Android and the OpenGL framework for Mac/iOS.
The //third_party/khronos/EGL headers are still being used by some
utility code in //ui/gl. This code is only really useful on Android, as
Sky doesn't use EGL on iOS/Mac/Mojo, but it's compiled in on all
platforms currently and relies on some EGL defines that are not set in
the EGL headers we currently use. These could probably be removed
without much trouble.
The //third_party/khronos/GLES2 headers are still used by some of
//ui/gl on iOS. These should be using the iOS OpenGL framework headers,
and will in the future.
Removes the unneeded KHRONOS_APICALL override from KHR/khrplatform.h
Rolls to a newer Mojo SDK that doesn't expect //third_party/khronos
Add a way of having keys based on numeric types or DateTimes by having a ValueKey<T> class.
Remove the redundant ways of declaring things, except for leaving one shorthand -- you can say `new Key(s)` instead of `new ValueKey<String>(s)`.
Oneline diffstat: 489 files changed, 4 insertions(+), 186980
deletions(-)
This deletes all of //gpu (except for one export header) and
various bits of //mojo/{gpu,gles2} that are
not used. SkyShell on Android/iOS/etc bind to the system's GL
driver via //ui/gl. sky_viewer.mojo
binds to the Mojo C entry points.