Ссылка CGFunction
CGFunctionRef
непрозрачный тип предоставляет общее средство для определения и использования функций обратного вызова. Эти функции могут взять произвольное число входных значений с плавающей точкой и пасовать назад произвольное число выходных значений с плавающей точкой.
Кварц использует объекты CGFunction реализовать штриховки. Ссылка CGShading описывает параметры и семантику, требуемую для обратных вызовов, используемых объектами CGFunction.
-
Создает Кварцевую функцию.
Объявление
Swift
func CGFunctionCreate(_
info
: UnsafeMutablePointer<Void>, _domainDimension
: UInt, _domain
: UnsafePointer<CGFloat>, _rangeDimension
: UInt, _range
: UnsafePointer<CGFloat>, _callbacks
: UnsafePointer<CGFunctionCallbacks>) -> CGFunction!Objective C
CGFunctionRef CGFunctionCreate ( void *info, size_t domainDimension, const CGFloat *domain, size_t rangeDimension, const CGFloat *range, const CGFunctionCallbacks *callbacks );
Параметры
info
Указатель на определяемое пользователем хранение для данных, которые Вы хотите передать Вашим обратным вызовам. Необходимо удостовериться, что данные сохраняются столько, сколько они необходимы, который может выйти за рамки, в котором используется Кварцевая функция.
domainDimension
Число вводов.
domain
Массив (
2*domainDimension
) плавания раньше указывали допустимые интервалы входных значений. Для каждого k от0
к(domainDimension - 1)
,domain[2*k]
должно быть меньше чем или равноdomain[2*k+1]
, иk
входное значение th будет отсечено для расположения в интервалеdomain[2*k]
. Если этот параметрNULL
, тогда входные значения не отсекаются.rangeDimension
Число выводов.
range
Массив
(2*rangeDimension)
плавания, который указывает допустимые интервалы выходных значений. Для каждогоk
от0
к(rangeDimension - 1)
,range[2*k]
должно быть меньше чем или равноrange[2*k+1]
, иk
выходное значение th будет отсечено для расположения в интервалеrange[2*k]
. Если этот параметрNULL
, тогда выходные значения не отсекаются.callbacks
Указатель на таблицу функции обратного вызова. Эта таблица должна содержать указатели на обратные вызовы, которые Вы обеспечиваете для реализации семантики этой Кварцевой функции. Кварц делает копию Вашей таблицы, таким образом, например, Вы могли безопасно передать в указателе на структуру на штабеле.
Возвращаемое значение
Новая Кварцевая функция. Вы ответственны за выпуск этого объектного использования
CGFunctionRelease
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в версии 10.2 OS X и позже.
-
Декременты сохранить количество функционального объекта.
Объявление
Objective C
void CGFunctionRelease ( CGFunctionRef function );
Параметры
function
Функциональный объект для выпуска.
Обсуждение
Эта функция эквивалентна
CFRelease
, за исключением того, что это не вызывает ошибку еслиfunction
параметрNULL
.Оператор импорта
Objective C
@import CoreGraphics;
Доступность
Доступный в версии 10.2 OS X и позже.
-
Инкременты сохранить количество функционального объекта.
Объявление
Objective C
CGFunctionRef CGFunctionRetain ( CGFunctionRef function );
Параметры
function
Тот же функциональный объект Вы передали в как
function
параметр.Возвращаемое значение
Обсуждение
Эта функция эквивалентна
CFRetain
, за исключением того, что это не вызывает ошибку еслиfunction
параметрNULL
.Оператор импорта
Objective C
@import CoreGraphics;
Доступность
Доступный в версии 10.2 OS X и позже.
-
Возвращает идентификатор типа для Кварцевых функциональных объектов.
Объявление
Swift
func CGFunctionGetTypeID() -> CFTypeID
Objective C
CFTypeID CGFunctionGetTypeID ( void );
Возвращаемое значение
Идентификатор для непрозрачного типа
CGFunctionRef
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в версии 10.2 OS X и позже.
-
Выполняет пользовательские операции на входных данных, которыми снабжают, для создания выходных данных.
Объявление
Swift
typealias CGFunctionEvaluateCallback = CFunctionPointer<((UnsafeMutablePointer<Void>, UnsafePointer<CGFloat>, UnsafeMutablePointer<CGFloat>) -> Void)>
Objective C
typedef void (*CGFunctionEvaluateCallback) ( void *info, const float *inData, float *outData );
Параметры
info
info
параметр передалCGFunctionCreate
.inData
Массив плаваний. Размер массива - указанный
domainDimension
параметр передалCGFunctionCreate
функция.outData
Массив плаваний. Размер массива - указанный
rangeDimension
параметр передалCGFunctionCreate
функция.Обсуждение
Обратный вызов, который Вы пишете, ответственен за реализацию вычисления выходных значений от предоставленных входных значений. Например, если Вы хотите реализовать простую функцию «обработки на квадрат» одного входного аргумента к одному выходному параметру, Ваша функция оценки могла бы быть:
void evaluateSquare(void *info, const float *inData, float *outData)
{
outData[0] = inData[0] * inData[0];
}
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Когда Кварц освобождает объект CGFunction, выполняет пользовательские задачи очистки.
Объявление
Swift
typealias CGFunctionReleaseInfoCallback = CFunctionPointer<((UnsafeMutablePointer<Void>) -> Void)>
Objective C
typedef void (*CGFunctionReleaseInfoCallback) ( void *info );
Параметры
info
info
параметр передалCGFunctionCreate
.Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в OS X v10.2 и позже.
-
Непрозрачный тип, представляющий функцию обратного вызова.
Объявление
Swift
typealias CGFunctionRef = CGFunction
Objective C
typedef struct CGFunction *CGFunctionRef;
Оператор импорта
Objective C
@import CoreGraphics;
Swift
import CoreGraphics
Доступность
Доступный в версии 10.2 OS X и позже.
-
Структура, содержащая обратные вызовы, необходимые объекту CGFunction.
Объявление
Swift
struct CGFunctionCallbacks { var version: UInt32 var evaluate: CGFunctionEvaluateCallback var releaseInfo: CGFunctionReleaseInfoCallback }
Objective C
struct CGFunctionCallbacks { unsigned int version; CGFunctionEvaluateCallback evaluate; CGFunctionReleaseInfoCallback releaseInfo }; typedef struct CGFunctionCallbacks CGFunctionCallbacks;
Поля
version
Номер версии структуры. Для этой структуры версия должна быть
0
.evaluate
Обратный вызов, оценивающий функцию.
releaseInfo
Если не -
NULL
, обратный вызов раньше выпускалinfo
параметр передалCGFunctionCreate
.Доступность
Доступный в OS X v10.2 и позже.