This removes dependencies on deprecated tools "ant" and "android project"
The new method relies on JAVA_HOME and ANDROID_SDK being set.
It also requires specific versions of the Android build-tools (26.0.1) and
platforms (android-23). See updates to CONTRIBUTING.md and our Travis-CI
config for details.
Travis-CI and documentation also roll forward to latest public NDK r14b.
* The bug seems to happen if two raw strings concatenated together are
large enough, so instead we pass them as separate parameters to a
different macro then concatenate them inside the macro.
* In some cases it seems that no sRGB fbconfigs are available, so we
fall back and create a non-SRGB one. This may render incorrectly but
at least it should run without crashing.
* The comment in the commit goes into more details, but basically this
sacrifices some confusion on the part of people who change uniform
values for bindings on the fly, in favour of the majority who treat
it as constant and don't make use of this mutable mapping that GL
allows for.
* In particular for e.g. elements that don't require a sampler, the
VkSampler may point to a random address if it's uninitialised, and we
shouldn't try to access it at all.
* Most functions we hook and then jump to the real driver we can fetch
just with dlsym to the library, but the ARB context creation function
is an extension and may not be directly exported.
* It's safe to call glXGetProcAddress(ARB) without a context current
though and it's guaranteed to be directly exported, so we can use this
to fetch the function if we don't find it with dlsym.
* This includes ISG1 and OSG1 chunk types which have an extra enum on
the end for the minimum precision type.
* Also add extra casing for min precision types (although anywhere they
are on an externally-facing interface, they're not actually min
precision).
* Searching down from the end for the next lowest event causes us to
sometimes replay backwards when a marker is selected (and has no
event in the array to replay directly). This can crash on vulkan, and
is unintuitive/wrong on other APIs. Instead we follow the behaviour
that we have elsewhere so that when a marker is selected we move
_forward_ in the frame to select the next event after it.
* Checking the history there doesn't seem to be any strong reason for
this direction of search.
* It's seemingly possible to bind a structured SRV with no format
given, to a Buffer<float4> declaration in the shader. In this case
we can't get the buffer stride/format type from the SRV itself so we
have to go to what's declared in the reflection data itself.
During initial scan of application, detect if root access is available
and track it. If user later selects "Click here for ways to fix this".
display a new dialogue that offers to push the layer directly.
If pushing fails, fall back to production dialogue.
Also add a new persistent setting to enable automatic layer pushing.
* Add missing aliases for
** GL_EXT_robustness
** GL_EXT_separate_shader_objects
** GL_KHR_debug
* Fix a typo in the name of glDrawElementsInstancedBaseVertexOES
Extend supported GLES extension list and add missing aliases for the
following extensions:
* GL_EXT_texture_storage
* GL_EXT_texture_view
* GL_OES_draw_buffers_indexed
* GL_OES_texture_cube_map_array
* GL_OES_texture_view
* The +1 for internal NULL terminator must be done internally, otherwise
we end up with "foobar" being a 7-character string of "foobar\0". If
this is then re-serialised we add more and more null terminators.