2020/lib/manual/mtm.js (29 lines of code) (raw):
/**
* @license
* Copyright 2018 Google Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
var degreesPerSecond = 90;
// The following mappings are done in this order:
// Up, Down, Left, Right
// Direction keys
camera3D.createKeyMapping(38, camera3D.DOM_CAMERA_PITCH, degreesPerSecond);
camera3D.createKeyMapping(40, camera3D.DOM_CAMERA_PITCH, -degreesPerSecond);
camera3D.createKeyMapping(37, camera3D.DOM_CAMERA_YAW, degreesPerSecond);
camera3D.createKeyMapping(39, camera3D.DOM_CAMERA_YAW, -degreesPerSecond);
// DPAD
camera3D.createKeyMapping(0x800C, camera3D.DOM_CAMERA_PITCH, degreesPerSecond);
camera3D.createKeyMapping(0x800D, camera3D.DOM_CAMERA_PITCH, -degreesPerSecond);
camera3D.createKeyMapping(0x800E, camera3D.DOM_CAMERA_YAW, degreesPerSecond);
camera3D.createKeyMapping(0x800F, camera3D.DOM_CAMERA_YAW, -degreesPerSecond);
// Left joystick
camera3D.createKeyMapping(0x8011, camera3D.DOM_CAMERA_PITCH, degreesPerSecond);
camera3D.createKeyMapping(0x8012, camera3D.DOM_CAMERA_PITCH, -degreesPerSecond);
camera3D.createKeyMapping(0x8013, camera3D.DOM_CAMERA_YAW, degreesPerSecond);
camera3D.createKeyMapping(0x8014, camera3D.DOM_CAMERA_YAW, -degreesPerSecond);
// Right joystick
camera3D.createKeyMapping(0x8015, camera3D.DOM_CAMERA_PITCH, degreesPerSecond);
camera3D.createKeyMapping(0x8016, camera3D.DOM_CAMERA_PITCH, -degreesPerSecond);
camera3D.createKeyMapping(0x8017, camera3D.DOM_CAMERA_YAW, degreesPerSecond);
camera3D.createKeyMapping(0x8018, camera3D.DOM_CAMERA_YAW, -degreesPerSecond);
// Update the frame rate counter at a regular interval.
function UpdateFPS() {
if ('h5vcc' in window && 'cVal' in window.h5vcc) {
// Query Cobalt for the average amount of time between the start of
// each frame. Translate that into a framerate and then update a
// framerate counter on the window.
var average_frame_time_in_us =
window.h5vcc.cVal.getValue('Renderer.Rasterize.DurationInterval.Avg');
if (!average_frame_time_in_us || average_frame_time_in_us <= 0) {
// In older versions of Cobalt use a different name for the framerate
// counter, so try falling back to that if the first fails.
average_frame_time_in_us =
window.h5vcc.cVal.getValue('Renderer.Rasterize.Duration.Avg');
}
if (average_frame_time_in_us && average_frame_time_in_us > 0) {
// Convert frame time into frame rate (by taking the inverse).
// We also multiply by 1000000 to convert from microseconds to
// seconds.
var average_frames_per_second =
Math.round(1000000.0 / average_frame_time_in_us);
// Update the display with our calculated frame rate.
var fps_counter = document.getElementById('fps');
fps_counter.innerHTML = 'FPS: ' + average_frames_per_second;
}
}
}
window.setInterval(UpdateFPS, 1000);
document.addEventListener('keyup', function(event) {
pushBackKeyToReturnManualPage(event);
});