QCRenderer
A QCRenderer класс разработан для низкоуровневого рендеринга Кварцевых составов Композитора. Если Вы хотите ответить за рендеринг состава к определенному контексту OpenGL — любое использование, это - класс использования NSOpenGLContext класс или a CGLContextObj объект. QCRenderer также позволяет Вам загружать, играть, и управлять составом.
Представлять состав к определенному контексту OpenGL:
Создайте экземпляр
QCRendererс помощью одного из методов инициализации, такой какinitWithOpenGLContext:pixelFormat:file:.Рендеринг структурирует путем вызова метода
renderAtTime:arguments:При использовании двойной буферизации в OpenGL необходимо подкачать буферы OpenGL.
Выпустите средство рендеринга, когда Вам больше не будет нужно оно.
Этот фрагмент кода показывает, как реализовать эти задачи:
NSOpenGLContext* context = [myNSOpenGLView openGLContext];NSOpenGLPixelFormat* format = [myNSOpenGLView pixelFormat];NSString* path = @”/Users/MyName/MyComposition.qtz”;QCRenderer* myRenderer;// Create a Quartz Composer renderer.myRenderer = [[QCRenderer alloc] initWithOpenGLContext:contextpixelFormat:formatfile:path];// Render the first 10 seconds of the composition with steps of 1/25s.for(double t = 0.0; t <= 10.0; t += 1.0/25.0){[myRenderer renderAtTime:t arguments:nil];[context flushBuffer]; //Required on double-buffered contexts}// Clean up[renderer release];
Соответствует
-
AnyObject -
CVarArgType -
Сопоставимый -
Hashable -
NSObjectProtocol -
Печатаемый -
QCCompositionRenderer -
NSObject -
QCCompositionRenderer
Оператор импорта
Swift
import Quartz
Objective C
@import Quartz;
Доступность
Доступный в OS X v10.4 и позже.
-
Создает объект средства рендеринга с объектом состава и цветовым пространством.
Объявление
Swift
init!(compositioncomposition: QCComposition!, colorSpacecolorSpace: CGColorSpace!)Objective C
- (id)initWithComposition:(QCComposition *)compositioncolorSpace:(CGColorSpaceRef)colorSpaceПараметры
compositionA
QCCompositionобъект. Состав не должен содержать потребительские патчи. Т.е. состав может получить данные, обработать их и произвести выходные значения, но они не могут выполнить рендеринг.colorSpaceКварцевый объект цветового пространства. Это должно быть цветовым пространством RGB. Передача
NULLиспользовать цветовое пространство RGB по умолчанию. Цветовое пространство используется только для изображений, произведенных выходными портами изображения состава. Для получения дополнительной информации о Кварцевых цветовых пространствах посмотрите Кварц 2D Руководство по программированию.Возвращаемое значение
Инициализированный
QCRendererобъект илиnilесли инициализация не успешна.Обсуждение
Обратите внимание на то, что
snapshotImageиcreateSnapshotImageOfType:всегда возвратыnilна такомQCRendererэкземпляры.Оператор импорта
Objective C
@import Quartz;Swift
import QuartzДоступность
Доступный в OS X v10.5 и позже.
-
Создает объект средства рендеринга с
NSOpenGLContextвозразите и файл состава.Объявление
Swift
init!(openGLContextcontext: NSOpenGLContext!, pixelFormatformat: NSOpenGLPixelFormat!, filepath: String!)Objective C
- (id)initWithOpenGLContext:(NSOpenGLContext *)contextpixelFormat:(NSOpenGLPixelFormat *)formatfile:(NSString *)pathПараметры
contextNSOpenGLContextобъект. Объект, который Вы предоставляете, должен иметь и цвет и буфер глубины.formatNSOpenGLPixelFormatобъект.pathСтрока, указывающая расположение состава (
.qtz) файл.Возвращаемое значение
Инициализированный
QCRendererобъект илиnilесли инициализация не успешна.Оператор импорта
Objective C
@import Quartz;Swift
import QuartzДоступность
Доступный в OS X v10.4 и позже.
-
init (CGLContext:pixelFormat:colorSpace:composition:) - initWithCGLContext:pixelFormat:colorSpace:composition:Создает объект средства рендеринга с a
CGLContextObjобъект, формат пикселя, цветовое пространство и объект состава.Объявление
Swift
init!(CGLContextcontext: CGLContextObj, pixelFormatformat: CGLPixelFormatObj, colorSpacecolorSpace: CGColorSpace!, compositioncomposition: QCComposition!)Objective C
- (id)initWithCGLContext:(CGLContextObj)contextpixelFormat:(CGLPixelFormatObj)formatcolorSpace:(CGColorSpaceRef)colorSpacecomposition:(QCComposition *)compositionПараметры
contextA
CGLContextObjобъект. Объект, который Вы предоставляете, должен иметь и цвет и буфер глубины.formatA
CGLPixelFormatObjобъект.colorSpaceКварцевый объект цветового пространства. Это должно быть цветовым пространством RGB. Передача
NULLиспользовать цветовое пространство RGB по умолчанию. Для получения дополнительной информации о Кварцевых цветовых пространствах посмотрите Кварц 2D Руководство по программированию.compositionA
QCCompositionобъект.Возвращаемое значение
Инициализированный
QCRendererобъект илиnilесли инициализация не успешна.Оператор импорта
Objective C
@import Quartz;Swift
import QuartzДоступность
Доступный в OS X v10.5 и позже.
-
Создает внеэкранное средство рендеринга данного размера с предоставленным цветовым пространством и объектом состава.
Объявление
Swift
init!(offScreenWithSizesize: NSSize, colorSpacecolorSpace: CGColorSpace!, compositioncomposition: QCComposition!)Objective C
- (id)initOffScreenWithSize:(NSSize)sizecolorSpace:(CGColorSpaceRef)colorSpacecomposition:(QCComposition *)compositionПараметры
sizeРазмер внеэкранного средства рендеринга.
colorSpaceКварцевый объект цветового пространства. Это должно быть цветовым пространством RGB. Передача
NULLиспользовать цветовое пространство RGB по умолчанию. Для получения дополнительной информации о Кварцевых цветовых пространствах посмотрите Кварц 2D Руководство по программированию.compositionA
QCCompositionобъект.Возвращаемое значение
Инициализированный
QCRendererобъект илиnilесли инициализация не успешна.Обсуждение
Этот метод создает внутренний контекст OpenGL и пиксельный буфер. Поскольку внеэкранный рендеринг выполняется на GPU, максимальный размер рендеринга ограничивается способностью GPU. На типичных аппаратных средствах предел, по крайней мере, 2048 к 2048, но часто 4096 4 096. Доступный VRAM влияет на производительность.
Оператор импорта
Objective C
@import Quartz;Swift
import QuartzДоступность
Доступный в OS X v10.5 и позже.
-
Представляет кадр состава в требуемое время.
Объявление
Swift
func renderAtTime(_time: NSTimeInterval, argumentsarguments: [NSObject : AnyObject]!) -> BoolObjective C
- (BOOL)renderAtTime:(NSTimeInterval)timearguments:(NSDictionary *)argumentsПараметры
timeВремя, в секундах, в которые можно представить кадр состава. Время должно быть положительным значением или нулем.
argumentsДополнительный словарь, который может иметь любую из записей, определенных в
“Rendering Arguments”.Возвращаемое значение
YEStrueв случае успеха.Обсуждение
Необходимо вызвать этот метод каждый раз, когда Вы хотите представить кадр состава.
Все состояния OpenGL сохраняются кроме следующего:
Состояния, определенные
GL_CURRENT_BITТекстуры на каждом модуле и режиме среды
Матричный режим
Если Вы используете двойные буферы, имеете в виду что
renderAtTime:arguments:метод не подкачивает буферы передней и задней части контекста OpenGL. Необходимо выполнить подкачку сами путем вызова команды OpenGLflushBufferна контексте, связанном со средством рендеринга.При чередовании кода OpenGL с рендерингом состава удостоверьтесь, что контекст OpenGL является текущим. Если Вы используете
NSOpenGLContextкласс, вызовитеmakeCurrentContextметод до рендеринга. Если Вы используете API CGL, вызываете функциюCGLSetCurrentContext.Оператор импорта
Objective C
@import Quartz;Swift
import QuartzДоступность
Доступный в OS X v10.4 и позже.
-
Возвращает объект состава, связанный со средством рендеринга.
Возвращаемое значение
Объект состава.
Оператор импорта
Objective C
@import Quartz;Swift
import QuartzДоступность
Доступный в OS X v10.5 и позже.
-
Возвраты
NSImageобъект текущего изображения в контексте OpenGL связался со средством рендеринга.Возвращаемое значение
Изображение снимка.
Оператор импорта
Objective C
@import Quartz;Swift
import QuartzДоступность
Доступный в OS X v10.5 и позже.
-
Возвращает текущее изображение в контексте OpenGL, связанном со средством рендеринга, как объект изображения предоставленного типа изображения.
Объявление
Swift
func createSnapshotImageOfType(_type: String!) -> AnyObject!Objective C
- (id)createSnapshotImageOfType:(NSString *)typeПараметры
typeСтрока, указывающая любой из следующих типов изображения:
NSBitmapImageRep,NSImage,CIImage,CGImage,CVOpenGLBuffer,CVPixelBuffer.Возвращаемое значение
Изображение снимка в предоставленном типе изображения. Вы ответственны за выпуск этого объекта, когда Вам больше не нужен он.
Оператор импорта
Objective C
@import Quartz;Swift
import QuartzДоступность
Доступный в OS X v10.5 и позже.
-
Параметры, что можно передать
renderAtTime:arguments:метод.Объявление
Objective C
extern NSString* const QCRendererEventKey; extern NSString* const QCRendererMouseLocationKey;Константы
-
QCRendererEventKeyQCRendererEventKeyКлюч для события средства рендеринга. Присваиваемое значение
NSEventобъект.Доступный в OS X v10.4 и позже.
-
QCRendererMouseLocationKeyQCRendererMouseLocationKeyКлюч для расположения мыши. Присваиваемое значение
NSPointобъект, хранивший вNSValueобъект. Расположение мыши находится в нормализованных координатах относительно области просмотра контекста OpenGL ([0,1]x[0,1]с источником(0,0)в нижнем левом углу).Доступный в OS X v10.4 и позже.
-
