Наверно, можно. Но повышение производительности генерируемого кода не является высокоприоритетной задачей. Мне кажется, что если человеку так важна производительность, то лучше ему сделать биндинги к stb_image.h.
Это называется single-header library. Данный подход позволяет добавить всю библиотеку в проект через один #include. Более подробно вопрос освещён в faq stb(см. вопрос How do I use these libraries?): https://github.com/nothings/stb
Hebron работает по тому же принципу, что и Sichem. Т.е. с помощью ClangSharp строится синтаксическое дерево входного файла на C. А затем оно подаётся на вход одному из двух кодогенераторов:
Кодогенератор Roslyn, который генерит C#.
Кодогенератор Rust, который генерит Rust.
В будущем я планирую добавить кодогенераторы для Beef и для Jai(надеюсь, он всё таки когда-нибудь выйдет в публичный доступ).
В принципе, могу описать какие отличия в синтаксисе между C и C# принесли наибольшее количество боли. И как они решались. Это потянет на отдельную статью.
Знаю только о существовании https://github.com/immunant/c2rust
https://habr.com/ru/post/687312/
Так и не сделал. В конце-концов понял, что смысла в таком проекте нет. Движков на шарпе, итак, немерено.
Под загружать имеется ввиду декодировать из форматов JPG, PNG, BMP, TGA, PSD, GIF и HDR.
Советую, кстати, посмотреть список dependents: https://github.com/StbSharp/StbImageSharp/network/dependents?package_id=UGFja2FnZS00NzgyMTc1NTY%3D
Там очень много самодельных игровых движков. Именно среди таких проектов StbImageSharp пользуется популярностью. Что, впрочем, совершенно логично.
Не в курсе. Можно спросить у её разраба.
Наверно, можно. Но повышение производительности генерируемого кода не является высокоприоритетной задачей. Мне кажется, что если человеку так важна производительность, то лучше ему сделать биндинги к stb_image.h.
Конечно, можно.
Существует даже соответствующий форк: https://github.com/TechPizzaDev/StbSharp.Image
Насколько я понял, LXUI использует именно StbSharp для загрузки картинок :)
http://lxui.ru/documentation/namespace_stb_image_sharp.html
Самый очевидный кейс - геймдев. Там постоянно нужно загружать картинки.
Это называется single-header library. Данный подход позволяет добавить всю библиотеку в проект через один #include.
Более подробно вопрос освещён в faq stb(см. вопрос How do I use these libraries?): https://github.com/nothings/stb
Хотел сделать движок. Стал искать библиотеку для загрузки картинок. Нужной не нашёл. Поэтому решил портануть stb_image.h
Hebron работает по тому же принципу, что и Sichem. Т.е. с помощью ClangSharp строится синтаксическое дерево входного файла на C. А затем оно подаётся на вход одному из двух кодогенераторов:
Кодогенератор Roslyn, который генерит C#.
Кодогенератор Rust, который генерит Rust.
В будущем я планирую добавить кодогенераторы для Beef и для Jai(надеюсь, он всё таки когда-нибудь выйдет в публичный доступ).
Отмечу, что у всех моих портов, проекты-генераторы лежат в соответствующих репозиториях.
К примеру, вот проект-генератор StbImageSharp: https://github.com/StbSharp/StbImageSharp/tree/master/generation
А, вот, stb_image_rust: https://github.com/StbRust/stb_image_rust/tree/master/generation
В принципе, могу описать какие отличия в синтаксисе между C и C# принесли наибольшее количество боли. И как они решались. Это потянет на отдельную статью.