Spec-Zone .ru
спецификации, руководства, описания, API

Библиотека разработчика Mac

Разработчик

Ссылка пространства пользователя IOFramebufferShared.h

Опции
Развертывание Target:

На этой странице

Ссылка пространства пользователя IOFramebufferShared.h

Заголовок IOFramebufferShared.h содержит определения объектов и вводит совместно использованный службой IOFrameBuffer уровня ядра и сервером окна неядра. В OS X эта структура используется сервером CoreGraphics и семьей IOGraphics, и не доступна другим клиентам. Подклассы IOFramebuffer и клиенты IOFramebuffer в ядре не должны также полагаться на это определение структуры и константы. Это общедоступно только для использования на базируемых серверах окна Дарвина. Данными состояния сервера курсора и окна обмениваются ядро и задачи неядра через часть общей памяти, содержащей структуру StdFBShmem_t.

Для задачи неядра получить доступ к этой части общей памяти, должно быть сделано соединение со службой IOFramebuffer. Соединение сделано с IOServiceOpen () функцией, описанной в IOKitLib.h. Тип соединения kIOFBServerConnectType или kIOFBSharedConnectType (для доступа только для чтения) должен быть указан. Дескриптор io_connect_t возвращается IOServiceOpen (). Этот дескриптор должен быть передан IOFBCreateSharedCursor () для создания части общей памяти. Тогда IOConnectMapMemory () можно вызвать с типом памяти kIOFBCursorMemory для отображения общей памяти в задачу неядра.

Включенные заголовки

  • <IOKit/hidsystem/IOHIDTypes.h>

  • <IOKit/graphics/IOGraphicsTypes.h>

  • <libkern/OSAtomic.h>

Типы данных

См. Обзор для документации уровня заголовка.

  • Изображение курсора для 1-разрядного курсора.

    Объявление

    Objective C

    struct bm12Cursor { unsigned int image[4][16]; unsigned int mask[4][16]; unsigned int save[16]; };

    Поля

    image

    Этот массив содержит изображения курсора.

    mask

    Этот массив содержит маску курсора.

    save

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

    Обсуждение

    Эта структура хранит курсоры на 16 пикселей x 16 пикселей, которые будут использоваться с 1-разрядной глубиной цвета. Если IOFB_ARBITRARY_SIZE_CURSOR не определяется, эта структура только определяется.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Изображение курсора для 8-разрядного курсора.

    Объявление

    Objective C

    struct bm18Cursor { unsigned char image[4][256]; unsigned char mask[4][256]; unsigned char save[256]; };

    Поля

    image

    Этот массив содержит значения цвета курсора, преобразовывающиеся в выведенные на экран цвета через таблицу цветов. Массив является двумерным, и его первый индекс является кадром курсора, и второй индекс является пикселем курсора.

    mask

    Этот массив содержит альфа-маску курсора. Массив является двумерным с той же индексацией как изображение. Если альфа-пиксель маски будет 0, и соответствующий пиксель изображения установлен в белый для дисплея, то этот пиксель курсора инвертирует пиксели на дисплее.

    save

    Этот массив хранит значения цвета области под курсором в его последней нарисованной позиции.

    Обсуждение

    Эта структура хранит курсоры на 16 пикселей x 16 пикселей, которые будут использоваться с 8-разрядной глубиной цвета. Если IOFB_ARBITRARY_SIZE_CURSOR не определяется, эта структура только определяется.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Изображение курсора для 15-разрядного курсора.

    Объявление

    Objective C

    struct bm34Cursor { unsigned short image[4][256]; unsigned short save[256]; };

    Поля

    image

    Этот массив определяет значения цвета курсора и прозрачность. Массив является двумерным, и его первый индекс является кадром курсора, и второй индекс является пикселем курсора. Значение 0 средних значений пиксель прозрачно. Ненулевые значения сохранены красным, зеленым, синим цветом, и альфа-значения, закодированные со следующими масками:

    красная маска = 0xF000

    синяя маска 0x0F00

    зеленая маска 0x00F0

    альфа-маска = 0x000F

    Примечание, только 4 бита выделяются для каждого компонента цвета.

    save

    Этот массив хранит значения цвета области под курсором в его последней нарисованной позиции.

    Обсуждение

    Эта структура хранит курсоры на 16 пикселей x 16 пикселей, которые будут использоваться с 15-разрядной глубиной цвета. Если IOFB_ARBITRARY_SIZE_CURSOR не определяется, эта структура только определяется.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Изображение курсора для 24-разрядного курсора.

    Объявление

    Objective C

    struct bm38Cursor { unsigned int image[4][256]; unsigned int save[256]; };

    Поля

    image

    Этот массив определяет значения цвета курсора и прозрачность. Массив является двумерным, и его первый индекс является кадром курсора, и второй индекс является пикселем курсора. В то время как верхние 8 битов содержат альфа-значение, более низкие 24 бита значения пикселя содержат цвет RGB.

    save

    Этот массив хранит значения цвета области под курсором в его последней нарисованной позиции.

    Обсуждение

    Эта структура хранит курсоры на 16 пикселей x 16 пикселей, которые будут использоваться с 24-разрядной глубиной цвета. Если IOFB_ARBITRARY_SIZE_CURSOR не определяется, эта структура только определяется.

    Доступность

    Доступный в OS X v10.6 и позже.

  • Объявление

    Objective C

    struct StdFBShmem_t { OSSpinLock cursorSema; int frame; char cursorShow; char cursorObscured; char shieldFlag; char shielded; IOGBounds saveRect; IOGBounds shieldRect; IOGPoint cursorLoc; IOGBounds cursorRect; IOGBounds oldCursorRect; IOGBounds screenBounds; int version; int structSize; AbsoluteTime vblTime; AbsoluteTime vblDelta; unsigned long long int vblCount; #if IOFB_ARBITRARY_FRAMES_CURSOR unsigned long long int vblDrift; unsigned long long int vblDeltaMeasured; unsigned int reservedC[24]; #else unsigned int reservedC[27]; unsigned char hardwareCursorFlags[kIOFBNumCursorFrames]; #endif unsigned char hardwareCursorCapable; unsigned char hardwareCursorActive; unsigned char hardwareCursorShields; unsigned char reservedB[1]; #if IOFB_ARBITRARY_FRAMES_CURSOR IOGSize cursorSize[kIOFBNumCursorIndex]; IOGPoint hotSpot[kIOFBNumCursorIndex]; #else IOGSize cursorSize[kIOFBNumCursorFrames]; IOGPoint hotSpot[kIOFBNumCursorFrames]; #endif #ifndef IOFB_ARBITRARY_SIZE_CURSOR union { struct bm12Cursor bw; struct bm18Cursor bw8; struct bm34Cursor rgb; struct bm38Cursor rgb24; } cursor; #else /* IOFB_ARBITRARY_SIZE_CURSOR */ unsigned char cursor[0]; # endif /* IOFB_ARBITRARY_SIZE_CURSOR */ };

    Поля

    cursorSema

    Семафорная блокировка для доступа для записи к совместно используемым данным в этой структуре.

    frame

    Текущий курсор структурирует индекс.

    cursorShow

    Когда cursorShow 0, курсор выведен на экран.

    cursorObscured

    Если это - истина, курсор был затенен, и cursorShow не должен быть 0. Курсор будет показан снова в следующий раз, когда он перемещен.

    shieldFlag

    Когда это будет установлено в истину, курсор не будет выведен на экран в области, указанной shieldRect.

    shielded

    Истина, если курсор был скрыт, потому что это ввело экранированную область.

    saveRect

    Область, сохраняющаяся под курсором в режиме курсора программного обеспечения.

    shieldRect

    Область, что курсор не будет выведен на экран в том, если shieldFlag будет истиной.

    cursorLoc

    Расположение горячей точки курсора.

    cursorRect

    Область, которую изображение курсора в настоящее время занимает в режиме курсора программного обеспечения.

    oldCursorRect

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

    screenBounds

    Область, которую занимает текущий экран.

    version

    Содержит kIOFBCurrentShmemVersion так, чтобы пользовательский клиент мог гарантировать, что он использует ту же версию этой структуры как ядро.

    structSize

    Содержит размер этой структуры.

    vblTime

    Время нового вертикального очищения.

    vblDelta

    Интервал между двумя новыми вертикальными blankings.

    vblCount

    Рабочее количество вертикальных пустых прерываний.

    reservedC

    Зарезервированный для будущего использования.

    hardwareCursorCapable

    Истина, если аппаратные средства способны к использованию аппаратного режима курсора.

    hardwareCursorActive

    Истина, в настоящее время с помощью аппаратного режима курсора.

    reservedB

    Зарезервированный для будущего использования.

    cursorSize

    Этот массив содержит размеры курсора, индексированные кадром.

    hotSpot

    Этот массив содержит расположение горячих точек курсора, индексированных кадром. Координаты горячих точек даны относительно верхнего левого угла изображения курсора.

    cursor

    Объединение структур, определяющих изображения курсора. Используемая структура зависит от битовой глубины кадрового буфера. Эти структуры определяются выше.

    Обсуждение

    Эта структура содержит курсор и данные состояния сервера окна и занимает часть общей памяти между сервером окна и ядром. Несколько элементов этой структуры только используются в режиме курсора программного обеспечения. Если иначе не обозначено, координаты в этой структуре даны в выставочном пространстве. Выставочное пространство является координатным пространством, охватывающим все экраны. Позиции экранов в выставочном пространстве указывают свое расположение друг относительно друга, когда курсор перемещается между ними. Если будет только один экран, то координаты экрана и координаты выставочного пространства будут тем же.

    Доступность

    Доступный в OS X v10.6 и позже.

Константы

См. Обзор для документации уровня заголовка.

  • Объявление

    Objective C

    #define CURSORHEIGHT 16 /* height in pixels */ #define CURSORWIDTH 16 /* width in pixels */ #define IOFB_ARBITRARY_SIZE_CURSOR #define IOFRAMEBUFFER_CONFORMSTO "IOFramebuffer"

    Константы

    • CURSORHEIGHT

      CURSORHEIGHT

      Максимальная высота изображения курсора в пикселях. Если IOFB_ARBITRARY_SIZE_CURSOR не определяется, это только определяется.

      Доступный в OS X v10.0 и позже.

    • CURSORWIDTH

      CURSORWIDTH

      Максимальная ширина изображения курсора в пикселях. Если IOFB_ARBITRARY_SIZE_CURSOR не определяется, это только определяется.

      Доступный в OS X v10.0 и позже.

    • IOFB_ARBITRARY_SIZE_CURSOR

      IOFB_ARBITRARY_SIZE_CURSOR

      Когда IOFB_ARBITRARY_SIZE_CURSOR не определяется, максимальный размер курсора, как предполагается, является CURSORWIDTH x CURSORHEIGHT, и этот заголовочный файл определит много структур для хранения изображений курсора соответственно. Когда IOFBCreateSharedCursor () вызвали, задача неядра может определить IOFB_ARBITRARY_SIZE_CURSOR и использовать курсоры до размера, указанного. В этом случае надлежащие структуры для хранения изображений курсора должны быть определены в другом месте. В ядре всегда определяется IOFB_ARBITRARY_SIZE_CURSOR.

      Доступный в OS X v10.6 и позже.

    • IOFRAMEBUFFER_CONFORMSTO

      IOFRAMEBUFFER_CONFORMSTO

      Имя класса службы кадрового буфера.

      Доступный в OS X v10.0 и позже.

  • Объявление

    Objective C

    enum { #if IOFB_ARBITRARY_FRAMES_CURSOR kIOFBMainCursorIndex = 0, kIOFBWaitCursorIndex = 1, kIOFBNumCursorIndex = 4, #else kIOFBNumCursorFrames = 4, kIOFBNumCursorFramesShift = 2, #endif kIOFBMaxCursorDepth = 32 };

    Константы

    • kIOFBNumCursorFrames

      kIOFBNumCursorFrames

      Число изображений курсора сохранено в структуре StdFBShmem_t.

      Доступный в OS X v10.0 и позже.

    • kIOFBNumCursorFramesShift

      kIOFBNumCursorFramesShift

      Используемый с курсорами ожидания.

      Доступный в OS X v10.0 и позже.

    • kIOFBMaxCursorDepth

      kIOFBMaxCursorDepth

      Максимальная пиксельная глубина курсора.

      Доступный в OS X v10.0 и позже.

  • Объявление

    Objective C

    enum { // version for IOFBCreateSharedCursor kIOFBShmemVersionMask = 0x000000ff, kIOFBTenPtOneShmemVersion = 2, kIOFBTenPtTwoShmemVersion = 3, kIOFBCurrentShmemVersion = 2, // number of frames in animating cursor (if > kIOFBTenPtTwoShmemVersion ) kIOFBShmemCursorNumFramesMask = 0x00ff0000, kIOFBShmemCursorNumFramesShift = 16, // memory types for IOConnectMapMemory. kIOFBCursorMemory = 100 };

    Константы

    • kIOFBCurrentShmemVersion

      kIOFBCurrentShmemVersion

      Текущая версия части общей памяти, содержащей курсор и данные состояния сервера окна в структуре StdFBShmem_t.

      Доступный в OS X v10.0 и позже.

    • kIOFBCursorMemory

      kIOFBCursorMemory

      Тип памяти для IOConnectMapMemory () для получения части общей памяти, содержащей структуру StdFBShmem_t.

      Доступный в OS X v10.0 и позже.