Code::Blocks: использование графики OpenBGI

Для курса адаптирована графическая библиотека OpenBGI, для использования требуется подключить ее в настройках компановщика ProjectBuild options (вкладка Linker settings): в правом окне (Other linker options) прописать -lopenbgi -lgdi32 (вторая библиотека, стаднартная библиотека Windows, требуется для работы OpenBGI).

Можно также указать -mwindows -lopenbgi,

но это приведет к отключению консольного ввода/вывода вообще (то есть следует делать только, если он действительно не нужен). Также в этом случае следует изменить тип приложения на графическое: ProjectProperties, вкладка Build targets и для всех целей (Debug, Release) изменить тип с Console Application на GUI application (после этого консольное окно не будет появляться вообще).

После подключения библиотеки можно включать заголовочный файл graphics.h.

Документация к OpenBGI

Официальная на данный момент отсутствует. Что известно.

  1. Так как графика отображается в отдельном окне, функции консольного ввода вывода обрабатываются отдельно, нажатия клавиатуры в графическом окне обрабатывают readkey() и anykeypressed().
  2. Открытие графического окна осуществляется с помощью initgraph(int * gd, int * gm, const char * path);

    при этом '*gd' может быть DETECT, VGA (эквивалентны), CUSTOM (для пользовательского размера окна). Пример

        dg = CUSTOM;
        gm = CUSTOM_MODE(500,400);
        initgraph(&gd, &gm,"");

    создаст окно 500x400. Нельзя использовать CUSTOM gd с опцией FULL_SCREEN.

    '*gm' может быть VGAHI, VGALO, VGAMED (размеры соответствующие DOS BGI), также есть расширенные режимы GM_800x600, GM_1024x768 (это символические константы),

    'path' может быть пустой строкой, но может также содержать опции (можно с разделителем или без)

    • "RGB" - использовать rgb режим вместо 16 цветом (есть соответствующие цветовые макросы);
    • "FULL_SCREEN" - установить полный экран;

    пример:     initgraph(&gd, &gm, "RGBFULL_SCREEN"); — полный экран с RGB режимом.

  3. Закрытие графического окна — closegraph();
  4. Список функций и констант, которые можно использовать в качестве аргументов, приведен здесь.