visionOS: Use cp_frame_query_drawables() to get the frame's drawable


cp_frame_query_drawable() is deprecated as of visionOS 26, which is also
the minimum version we support. Its replacement returns an array of
drawables, since a frame can come with more than one drawable, for
example an additional one for capture. Render the drawable targeting
the device's displays, fall back to the first one if there is none, and
warn once if additional drawables are present, as those are not rendered
yet.

The additional drawables are not encoded or presented either, which is
also what we were left with before, as the deprecated function only ever
handed out one drawable and gave an application no way of getting at a
capture drawable. The assumption is therefore that the compositor
sources a capture from what we do present, as it must have done up until
now.

An empty array means the frame has been cancelled and must be
discarded, which is treated the same way as a missing drawable was.

Pick-to: 6.12
Change-Id: I4b7c7fcd2d060a8b436dca9ba30d448ad23abaaa
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
commitdbaa6d7074732aca2d55bfa5aea9e97847b4f54b
parenta8437f79dda2fdc3d42b6cd9261ea5525e62db81
authorChristian Strømme <christian.stromme@qt.io>
committerChristian Strømme <christian.stromme@qt.io>
commit timeTue, 13 Oct 2026 19:36:24 +0000