Ссылка 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() -> CFTypeID
Objective 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
Ссылка дисплея, дисплей которой Вы хотите установить.
displayID
ID дисплея, который будет установлен.
Возвращаемое значение
Базовое Видео заканчивается код. Посмотрите Базовую Видео Ссылку Констант для возможных значений.
Обсуждение
Несмотря на то, что безопасно вызвать эту функцию на рабочей ссылке дисплея, разрыв может появиться в видео метке времени.
Оператор импорта
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 = CVDisplayLink
Objective C
typedef struct __CVDisplayLink *CVDisplayLinkRef;
Оператор импорта
Objective C
@import CoreVideo;
Swift
import CoreVideo
Доступность
Доступный в OS X v10.3 и позже.
-
Флаги, которые будут использоваться для дисплея, соединяют выходную функцию обратного вызова.
Объявление
Swift
typealias CVOptionFlags = UInt64
Objective C
typedef uint64_t CVOptionFlags;
Обсуждение
Никакие флаги в настоящее время не определяются.
Оператор импорта
Objective C
@import CoreVideo;
Swift
import CoreVideo
Доступность
Доступный в OS X v10.3 и позже.