@@ -1594,6 +1594,18 @@ static void handle_output_frame(struct wl_listener *listener, void *data)
|
||||
|
||||
if (!wm->xr.available && !wm->renderer.first_frame) {
|
||||
wm->renderer.camera.target = SphericalToVector3(wm->wm.pointer);
|
||||
|
||||
Vector3 forward = Vector3Normalize(Vector3Subtract(
|
||||
wm->renderer.camera.target, wm->renderer.camera.position));
|
||||
Vector3 worldUp = (Vector3) { 0, 1, 0 };
|
||||
|
||||
if (fabsf(Vector3DotProduct(forward, worldUp)) > 0.999f) {
|
||||
worldUp = (Vector3) { 0, 0, 1 };
|
||||
}
|
||||
|
||||
Vector3 right = Vector3Normalize(Vector3CrossProduct(forward, worldUp));
|
||||
wm->renderer.camera.up
|
||||
= Vector3Normalize(Vector3CrossProduct(right, forward));
|
||||
}
|
||||
|
||||
int const hud_size = wm->cman->cfg.displays.hud.size;
|
||||
|
||||
Reference in New Issue
Block a user