SCNProgramDelegate
SCNProgramDelegate методы протокола можно реализовать для получения сообщений о пользовательских программах программы построения теней GLSL. Вы создаете и используете пользовательские программы программы построения теней с SCNProgram класс. Как правило, Вы используете этот протокол для дефектов записи, происходящих при компиляции исходного кода шейдера.
Наследование
Не применимый
Оператор импорта
Swift
import SceneKit
Objective C
@import SceneKit;
Доступность
Доступный в OS X v10.8 и позже.
-
Говорит делегату, что ошибка произошла при компиляции исходного кода GLSL.
Объявление
Swift
optional func program(_program: SCNProgram, handleErrorerror: NSError)Objective C
- (void)program:(SCNProgram *)programhandleError:(NSError *)errorПараметры
programПрограмма, генерировавшая ошибку компиляции.
errorПовышенная ошибка компиляции.
Обсуждение
Исследуйте
errorпараметр для подробных данных ошибки компиляции, предоставленной компилятором GLSL.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в OS X v10.8 и позже.
-
programIsOpaque (_:) - programIsOpaque:(OS X v10.10)Спрашивает делегат, непрозрачны ли фрагменты, представленные программой.
Оператор осуждения
Используйте
opaqueсвойство SCNProgram возражает вместо этого.Объявление
Swift
optional func programIsOpaque(_Program: SCNProgram) -> BoolObjective C
- (BOOL)programIsOpaque:(SCNProgram *)ProgramПараметры
ProgramЗапрошенная программа.
Возвращаемое значение
YEStrueесли все фрагменты, представленные программой, непрозрачны;NOfalseесли программа представляет фрагменты, альфа-значение которых является меньше, чем1.0.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в OS X v10.8 и позже.
Осуждаемый в OS X v10.10.
-
программа (_: bindValueForSymbol:atLocation:programID:renderer:) - program:bindValueForSymbol:atLocation:programID:renderer:(OS X v10.10)Вызванный на делегата, чтобы позволить ему связать значения программы и/или связал графические ресурсы (такие как текстуры) для символов.
Оператор осуждения
Используйте
handleBindingOfSymbol:usingBlock:метод геометрии или материала программа присоединен.Объявление
Swift
optional func program(_program: SCNProgram, bindValueForSymbolsymbol: String, atLocationlocation: UInt32, programIDprogramID: UInt32, rendererrenderer: SCNRenderer) -> BoolObjective C
- (BOOL)program:(SCNProgram *)programbindValueForSymbol:(NSString *)symbolatLocation:(unsigned int)locationprogramID:(unsigned int)programIDrenderer:(SCNRenderer *)rendererПараметры
programSCNProgramобъект связать значения для.symbolИмя символа для привязки значения для.
locationРасположение символа в программе возражает, чтобы быть измененным.
programIDБазовая программа OpenGL возражает, в котором сделана привязка.
rendererСредство рендеринга, в настоящее время представляющее сцену.
Обсуждение
Если Вы используете
handleBindingOfSymbol:usingBlock:метод для соединения блока обработчика с объектом SceneKit для символа SceneKit не вызовет делегатаprogram:bindValueForSymbol:atLocation:programID:renderer:метод для того символа при рендеринге того объекта.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в OS X v10.8 и позже.
Осуждаемый в OS X v10.10.
-
программа (_: unbindValueForSymbol:atLocation:programID:renderer:) - program:unbindValueForSymbol:atLocation:programID:renderer:(OS X v10.10)Вызванный на делегата, чтобы позволить ему развязать значения программы и/или также развязывают связанные графические ресурсы (такие как текстуры).
Оператор осуждения
Используйте
handleUnbindingOfSymbol:usingBlock:метод геометрии или материала программа присоединен.Объявление
Swift
optional func program(_program: SCNProgram, unbindValueForSymbolsymbol: String, atLocationlocation: UInt32, programIDprogramID: UInt32, rendererrenderer: SCNRenderer)Objective C
- (void)program:(SCNProgram *)programunbindValueForSymbol:(NSString *)symbolatLocation:(unsigned int)locationprogramID:(unsigned int)programIDrenderer:(SCNRenderer *)rendererПараметры
programSCNProgramобъект развязать значения для.symbolИмя символа для развязывания значения для.
locationРасположение символа в программе возражает, чтобы быть измененным.
programIDБазовая программа OpenGL возражает, в котором сделано развязывание.
rendererСредство рендеринга, в настоящее время представляющее сцену.
Обсуждение
Если Вы используете
handleUnbindingOfSymbol:usingBlock:метод для соединения блока обработчика с объектом SceneKit для символа SceneKit не вызовет делегатаprogram:unbindValueForSymbol:atLocation:programID:renderer:метод для того символа при рендеринге того объекта.Оператор импорта
Objective C
@import SceneKit;Swift
import SceneKitДоступность
Доступный в OS X v10.8 и позже.
Осуждаемый в OS X v10.10.
