The OpenNET Project / Index page

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

Fog - библиотека векторной графики, альтернативная Cairo и Skia

04.03.2012 22:37

В рамках проекта Fog-Framework развивается высокопроизводительная библиотека векторной графики, платформо-независимый SVG-движок и тулкит для построения векторного интерфейса пользователя. По своим функциям Fog походит на библиотеки Cairo и Skia, но отличается от них использованием языка программирования Си++ вместо Си.

Проведённые тесты производительности свидетельствуют, что Fog значительно опережает по скорости Windows GDI+ и Cairo. Для ускорения выполнения 2D-операций в Fog задействованы такие методы оптимизации, как многопоточное выполнение, SIMD-инструкции CPU (SSE2/SSSE3) и специализированный JIT-компилятор. В будущем планируется реализовать возможность выноса некоторых вычислений на плечи GPU.

В состав фреймворка Fog входит:

  • Fog-Core - базовый уровень абстракции для обеспечения кроссплатформенной разработки;
  • Fog-G2d - библиотека векторной графики и обработки изображений;
  • Fog-UI - демонстрационный пользовательский интерфейс, использующий векторную графику;
  • Fog-Svg - система рендеринга и парсинга формата SVG.


  1. Главная ссылка к новости (http://www.phoronix.com/scan.p...)
  2. OpenNews: Релиз графической библиотеки Cairo 1.10.0
  3. OpenNews: Релиз композитного менеджера cairo-compmgr 0.3.0
  4. OpenNews: Обсуждение выбора графического тулкита для Linux сборки Google Chrome
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/33260-fog
Ключевые слова: fog, vector, 2d, lib, graph
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (23) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 22:52, 04/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Неплохо, весьма неплохо
     
  • 1.2, Аноним (-), 22:58, 04/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А как у этого добра с SVG acid test?
     
  • 1.3, СуперАноним (?), 23:28, 04/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >Проведённые тесты производительности свидетельствуют, что Fog значительно опережает по скорости Windows GDI+ и Cairo.

    Но Gtkшников, наверно, фиг убедишь на него перейти, т.к. из ихнего плоского C геморно классы вызывать.

     
     
  • 2.4, anonymous (??), 23:33, 04/03/2012 [^] [^^] [^^^] [ответить]  
  • +22 +/
    Удачи и вам, любители генерации фактори темплейта инициализации исключения лямбда функций, множественно унаследованых от 10 уровневых деревьев иерархи классов.
     
     
  • 3.6, Вернат (?), 23:48, 04/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Вы кажется уже ловили fun :)
     
  • 3.7, anonymous vulgaris (?), 05:53, 05/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Удачи и вам, любители генерации фактори темплейта инициализации исключения лямбда функций, множественно унаследованых от 10 уровневых деревьев иерархи классов.

    Ну вот вы же знаете что НЕ надо использовать, чтобы С++ был более удобным чем С. Аналогично руководствуясь похожими правилами можно кстати и на самом С что-то читаемое написать. А выводы? Не, я тут на всякий случай воздержусь.

     
     
  • 4.8, Ян Злобин (ok), 07:04, 05/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну вот вы же знаете что НЕ надо использовать, чтобы С++ был более удобным чем С.

    Аналогично - вы не знаете, что надо или не надо использовать, чтобы C был удобне, чем C++. :-)

     
  • 3.9, Аноним (-), 07:15, 05/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну у нас-то это пара строчек. А у вас руками вызывать конструкторы, да сохранять указатели на функции да ... десяток страниц выйдет. И сотня ошибок.
     
     
  • 4.10, ach (ok), 08:12, 05/03/2012 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Опять срач C vs C++ начинается... А вам всем не все равно, на чем программисты пишут? Любители C, если не нравится, возьмите да перепишите все на С, исходники-то есть. Все полезнее, чем языком чесать. А напишете, тогда и можно будет сравнить, где будет ошибок больше и что будет быстрее.
     
  • 3.11, A (?), 08:32, 05/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Удачи и вам, любители генерации фактори темплейта инициализации исключения лямбда функций, множественно унаследованых от 10 уровневых деревьев иерархи классов.

    IMHO, любители C все то же самое делают вручную при помощи макросов.

     
  • 3.12, hizel (ok), 08:33, 05/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Do not use C++ STL library.
    Do not use C++ RTTI (no dynamic casts) and C++ exceptions.

    http://code.google.com/p/fog/wiki/Roadmap

     
     
  • 4.15, Vadim (??), 11:49, 05/03/2012 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Эти правила для разработчиков библиотеки Fog, и они нужны скорее всего для лучшей переносимости.
     
  • 4.16, Erley (ok), 13:21, 05/03/2012 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Ну про STL это уже слишком...
    Это уже патология какая-то писать на плюсах без стандартной библиотеки и изобретать колесо то тут, то там.
     
  • 4.17, Name (?), 13:27, 05/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Нахера вообще было брать плюсы?
     
  • 4.18, Crazy Alex (ok), 21:00, 05/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Полагаю, что тут они погорячились и свою позицию таки изменят. Хотя я не знаток нюансов построения GUI-библиотек, может там есть какие-то принципиальные проблемы с ней - допустим, intrusive containers много более эффективны, или нужны какие-то экзотические схемы аллокации, или ещё что. Думаю, они как-то разъяснят свою позицию по этому поводу. Послее быстрого просмотра кода - разве что использование какого-то GC тянет на (возможные) проблемы с STL - но такие вещи по идее решаемы. Сдругой стороны - свои оптимизированные под конкретное применение классы могут быть в разы быстрее. Но в полиси запрещать использование STL вроде причин нет.
     
  • 2.13, Аноним (-), 08:36, 05/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    >Но Gtkшников, наверно, фиг убедишь на него перейти, т.к. из ихнего плоского C геморно классы вызывать.

    Язык тут значения не имеет. Да и где Вы в Си нашли классы.

    "Для ускорения выполнения 2D-операций в Fog задействованы такие методы оптимизации, как многопоточное выполнение, SIMD-инструкции CPU (SSE2/SSSE3) и специализированный JIT-компилятор. В будущем планируется реализовать возможность выноса некоторых вычислений на плечи GPU."

     

  • 1.14, northbear (ok), 09:38, 05/03/2012 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Угу... Только забыли указать что multithreading paint engine и JIT-компилятор, типа, отключены. Как бы они есть, но сейчас их нету...

    А в Cи классы были всегда. Вопрос, как их использовали...

    Хотя в С++ тоже не всё гладко. Порой посмотришь, что некоторые деятели пишут на C++, и начинаешь думать, что разум для всех - это зло. Лучше бы редиску сажали...

    Объектно-ориентированное программирование явно не всем дается. Оно хорошо в руках тех, кто его понимает... Впрочем, это касается любого эффективного инструмента.

     
     
  • 2.19, Crazy Alex (ok), 21:04, 05/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Угу... Только забыли указать что multithreading paint engine и JIT-компилятор, типа, отключены.
    > Как бы они есть, но сейчас их нету...
    > А в Cи классы были всегда. Вопрос, как их использовали...
    > Хотя в С++ тоже не всё гладко. Порой посмотришь, что некоторые деятели
    > пишут на C++, и начинаешь думать, что разум для всех -
    > это зло. Лучше бы редиску сажали...
    > Объектно-ориентированное программирование явно не всем дается. Оно хорошо в руках тех,
    > кто его понимает... Впрочем, это касается любого эффективного инструмента.

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

     
     
  • 3.22, all_glory_to_the_hypnotoad (ok), 22:31, 05/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    в нынешних плюсах мультипарадигмальности близко нет. Это уже давно даже не ООП, а ООП-маразм придурковатого старичка.
     
  • 3.23, arisu (ok), 06:22, 06/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    мульти…что? как там у нас дело с closures обстоит? а, ну да, они не нужны. а с HOF? ненене, без костылей? а, ну да… а, например, динамически добавить метод в класс? а, ну да… ну, может хоть модули? а, ну да, ну да… ну хоть GC тогда? что, и это «ну да»? упс…
     
     
  • 4.25, тоже Аноним (ok), 08:48, 06/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    Никто и не говорит, что плюсы легко заменяют все остальные языки во всех областях, не утрируйте.
    Если намешать в плюсы все эти интерпретируемые фишки, плюсы просто потеряют один из главных своих козырей - эффективность кода.
    Если вам высокий уровень абстрагирования нужнее, чем эффективность, оставайтесь на жабосхемах, кто ж вас гонит?
     
     
  • 5.26, arisu (ok), 19:14, 06/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Никто и не говорит, что плюсы легко заменяют все остальные языки во
    > всех областях, не утрируйте.

    я не утрирую, а прошу показать мне «мультипарадигменность».

    > Если намешать в плюсы все эти интерпретируемые фишки

    компиляторы Scheme смотрят на тебя как на школьника.

    > плюсы просто потеряют один из главных своих козырей — эффективность кода.

    Stalin, например, это полновесная Scheme. в числодробильных задачах c++ обходит*. внимание, сложный вопрос: как же это удалось языку с «интерпретируемыми фишками»?

    > Если вам высокий уровень абстрагирования нужнее, чем эффективность, оставайтесь на жабосхемах,
    > кто ж вас гонит?

    мне важно:
    а) скорость и удобство написания;
    б) скорость работы кода;
    в) отсутствие геморроя.
    c++ по всем трём пунктам показывает шиш. кое-как он справляется только с «б», и то если соблюдать правила безопасности и не использовать «объектные» навороты (что мы и видим в этой задаче). смешно.

    * на момент, когда Stalin был жив. Коба систему больше не развивает, и про теперешнее состояние я не уверен. однако факт налицо.

     
  • 3.24, arisu (ok), 06:23, 06/03/2012 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну дык - простота, гибкость, эффективность - выбирайте любые два.

    а можно, я возьму Scheme, например, и выберу все три?

     

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



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

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