@@ -130,57 +130,56 @@ int main()
130130 {
131131 return EXIT_FAILURE;
132132 }
133- else if (frameResult == Headset::BeginFrameResult::RenderFully )
133+ else if (frameResult == Headset::BeginFrameResult::SkipFully )
134134 {
135- if (!controllers.sync (headset.getXrSpace (), headset.getXrFrameState ().predictedDisplayTime ))
136- {
137- return EXIT_FAILURE;
138- }
135+ continue ;
136+ }
137+
138+ if (!controllers.sync (headset.getXrSpace (), headset.getXrFrameState ().predictedDisplayTime ))
139+ {
140+ return EXIT_FAILURE;
141+ }
139142
140- static float time = 0 .0f ;
141- time += deltaTime;
143+ static float time = 0 .0f ;
144+ time += deltaTime;
142145
143- // Update
144- for (size_t controllerIndex = 0u ; controllerIndex < 2u ; ++controllerIndex)
146+ // Update
147+ for (size_t controllerIndex = 0u ; controllerIndex < 2u ; ++controllerIndex)
148+ {
149+ const float flySpeed = controllers.getFlySpeed (controllerIndex);
150+ if (flySpeed > 0 .0f )
145151 {
146- const float flySpeed = controllers.getFlySpeed (controllerIndex);
147- if (flySpeed > 0 .0f )
148- {
149- const glm::vec3 forward = glm::normalize (controllers.getPose (controllerIndex)[2 ]);
150- cameraMatrix = glm::translate (cameraMatrix, forward * flySpeed * flySpeedMultiplier * deltaTime);
151- }
152+ const glm::vec3 forward = glm::normalize (controllers.getPose (controllerIndex)[2 ]);
153+ cameraMatrix = glm::translate (cameraMatrix, forward * flySpeed * flySpeedMultiplier * deltaTime);
152154 }
155+ }
153156
154- const glm::mat4 inverseCameraMatrix = glm::inverse (cameraMatrix);
155- handModelLeft.worldMatrix = inverseCameraMatrix * controllers.getPose (0u );
156- handModelRight.worldMatrix = inverseCameraMatrix * controllers.getPose (1u );
157- handModelRight.worldMatrix = glm::scale (handModelRight.worldMatrix , { -1 .0f , 1 .0f , 1 .0f });
158-
159- bikeModel.worldMatrix =
160- glm::rotate (glm::translate (glm::mat4 (1 .0f ), { 0 .5f , 0 .0f , -4 .5f }), time * 0 .2f , { 0 .0f , 1 .0f , 0 .0f });
161-
162- // Render
163- renderer.render (cameraMatrix, swapchainImageIndex, time);
157+ const glm::mat4 inverseCameraMatrix = glm::inverse (cameraMatrix);
158+ handModelLeft.worldMatrix = inverseCameraMatrix * controllers.getPose (0u );
159+ handModelRight.worldMatrix = inverseCameraMatrix * controllers.getPose (1u );
160+ handModelRight.worldMatrix = glm::scale (handModelRight.worldMatrix , { -1 .0f , 1 .0f , 1 .0f });
164161
165- const MirrorView::RenderResult mirrorResult = mirrorView.render (swapchainImageIndex);
166- if (mirrorResult == MirrorView::RenderResult::Error)
167- {
168- return EXIT_FAILURE;
169- }
162+ bikeModel.worldMatrix =
163+ glm::rotate (glm::translate (glm::mat4 (1 .0f ), { 0 .5f , 0 .0f , -4 .5f }), time * 0 .2f , { 0 .0f , 1 .0f , 0 .0f });
170164
171- const bool mirrorViewVisible = (mirrorResult == MirrorView::RenderResult::Visible);
172- renderer.submit (mirrorViewVisible );
165+ // Render
166+ renderer.render (cameraMatrix, swapchainImageIndex, time );
173167
174- if (mirrorViewVisible)
175- {
176- mirrorView. present ();
177- }
168+ const MirrorView::RenderResult mirrorResult = mirrorView. render (swapchainImageIndex);
169+ if (mirrorResult == MirrorView::RenderResult::Error)
170+ {
171+ return EXIT_FAILURE;
178172 }
179173
180- if (frameResult == Headset::BeginFrameResult::RenderFully || frameResult == Headset::BeginFrameResult::SkipRender)
174+ const bool mirrorViewVisible = (mirrorResult == MirrorView::RenderResult::Visible);
175+ renderer.submit (mirrorViewVisible);
176+
177+ if (mirrorViewVisible)
181178 {
182- headset. endFrame ();
179+ mirrorView. present ();
183180 }
181+
182+ headset.endFrame ();
184183 }
185184
186185 context.sync (); // Sync before destroying so that resources are free
0 commit comments