Hello Kuron! How are you doing my friend?
Thank you for the response. I understand that anytime you use InitKeyboard, InitMouse, InitSprite, InitEngine3d() commands that you are calling upon DirectX 9 libraries(although I guess the InitSprite/InitEngine3d, if the subsytem is set to OpenGL, will use OpenGL instead) ... But I'm wondering if you create your game in a windowed/screen, what library is used instead when you call Addkeyboardshortcut(), WindowMouseX(), WindowMouseY() ect ect to track the input since it doesn't require the calling of InitKeyboard()-InitMouse() first? Maybe they use more generic libraries that might already come with Vista and Windows 7? As far as sound goes, someone posted a wrapper for FreeSL sound libraries that I guess should work with any Windows based operating system (since you will also need to distribute some DLL files that come with it). Back to the original question, if I understand you correctly, is that if the subsystem set to OpenGL, that DirectX will not be used to render both sprites, sprited3d, and regular entities/mesh(actual 3d) things ... At least I think that is correct.
Another option for cross-platform campatibility without having someone install something else first might be the CanvasGadget (2d games only). When you read the information about gadgets in the manual, it states that ... "The Gadgets in PureBasic (in other languages also called "controls" or "widgets") are a generic name for all the interface components: button, combobox, listview, panels, ... This library is OS independent and uses the real OS Graphical User Interface (GUI) components." ... So that may also be an option.