Ссылка 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() -> CFTypeIDObjective 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 );Параметры
infoinfoпараметр передал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 );Параметры
infoinfoпараметр передалCGFunctionCreate.Оператор импорта
Objective C
@import CoreGraphics;Swift
import CoreGraphicsДоступность
Доступный в OS X v10.2 и позже.
-
Непрозрачный тип, представляющий функцию обратного вызова.
Объявление
Swift
typealias CGFunctionRef = CGFunctionObjective 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 и позже.
