Desktop Targets
The desktop targets of HaxeFlixel run on all mainstream operating systems (OSX, Windows and Linux). They are all compiled to C++ through the Hxcpp library and are rendered through interfacing with the Simple DirectMedia Layer. The code for this part of the library is developed through NME which provides dll libs that openfl interfaces with.
The biggest advantage of desktop targets compared to web and mobile is the power of desktop CPU and GPU processors. More complex scenes, physics and number of objects rendered can give a larger creative freedom in the games you create.
Rendering in HaxeFlixel is done through the drawTiles API. OpenGL textures are used with the GPU to render Flixel sprites. This native C++ code and use of the GPU outperforms runtimes such as the Flash Player and Adobe AIR in most circumstances substantially.
Conditionals
#if cpp
//your desktop code
#end
#if desktop
//your desktop code
#end
Project XML Settings
Desktop platforms can use a window width and height of 0, which is a special value that uses the full resolution of the current display.
<window width="0" height="0" background="#FFFFFF" fps="60" />
XML
OpenFL also exposes the following specific settings for the desktop target:
<window hardware="true" allow-shaders="true" require-shaders="true" if="cpp"/>
<window vsync="true" antialiasing="4" if="cpp" />
<window orientation="portrait" /> || <window orientation="landscape" if="cpp"/>
XML
Compile Commands
Visual Studio Code, FlashDevelop and IntelliJ IDEA support CPP desktop compilation through their GUI.
Command Line
The basic command to compile and test a native desktop target:
lime test windows
lime test mac
lime test linux -64
Run this command from the root folder of your project, the default project.xml will be used automatically. Using the test command will automatically launch the application created.