Перейти к содержанию
Fire Monkey от А до Я
  • 0

Архитектура FM


Александр Скляр

Вопрос

Здравствуйте Ярослав, вопрос к вам. Я бы хотел узнать, почему для компиляции FM приложений под Windows используется DirectX а под все остальные платформы - OpenGL? Я бы хотел услышать, если можно, обоснованные доводы. Вероятно вы уже отвечали на данный вопрос, если да - укажите ссылку, буду вам благодарен. Спасибо.

Ссылка на комментарий

Рекомендуемые сообщения

  • 1

Попробую я ответить.

Во первых Direct2d, используемый FMX по умолчанию, более нативен для Windows чем OpenGL.

Нужной версии OpenGL может и не быть в системе, а Direct2d начиная с Vista тянет с собой сама Windows.

Кроме того при использовании Direct2d используется CanvasD2D, которая являться оберткой для нативных вызовов D2D, и работает намного лучше, аккуратнее, и обладает большими возможностями чем TGpuCanvas - используемая для OpenGL.

Ссылка на комментарий
  • 0
  • Администраторы
49 минут назад, Error сказал:

Попробую я ответить.

Во первых Direct2d, используемый FMX по умолчанию, более нативен для Windows чем OpenGL.

Нужной версии OpenGL может и не быть в системе, а Direct2d начиная с Vista тянет с собой сама Windows.

Кроме того при использовании Direct2d используется CanvasD2D, которая являться оберткой для нативных вызовов D2D, и работает намного лучше, аккуратнее, и обладает большими возможностями чем TGpuCanvas - используемая для OpenGL.

В общем все правильно написано.

Ссылка на комментарий
  • 0

Спасибо за ответ. Но позволю себе задать тогда еще один - раз вы обеспечиваете одинаковую функциональность FM как на OSX так и на Windows, то все равно приходится равняться на OpenGL возможности. А поддержка двух API представляется как мне видится не тривиальной задачей. "...D2D, и работает намного лучше, аккуратнее" - характеристика немного размыто как мне кажется. OSX, Android, IOS, (может, когда нибудь и Linux) может работать только на OpenGL, но вместо оптимизации под этот API вы тратите силы на поддержку DX, вам так не кажется? Ну и на счет "Нужной версии OpenGL может и не быть в системе" - что то я не припомню последних версий (начиная с висты) которые бы не комплектовались актуальной версией OpenGL.

Ссылка на комментарий
  • 0
48 минут назад, Александр Скляр сказал:

OSX, Android, IOS, (может, когда нибудь и Linux) может работать только на OpenGL

На Windows два вида канвы: TCanvasGdiPlus и TCustomCanvasD2D, на Mac есть нативная для макоси TCanvasQuartz, как видите не OpenGL-ем единым.

49 минут назад, Александр Скляр сказал:

но вместо оптимизации под этот API вы тратите силы на поддержку DX

На Windows есть как минимум один повод использовать D2D - в этой канве используется нативный для системы рендинг текста, в то время как в TGpuCanvas рендинг текста происходит через промежуточные битмапы, что сказывается на производительности.

D2D, Quartz, GdiPlus - все эти Api созданы как-раз для использования в приложениях, в то время как OpenGL явно не предназначен для этого и не имеет элементарного рендера текста.

53 минуты назад, Александр Скляр сказал:

Ну и на счет "Нужной версии OpenGL может и не быть в системе" - что то я не припомню последних версий (начиная с висты) которые бы не комплектовались актуальной версией OpenGL

Действительно у меня на 7-ке были актуальные драйвера по дефолту, за одной маленькой проблемой - с софтварным рендингом :)

57 минут назад, Александр Скляр сказал:

А поддержка двух API представляется как мне видится не тривиальной задачей. "...D2D, и работает намного лучше, аккуратнее" - характеристика немного размыто как мне кажется

Тут все просто - бросьте на форму TCircle и запустите на телефоне, а потом сравните качество прорисовки круга с Windows. И из-за заточености OpenGL под 3д визуализацию намного лучше и не сделать скорее всего.

--

Я наоборот жду когда под мобильными платформами будет использоваться нативное API для графики

Ссылка на комментарий

Присоединяйтесь к обсуждению

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

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...