Ссылка CVDisplayLink
Когда данному дисплею будет нужен каждый кадр, Базовая ссылка Видеодисплея обеспечивает отдельный высокоприоритетный поток для уведомления приложения. Можно использовать ссылку дисплея для простой синхронизации с частотой обновления дисплея. Ссылка API дисплея использует Базовую систему Фундаментального класса внутренне для обеспечения поведения подсчета ссылок и других полезных свойств.
-
Создает ссылку дисплея для единственного дисплея.
Объявление
Swift
func CVDisplayLinkCreateWithCGDisplay(_displayID: CGDirectDisplayID, _displayLinkOut: UnsafeMutablePointer<Unmanaged<CVDisplayLink>?>) -> CVReturnObjective C
CVReturn CVDisplayLinkCreateWithCGDisplay ( CGDirectDisplayID displayID, CVDisplayLinkRef *displayLinkOut );Параметры
displayIDБазовая Графика ID целевого дисплея.
displayLinkOutНа выводе,
displayLinkOutточки к недавно создаваемой ссылке дисплея.Возвращаемое значение
Базовое Видео заканчивается код. Посмотрите Базовую Видео Ссылку Констант для возможных значений.
Обсуждение
Используйте этот вызов для создания ссылки дисплея для единственного дисплея. Для получения дополнительной информации о типе идентификатора дисплея посмотрите
CGDirectDisplayID.Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Создает ссылку дисплея, способную к тому, чтобы быть используемым со всеми активными дисплеями.
Объявление
Swift
func CVDisplayLinkCreateWithActiveCGDisplays(_displayLinkOut: UnsafeMutablePointer<Unmanaged<CVDisplayLink>?>) -> CVReturnObjective C
CVReturn CVDisplayLinkCreateWithActiveCGDisplays ( CVDisplayLinkRef *displayLinkOut );Параметры
displayLinkOutНа выводе,
displayLinkOutточки к недавно создаваемой ссылке дисплея.Возвращаемое значение
Базовое Видео заканчивается код. Посмотрите Базовую Видео Ссылку Констант для возможных значений.
Обсуждение
CVDisplayLinkCreateWithActiveCGDisplaysопределяет дисплеи, активно используемые главным компьютером, и создает ссылку дисплея, совместимую со всеми ними. Для большинства приложений, вызывая эту функцию наиболее удобный способ создать ссылку дисплея. После создания можно присвоить ссылку дисплея к любому активному дисплею путем вызоваCVDisplayLinkSetCurrentCGDisplayфункция.Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Создает ссылку дисплея для массива дисплеев.
Объявление
Swift
func CVDisplayLinkCreateWithCGDisplays(_displayArray: UnsafeMutablePointer<CGDirectDisplayID>, _count: CFIndex, _displayLinkOut: UnsafeMutablePointer<Unmanaged<CVDisplayLink>?>) -> CVReturnObjective C
CVReturn CVDisplayLinkCreateWithCGDisplays ( CGDirectDisplayID *displayArray, CFIndex count, CVDisplayLinkRef *displayLinkOut );Параметры
displayArrayУказатель на массив Базового Графического дисплея IDs, представляющий все активные мониторы, Вы хотите использовать с этой ссылкой дисплея.
countЧисло дисплеев в массиве дисплея.
displayLinkOutНа выводе,
displayLinkOutточки к недавно создаваемой ссылке дисплея.Возвращаемое значение
Базовое Видео заканчивается код. Посмотрите Базовую Видео Ссылку Констант для возможных значений.
Обсуждение
Используйте этот вызов для создания ссылки дисплея для ряда дисплеев, идентифицированных Базовым Графическим дисплеем IDs. Для получения дополнительной информации о типе идентификатора дисплея посмотрите
CGDirectDisplayID.Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Создает ссылку дисплея из маски дисплея OpenGL.
Объявление
Swift
func CVDisplayLinkCreateWithOpenGLDisplayMask(_mask: CGOpenGLDisplayMask, _displayLinkOut: UnsafeMutablePointer<Unmanaged<CVDisplayLink>?>) -> CVReturnObjective C
CVReturn CVDisplayLinkCreateWithOpenGLDisplayMask ( CGOpenGLDisplayMask mask, CVDisplayLinkRef *displayLinkOut );Параметры
maskМаска дисплея OpenGL, описывающая доступные дисплеи.
displayLinkOutНа выводе,
displayLinkOutточки к недавно создаваемой ссылке дисплея.Возвращаемое значение
Базовое Видео заканчивается код. Посмотрите Базовую Видео Ссылку Констант для возможных значений.
Обсуждение
Используя эту функцию избегает иметь необходимость вызвать Базовую Графическую функцию
CGOpenGLDisplayMaskToDisplayID.Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Получает период обновления эффективной выходной мощности дисплея, как измерено к системному времени.
Объявление
Swift
func CVDisplayLinkGetActualOutputVideoRefreshPeriod(_displayLink: CVDisplayLink!) -> DoubleObjective C
double CVDisplayLinkGetActualOutputVideoRefreshPeriod ( CVDisplayLinkRef displayLink );Параметры
displayLinkСсылка дисплея для получения периода обновления от.
Возвращаемое значение
Двойная точность значение с плавающей точкой, представляющее фактический период обновления в секундах. Если устройство не работает или иначе недоступно, это значение может быть нулем.
Обсуждение
Этот вызов возвращает период обновления эффективной выходной мощности, вычисленный относительно системного времени (как измерено использование
CVGetCurrentHostTimeфункция).Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Получает текущий дисплей, связанный со ссылкой дисплея.
Объявление
Swift
func CVDisplayLinkGetCurrentCGDisplay(_displayLink: CVDisplayLink!) -> CGDirectDisplayIDObjective C
CGDirectDisplayID CVDisplayLinkGetCurrentCGDisplay ( CVDisplayLinkRef displayLink );Параметры
displayLinkСсылка дисплея, текущий дисплей которой Вы хотите получить.
Возвращаемое значение
Идентификатор, представляющий текущий дисплей. Для получения дополнительной информации о типе идентификатора дисплея посмотрите
CGDirectDisplayID.Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Получает ток («теперь») время данной ссылки дисплея.
Объявление
Swift
func CVDisplayLinkGetCurrentTime(_displayLink: CVDisplayLink!, _outTime: UnsafeMutablePointer<CVTimeStamp>) -> CVReturnObjective C
CVReturn CVDisplayLinkGetCurrentTime ( CVDisplayLinkRef displayLink, CVTimeStamp *outTime );Параметры
displayLinkСсылка дисплея, текущее время которой Вы хотите получить.
outTimeУказатель на a
CVTimeStampструктура. Обратите внимание на то, что необходимо установить версию в структуре (в настоящее время 0) прежде, чем вызвать для указания, какую версию структуры метки времени Вы хотите.Возвращаемое значение
Базовое Видео заканчивается код. Посмотрите Базовую Видео Ссылку Констант для возможных значений.
Обсуждение
Вы используете этот вызов для получения метки времени в настоящее время выводящегося на экран кадра.
Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
CVDisplayLinkGetNominalOutputVideoRefreshPeriod (_:) CVDisplayLinkGetNominalOutputVideoRefreshPeriodПолучает номинальный период обновления ссылки дисплея.
Объявление
Swift
func CVDisplayLinkGetNominalOutputVideoRefreshPeriod(_displayLink: CVDisplayLink!) -> CVTimeObjective C
CVTime CVDisplayLinkGetNominalOutputVideoRefreshPeriod ( CVDisplayLinkRef displayLink );Параметры
displayLinkСсылка дисплея, период обновления которой Вы хотите получить.
Возвращаемое значение
A
CVTimeструктура, содержащая номинальный период обновления. Если недопустимая ссылка дисплея была указана, это значение неопределенно.Обсуждение
Этот вызов позволяет получать идеальный период обновления устройства. Например, устройство вывода NTSC могло бы сообщить, что 1001/60000 представлял точную частоту кадровой развертки NTSC.
Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Получает номинальную задержку ссылки дисплея.
Объявление
Swift
func CVDisplayLinkGetOutputVideoLatency(_displayLink: CVDisplayLink!) -> CVTimeObjective C
CVTime CVDisplayLinkGetOutputVideoLatency ( CVDisplayLinkRef displayLink );Параметры
displayLinkСсылка дисплея, значение задержки которой Вы хотите получить.
Возвращаемое значение
A
CVTimeструктура, содержащая значение задержки. Это значение может быть неопределенным.Обсуждение
Этот вызов позволяет Вам получать встроенную выходную задержку устройства. Например, устройство NTSC с одним кадром задержки могло бы сообщить 1001/30000 или 2002/60000.
Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Получает Базовую Основу, ID для дисплея соединяет тип данных.
Объявление
Swift
func CVDisplayLinkGetTypeID() -> CFTypeIDObjective C
CFTypeID CVDisplayLinkGetTypeID ( void );Возвращаемое значение
Базовая Основа ID для этого типа.
Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Указывает, работает ли данная ссылка дисплея.
Объявление
Swift
func CVDisplayLinkIsRunning(_displayLink: CVDisplayLink!) -> BooleanObjective C
Boolean CVDisplayLinkIsRunning ( CVDisplayLinkRef displayLink );Параметры
displayLinkСсылка дисплея, выполненное состояние которой Вы хотите определить.
Возвращаемое значение
Возвраты
trueесли ссылка дисплея работает,falseиначе.Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Выпускает ссылку дисплея.
Объявление
Objective C
void CVDisplayLinkRelease ( CVDisplayLinkRef displayLink );Параметры
displayLinkСсылка дисплея к выпуску. Эта функция
NULL- безопасный.Оператор импорта
Objective C
@import CoreVideo;Доступность
Доступный в OS X v10.4 и позже.
-
Сохраняет ссылку дисплея.
Объявление
Objective C
CVDisplayLinkRef CVDisplayLinkRetain ( CVDisplayLinkRef displayLink );Параметры
displayLinkСсылка дисплея, которая будет сохранена. Эта функция
NULL- безопасный.Возвращаемое значение
Для удобства эта функция возвращает сохраненную ссылку дисплея в случае успеха.
Оператор импорта
Objective C
@import CoreVideo;Доступность
Доступный в OS X v10.4 и позже.
-
Устанавливает текущий дисплей ссылки дисплея.
Объявление
Swift
func CVDisplayLinkSetCurrentCGDisplay(_displayLink: CVDisplayLink!, _displayID: CGDirectDisplayID) -> CVReturnObjective C
CVReturn CVDisplayLinkSetCurrentCGDisplay ( CVDisplayLinkRef displayLink, CGDirectDisplayID displayID );Параметры
displayLinkСсылка дисплея, дисплей которой Вы хотите установить.
displayIDID дисплея, который будет установлен.
Возвращаемое значение
Базовое Видео заканчивается код. Посмотрите Базовую Видео Ссылку Констант для возможных значений.
Обсуждение
Несмотря на то, что безопасно вызвать эту функцию на рабочей ссылке дисплея, разрыв может появиться в видео метке времени.
Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext (_: _: _:) CVDisplayLinkSetCurrentCGDisplayFromOpenGLContextВыбирает ссылку дисплея, самую оптимальную для текущего средства рендеринга контекста OpenGL.
Объявление
Swift
func CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext(_displayLink: CVDisplayLink!, _cglContext: CGLContextObj, _cglPixelFormat: CGLPixelFormatObj) -> CVReturnObjective C
CVReturn CVDisplayLinkSetCurrentCGDisplayFromOpenGLContext ( CVDisplayLinkRef displayLink, CGLContextObj cglContext, CGLPixelFormatObj cglPixelFormat );Параметры
displayLinkСсылка дисплея, текущий дисплей которой должен быть установлен.
cglContextКонтекст OpenGL для получения текущего средства рендеринга от.
cglPixelFormatФормат пикселя OpenGL раньше создавал переданный - в контексте OpenGL.
Возвращаемое значение
Базовое Видео заканчивается код. Посмотрите Базовую Видео Ссылку Констант для возможных значений.
Обсуждение
Эта функция выбирает дисплей с самой низкой частотой обновления.
Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Устанавливает выходную функцию обратного вызова средства рендеринга.
Объявление
Swift
func CVDisplayLinkSetOutputCallback(_displayLink: CVDisplayLink!, _callback: CVDisplayLinkOutputCallback, _userInfo: UnsafeMutablePointer<Void>) -> CVReturnObjective C
CVReturn CVDisplayLinkSetOutputCallback ( CVDisplayLinkRef displayLink, CVDisplayLinkOutputCallback callback, void *userInfo );Параметры
displayLinkСсылка дисплея, выходной обратный вызов которой Вы хотите установить.
callbackФункция обратного вызова для установки для этой ссылки дисплея. Посмотрите
CVDisplayLinkOutputCallbackдля получения дополнительной информации о реализации этой функции.userInfoУказатель на пользовательские данные.
Возвращаемое значение
Базовое Видео заканчивается код. Посмотрите Базовую Видео Ссылку Констант для возможных значений.
Обсуждение
Ссылка дисплея вызывает этот обратный вызов каждый раз, когда это хочет, чтобы Вы вывели кадр.
Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Активирует ссылку дисплея.
Объявление
Swift
func CVDisplayLinkStart(_displayLink: CVDisplayLink!) -> CVReturnObjective C
CVReturn CVDisplayLinkStart ( CVDisplayLinkRef displayLink );Параметры
displayLinkСсылка дисплея, которая будет активирована.
Возвращаемое значение
Базовое Видео заканчивается код. Ссылка Констант Видео SeeCore для возможных значений.
Обсуждение
Вызывание этой функции запускает поток ссылки дисплея, тогда периодически перезванивающий к Вашему приложению, чтобы запросить вывести на экран кадры. Если указанная ссылка дисплея уже работает,
CVDisplayLinkStartвозвращает ошибку.Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Останавливает ссылку дисплея.
Объявление
Swift
func CVDisplayLinkStop(_displayLink: CVDisplayLink!) -> CVReturnObjective C
CVReturn CVDisplayLinkStop ( CVDisplayLinkRef displayLink );Параметры
displayLinkСсылка дисплея, которая будет остановлена.
Возвращаемое значение
Базовое Видео заканчивается код. Посмотрите Базовую Видео Ссылку Констант для возможных значений.
Обсуждение
Если указанная ссылка дисплея уже останавливается,
CVDisplayLinkStopвозвращает ошибку.Если пользователь использует Быстрое переключение между пользователями, в OS X v.10.4 и позже, автоматически останавливается поток ссылки дисплея. Ссылка дисплея перезапущена при переключении назад на исходного пользователя.
Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Переводит время в основе времени ссылки дисплея от одного представления до другого.
Объявление
Swift
func CVDisplayLinkTranslateTime(_displayLink: CVDisplayLink!, _inTime: UnsafePointer<CVTimeStamp>, _outTime: UnsafeMutablePointer<CVTimeStamp>) -> CVReturnObjective C
CVReturn CVDisplayLinkTranslateTime ( CVDisplayLinkRef displayLink, const CVTimeStamp *inTime, CVTimeStamp *outTime );Параметры
displayLinkСсылка дисплея, основа времени которой должна использоваться, чтобы сделать перевод.
inTimeУказатель на a
CVTimeStampструктура, содержащая исходное время для перевода.outTimeУказатель на a
CVTimeStampструктура, в которую записано целевое время. Перед вызовом необходимо установить поле версии (в настоящее время0) указать, какую версию структуры Вы хотите. Необходимо также установитьflagsполе для указания, который представления перевести в.Возвращаемое значение
Базовое Видео заканчивается код. Посмотрите Базовую Видео Ссылку Констант для возможных значений.
Обсуждение
Обратите внимание на то, что ссылка дисплея должна работать за этим вызовом для следования.
Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.4 и позже.
-
Определяет указатель на выходную функцию обратного вызова ссылки дисплея, которую вызывают каждый раз, когда ссылка дисплея хочет, чтобы приложение вывело кадр.
Объявление
Swift
typealias CVDisplayLinkOutputCallback = CFunctionPointer<((CVDisplayLink!, UnsafePointer<CVTimeStamp>, UnsafePointer<CVTimeStamp>, CVOptionFlags, UnsafeMutablePointer<CVOptionFlags>, UnsafeMutablePointer<Void>) -> CVReturn)>Objective C
typedef CVReturn (*CVDisplayLinkOutputCallback)( CVDisplayLinkRef displayLink, const CVTimeStamp *inNow, const CVTimeStamp *inOutputTime, CVOptionFlags flagsIn, CVOptionFlags *flagsOut, void *displayLinkContext );Параметры
displayLinkСсылка дисплея, запрашивающая кадр.
inNowУказатель на текущее время.
inOutputTimeУказатель на время, когда кадр будет выведен на экран.
flagsInВ настоящее время неиспользованный. Передача 0.
flagsOutВ настоящее время неиспользованный. Передача 0.
displayLinkContextУказатель на определенные с помощью приложения данные. Это - указатель, который Вы передали в
CVDisplayLinkOutputCallbackфункционируйте при регистрации обратного вызова.Обсуждение
Для данной ссылки дисплея необходимо зарегистрировать выходное использование обратного вызова ссылки дисплея
CVDisplayLinkOutputCallbackтак, чтобы можно было обработать и вывести требуемый кадр.Ваш обратный вызов должен получить кадр с меткой времени, указанной (
inOutputTimeпараметр, управляйте им при желании (например, примените коррекцию цвета или карту в на поверхность), и затем выведите его к дисплею.Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.3 и позже.
-
Ссылка на объект ссылки дисплея.
Объявление
Swift
typealias CVDisplayLinkRef = CVDisplayLinkObjective C
typedef struct __CVDisplayLink *CVDisplayLinkRef;Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.3 и позже.
-
Флаги, которые будут использоваться для дисплея, соединяют выходную функцию обратного вызова.
Объявление
Swift
typealias CVOptionFlags = UInt64Objective C
typedef uint64_t CVOptionFlags;Обсуждение
Никакие флаги в настоящее время не определяются.
Оператор импорта
Objective C
@import CoreVideo;Swift
import CoreVideoДоступность
Доступный в OS X v10.3 и позже.
