SIMPHYNITY Game Plugin
Example game plugin DLL for SIMPHYNITY
|
#include <dllmain.h>
Public Attributes | |
bool | enabled |
GFX_RENDER_FUNCTION | gfxRenderFunction |
KEYBOARD_HOOK_METHOD | kbHookingMethod |
bool | invertZPlane |
bool | forceScreenRefresh |
Contains Simphynity Remote configuration settings, as supplied to the GetSimphyintyRemoteSettings function.
Members:-
bool enabled
Instructs Simphynity whether to attempt to inject Simphynity Remote into the game process. If set to true (default), and the user has also selected the 'inject remote / telemetry plugin' option in the game settings panel of the Simphynity UI, remote injection will be attempted. NB Simphynity remote is only supported within DX8/9/10/11 and OGL based games.
GFX_RENDER_FUNCTION gfxRenderFunction
Assuming Simphynity remote is enabled for this game, this member indicates which last-stage drawing function is used by the game's GFX library (see enum GFX_RENDER_FUNCTION). Simphynity remote will attempt to hook this function and perform its drawing here, immediately after the game's frame buffer has been rendered. IMPORTANT: The indicated GFX render function must be correct or Simphyinty Remote will fail to display. NB: A value of 0 indiciates to use the default (most common) render function for whichever GFX library is detected.
KEYBOARD_HOOK_METHOD kbHookingMethod
Depending on how the game is configured to respond to key input, it may be necessary to use a different keyboard hooking method in order to capture key presses for use by Simphyinty remote. The various hooking methods available are listed in the KEYBOARD_HOOK_METHOD enum. IMPORTANT: The indicated keyboard hook function must be correct or Simphyinty Remote will to respond to keyboard input.
bool invertZPlane
Inverts the vertex-winding rule used to render the remote overlay. In some games the Z (depth) axis moves away from the camera, in others it moves towards it. If Simphynity remote is not visible, it is possible it is facing in the wrong direction to the camera - try inverting its z-plane by setting this member to 'true'.
bool forceScreenRefresh
Some games only refresh the screen when its contents (i.e. the frame buffer's contents) have changed. When using Simphynity remote, we need to ensure the screen is forcibly updated whenever the remote is shown or hidden, or interacted with in any way by the user. If the game engine does not forcibly refresh the screen each frame (irrespective of whether its contents have changed or not), we must instruct it to do so whenever Simphynity remote is displayed (by setting this member to 'true'). If the game already forces refreshes each frame, we must set this member to 'false', otherwise Simphyinty Remote will be forcing a second unecessary refresh which can cause undesirable graphical side effects such as black 'flashes'). NB if set to 'true', refreshes will only be forced while Simphyinty Remote is activity displayed on the screen.