Final Platform Layer 0.9.8-beta
|
In one of your C/C++ translation units include this:
You can then include this file in any other C/C++ source or header file as you would with any other header file.
Simply provide the typical main entry point:
Call fplPlatformInit() (inside the main Entry Point) and provide the desired fplInitFlags and fpl_null as arguments, to initialize FPL with default settings.
It is recommended to always pass a pointer to a fplSettings structure, but you can leave it as fpl_null as well.
Call fplSetDefaultSettings() with a pointer to your local settings container to initialize the settings container with default values.
Call fplPlatformInit() (inside the main Entry Point) and provide the desired fplInitFlags and a pointer to fplSettings argument to initialize FPL with custom settings.
Call fplPlatformRelease() when you are done. This will release all internal resources.
There is no guarantee that fplPlatformInit() will always work with the fplSettings you specified, maybe the audio device does not support a sample rate of 1337 kHz or your video card does not support OpenGL version 3.7 - who knows.
Therefore, you should always check the result using fplGetPlatformResult() !
This returns a fplPlatformResultType enum which is fplPlatformResultType_Success when initialization succeeded.
Also, you should release the platform when the initialization was successful only!
If something goes wrong the remaining resources are already cleaned up by FPL automatically.
Also, you should use fplGetLastError() to print out the actual error when the initialization fails!
Very bad: (But will work)
Bad: (But will work)
Good:
Better:
Much better:
See the Error handling page for more details about error handling.
After releasing FPL you can call fplPlatformInit() again if needed - for example: Finding the proper audio device, Testing for OpenGL compatibility, etc. may require you to call fplPlatformInit() and fplPlatformRelease() multiple times.
For more details see Getting started
Optionally you can use fplMakeDefaultSettings to create a default filled fplSettings structure, which can be directly used for fplPlatformInit()
If needed you can get the currently used fplSettings configuration by calling fplGetCurrentSettings()