![]() |
Модераторы: LSD |
![]() ![]() ![]() |
|
Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: 1 Всего: 62 |
Ща можно XNA ![]() Только она не векторная, зато тянет с собой большущий рантайм, подстать самому фреймворку. ![]() Это сообщение отредактировал(а) Ch0bits - 11.5.2009, 15:26 |
|||
|
||||
source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
-------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
kamre |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: нет Всего: 13 |
Как это не претендует:
??
Меня конкретно интересует векторная 2D графика со сглаживанием. Поэтому первое что я решил попробовать в .NET/Mono - это System.Drawing.Graphics, который рисует через GDI+. Но поддержка System.Drawing.Graphics в Mono уж слишком кривая и тормозная сейчас. А сами по себе OpenGL/DirectX слишком низкоуровневые для отрисовки векторной графики, так что простыми bindings здесь не обойтись. Как именно предлагается рисовать в .NET/Mono через OpenGL? Что используют "не студенты"? Вообще я пока только единственный хороший вариант знаю для отрисовки векторной графики через OpenGL: Qt Arthur с OpenGL pipeline на современной видеокарте. Вот мне и интересно, что же .NET/Mono могут предложить аналогичного... |
||||||
|
|||||||
Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: 1 Всего: 62 |
Mono Cairo library
Cairo is a multi-platform library providing anti-aliased vector-based rendering for multiple target backends. |
|||
|
||||
source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
А вот так это. Слой совместимости с Microsoft API не означает полной совместимости, она и невозможна даже теоретически пока исходники Windows не станут Open Source. Если тебя интересует это второстепенное направление, то пользуйся MoMA для выявления не реализованных функций. Ну если только 2D, то пользуйся Mono.Cairo - это очень похожая по API на GDI+ штука, но работает через разные бэкенды(может и через OpenGL), а не через WinAPI`шную GdiPlus.dll. Добавлено через 1 минуту и 9 секунд Ch0bits опередил, хитрюга ![]() -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
kamre |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: нет Всего: 13 |
Так оно вроде и так используется в линуксовой реализации System.Drawing в Mono: ![]() Именно этот pipeline рисует криво и тормозит в линуксе. |
|||
|
||||
kamre |
|
||||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: нет Всего: 13 |
Потому что нужен выскоуровневый API для отрисовки вроде System.Drawing.Graphics или QPainter. Кроме того нужно качественное сглаживание и субпиксельная точность при отрисовке. И это очень нетривиальная задача, которая так просто на низкоуровневом OpenGL не решается: http://homepage.mac.com/arekkusu/bugs/invariance/HWAA.html
Ну уж отрисовка то векторной графики достаточно точно описывается и Qt/Java2D/.NET рендерят эти шестеренки практически с точностью до пикселей (только сглаживание немного разное у всех). А вот в Mono через System.Drawing.Graphics получается совсем не то, что ожидается и Microsoft не виноват.
Mono.Cairo и используется в линуксовой реализации System.Drawing. |
||||||
|
|||||||
source777 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
Ты читать то умеешь? Там же тебе чёрным по белому английским языком написано, что означает этот рисунок:
Ты в этой теме активно гонишь на libgdiplus.so, а к Mono.Cairo она никакого отношения не имеет. Послать тебя что-ли на поиски пруфлинка, чтобы ты недельку по инету полазил... Это сообщение отредактировал(а) source777 - 11.5.2009, 22:44 -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
|||
|
||||
kamre |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 24.3.2006 Репутация: нет Всего: 13 |
Как это не имеет? libgdiplus.so реализован поверх Cairo (не Mono.Cairo). Хотя можно еще попробовать напрямую использовать bindings к Cairo, только вот есть ли они к .NET (не Mono)? Добавлено через 8 минут и 39 секунд Да, ошибся немного. На самом деле там так: System.Drawing.Graphics => libgdiplus => Cairo. Т.е. получается разработчики libgdiplus настолько сумели испортить Cairo, что оно тормозит и криво рисует. Это сообщение отредактировал(а) kamre - 11.5.2009, 22:36 |
|||
|
||||
source777 |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: нет Всего: 56 |
В том сообщении я имел в виду именно Mono.Cairo, так что поправил.
В общем попробуй Mono.Cairo с бекэндом OpenGL, проблем остаться не должно. Добавлено через 7 минут и 31 секунду P.S. Впрочем, рисование часиков, да и вообще графика, - это далеко не основное применение .NET`a А с основными применениями Mono справляется весьма хорошо, так что, я уверен, не стоит ругать такой замечательный проект за 10% несовместимости с .NET и за небольшое отставание от него по некоторым сопутствующим технологиям. -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||
|
|||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |