C API Reference
The SDK’s C API is declared in
GameBench.h and is implemented by
GameBench.aar on Android and
GameBench.framework on iOS. These files are found in the GameBench SDK .zip. Please see the Integration Guide for adding these files to your project.
The C API is contained by the
IGameBench interface (i.e. a struct containing function pointers), which is obtainable through the global helper function
getGameBench(). The APIs that follow are all members of this interface.
int sessionStart(const char* title)
Starts a new capture session, with an optional title.
Stops the current capture session.
int upload(GameBenchUploadCallback callback, void* callbackToken)
Uploads any outstanding sessions to the endpoint configured in the UI. After successful upload the session data will be removed from the device. Must be called without an active session.
NB: The callback is a nullable pointer to a function with the signature
void (*)(void*, int, const char*). The first parameter corresponds to whatever you passed as the
All metrics may be captured at set intervals and/or with the
captureNow() method. Metric capture has very low overhead and is asynchronous, it should not affect your app’s observed performance.
int scheduleCapture(int metricType, float freq)
Enable and set the capture interval in seconds for the given metric type (from the
in GameBench.h). Can be called with or without an active capture session. Use an interval of 0 or less to disable.
int captureNow(int metricType)
Capture and write out the given metric now.
Note that screenshots are a type of metric (see the
SS values in the
MetricType enum). To capture a screenshot at 50% the screen resolution you could write
To isolate specific areas of gameplay such as levels or battles, GameBench provides markers functionality. For example, to isolate performance data during a particular game level, you can call
markStart() when the level begins and
markStop() when the level is completed.
void markStart(const char* name, const char* group)
Record a ‘start’ marker with the given name and marker group (optional).
void markStop(const char* name, const char* group)
Record a ‘stop’ marker with the given name.
Record a ’launch complete’ marker that has special significance in the web dashboard.
void setTag(const char* name, const char* value)
Set a tag in the tags collection. Passing a value of null will remove it.
All other configuration values are also settable in code. Note that these values set with these APIs are transient and do not persist beyond process exit.
void setIntConfigItem(const char* name, int value); void setStringConfigItem(const char* name, const char* value);
The available config items are:
|String||Email or LDAP username|
||String||Hex token obtained from your GameBench dashboard|