====== Garmin G5 Emulation, for X-Plane 11 Simulator ======
* [[troubleshooting|Troubleshooting Notes ]]
Started work on a Garmin G5 panel to work with X-Plane 11.
===== Creating a 3D Panel =====
It took a while to create a 3D Panel. The documentation for the X-Plane, although long, doesn't exactly specify what is needed. Trying to capture it here:
==== C++ Impacts ====
I created a DLL according to an example. Inside, it has these 5 functions which must be implemented:
PLUGIN_API int XPluginStart(
char * outName,
char * outSig,
char * outDesc)
PLUGIN_API void XPluginStop(void)
PLUGIN_API void XPluginDisable(void) { }
PLUGIN_API int XPluginEnable(void) { return 1; }
PLUGIN_API void XPluginReceiveMessage(XPLMPluginID inFrom, int inMsg, void * inParam) { }
Within XPluginStart is this initialization: ''XPLMCreateWindow_t params;''
params is a struct with various pointers, mostly to mouse, clicks, keyboard listening functions which must be implemented, even with nothing.
Then I call this:
XPLMRegisterDrawCallback(&callbackContent, xplm_Phase_Gauges, 1, &callbackLineRefCon);
where ''callbackContent'' is a pointer to a function to be called for every draw. This calls my Garmin G5 drawing code.
==== Requirements to draw and make a 3D Instruments ====
However, it doesn't call this unless
* the Panel_Fighter.png file is the texture file for the Cockpit Object.
* The Cockpit Object is indicated as **Int Cockpit** in Plane Maker
* There is something (for me, the G5 screen) that is mapped to a texture connected to that Panel_Fighter.png
* The Checkbox "Part Of Cockpit Panel" needs to be checked in Texture -> XPlane -> Cockpit Panel -> Part Of Cockpit Panel. Not sure how the ''Cockpit Region selection'' affects this.