Since you need to do a custom screen setup and a custom calibration the only option is to use the low-level Gaze SDK. It will require some more work mapping normalized coordinates to virtual screen coordinates and the eye-gaze data from the eye tracker is raw. It is kind of possible to use both the Gaze SDK and the EyeX SDK from the same application, but there are some tricky things you need to know about: the EyeX Engine will overwrite any calibration loaded on the eye tracker when there is any kind of system event that invalidates the current configuration. For example if the resolution of a screen changes, if a monitor is added or removed from the system, if the user logs off and on again. If you can control for these things while running your application you could use the Gaze SDK for setting up the screen (only has to be done once) and doing the calibration (every time you start the application), and then use the EyeX SDK for the rest.