The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск PortableGL 0.98, реализации OpenGL 3 на языке Си

07.05.2024 09:19

После более года разработки подготовлен выпуск проекта PortableGL 0.98, развивающего программную реализацию графического API OpenGL 3.x, написанную целиком на языке Си (C99). Теоретически PortableGL может быть использован в любых приложениях, принимающих текстуру или фреймбуфер в качестве входных данных. Код оформлен в виде одного заголовочного файла и распространяется под лицензией MIT.

Проектом определены такие цели, как переносимость, соответствие API OpenGL, простота использования, простой код и высокая производительность. Из областей применения упоминаются обучение концепциям построения графических API, использование для работы с 3D-графикой на системах без GPU и интеграция поддержи OpenGL в специфичные операционные системы, для которых не перенесён пакет Mesa3D. Из готовых проектов, использующих PortableGL, отмечается порт Minecraft-подобной игры Craft.

В новой версии:

  • Реализована новая стандартная библиотека шейдеров.
  • Добавлена поддержка дополнительных форматов текстур и их автоматической конвертации в формат RGBA.
  • Добавлена поддержка использования для атрибутов вершин с типами, отличными от float.
  • Предложен новый улучшенный алгоритм формирования широких линий.
  • Расширен API. Добавлено много новых функций и возможностей OpenGL, среди которых и возможности OpenGL ES 2/3.


  1. Главная ссылка к новости (https://github.com/rswinkle/Po...)
  2. OpenNews: Релиз PoCL 5.0 с независимой реализацией стандарта OpenCL
  3. OpenNews: Intel открыл код реализации OpenCL, выполняемой на CPU
  4. OpenNews: Collabora развивает надстройку для работы OpenCL и OpenGL поверх DirectX
  5. OpenNews: Компания Imagination использовала драйвер Zink для поддержки OpenGL 4.6 в своих GPU
  6. OpenNews: Доступен графический тулкит GTK 4.14 с новыми движками для OpenGL и Vulkan
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61131-portablegl
Ключевые слова: portablegl, opengl
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (184) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 09:25, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Проект крутой, но я боюсь представить, насколько медленно с ним работают программы по сравнению с работой на GPU.
     
     
  • 2.7, Аноним (7), 10:05, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Крайзис на  CPU запускали, вроде и фпс был приемлимый. С avx512 так вообще 1 ядро процессора сравнимо с 1 CU видеокарты по вычислительной мощности. Можно параллельно блок из 16 пикселей в float32 в шейдере обрабатывать или 32 пикселя в float16.
     
     
  • 3.15, Аноним (15), 11:04, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    У avx512 смутное будущее... В 12-14 поколениях интела его уже нет.
     
     
  • 4.26, Аноним (-), 11:42, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Да они просто реализовать не смогли его нормально, завезли какой-то недоаналог
     
  • 4.44, Аноним (44), 13:07, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Интел ещё кто-то покупает? В амд есть в потребительском сегменте и анонсируют ещё АЛУ докинуть.
     
     
  • 5.78, Аноним (15), 16:26, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Все, кто хочет "поставил и забыл" и готов пожертвовать ради этого некритичными (для них) недостатками типа бОльшего тепловыделения или невозможностью играть на встройке.
     
     
  • 6.84, Аноним (44), 17:30, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Понятненько, пользователи 4770k размышляют о нужности avx512.
     
  • 6.106, Аноним (106), 19:58, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В свете последних новостей про последние интелы это очень смешно звучит.
     
  • 6.116, Ivan_83 (ok), 21:36, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Интел уже давно превратился в одноразовый, это не интересно многим потребителям.
    У меня АМ4 платформа, оно пережило смену кучи процов и несколько материнок, это весьма удобно.
     
     
  • 7.136, Аноним (15), 00:14, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Давайте подумаем вместе АМ4 выпущен в конце 2016 года, АМ5 выпущен в конце 2022... большой текст свёрнут, показать
     
     
  • 8.145, Ivan_83 (ok), 03:18, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    АМ4 ещё не EOL, ещё какие то процы типа свежие рефрешы выходят, биосы выходят да... большой текст свёрнут, показать
     
  • 8.189, Аноним (189), 06:01, 09/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Gigabyte B650 AORUS ELITE AX - 4 DIMM на 5600... текст свёрнут, показать
     
     
  • 9.208, Аноним (208), 17:52, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Расскажите подробнее, каково это - быть АМДшником Купили хорошую материнку, а п... текст свёрнут, показать
     
     
  • 10.210, n00by (ok), 20:13, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если действительно интересно, а не поспорить, то спрашивать следует какие модул... текст свёрнут, показать
     
  • 4.88, Аноним (88), 17:34, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    AVX вообще не взлетел из-за чересчур стрессовости таких операций и невероятного тепловыделения.
     
     
  • 5.178, Герострат (?), 14:21, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Широко используется = не взлетел. Ясно, понятно.
     
     
  • 6.209, Аноним (208), 17:55, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Настолько широко используется, что интел с ледяным спокойствием отключили его в 12 поколении, не испытывая вообще никаких терзаний по этому поводу.
     
  • 4.134, Аноним (134), 23:53, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да, только сколько ядер у CPU, а сколько у GPU.
     
  • 2.23, Аноним (23), 11:28, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Как-то так:
    - https://github.com/rswinkle/PortableGL/blob/master/demos/shadertoy.cpp
    - https://github.com/rswinkle/PortableGL/tree/master/external/glm
    В смысле "по сравнению с работой на GPU"? Он на GPU и может.
     
     
  • 3.28, Андрей (??), 11:50, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Какой GPU ? Это же софтверная библиотека и реализация. Тут единственное, что сложно понять, так это то, чем mesa не устраивает, если она вроде как раз про то и даже больше. Возможно код действительно проще, но тогда не совсем ясен задел на точность. С другой стороны - это круто, иметь программную реализацию OpenGL, которую можно в чистую линковать на любом устройстве на котором хочешь вывести 3D графику, да ещё и так, чтобы сохранить переносимость кода с полными реализациями OpenGL, типо той же месы.
     
  • 3.29, rezzet (?), 11:57, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Насколько понял GPU не может. GPU в отличие от CPU имеет непереносимую специфичную для каждого поколения GPU архитектуру и обеспечить работу на нем может только производитель GPU в своем драйвере. Этот проект это именно рендер на CPU за счет этого получается переносимость везде где есть Си-компилятор, именно о этом пишет автор проекта на странице github. Идея вполне себе жизнеспособная, фактически это процессорный растеризатор.
     
  • 3.135, Аноним (135), 00:10, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    С горечью признаю что был не прав - в контексте данной библиотеки прикрутить GPU нельзя.
     
  • 2.71, Kuromi (ok), 15:55, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Хороший пример - то как визуально отличались Carmageddon с ускорением на (пусть даже ранних) GPU и чисто программный режим по умолчанию. Если лень гуглить - программный режим это жуткая мешанина пикселей, иначе оно просто не вывозило.
    Так что либо красивая картинка и слайдшоу либо ужос с приемлемым FPS.
     
     
  • 3.85, Аноним (88), 17:31, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В наше время на картинку особо никто не обращал внимание, главное геймплей. Лично играл в Carmageddon с 5 FPS на Pentium 60 МГц, который батя купил по объявлению газеты "из рук в руки", я был счастлив.
     
     
  • 4.87, Аноним (88), 17:32, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > я был счастлив.

    P.S. На контрасте после Денди.

     

  • 1.2, Аноним (88), 09:39, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну что тут скажешь.. круто!
     
  • 1.3, нитгитлистер (?), 09:50, 07/05/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     
  • 1.5, Аноним (5), 10:00, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    Посмотрел код, пример типичного овнокода. С одной стороны так наверняка быстрее, но поддерживать такое поделки будет сложно. Поэтому тут два пути или упрощённый функционал. Или медленное или быстрое забвение как только уйдет кор девелопер (да он там один)
     
     
  • 2.9, Middle Go Developer (?), 10:37, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это как я был на одной олимпиаде, а организатор сказал, что чтобы решить задачу, надо уметь в "спортивное программирование", которое нигде больше не пригодится
     
     
  • 3.13, Аноним (-), 10:58, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > которое нигде больше не пригодится

    Доводилось работать с олимпиадником.
    Его код... ну, это сложно описать.
    Срезание углов где только можно - "разумеется!"
    Забивание на краевые случаи.
    Подогнать код под тесты или выкинуть "ненужные" тесты - "легко!"
    Застрять на ненужной оптимизации какого-то случая, который выпадает раз в 100 лет, переписать его на нечитаемое месиво хаков и при этом ускорить всего на 10% - "а почему бы и нет?")).
    На фоне всего этого принципиальное отсутствие форматирование кода было просто забавной особенностью)

    С другой стороны, уверен что где-то есть прекрасные профессионалы с олимпианым прошлым.
    Просто мне не повезло их встретить.

     
     
  • 4.20, Аноним (20), 11:24, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А что там за проблема с форматированием?
     
     
  • 5.33, Аноним (33), 12:20, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > А что там за проблема с форматированием?

    Ну не там, а конкретно у этого.
    Код пишется как текст. По несколько конструкций в одну строку, расстановка скобок по велению левой пятки, расстановка пробелов - еще хуже. Так и не получилось переубедить, что нужно хотя бы пользоваться автоформатированием IDE, пришлось добавлять линтер на CI.
    Причем я бы понял если бы это был стиль такой, ну просто особенный.
    Но это был просто рандом: какой палец раньше на клавишу попал - в том порядке и будет пробел.
    Нейминг переменных - i, ii, i2, a, aa и так далее. Нейминг функций получше, но не слишком.

     
     
  • 6.77, Аноним (77), 16:20, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • –6 +/
    Это не его проблема с форматированием. Он художник/поэт/писатель/итп. Он так видит. Это твоя проблема неосилить инструмент «форматер кода». Коих есть вагон и маленькая тележка, даже для «не таких как все» фетишистов форматирования.
     
     
  • 7.133, Middle Go Developer (?), 23:02, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это шутка или отсутствие опыта разработки в команде?
     
  • 4.125, Ivan_83 (ok), 22:03, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    По описанию чатгпт такое должен легко заменять бонусом на выходе ещё и код отформатирует :)
     
  • 3.38, 111 (??), 12:41, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Пригодится разве что при решении алгоритмических задач при поступлении на работу. А уже после поступления - ну, может раз в пять лет.
     
     
  • 4.41, Аноним (5), 12:53, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Даже сабж пытались спонсировать какие-то поставщики промышленных устройств в том числе для оборонной промышленности. Но решили что столько магии они не потянут и проспонсировали только два месяца.
     
  • 2.12, 12yoexpert (ok), 10:46, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ты явно ничего не знаешь о высокопроизводительном коде
     
  • 2.24, Аноним (23), 11:30, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Пожалуйста, покажите пример хорошего кода на С. В целом, у вас есть в наличии свой открытый код?
     
     
  • 3.36, Прадед (?), 12:35, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    https://gitlab.gnome.org/Archive/cogl/-/blob/cogl-1.22/cogl/cogl-atlas.c?ref_t

    В принципе любое на джилибе. А так же Кайро.

     
  • 3.37, Аноним (-), 12:36, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > Пожалуйста, покажите пример хорошего кода на С.

    А хороший код на С разве вообще существует?
    С такой убогой выразительность и системой типов сишники умеют только сплит изобретать по сотому разу.
    И то, добавляют еще пару дыр в процессе.

     
     
  • 4.42, Прадед (?), 12:55, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну так а что же ты тогда?
     
  • 3.55, тыквенное латте (?), 14:08, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    *bsd, suckless, gnu (в зависимости).
     
     
  • 4.62, Прадед (?), 14:43, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Две папайи данному джентельмену

    https://git.suckless.org/dwm/file/dwm.c.html#l246

     
     
  • 5.66, тыквенное латте (?), 14:57, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    чшорт, а я всегда фигачил if/else if/else, дублируя код по всем функциям, и наворачивая спагетти.
    а как надо было?
     
  • 5.73, Аноним (73), 16:08, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    вполне легко читаемо и довольно прозрачно
     
     
  • 6.81, Прадед (?), 17:00, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Люди так привыкли к ненависти..
     
     
  • 7.163, тыквенное латте (?), 09:35, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Люди так привыкли к ненависти..

    далеки мы стали от гос pad'a. ой далеки.

     
  • 5.126, Ivan_83 (ok), 22:06, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В принципе норм, но когда форматируют ради красивых дифф - я не разделяю такого подхода :)

        296 if ((!r->title || strstr(c->name, r->title))
        297 && (!r->class || strstr(class, r->class))
        298 && (!r->instance || strstr(instance, r->instance)))
        299 {

    Лучше бы так
        296 if ((!r->title || strstr(c->name, r->title)) &&
        297     (!r->class || strstr(class, r->class)) &&
        298     (!r->instance || strstr(instance, r->instance))) {

     
     
  • 6.138, Аноним (138), 01:01, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В первом куске кода удобно убирать условия просто закоментив строку целиком, а во втором остаются висеть булевые операторы и надо с ними возиться. Стиль для удобной отладки.
     
     
  • 7.146, Ivan_83 (ok), 03:20, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вы думаете о красивых диффах, а я об удобстве чтения.
    У меня оно выровнено и похоже на табличку, где чётко видна логика, повторяющаяся.
     
     
  • 8.161, тыквенное латте (?), 09:30, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    вопрос выравнивания code 296 if r- title 124 124 strstr c-... текст свёрнут, показать
     
  • 8.172, Аноним (172), 12:45, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вот у тебя как раз логику увидеть сложнее Перепиши, например, свой вариант для ... текст свёрнут, показать
     
  • 6.140, Аноним (172), 01:41, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так точно не лучше, единственный правильный вариант форматирования это с префиксными логическими операциями. Если немного подумаешь кочерышкой, то мб поймёшь, что твой вариант читать менее удобно.
     
     
  • 7.147, Ivan_83 (ok), 03:24, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Удобнее - это субъективно.
    У меня чётко видна периодическая структура кода, а с префиксами для этого потребуется двигать первую строку кучей пробелов, что с точки зрения текста убого.

    Я ж говорю, меня не заботит минимизация диффа, я не стремлюсь быть однострочным гит нинзей.

     
     
  • 8.158, Прадед (?), 08:14, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Мне больше первый вариант нравиц с точки зрения чтения как раз, но вообще если п... текст свёрнут, показать
     
  • 6.164, n00by (ok), 11:11, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это не для дифов, а для простоты чтения. Когда не форматируют ради "78 символов в строке", то && не видно.
     
  • 3.91, Bottle (?), 18:21, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    FTEQW - source-port движка Quake.
     
  • 3.156, AKTEON (?), 07:23, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    На ассемблере, на ассемблере еще попросите показать
     
  • 2.27, Аноним (27), 11:46, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Посмотрел код, пример типичного овнокода.

    Да? Где?

    > Или медленное или быстрое забвение как только уйдет кор девелопер

    Там код настолько маленький и простой.

     
  • 2.56, Аноним (56), 14:16, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вот всегда лично надо проверять такие утверждения - залез, посмотрел - код аккуратный, ясно написан, с подробными по делу комментариями. И сложилось такое мнение, что онокодер тут только ты, мальтшик - иди уроки делай.
     
  • 2.61, Ivan7 (ok), 14:40, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Нормальный там код, понятный, ясный и с комментариями, которые абсолютно по делу. Так что не трынди!
    Кому что-то непонятно, пусть развиваются и улучшают свою квалификацию.
     
  • 2.83, Аноним (88), 17:24, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > С одной стороны так наверняка быстрее, но поддерживать такое поделки будет сложно.

    А потом удивляются откуда берутся enterprise hello worlds на 6 гигов исходников.

     
     
  • 3.110, Аноним (5), 20:39, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В Энтерпрайза платят и вовсе за количество строк или ещё худший кипиай. Но зато все понятно и решаемо поменяй разраба и он доделает работу на изи какой бы сложной она не была.
     

     ....большая нить свёрнута, показать (36)

  • 1.11, Швондик (?), 10:45, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    так я не понял, яко этим пользоваться?
     
     
  • 2.19, Аноним (19), 11:13, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Живешь ты допустим в 3042 годе и решил вспомнить молодость, погаматься в игры твоих предков, а OpenGL давно уже выпилили отовсюду, везде голограммы, нейроинтерфейсы, телепорты мать их за ногу. Вот на помощь твоему процу с 100тыс. ядер и придет PortableGL
     
     
  • 3.21, Швондик (?), 11:24, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    так как это компилировать если бинарников нет в архиве, а называется  PortableGL ?
     
     
  • 4.22, Аноним (22), 11:27, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Скомпилируем в WASM, будет тебе бинарник.
     
     
  • 5.40, Прадед (?), 12:51, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В васм его не компиляй
     
  • 5.75, Швондик (?), 16:12, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    так я не пойму, як мни скомпилировати Хело Ворд?
     

  • 1.25, Аноним (25), 11:36, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот бы на FreeDOS его портировали.
     
     
  • 2.69, Ivan7 (ok), 15:14, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Так никто и не запрещает использовать его на FreeDOS или даже вообще без ОС.
     

  • 1.34, Аноним (34), 12:28, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >как переносимость, соответствие API OpenGL, простота использования, простой код и высокая производительность

    Столько противоречий, столько противоречий… Надеюсь, хотя бы авторы не верят в декларируемое, иначе, далеко не уедут.

     
  • 1.43, Аноним (43), 13:00, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Поясните, зачем это нужно, если есть https://docs.mesa3d.org/drivers/llvmpipe.html ? На крайняк можно было откопать softpipe, swrast и osmesa.
     
     
  • 2.70, Ivan7 (ok), 15:18, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Возможно, полезно для встраиваемых систем без GPU и, возможно, даже без операционной системы. Но это просто как пример.
     
  • 2.86, X512 (?), 17:32, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Например чтобы не тащить жирную libllvm в зависимостях.
     
     
  • 3.90, Аноним (90), 17:50, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    libllvm есть в каждой системе на основе Linux, Windows и BSD, она основной компо... большой текст свёрнут, показать
     
     
  • 4.105, Аноним (105), 19:54, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >libllvm есть в каждой системе на основе Linux

    Здесь ты погорячился. Если у тебя не самая распоследняя видяха и ОС, в которой что-то можно изменить по своему усмотрению, то ты ещё можешь пока сидеть на на mesa-21 (подправив .ebuild) или mesa-amber. И можешь обходиться без LLVM'ов в системе.

     
     
  • 5.119, Аноним (119), 21:52, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем обходится без LLVM, если штатный оригинальный проприетарный драйвер для этой видяхи под винду был сделан на основе LLVM?
     
     
  • 6.120, Аноним (119), 21:53, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    P.S. Видяха больше чем на 10 лет устарела.
     
  • 6.122, Аноним (119), 21:56, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    P.P.S. обходитЬся
     
  • 6.137, Аноним (137), 00:15, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А какое же мне должно быть дело до что там в Винде?
     
     
  • 7.165, Аноним (165), 11:16, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    никакого, сидеть софтовой растризации в виде кривой васяноподелки никто не запрещает. Не понятно только зачем.
     
     
  • 8.179, Аноним (179), 14:40, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    А с чего вы решили, что я вообще в Винде сижу Ясно же написал, что использую Me... текст свёрнут, показать
     

  • 1.46, nox. (?), 13:14, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Код оформлен в виде одного заголовочного файла

    Нет.

     
     
  • 2.59, n00by (ok), 14:31, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Скриптом на Питоне склеивает.
     
  • 2.95, Ivan7 (ok), 19:04, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет.

    Не нет, а да! См. README.md:

    in clean C99 as a single header library (in the style of the stb libraries)

    и portablegl.h:

    Do this:
        #define PORTABLEGL_IMPLEMENTATION
    before you include this file in *one* C or C++ file to create the implementation.

     

  • 1.47, Аноним (47), 13:22, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –6 +/
    опять индиголовного мозга у разработчика?  где готовые бинарники по win64????
     
     
  • 2.52, Ivan7 (ok), 13:42, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Есть инструкции по компиляции в разделе Building:
    ...
    On Windows you can grab the zip you want from the same releases page linked above.
    ...
    I have used these same Makefiles to build under MSYS2 on Windows.
    ...
     
  • 2.60, n00by (ok), 14:33, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем для header-only библиотеки под MIT бинарник для win64?
     

  • 1.48, Аноним (48), 13:24, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    https://www.opennet.dev/opennews/art.shtml?num=54337
     
     
  • 2.49, Аноним (47), 13:28, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    это не то. это mesa бинарники которой на гитхубе в наличае всегда. речь идет о том, что раз этот проект делают, то должны выкладывать готовые сборки под самую популярную систему на земле. а не под насваем,- бери и делай все сам.
     
     
  • 3.51, Аноним (44), 13:35, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Дядь, ты что-то попутал - это проект для разработчиков.
     

  • 1.50, Ivan7 (ok), 13:32, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Только на С++ надо было, а не на С, т.к. на С++ можно получить производительность лучше, плюс он банально удобнее.
     
     
  • 2.54, Прадед (?), 13:49, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Правильно было бы спросить
     
     
  • 3.57, Прадед (?), 14:16, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Собсно автар предвидел негодования любителей больших стандартов

    https://github.com/rswinkle/PortableGL/#why-c

     
     
  • 4.58, Ivan7 (ok), 14:22, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Автор никаких аргументов не привёл, кроме того, что это его первый и любимый язык)
    Скорее всего, он просто не знает С++, и, по сути, это и есть главный аргумент)
    Но это его дело, на чём писать. Интересно было бы сравнить производительность с Mesa3D llvmpipe.
     
     
  • 5.74, Прадед (?), 16:08, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Собственно достойный аргумент, учитывая что никто не знает С++ :) учитывая плюсников и это не шутка а строгая констатация. Осталось бы у пациента время на ОупенГЛ коли получал бы наслаждение он от лябмадизации и оуверрайда операторов? Это вопрос ресурсов и приоритетов.

    Авторы другого топового проекта потрудились усерднее

    https://www.sqlite.org/whyc.html

     
     
  • 6.93, Ivan7 (ok), 18:42, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Можно использовать только полезную функциональность С++, а лямбды и всякую херню не использовать. В С++ много реально полезных вещей, например, шаблоны и всё, что с ними связано, классы, constexpr, consteval, в его стандартной библиотеке есть полезные вещи, по мелочи много всего. Всё это позволяет создавать более быстрый код.
     
     
  • 7.107, Аноним (107), 19:58, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Извините, лямбды - это самая полезная функциональность C++0x. Она позволяет сильно сократить дублирование кода в телах функций при ветвлении if(a){if(b){fizz();}else{sizz();}}else{if(d){fuzz();}buzz();}
     
  • 7.127, Ivan_83 (ok), 22:10, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Полезная функциональность С++ называется С, автор её и использует :)
    С++ позволяет создавать код более быстро за счёт сахара не не более быстрый.
     
     
  • 8.166, n00by (ok), 11:32, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Функтор априори быстрее вызова функции по указателю, поскольку встраивается по м... текст свёрнут, показать
     
     
  • 9.173, Ivan_83 (ok), 13:02, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Вот про инлайнинг затирать не дальновидно, нынче компилятор как хочет так и крут... текст свёрнут, показать
     
     
  • 10.175, n00by (ok), 13:33, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Компилятор крутит не как хочет, а как ему позволят единицы трансляции Опция -lt... текст свёрнут, показать
     
  • 7.130, Прадед (?), 22:41, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Братан, никто не будет спорить что С в руках знающего человека хорош, но тем н... большой текст свёрнут, показать
     
     
  • 8.144, Ivan7 (ok), 02:32, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    С - это расширенный С Если кто-то хочет использовать более ограниченный инстр... большой текст свёрнут, показать
     
     
  • 9.151, Ivan_83 (ok), 04:12, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну тут такое Допустим я стал писать на крестаххх вместо С Вместо int напихал a... большой текст свёрнут, показать
     
     
  • 10.152, Ivan7 (ok), 04:38, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Без классов и шаблонов так в них же как раз вся соль В этом случае вопросы н... большой текст свёрнут, показать
     
     
  • 11.153, Ivan_83 (ok), 05:04, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да, язык не виноват, людишки не осиливают ... текст свёрнут, показать
     
     
  • 12.159, Прадед (?), 08:39, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Исторически вижу что в подобных срачах плюсники всегда говорят за теорию а сишни... большой текст свёрнут, показать
     
     
  • 13.167, n00by (ok), 11:43, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    shared_ptr проще самому написать, чем тянуть Буст Другое дело, что зомбирование... текст свёрнут, показать
     
     
  • 14.174, Ivan_83 (ok), 13:03, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Добавил бус в зависимости - приобщился к великому ... текст свёрнут, показать
     
     
  • 15.176, n00by (ok), 13:37, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Купили аборигенов за стеклянные Бусты ... текст свёрнут, показать
     
  • 12.180, Ivan7 (ok), 16:36, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не знаю как людишки Скажу про себя Я осилил плюсы, когда учился в школе в 9x... текст свёрнут, показать
     
     
  • 13.185, Ivan_83 (ok), 00:25, 09/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я продолжаю настаивать что кресты избыточны и пытаясь занять нишу и С и высокоро... текст свёрнут, показать
     
     
  • 14.186, Ivan7 (ok), 01:41, 09/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да нет там никакой избыточной сложности Это всё твои страхи Всегда чем больше ... большой текст свёрнут, показать
     
     
  • 15.190, Ivan_83 (ok), 10:07, 09/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если бы они были умные то смогли бы в KISS, а так они тащат в рот всякую дрянь к... большой текст свёрнут, показать
     
     
  • 16.194, n00by (ok), 13:01, 10/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Геттеры-сеттеры это всего лишь сахар над ООП в Си и ничего нового толком не да... текст свёрнут, показать
     
  • 13.193, n00by (ok), 12:51, 10/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В 90-х годах Си стандартизован в 98-м Агат клон Apple-II собирали на проце... текст свёрнут, показать
     
     
  • 14.197, Ivan7 (ok), 19:05, 10/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Во-первых, 98 год относится к 90-м Во-вторых, компиляторы появились гораздо ран... текст свёрнут, показать
     
     
  • 15.201, n00by (ok), 10:31, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Гипотетически были какие-то борланды, а практически даже MSVC 6-й версии не подд... текст свёрнут, показать
     
     
  • 16.204, Ivan7 (ok), 16:52, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Borland был не гипотетически, а реально Это был лучший компилятор Я сам его ис... большой текст свёрнут, показать
     
     
  • 17.206, n00by (ok), 08:15, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Угу, лучший, своего рода герой легенд и анекдотов И это при том, что Borland ... большой текст свёрнут, показать
     
  • 14.200, Ivan7 (ok), 20:22, 10/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Есть ещё книга Бьерна Страуструпа создателя С Дизайн и эволюция C Там п... текст свёрнут, показать
     
     
  • 15.202, n00by (ok), 10:37, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Кажется, я видел даже STL Степанова и Ли, где макросы были вместо template ... текст свёрнут, показать
     
  • 5.191, Anonymm (?), 19:25, 09/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    "Любимый язык" - это достаточная причина
     
  • 4.101, Аноним (101), 19:37, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Перевод для тех кому лень ходить по ссылкам:

    """
    Недавно я наткнулся на комментарий к PortableGL, в котором, по сути, спрашивалось: "Зачем реализовывать мертвую технологию на мертвом языке?".

    Хотя я бы возразил, что OpenGL далеко не мертва, а C даже не близок к смерти, есть много веских причин писать библиотеку на C. Кроме того, OpenGL - это API C, так что было бы странно, если бы вы не использовали его из C. Написание на чистом C означает, что он компилируется как C++ тоже. И наконец, мне просто нравится Си.

    Переведено с помощью DeepL.com (бесплатная версия)
    """

     
     
  • 5.128, Ivan_83 (ok), 22:12, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Там сплошные оправдания когда читаешь в оригинале.
    У автора не хватает уверенности в себе чтобы заявить что гниль это дно, кресты предсвестник дна и всё в таком духе.
     
  • 2.82, Аноним (82), 17:21, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Аргумент про производительность — либо демонстрация глупости/некомпетентности, либо толстый троллинг и провокация на холивар.
     
     
  • 3.92, Bottle (?), 18:25, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты глупец и толстый тролль. Constexp и consteval позволяют провести повторяющиеся вычисления на этапе компиляции. Например, можно посчитать значения периодической функции на одном промежутке (скажем, синуса), засунуть их в массив и интерполировать между значениями при разных аргументах.
    Чтобы реализовать подобное на Си придётся попотеть знатно.
     
     
  • 4.104, Аноним (82), 19:46, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Чтобы реализовать подобное на Си придётся попотеть знатно.

    Дёрнуть из Makefile внешний скрипт при компиляции, делов-то.

    Деды такое на AWK и шеллскрипте делали, сейчас в моде python или что там ещё…

    Опять же, это скорее про «удобство» и «сахар», чем «по своей природе генерит более производительный код в большинстве случаев».

     
  • 4.108, Аноним (7), 20:04, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Например, можно посчитать значения периодической функции на одном промежутке (скажем, синуса)

    Эталонное ненужно, тащить в бинарь таблицу того, что можно посчитать в райниайме. Она с ssd считываться будет дольше, чем рассчитываться при старте программы. Consteval кривой велосипед, компилятор мог бы сам определять (и определяет) что можно рассчитать на этапе конпеляции. Классы приводят к кривой архитектуре, которую постоянно надо рефакторить. Шаблоны вещь в принципе неплохая в теории, на практике редко нужная и раздувающая время компиляции в сотни раз по сравнению с чистым си.

     
     
  • 5.117, Bottle (?), 21:38, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ты серьёзно? Кучу значений рассчитать в рантайме, чтобы сжечь гигаватты энергии на тысячах компьютеров из-за одинаковых действий, усилить зависимость от аппаратной неточности конкретного процессора, просто чтобы не хранить пару килобайтов данных на диске?
    >Классы приводят к кривой архитектуре, которую постоянно надо рефакторить

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

    На практике время компиляции раздувают хедеры вместо модулей. История с патчами для ядра Linux даёт о себе знать. Плюсовики хоть пытаются это исправить, внедряя систему модулей. А что сишники делают? Ни-че-го.
      

     
     
  • 6.168, n00by (ok), 11:49, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Ты серьёзно? Кучу значений рассчитать в рантайме, чтобы сжечь гигаватты энергии на
    > тысячах компьютеров из-за одинаковых действий, усилить зависимость от аппаратной неточности
    > конкретного процессора, просто чтобы не хранить пару килобайтов данных на диске?

    Какие гигаватты? Ладно бы, про грязные страницы - это бы был аргумент. Но про них ведь знать надо?

     
  • 6.169, Аноним (169), 11:52, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > На практике время компиляции раздувают хедеры вместо модулей

    Да ладно, если условный std::map включить импортом вместо хидера, с чего вдруг что-то должно измениться во времени компиляции? Да и сколько времени их рожали, сколько времени ушло на поддержку в компиляторах. Экосистема лоускилов. Сишку конечно тоже что-то никто особо не рвется развивать, это прискорбно.

     
  • 4.129, Ivan_83 (ok), 22:20, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Чувак, нет, не придётся.

    Предвычесленные массивы иногда пихают в код.
    Когда лень это делать то на этапе инициализации их считают и складывают в динамическую память, этому трюку лет больше чем крестам.

    То что из этого сделали синтаксический сахар - ну ок, в моей практике предвычесленные значения встречаются не часто и в местах где скорость критична используют описанные выше техники.

    Из того что я помню это было в crc функциях, и крипто хэши некоторые (гостовский точно).
    Обычно более актуальны кеши для того что вычисляется в рантайме и что трудно или не возможно посчитать при компеляции.

     
     
  • 5.183, Ivan7 (ok), 18:20, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Для фанатов ручной работы и велосипедостроения чистый Си - это прямо самое то, самый смак)))
     
  • 3.94, Ivan7 (ok), 18:44, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Аргумент про производительность — либо демонстрация глупости/некомпетентности, либо толстый троллинг и провокация на холивар.

    Ещё раз для особоодарённых: С++ позволяет создавать более быстрый, более производительный код, чем С. А С++ вместе с ассемблером - вообще огонь!

    Совсем по-простому: С является подмножеством С++, т.е. С является частью С++. Другими словами, любой компилятор С++ скомпилирует код С. Т.е. С++ обладает намного (вообще несравнимо) большими возможностями, чем С. И вот как раз, используя эти возможности, и можно достичь более высокой производительности по сравнению с С. Под С++ я имею в виду последние стандарты: С++20, С++23.

    Учи матчасть, злобный Аноним!

     
     
  • 4.102, Аноним (82), 19:39, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это неверно Правильнее сказать, стандарты C включают в себя b некоторое подм... большой текст свёрнут, показать
     
     
  • 5.109, Ivan7 (ok), 20:08, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Мелочи погоды здесь не делают Самые-самые разные Например, в С есть likely... большой текст свёрнут, показать
     
     
  • 6.131, Ivan_83 (ok), 22:41, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это уже давно стало опциональным расширением С компеляторов Как по мне, лучше и... большой текст свёрнут, показать
     
     
  • 7.141, Ivan7 (ok), 02:02, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Смысл избегать, если это часть стандарта, элементарно применяется и повышает про... большой текст свёрнут, показать
     
     
  • 8.148, Ivan_83 (ok), 03:47, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что это вносит лишние слова и логику в чтение кода Бесплатно - часто мож... большой текст свёрнут, показать
     
     
  • 9.157, Аноним (157), 08:08, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Postgres еще на сишичке написан - собирается просто мгновенно для проекта такого... текст свёрнут, показать
     
     
  • 10.182, Ivan7 (ok), 16:48, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Скорость сборки не является узким местом С Средние проекты компилируются и со... текст свёрнут, показать
     
     
  • 11.184, Ivan_83 (ok), 21:30, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Хромиум на крестах, 60к файлов, собирается за 3-5 часов на 5950х quemu на С, 6... текст свёрнут, показать
     
     
  • 12.187, Ivan7 (ok), 01:46, 09/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Уверен на 100 , что объём твоих программ сильно меньше объёма исходников Хромиум... текст свёрнут, показать
     
     
  • 13.192, Ivan_83 (ok), 01:44, 10/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    У меня то да Но это как бы к вашему большие проекты только на крестах можно п... текст свёрнут, показать
     
     
  • 14.198, Ivan7 (ok), 19:50, 10/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    У меня в компе 128 Гигов оперативки, поэтому я память особо не считаю Но раньше... текст свёрнут, показать
     
  • 9.160, тыквенное латте (?), 09:17, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Perl же Guile же -D хороший проект так примерно и выглядит ... текст свёрнут, показать
     
  • 4.112, Аноним (44), 20:47, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Почему тогда между си кодом и ближайшим С++ конкурентом разрыв 595% в такой распространённой задаче, как использование регулярных выражений? https://habr.com/ru/articles/812953/
     
     
  • 5.114, тыквенное латте (?), 21:25, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Почему тогда между си кодом и ближайшим С++ конкурентом разрыв 595% в
    > такой распространённой задаче, как использование регулярных выражений? https://habr.com/ru/articles/812953/

    потому что С++ код писали без [[likely]] и [[unlikely]], очевидно же!

     
     
  • 6.132, Прадед (?), 22:59, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Дружище, лайкли и анлайкли - это только верхушка айсберга (которая сюрприз по факту сишниками используется, хоть в стандарте и нет, гном ими по уши наполнен). Есть ещё целая куча подобных фич.
    Одна из них кстати С++ не поддерживается на уровне стандарта, а в сишке да : тадададам - restrict.
    Также курим: cold functions (не путать с cold calls, это к другому отделу))), const functions (e.g. G_GNUC_CONST), register, векторайзеры там ещё всякие.
    Если откроешь код любого хорошего проекта - увидишь всё это с лихвой
     
  • 5.118, Аноним (119), 21:50, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В C++ очень быстрые регулярные выражения, в конечный автомат во время компиляции преобразуются*.

    * с использованием библиотеки CTRE. Си позобным похвастать не может, там ручками нужно автомат писать.

     
     
  • 6.124, Ivan_83 (ok), 22:00, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    С может похвастатся тем, что в нём практически нет диалектов.
    Все диалекты которые есть - это диалекты специфичных либ, в пределах которых опять же практически польностю отсутствует разбивка на диалекты.

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

     
  • 4.123, Ivan_83 (ok), 21:57, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не позволяют кресты создавать более производительный код.
    Всё отличие в том, что в кресты понапихали синтаксического сахара.
    Потом обдолбавшись сахаром авторы принялись расширять сознание и попытались сделать из крестов высокоуровневый язык без ручного манагемента памяти.
    Как итог у них получилась полная бормотуха, где один разработчик не понимает до конца что пишет его сосед, потому что хотя у них компелятор и один но диалекты у каждого разработчика могут быть свои и сильно отличающиеся.
    А потом бедный компелятор крестов пыхтит в 20 раз дольше по сравнению с обычным С компелятором при сборке чтобы расшифровать эту фигню и перевести в машинные коды.
     
     
  • 5.142, Ivan7 (ok), 02:14, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Кресты b позволяют b создавать более производительный код Просто поверьте Н... большой текст свёрнут, показать
     
     
  • 6.149, Ivan_83 (ok), 03:59, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если ты лезешь в асм - то нафига тебе кресты Если мне нужна производительность ... большой текст свёрнут, показать
     
     
  • 7.154, Ivan7 (ok), 05:08, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Асм не заменяет кресты, а дополняет С - язык высокого уровня, и всё, что можн... большой текст свёрнут, показать
     
     
  • 8.155, Ivan_83 (ok), 07:21, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Всё так Но при этом это всё происходит в явном виде Я могу взять структуру, за... большой текст свёрнут, показать
     
     
  • 9.171, n00by (ok), 12:40, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Осталось понять, почему в его эмуляторе JS в 1000 строчек на Си ц , сделанном... текст свёрнут, показать
     
  • 4.170, n00by (ok), 11:58, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Совсем по-простому: С является подмножеством С++, т.е. С является частью С++. Другими
    > словами, любой компилятор С++ скомпилирует код С.

    C.5 C++ and ISO C [diff.iso]

    1 This subclause lists the differences between C++ and ISO C, in addition to those listed above, by the chapters of this document.

    ...

    char* p = "abc";          // valid in C, invalid in C++

     
     
  • 5.181, Ivan7 (ok), 16:40, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Правильнее с const. В С++ работает:
    const char* p = "abc";

    Часто такое использую. Не знаю, что там в стандарте, но на практике всегда и во всех компиляторах работало.

    Так же, как включение (#include) чисто сишного файла в файл С++. Вообще, с проблемами сочетания кода на чистом С с кодом на С++ я никогда не сталкивался.

     
     
  • 6.195, n00by (ok), 13:05, 10/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так в том "чисто сишном" файле стоят #ifdef __cplusplus :)
     
  • 6.196, n00by (ok), 13:07, 10/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Правильнее с const. В С++ работает:
    > const char* p = "abc";
    > Часто такое использую. Не знаю, что там в стандарте, но на практике
    > всегда и во всех компиляторах работало.

    Так надо почитать, что там в стандарте, для того и указал наименование главы. Что бы не писать дезинформацию про "подмножество" -- это принимаются остальные эксперты копировать.

    > Так же, как включение (#include) чисто сишного файла в файл С++. Вообще,
    > с проблемами сочетания кода на чистом С с кодом на С++
    > я никогда не сталкивался.

    Ну так в том "чисто сишном" файле стоят #ifdef __cplusplus :)

     
     
  • 7.199, Ivan7 (ok), 20:02, 10/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Изначально С++ - это был Си с классами. Гораздо позже стали появляться стандарты С++ и С и языки стали немного отличаться, но отличия чисто косметические. Возможно в последних версиях стандарта Си там что-то добавили, но последнюю версию на практике мало кто использует, т.к. на Си в основном написаны старые программы при создании которых использовались старые стандарты. Новые приложения никто в здравом уме на чистом Си писать не будет. А те, кто пишет на Си понимают, что чаще всего их код будет использован в приложениях С++, в том числе ими самими, поэтому они обязаны обеспечить совместимость с С++. Из-за этого на практике в реальной жизни встретить код Си, который бы не компилировался компилятором С++, почти не реально.
     
     
  • 8.203, n00by (ok), 10:44, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Я пишу новое приложение на чистом Си Потому что имеющаяся стандартная библиот... текст свёрнут, показать
     
     
  • 9.205, Ivan7 (ok), 17:16, 12/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Можно использовать С , но не использовать его стандартную библиотеку или исполь... текст свёрнут, показать
     
     
  • 10.207, n00by (ok), 08:34, 13/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Что значит по минимуму Вызвать десяток экспортов из libstdc so вместо сотни... большой текст свёрнут, показать
     
  • 2.99, Аноним (101), 19:32, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Только на С++ надо было, а не на С

    Вкусовщина. Так же можно сказать, что надо было на Pascal или вообще на каком-нибудь Haskell.

     
     
  • 3.103, Аноним (105), 19:43, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Если на Pascal или, тем более, на Haskell, ты такую либу не вызовешь из кода ни на C, ни на C++.
     
     
  • 4.121, Аноним (101), 21:55, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если на Pascal или, тем более, на Haskell, ты такую либу не вызовешь из кода ни на C, ни на C++.
    Давац ещё что-нибудь рассажи))
     
  • 3.143, Ivan7 (ok), 02:17, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >> Только на С++ надо было, а не на С
    > Вкусовщина. Так же можно сказать, что надо было на Pascal или вообще на каком-нибудь Haskell.

    Не надо Pascal и тем более Haskell. C и С++ имеют максимальную переносимость под любой процессор и микроконтроллер, производительность, и для них много качественных компиляторов и библиотек на любой вкус.

     

     ....большая нить свёрнута, показать (79)

  • 1.63, Ivan7 (ok), 14:54, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Плохо, что геометрические шейдеры не реализованы. Без них трудновато обходиться. Можно, конечно, рассчитывать вершины самостоятельно, не используя вершинный и геометрический шейдеры, но тогда это уже будет более старый OpenGL.
     
  • 1.68, Аноним (68), 15:07, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > написанную целиком на языке Си

    github.com/rswinkle/PortableGL
    Languages:
    C 80.7%
    C++ 18.5%

    Кто-то немного призвездел..

     
     
  • 2.76, Аноним (76), 16:20, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В репозитории есть несколько демонстраций на c++. Сам код библиотеки на чистом C.
     
  • 2.79, Аноним (82), 16:27, 07/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Кто-то немного трепло.

    .cpp там в тестах, демках и примерах.
    И GLM ещё в папке external/, который тоже на cpp.

     

  • 1.80, Анонус (?), 16:30, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Чем лучше https://github.com/C-Chads/tinygl ?
     
  • 1.89, X512 (?), 17:35, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Rather than write or include a GLSL parser and have a built in compiler or interpreter, shaders are special C functions that match a specific prototype.

    Жалко что не смогли осилить шейдеры OpenGL и вместо этого придумали ни с чем не совместимый велосипед, требующий переписывание под него всех шейдеров. Могли бы хотя бы сделать простой кодогенератор машинного кода из SPIR-V.

     
  • 1.97, Аноним (101), 19:31, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Великолепный проект. Глянул код - очень достойно.
     
  • 1.98, Аноним (105), 19:31, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Тут говорят, будет медленно. Я вот что подумал, прочитав новость про GCC 14. Есть там пунктик такой "В бэкенде генерации кода для GPU AMD Radeon (GCN) реализована поддержка GPU AMD Radeon gfx90c (GCN5), gfx1030, gfx1036 (RDNA2), gfx1100 и gfx1103 (RDNA3). Повышена производительность для устройств AMD серий MI100 и MI200. По умолчанию активирована архитектура устройств gfx900 (Vega)."
    В связи с тем, что Mеsa свернула куда-то не туда, стала шланго-ллвмом обмазываться. Скомпилять PortableGL под CGN и... может быть, тогда Mesa вообще ненужна?
     
     
  • 2.150, Ivan7 (ok), 04:11, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Как минимум в Mesa3D llvmpipe реализация OpenGL намного более полная вплоть до поддержки OpenGL 4.6, а PortableGL в лучшем случае обрезок от OpenGL 3.2, причём поддерживаются только вершинные и фрагментные шейдеры, и их придётся переписывать на С.
     
     
  • 3.177, Аноним (179), 13:43, 08/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    1. Есть шанс скомпилировать PortableGL в машинные коды GCN и исполнять непосредственно на GPU. А этот ваш llvmpipe предназначен для исполнения на CPU.
    2. Если этого обрезка окажется достаточно, чтобы отрисовывать окошки на рабочем столе, заметим, аппаратно ускоренно, то уже хорошо. Т.е., по сути, аппаратное 2D. Комуто-то этого может быть достаточно. Мне, например.
    3. Сегодня там не всё поддерживается, понятно, проекту только год. Позже добавят ещё.
    4. Оно и так на C. Зачем переписывать с C на C?
     
     
  • 4.188, Ivan7 (ok), 01:53, 09/05/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > 1. Есть шанс скомпилировать PortableGL в машинные коды GCN и исполнять непосредственно на GPU.

    Зачем? У AMD нет драйверов OpenGL? Я просто не в курсе - у меня NVIDIA.

    > 4. Оно и так на C. Зачем переписывать с C на C?

    Шейдеры OpenGL на GLSL, а не на C.

     

  • 1.100, Skullnet (ok), 19:33, 07/05/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Так оно не делает libGl чтобы можно было его загрузить?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру