PureBasic

Подсистемы

Введение

Набор команд интегрированный в PureBasic полагается на доступные библиотеки OS. Если есть несколько способов достичь той же цели, и когда это целесообразно, PureBasic предлагает возможность изменить базовые библиотеки, которые пользуются для определенных команд, не изменяя при этом строку исходного кода. Например, на Windows есть доступная подсистема 'OpenGL', которая будет использовать функции OpenGL, чтобы отображать спрайты вместо DirectX (которая является подсистемой по умолчанию). Удобно использовать OpenGL вместо DirectX при создании кроссплатформенной игры, поскольку OS X и Linux используют OpenGL в качестве подсистемы по умолчанию. Это также позволяет напрямую использовать команды OpenGL для непосредственной работы с экраном.

Чтобы подключить Подсистему, ее имя должно быть задано в параметрах компилятора среды разработки, или через ключ командной строки SUBSYSTEM/. Это - опция работает во время компиляции, что означает, что исполняемый файл не может встроить больше чем одну подсистему (например либо Directx, либо Opengl). Если необходима поддержка двух Подсистем (например, поставка OpenGL и DirectX версии игры), требуется создать два исполняемых файла.

Доступные подсистемы расположены в подпапке 'Residents', в корневой папке PureBasic. Если подключить любой из найденных в папке 'SubSystems' резидентный объект или библиотеку, у него будет приоритет перед резидентными объектами или библиотеками, которые установлены по умолчанию. Может быть задано любое количество различных подсистем (если это не повлияет на одни и те же библиотеки функций).

Функция компилятора Subsystem может использоваться, чтобы узнать, используется ли конкретная Подсистема для скомпилированной программы.

Доступные подсистемы

Вот список доступных подсистем и связанные библиотеки функций:

Windows
  OpenGL: при использовании OpenGL вместо DirectX. Связанные библиотеки функций: 
          - Sprite
          - Sprite3D
          - Screen
          - All 3D engine related libraries

Linux
  gtk2: Связанные библиотеки:
          - 2D Drawing
          - AudioCD
          - Clipboard
          - Desktop
          - Drag & Drop
          - Font
          - Gadget
          - Image
          - Menu
          - Movie
          - Printer
          - Requester
          - Scintilla
          - StatusBar
          - SysTray
          - Toolbar
          - Window
          
  qt: Связанные библиотеки:
          - 2D Drawing
          - AudioCD
          - Clipboard
          - Desktop
          - Drag & Drop
          - Font
          - Gadget
          - Image
          - Menu
          - Movie
          - Printer
          - Requester
          - Scintilla
          - StatusBar
          - SysTray
          - Toolbar
          - Window  

MacOS X
  None