dlang, sfml. Падает программа при попытке вывести текст

Рейтинг: 0Ответов: 1Опубликовано: 03.07.2023

Всем привет. Изучаю язык D, а заодно и sfml.

Сталкнулся с такой проблемой, может кто сможет указать на ошибку.

Окно создалось. Все нормально. Но при попытке вывести текст - приложение падает, попутно ругаясь на неверное значение sf::BlendMode::Factor. Пробовал и не указывать и передавать различные значения. Итог один.

Лог приложения:

Performing "debug" build using /usr/bin/gdc for x86_64.
bindbc-sfml 1.0.2: target for configuration "static" is up to date.
projectsurvival ~master: building configuration "application"...
To force a rebuild of up-to-date targets, run again with --force.
Running ./projectsurvival 
Warning: The created OpenGL context does not fully meet the settings that were requested
Requested: version = 0.0 ; depth bits = 0 ; stencil bits = 0 ; AA level = 0 ; core = false ; debug = false ; sRGB = false
Created: version = 3.3 ; depth bits = 0 ; stencil bits = 0 ; AA level = 0 ; core = false ; debug = false ; sRGB = false
Invalid value for sf::BlendMode::Factor! Fallback to sf::BlendMode::Zero.
projectsurvival: /build/libsfml-3RiNVs/libsfml-2.5.1+dfsg/src/SFML/Graphics/RenderTarget.cpp:103: sf::Uint32 {anonymous}::factorToGlConstant(sf::BlendMode::Factor): Assertion `false' failed.
Program exited with code -6

Для sfml использую библиотеку bindbc-sfml со статической линковкой.

Текст вывожу следующим образом:

        sfFont* font = sfFont_createFromFile("Ubuntu-R.ttf");

        sfText* textObj = sfText_create();
        sfText_setFont(textObj,font);
        sfText_setColor(textObj,sfWhite);
        sfText_setString(textObj,toStringz(text));
        sfText_setPosition(textObj,sfVector2f(cast(float) x, cast(float) y));
        sfText_setCharacterSize(textObj,18u);
        const(sfRenderStates) state = sfRenderStates(sfBlendAdd);
        sfRenderWindow_drawText(window,textObj,&state);

Ответы

▲ 0

Ну... Кароче поплатился я за свою слепоту. Понял это только изучая исходный код библиотеки... Дело в том, что я в dub.json в массиве versions не указал SFML_250. Из-за чего библиотека думала, что у меня оочень старый cfsml, И естесно оно работало не правильно в итоге