VR-Vantage 2.8 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
exampleKeyMap

Table of Contents

Overview

This example shows how to register a function with the Key Map Manager, and bind it to a key event in a key map. In this example we use the DtDeSharedState method setPerformanceOverlayOn(), and bind the key event "'" [Down] in the "Observer Frame" key map (the default).

Expected Result

exampleKeyMap.png
Key Map Result

Example details

  1. Get a reference to the input driver, which we need to access the Key Map Manager:

DtInputDriver& inputDriver =

  1. Get a reference to the Key Map Manager:

  1. Register the togglePerfOverlay() (and the application's instance of DtDisplayEngine) with the Key Map Manager, telling it to use "Toggle Performance Overlay" as the name of this function:

  1. Since the default key map is Observer Frame, add a key binding to that map. Of course, these last two steps could be omitted and instead use the Key Map Editor to create the key binding. Look up the key map:

  1. If the key map was found, bind the "'" key to the function named Toggle Performance Overlay. Note that the DtKeyMap (DtKeyMap.h) class has an addKeyMap() method that we could use directly, but the wrapper provided by the input driver provides some useful default parameters, making it a little easier to use:

Building the Example

VR-Vantage includes pre-built versions of the example application. To build it yourself, follow the instructions at Building VR-Vantage Examples, Applications, and Plug-ins.

Running the Example

This example is a plug-in. You can run it by running ./bin64/exampleKeyMapPlugin_stealth.bat (on Windows) or ./bin64/exampleKeyMapPlugin_stealth.sh (on Linux). Hit the apostrophe key "'" to see the performance overlay display. For more information about running examples, please see Running Applications and Examples.

Example Source Files


exampleKeyMapPlugin.cxx

/*****************************************************************************
* Copyright (c) 2021 MAK Technologies, Inc.
* All rights reserved.
*****************************************************************************/
#include <vrvCore/DtDe.h>
// Use the VR-Vantage namespace. All classes in VR-Vantage are in this namespace.
using namespace makVrv;
void togglePerfOverlay(DtDe* de)
{
unsigned int state = de->sharedState().performanceOverlayState();
{
}
else
{
state++;
}
}
void installKeyMapping(DtDe& de)
{
DtInputDriver& inputDriver =
keyMapManager.addKeyFunction("Toggle Performance Overlay", boost::bind(
&togglePerfOverlay, &de), DtKeyMapManager::Miscellaneous);
DtKeyMap* obsFrame = keyMapManager.findKeyMap("Observer Frame");
if (obsFrame)
{
"Toggle Performance Overlay");
}
}
void init(DtDe& de)
{
// Ensure that init only gets called once
// (not strictly necessary here, but this is good practice in general)
// We only want to add the key mapping if we are running in master mode.
if (de.isInMasterMode())
{
// The key mapping must be set after the DE's initialization is
// finished, to make sure all the objects it relies on exist.
&installKeyMapping, boost::ref(de)));
}
}
{
// Setup the plug-in. Normally, the init function and functionality
// should be in its own library.
init(*de);
return true;
}

[<< Examples] [Home] [Top of Page]



Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)