Stephan Lachnit 8b408694b0 improve libgamemodeauto pkg-config file 4 years ago
..
README.md 28243afde9 Clean up the main readme file and split some parts out 5 years ago
client_impl.c 6f7df91b60 lib: support the new pidfd based APIs 5 years ago
client_loader.c 10a31f8dec Update copyright years to 2019 6 years ago
gamemode_client.h b04e39df43 Merge pull request #143 from mdiluz/client-example-check 5 years ago
meson.build 8b408694b0 improve libgamemodeauto pkg-config file 4 years ago

README.md

libgamemode

libgamemode is an internal library used to dispatch requests to the daemon. Note: libgamemode should never be linked with directly.

libgamemodeauto is a simple dynamic library that automatically requests game mode when loaded. Useful to LD_PRELOAD into any game as needed.

gamemode_client.h is as single header lib that lets a game request game mode and handle errors.

Integration

Developers can integrate the request directly into an app. Note that none of these client methods force your users to have the daemon installed or running - they will safely no-op if the host is missing.

// Manually with error checking
#include "gamemode_client.h"

	if( gamemode_request_start() < 0 ) {
		fprintf( stderr, "gamemode request failed: %s\n", gamemode_error_string() );
	}

	/* run game... */

	gamemode_request_end(); // Not required, gamemoded can clean up after game exits
// Automatically on program start and finish
#define GAMEMODE_AUTO
#include "gamemode_client.h"

Or, distribute libgamemodeauto.so and either add -lgamemodeauto to your linker arguments, or add it to an LD_PRELOAD in a launch script.

Supervisor support

Developers can also create apps that manage GameMode on the system, for other processes:

#include "gamemode_client.h"

	gamemode_request_start_for(gamePID);
	gamemode_request_end_for(gamePID);

This functionality can also be controlled in the config file in the supervisor section.