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:context
pixelFormat:format
file: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!(composition
composition
: QCComposition!, colorSpacecolorSpace
: CGColorSpace!)Objective C
- (id)initWithComposition:(QCComposition *)
composition
colorSpace:(CGColorSpaceRef)colorSpace
Параметры
composition
A
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!(openGLContext
context
: NSOpenGLContext!, pixelFormatformat
: NSOpenGLPixelFormat!, filepath
: String!)Objective C
- (id)initWithOpenGLContext:(NSOpenGLContext *)
context
pixelFormat:(NSOpenGLPixelFormat *)format
file:(NSString *)path
Параметры
context
NSOpenGLContext
объект. Объект, который Вы предоставляете, должен иметь и цвет и буфер глубины.format
NSOpenGLPixelFormat
объект.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!(CGLContext
context
: CGLContextObj, pixelFormatformat
: CGLPixelFormatObj, colorSpacecolorSpace
: CGColorSpace!, compositioncomposition
: QCComposition!)Objective C
- (id)initWithCGLContext:(CGLContextObj)
context
pixelFormat:(CGLPixelFormatObj)format
colorSpace:(CGColorSpaceRef)colorSpace
composition:(QCComposition *)composition
Параметры
context
A
CGLContextObj
объект. Объект, который Вы предоставляете, должен иметь и цвет и буфер глубины.format
A
CGLPixelFormatObj
объект.colorSpace
Кварцевый объект цветового пространства. Это должно быть цветовым пространством RGB. Передача
NULL
использовать цветовое пространство RGB по умолчанию. Для получения дополнительной информации о Кварцевых цветовых пространствах посмотрите Кварц 2D Руководство по программированию.composition
A
QCComposition
объект.Возвращаемое значение
Инициализированный
QCRenderer
объект илиnil
если инициализация не успешна.Оператор импорта
Objective C
@import Quartz;
Swift
import Quartz
Доступность
Доступный в OS X v10.5 и позже.
-
Создает внеэкранное средство рендеринга данного размера с предоставленным цветовым пространством и объектом состава.
Объявление
Swift
init!(offScreenWithSize
size
: NSSize, colorSpacecolorSpace
: CGColorSpace!, compositioncomposition
: QCComposition!)Objective C
- (id)initOffScreenWithSize:(NSSize)
size
colorSpace:(CGColorSpaceRef)colorSpace
composition:(QCComposition *)composition
Параметры
size
Размер внеэкранного средства рендеринга.
colorSpace
Кварцевый объект цветового пространства. Это должно быть цветовым пространством RGB. Передача
NULL
использовать цветовое пространство RGB по умолчанию. Для получения дополнительной информации о Кварцевых цветовых пространствах посмотрите Кварц 2D Руководство по программированию.composition
A
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)
time
arguments:(NSDictionary *)arguments
Параметры
time
Время, в секундах, в которые можно представить кадр состава. Время должно быть положительным значением или нулем.
arguments
Дополнительный словарь, который может иметь любую из записей, определенных в
“Rendering Arguments”
.Возвращаемое значение
YES
true
в случае успеха.Обсуждение
Необходимо вызвать этот метод каждый раз, когда Вы хотите представить кадр состава.
Все состояния 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;
Константы
-
QCRendererEventKey
QCRendererEventKey
Ключ для события средства рендеринга. Присваиваемое значение
NSEvent
объект.Доступный в OS X v10.4 и позже.
-
QCRendererMouseLocationKey
QCRendererMouseLocationKey
Ключ для расположения мыши. Присваиваемое значение
NSPoint
объект, хранивший вNSValue
объект. Расположение мыши находится в нормализованных координатах относительно области просмотра контекста OpenGL ([0,1]x[0,1]
с источником(0,0)
в нижнем левом углу).Доступный в OS X v10.4 и позже.
-