vulkan.api: Distinguish Vk*Flags from Vk*FlagBits

Previously Vulkan never used the *FlagBits enums directly as the type
of a parameter or field, only ever using the *Flags typedef. For cases
when a variable should have exactl one of the options, a separate enum
was used. Now Vulkan is switching to using the *FlagBits enum for such
variables, to avoid needing two separate enums for the same thing.

The API file didn't distinguish between these before, it only had one
type for the bitfield, and the vulkan_h.tmpl template synthesized the
*FlagBits name from the *Flags name during generation. Now that we
have cases where some variables need the *FlagBits type and some need
the *Flags type, we need to distinguish them in the API file. This
change does that.

This required some ugly casting in a few places to get around apic's
strict operand type compatibility rules. Most of these can go away
once b/25863296 is fixed.

Change-Id: Ia153d4b0c91abe80e4c34a284ca9d721cc770795
(cherry picked from commit 9f9678461ec3fdefa9c29e84c329cbdd243d7f80)
1 file changed