аппаратное ускорение / производительность и связывание различных API графики MacOSX, фреймворков и слоев

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

относительно http://en.wikipedia.org/wiki/Quartz_%28graphics_layer%29 MacOSX предлагает Quartz (Extreme) в качестве серверной части рендеринга, которая сама является частью Core Graphics. в документации Apple, а также в некоторых книгах говорится, что в любом случае вы каким-то образом используете OpenGL (очевидно, поскольку эта операционная система использует OpenGL для визуализации всего своего пользовательского интерфейса).

В настоящее время у меня есть приложение, которое должно захватывать видео в реальном времени с камеры (через QTKit, который основан на Quicktime, но является Cocoa), и я хотел бы продолжить обработку кадров (через Core Image, шейдеры GLSL и т. д.).

Все идет нормально. теперь мой вопрос - имеет ли значение производительность, если вы

  • а) отрисовать захваченный кадр через Quartz и неявно через OpenGL или
  • б) если вы настраиваете контекст OpenGL и DisplayLink и явно рисуете буферизованное изображение через OpenGL?

каковы были бы преимущества или недостатки любого пути?

Я просмотрел различные примеры (особенно CoreImage101 и CoreVideo101) и документы со страниц разработчиков Apple, но я не понимаю, почему они идут (или должны идти) этим путем?!?

и я действительно не понимаю, где в игру вступают Core Video и Core Animation? идет ли путь б) автоматически означает, что я использую Core Video? и как я могу использовать Core Animation?

Дополнительная информация:

p.s .: кстати, я использую Leopard, так что никаких проблем с QuicktimeX пока нет :)


person didito    schedule 22.01.2010    source источник


Ответы (1)


Вообще говоря, OpenGL дает вам больше гибкости, чем API более высокого уровня. Если API более высокого уровня не предлагают нужную вам функцию, весьма вероятно, что вам нужно будет перейти на уровень OpenGL.

Если они предлагают все необходимое, скорость должна быть сопоставима. Возможно небольшое (почти незначительное) ухудшение с учетом накладных расходов Objective-C.

person Cromulent    schedule 22.01.2010