...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.
Previously, if you used a layout callback, you could not have a parent
that did parentUsesSize, or if you did, you had to be marked
sizedByParent. With this patch, we allow the parent to depend on your
layout, even if you modify your child list during your layout using a
layout callback, by checking that the parent is still actively being
laid out in this scenario.
This patch is the first step towards implementing gestures. The pointer router
allows the gesture detectors to hook in at the end of the pointer event
propagation chain.
Related to #145