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

Исходное сообщение
"Fog - библиотека векторной графики, альтернативная Cairo и Skia"

Отправлено opennews , 04-Мрт-12 22:52 
В рамках проекта Fog-Framework (http://code.google.com/p/fog/) развивается высокопроизводительная библиотека векторной графики, платформо-независимый  SVG-движок и тулкит для построения векторного интерфейса пользователя. По своим функциям Fog походит на библиотеки Cairo (http://cairographics.org/) и Skia (http://code.google.com/p/skia/), но отличается от них использованием языка программирования Си++ вместо Си.


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

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

-  Fog-Core - базовый уровень абстракции для обеспечения кроссплатформенной разработки;
-  Fog-...

URL: http://www.phoronix.com/scan.php?page=news_item&px=MTA2NTc
Новость: http://www.opennet.ru/opennews/art.shtml?num=33260


Содержание

Сообщения в этом обсуждении
"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено Аноним , 04-Мрт-12 22:52 
Неплохо, весьма неплохо

"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено Аноним , 04-Мрт-12 22:58 
А как у этого добра с SVG acid test?

"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено СуперАноним , 04-Мрт-12 23:28 
>Проведённые тесты производительности свидетельствуют, что Fog значительно опережает по скорости Windows GDI+ и Cairo.

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


"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено anonymous , 04-Мрт-12 23:33 
Удачи и вам, любители генерации фактори темплейта инициализации исключения лямбда функций, множественно унаследованых от 10 уровневых деревьев иерархи классов.

"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено Вернат , 04-Мрт-12 23:48 
Вы кажется уже ловили fun :)

"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено anonymous vulgaris , 05-Мрт-12 05:53 
>Удачи и вам, любители генерации фактори темплейта инициализации исключения лямбда функций, множественно унаследованых от 10 уровневых деревьев иерархи классов.

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


"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено Ян Злобин , 05-Мрт-12 07:04 
> Ну вот вы же знаете что НЕ надо использовать, чтобы С++ был более удобным чем С.

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


"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено Аноним , 05-Мрт-12 07:15 
Ну у нас-то это пара строчек. А у вас руками вызывать конструкторы, да сохранять указатели на функции да ... десяток страниц выйдет. И сотня ошибок.

"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено ach , 05-Мрт-12 08:12 
Опять срач C vs C++ начинается... А вам всем не все равно, на чем программисты пишут? Любители C, если не нравится, возьмите да перепишите все на С, исходники-то есть. Все полезнее, чем языком чесать. А напишете, тогда и можно будет сравнить, где будет ошибок больше и что будет быстрее.

"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено A , 05-Мрт-12 08:32 
> Удачи и вам, любители генерации фактори темплейта инициализации исключения лямбда функций, множественно унаследованых от 10 уровневых деревьев иерархи классов.

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


"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено hizel , 05-Мрт-12 08:33 
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


"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено Vadim , 05-Мрт-12 11:49 
Эти правила для разработчиков библиотеки Fog, и они нужны скорее всего для лучшей переносимости.

"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено Erley , 05-Мрт-12 13:21 
Ну про STL это уже слишком...
Это уже патология какая-то писать на плюсах без стандартной библиотеки и изобретать колесо то тут, то там.

"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено Name , 05-Мрт-12 13:27 
Нахера вообще было брать плюсы?

"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено Crazy Alex , 05-Мрт-12 21:00 
Полагаю, что тут они погорячились и свою позицию таки изменят. Хотя я не знаток нюансов построения GUI-библиотек, может там есть какие-то принципиальные проблемы с ней - допустим, intrusive containers много более эффективны, или нужны какие-то экзотические схемы аллокации, или ещё что. Думаю, они как-то разъяснят свою позицию по этому поводу. Послее быстрого просмотра кода - разве что использование какого-то GC тянет на (возможные) проблемы с STL - но такие вещи по идее решаемы. Сдругой стороны - свои оптимизированные под конкретное применение классы могут быть в разы быстрее. Но в полиси запрещать использование STL вроде причин нет.

"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено Аноним , 05-Мрт-12 08:36 
>Но Gtkшников, наверно, фиг убедишь на него перейти, т.к. из ихнего плоского C геморно классы вызывать.

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

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


"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено northbear , 05-Мрт-12 09:38 
Угу... Только забыли указать что multithreading paint engine и JIT-компилятор, типа, отключены. Как бы они есть, но сейчас их нету...

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

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

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


"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено Crazy Alex , 05-Мрт-12 21:04 
> Угу... Только забыли указать что multithreading paint engine и JIT-компилятор, типа, отключены.
> Как бы они есть, но сейчас их нету...
> А в Cи классы были всегда. Вопрос, как их использовали...
> Хотя в С++ тоже не всё гладко. Порой посмотришь, что некоторые деятели
> пишут на C++, и начинаешь думать, что разум для всех -
> это зло. Лучше бы редиску сажали...
> Объектно-ориентированное программирование явно не всем дается. Оно хорошо в руках тех,
> кто его понимает... Впрочем, это касается любого эффективного инструмента.

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


"Fog - библиотека векторной графики, альтернативная Cairo и S..."
Отправлено all_glory_to_the_hypnotoad , 05-Мрт-12 22:31 
в нынешних плюсах мультипарадигмальности близко нет. Это уже давно даже не ООП, а ООП-маразм придурковатого старичка.

"Fog - библиотека векторной графики, альтернативная Cairo..."
Отправлено arisu , 06-Мрт-12 06:22 
мульти…что? как там у нас дело с closures обстоит? а, ну да, они не нужны. а с HOF? ненене, без костылей? а, ну да… а, например, динамически добавить метод в класс? а, ну да… ну, может хоть модули? а, ну да, ну да… ну хоть GC тогда? что, и это «ну да»? упс…

"Fog - библиотека векторной графики, альтернативная Cairo..."
Отправлено тоже Аноним , 06-Мрт-12 08:48 
Никто и не говорит, что плюсы легко заменяют все остальные языки во всех областях, не утрируйте.
Если намешать в плюсы все эти интерпретируемые фишки, плюсы просто потеряют один из главных своих козырей - эффективность кода.
Если вам высокий уровень абстрагирования нужнее, чем эффективность, оставайтесь на жабосхемах, кто ж вас гонит?

"Fog - библиотека векторной графики, альтернативная Cairo..."
Отправлено arisu , 06-Мрт-12 19:14 
> Никто и не говорит, что плюсы легко заменяют все остальные языки во
> всех областях, не утрируйте.

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

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

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

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

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

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

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

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


"Fog - библиотека векторной графики, альтернативная Cairo..."
Отправлено arisu , 06-Мрт-12 06:23 
> Ну дык - простота, гибкость, эффективность - выбирайте любые два.

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