// Copyright (c) 2020 Varjo Technologies
//
// SPDX-License-Identifier: CC-BY-4.0

include::{generated}/meta/XR_VARJO_quad_views.adoc[]

*Last Modified Date*::
    2019-04-16
*IP Status*::
    No known IP claims.
*Contributors*::
    Sergiy Dubovik, Varjo Technologies +
    Rémi Arnaud, Varjo Technologies +
    Robert Menzel, NVIDIA

// REUSE-IgnoreStart

// "This submission is provided subject to and covered by the Khronos Group Intellectual
// Property ("IP") Rights Policy. No other rights are granted by this submission, and
// Khronos may elect to exercise its Copyright  license to incorporate this submission into
// other works it controls as it desires."



==== Overview

This extension adds a new view configuration type -
ename:XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO to
elink:XrViewConfigurationType which can be returned by
flink:xrEnumerateViewConfigurations to indicate that the runtime supports 4
viewports.

In this configuration each eye consists of two viewports of which one is
smaller (in terms of field of view) of the other and fully included inside
of the larger FoV one.
The small FoV viewport however can have a higher resolution with respect to
the same field of view in the outer viewport.
The motivation is special hardware which superimposes a smaller, high
resolution screen for the fovea region onto a larger screen for the
periphery.

The runtime guarantees that the inner viewport of each eye is fully inside
of the outer viewport.

To enumerate the 4 views flink:xrEnumerateViewConfigurationViews can be
used.
The first two views (slink:XrViewConfigurationView) will be for the left and
right eyes for the outer viewport.
The views 2 and 3 are for the left and right eyes for the inner viewport.

The relative position of the inner views relative to the outer views can
 change at run-time.

 The runtime must: set pname:pose for view 0 and 2 to be identical and must:
 set pname:pose for view 1 and 3 to be be identical when application calls
 flink:xrLocateViews.

The runtime might blend between the views at the edges, so the application
should not omit the inner field of view from being generated in the outer
view.

*New Object Types*

*New Flag Types*

*New Enum Constants*

elink:XrViewConfigurationType enumeration is extended with:

* ename:XR_VIEW_CONFIGURATION_TYPE_PRIMARY_QUAD_VARJO

*New Enums*

*New Structures*

*New Functions*

*Issues*

*Version History*

* Revision 1, 2019-04-16 (Sergiy Dubovik)
** Initial draft
* Revision 2, 2024-06-13 (Denny Rönngren)
** Clarified that both views for each eye needs to have identical poses.
   This reflects the actual behavior in all known implementations.
