URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 137831
[ Назад ]

Исходное сообщение
"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "

Отправлено opennews , 15-Сен-25 11:37 
После полутора лет разработки подготовлен выпуск проекта PortableGL 0.99, развивающего программную реализацию графического API OpenGL 3.x, написанную целиком на языке  Си.  Теоретически  PortableGL может быть использован в любых приложениях, принимающих текстуру или фреймбуфер в качестве входных данных. Код оформлен в виде одного заголовочного файла и распространяется под лицензией MIT...

Подробнее: https://www.opennet.me/opennews/art.shtml?num=63879


Содержание

Сообщения в этом обсуждении
"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Fracta1L , 15-Сен-25 11:37 
> написанную целиком на языке Си

Гитхаб говорит, что там треть кода на плюсах написана.


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 11:39 
Так присмотрись. Это примеры. И внешняя либа, которую затащили в исходники, чтобы не плодить зависимости.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 22:10 
> чтобы не плодить зависимости

Но ведь зависимость осталась, только теперь её нужно собирать ещё раз, и дыры в ней не затыкаются...


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 20-Сен-25 21:05 
Вот откуда такие странные мысли у тебя? Что ты вообще несешь? Мне кажется, такие как ты и стоят за всем этим страшным кошмаром из чего состоит нынешняя айтишечка

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 11:43 
> использование для работы с 3D-графикой на системах без GPU

Инетерсно, а такие системы бывают в реальности?


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено kravich , 15-Сен-25 12:09 
В embedded полно SoC-ов с нормальным фреймбуффером, но без 3D ускорителя

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено IMBird , 15-Сен-25 12:16 
Интересно, окупаются ли затраты на эту программную эмуляцию OGL? Поможет ли SIMD ускориться в таких случаях (за счёт всяких NEON)?

Помню отличнейшую Outcast, которая целиком рисовалась на CPU и была по-своему мегакрутой.


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено kravich , 15-Сен-25 12:20 
> Интересно, окупаются ли затраты на эту программную эмуляцию OGL? Поможет ли SIMD
> ускориться в таких случаях (за счёт всяких NEON)?

Да, помогает. Я как-то на подобном SoC делал коммерческую 3D приложуху, где очень сильно выручил llvmpipe, который за счет использования LLVM как раз хорошо ускорен SIMD-ом


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено IMBird , 15-Сен-25 12:31 
>> Интересно, окупаются ли затраты на эту программную эмуляцию OGL? Поможет ли SIMD
>> ускориться в таких случаях (за счёт всяких NEON)?
> Да, помогает. Я как-то на подобном SoC делал коммерческую 3D приложуху, где
> очень сильно выручил llvmpipe, который за счет использования LLVM как раз
> хорошо ускорен SIMD-ом

Ресурсов хватало? 30 или 60 кадров? Насколько сложная графика? Шейдеры были?


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено kravich , 15-Сен-25 12:42 
~24 кадра в секунду, графика - низкополигональная моделька, окруженная сферической оболочкой, на оболочку выводится realtime видео как текстура через хак в glTexImage2D(), позволяющий llvmpipe-у использовать видеофрейм напрямую по указателю без промежуточного копирования (эрзац аналог не реализованного OES_EGL_image_external). Шейдеров не было. Culling-а тоже не было, с ним может быть было бы даже пободрее

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 22:41 
Первая халфа и квейк вполне себе бегали на процах тех лет без SIMD вообще с программной растеризацией. А если упростить графен до уровня PS1 - то пойдёт даже cortex m0, есть 3д игруля для raspberry pi pico.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 22:11 
Outcast на CPU не рисовалась. Ты, возможно, с команчем путаешь.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 22:57 
Именно на CPU она рисовалась. Только там и движок наподобие команча — в основном рисование террейна, потому что воксели.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 12:47 
> В embedded полно SoC-ов с нормальным фреймбуффером, но без 3D ускорителя

Я спрашивал не про абстрактный embedded, а про реальные системы, которые не имеют ускорителя, но при этом "вывезут" на CPU программный OpenGL 3 с производительностью, которая хоть сколь-нибудь будет применима в для реальных задач. Так-то и Doom на калькуляторах запускали...


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 22:14 
Спектр реальных задач огромен, в него входит и не-realtime графика, и 2D и сцены из небольшого числа полигонов.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 23:07 
> Спектр реальных задач огромен, в него входит и не-realtime графика, и 2D и сцены

Ну вот опять эти абстрактные задачи... Вы реальную систему с реальным юзкейсом приведите.


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 12:11 
Встроенки, всякое гвно с кастомными проприетарными сборками линукса (планшеты, телефоны), которые хардарное ускорение никогла больше не увидят.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 16:27 
Софтварные движки до сих пор есть, если не нужны вс эти новомодные эффекты, мульон фпс и прочее, они намного проще в использовании и апишечка удобнее.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 18:24 
> Софтварные движки до сих пор есть

Где ты их видел?


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 22:15 
Нет таких движков. А если бы были, с чего их API быть проще?

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 23:00 
> если не нужны вс эти новомодные эффекты, мульон фпс и прочее

…То используются GPU-движки без задействования этих новомодных эффектов (которым лет двадцать уже) и прочего.


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Bottle , 16-Сен-25 14:59 
Бывают. Куча разработчиков видеоигр раньше лайтмапы считали исключительно на кластерах CPU, писали целые софтварные рейтрейсеры под это дело.
А киношники до сих пор так делают.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 11:47 
Ну, кто там бздил, что «на Си только легаси»?

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Bottle , 15-Сен-25 12:10 
Ну так OpenGL это уже легаси, мобилки требуют OpenGL ES, десктоп требует Vulkan/DirectX 12.
И даже на мобилках поддержка вулкана уже больше половины устройств.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 12:30 
> Ну, кто там бздил, что «на Си только легаси»

Так это отличное подтверждение))
На древнем дидовом языке пишут поддержку древнего дидового OpenGL. Тот самым GL, который дропается в пользу современного вулкана всеми, кроме любителей некрожелеза.

Они просто созданы друг для друго!


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 14:14 
А что запоёшь, если напишут PortableVulkan на С ?

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 18:29 
Так у вулкана самая популярная реализация - на с++ =)

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 18:41 
> Так у вулкана самая популярная реализация

Это какая?


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 16-Сен-25 08:10 
> Так у вулкана самая популярная реализация - на с++

Господи, и плюсики же этому ставят. Где вы видели *реализацию* Вулкана на C++?


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 18:30 
А под современный вулкан на чем пишут?)

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 16-Сен-25 00:19 
Мечтают писать на Раст.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 16-Сен-25 08:09 
> А под современный вулкан на чем пишут?)

Под что угодно) Там же только интерфейс на С, чтобы было легко связываться с любым языком.


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 11:47 
Подскажите, уважаемые, а на чём было написано изначально?
Казалось полмира уже на Сях, а тут на тебе.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 12:08 
Какую книгу посоветуете для изучения Си с нуля? В забугорских сайтах рекомендуют книгу Кернигана и Ритчи, но вот там стандарт старый, не хочется потом заново всё переучивать. Но и учить только по новому стандарту тоже нереально. Имеется ли что-то простое на подобии К&Р, но актуальное?

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено kravich , 15-Сен-25 12:11 
K&R это и есть самое актуальное. Во втором издании там нормальный ANSI C, который с момента появления поменялся примерно никак (уж точно принципиальных изменений, мешающих обучению по K&R не произошло)

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 13:31 
> K&R это и есть самое актуальное
> ANSI C

Это шутка? ANSI C уже давно не является самым актуальным.


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 15:42 
> Во втором издании там нормальный ANSI C
> уж точно принципиальных изменений, мешающих обучению по K&R не произошло

Второе издание особо не меняли, в нём нет чётко выделенных идей UB, TBAA и "опасности" оптимизирующего компилятора. И нет оговорок, как отходят от стандартного C в самой книге или в реальном коде (-fno-strict-aliasing и т.д.).

Гнать людей в K&R2 - это, наверное, значит гнать людей в Rust путём прививания отвращения к C. Типа "легаси, накопившееся в языке, студента может не сломить, но если ещё и книжку устаревшую подсунуть, то двойным ударом мы..."

"the implementation of malloc/free in K&R is not conformant ISO C code" *
"Neither K&R2 nor [33] mentions "undefined behavior", but it is a central if controversial concept in ISO C"
https://arxiv.org/pdf/2201.07845

* это не про первое издание, "Even then, it remains unclear how to write these functions in conformant ISO C".


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено анонимммм , 15-Сен-25 15:53 
Главное начать, а потом уже сам разберётся, если базово язык зайдёт.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 16:59 
Для начинания надо что-то вдохновляющее.

Если открыть K&R2 в момент выхода, то ого - впереди перспективы. Плюсы ещё слабее современного раста, джава ещё не случилась, раст не случился, бизнес не пошёл в веб как в дешёвую кроссплатформу, государства не понимают что за компьютеры и не лезут с регулированием безопасности.

А сейчас? Не смотреть же на это как на легаси-книжку к легаси-языку.

Особенно когда перед глазами постоянно реализации ООП вручную (автору нужно, а в языке нет) и обобщённого программирования (тут и макросы, и кодогенерация).
https://github.com/rswinkle/PortableGL/blob/master/src/cvect...
https://github.com/rswinkle/PortableGL/blob/master/src/gener...


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено анонимммм , 16-Сен-25 07:29 
Как категорично.
Если тебя не вдохновляет, это не значит, что у всех так.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 18:27 
> Главное начать, а потом уже сам разберётся, если базово язык зайдёт.

Дальше разбираться у него уже не будет времени, ибо надо что-то кушать, а вакансий с пректами на С почти нет.


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено анонимммм , 16-Сен-25 07:27 
Вакансий, конечно, решительно меньше, но они есть. Сам начинал с си.
Было бы желание.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 17-Сен-25 14:11 
А сейчас он что кушает? Вот и пусть это кушает дальше, пока не разберётся.
А если ради вакансий, то их на C++ гораздо больше.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 18:28 
Хотя K&R2 выглядит не так плохо, если стандартом языка подтереться (то есть ориентироваться на компиляторы и игнорировать текст стандарта).

На правила алиасинга постоянно кладут, а если задумываются о них, то рассматривают как ошибку в стандарте.
https://github.com/rswinkle/PortableGL/blob/master/src/gl_in...


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 19:11 
(хотя не, конкретно эта строка без ошибок)

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 12:13 
cppreference[.]com/w/c[.]html

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено анонимммм , 15-Сен-25 12:26 
K&R норм, но без практики книга смысла не имеет. В K&R кое какая практика есть, но недостаточно.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 14:07 
Richard Stallman and Trevis Rothwell plus Nelson Beebe on floating point, "GNU C Language Intro and Reference Manual"

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 18:34 
Смешная шутка. Это одно из самых худших пособий по си в мире.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 16-Сен-25 00:16 
Чем же плохо это пособие?

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 16-Сен-25 08:44 
Тем, что у него аллергия на Столлмана.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 14:25 
C Programming: A Modern Approach - K. N. King

Modern C - J. Gustedt


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Мохнонос , 15-Сен-25 15:29 
Так ведь самый нетерпимый к js, самый олдскульный, самый эгоцентричный и при этом один фиг - крутой преподаватель Столяров Андрей Викторович, и его трёхтомник.
http://stolyarov.info/books

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 16-Сен-25 03:36 
Столяров, перелогиньтесь.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Мохнонос , 16-Сен-25 07:13 
Я - это не он.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Anonymus , 15-Сен-25 20:48 
Дейтэл Х., Дейтел П."Си для программистов с введением в С11" (ISBN: 978-5-97060-205-8)

Как вариант - Дейтэл Х., Дейтел П. "Как программировать на С" (ISBN: 978-5-9518-0559-1)

И да, справочники вроде https://en.cppreference.com/w/c/language.html и https://cplusplus.com/reference/clibrary/ тоже неплохи для понимания работы некоторых операторов стандартной библиотеки.


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 18-Сен-25 11:32 
Если с нуля, то начни с Head First C (Griffiths), там на пальцах и картинках объясняются сложные темы. Потом (ну или сразу, если эта покажется слишком детской) - C Programming: A Modern Approach (King).

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 12:16 
А акселерацию с драйверами каких видеокарт оно умеет?

Открытый драйвер Nvidia умеет использовать?


"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено kravich , 15-Сен-25 12:27 
>Из областей применения упоминаются ... использование для работы с 3D-графикой на системах без GPU

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 12:52 
Ну правильно! Он и спрашивает про невидию.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 14:16 
Оно не использует никакое ускорение. Это софтовая реализация на CPU в обычной памяти.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 12:41 
Чет не собирается. glfw какой-то с ошибкой strdup не видит, надо обновлять до версии 3.4. Короче какое-то говно мамонта несобираемое.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 13:10 
Вот бы еще под FreeDOS сабж собирался. Было бы не плохо.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 16-Сен-25 05:09 
Вполне возможно, что и соберётся (проверять это, конечно же, я не буду).

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 18-Сен-25 21:21 
Ну вот к чему это? У доса нет графической системы, там этот огл никак не вперся

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 15-Сен-25 21:13 
Когда все давно перешли на Вулкан, а эти ещё не сделали и первую версию ОпенЖЛ.

"Выпуск PortableGL 0.99, реализации OpenGL 3 на языке Си "
Отправлено Аноним , 16-Сен-25 13:12 
Пулкан помрёт, когда ОГЛ будут всё ещё использовать.