-
Notifications
You must be signed in to change notification settings - Fork 0
/
StrataPlugIn.m
116 lines (88 loc) · 3.01 KB
/
StrataPlugIn.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
//
// StrataPlugIn.m
// Strata
//
// Created by jpld on 22 Aug 2010.
// Copyright (c) 2010 __MyCompanyName__. All rights reserved.
//
#import <OpenGL/CGLMacro.h>
#import "StrataPlugIn.h"
#define kQCPlugIn_Name @"Strata"
#define kQCPlugIn_Description @"Strata description"
// WORKAROUND - naming violation for cocoa memory management
@interface QCPlugIn(StrataAdditions)
- (QCPlugInViewController*)createViewController NS_RETURNS_RETAINED;
@end
@implementation StrataPlugIn
+ (NSDictionary*)attributes {
/*
Return a dictionary of attributes describing the plug-in (QCPlugInAttributeNameKey, QCPlugInAttributeDescriptionKey...).
*/
return [NSDictionary dictionaryWithObjectsAndKeys:kQCPlugIn_Name, QCPlugInAttributeNameKey, kQCPlugIn_Description, QCPlugInAttributeDescriptionKey, nil];
}
+ (NSDictionary*)attributesForPropertyPortWithKey:(NSString*)key {
/*
Specify the optional attributes for property based ports (QCPortAttributeNameKey, QCPortAttributeDefaultValueKey...).
*/
return nil;
}
+ (QCPlugInExecutionMode)executionMode {
/*
Return the execution mode of the plug-in: kQCPlugInExecutionModeProvider, kQCPlugInExecutionModeProcessor, or kQCPlugInExecutionModeConsumer.
*/
return kQCPlugInExecutionModeProcessor;
}
+ (QCPlugInTimeMode)timeMode {
/*
Return the time dependency mode of the plug-in: kQCPlugInTimeModeNone, kQCPlugInTimeModeIdle or kQCPlugInTimeModeTimeBase.
*/
return kQCPlugInTimeModeNone;
}
#pragma mark -
- (id)init {
self = [super init];
if(self) {
}
return self;
}
- (void)finalize {
[super finalize];
}
- (void)dealloc {
[super dealloc];
}
#pragma mark -
#pragma mark EXECUTION
- (BOOL)startExecution:(id<QCPlugInContext>)context {
/*
Called by Quartz Composer when rendering of the composition starts: perform any required setup for the plug-in.
Return NO in case of fatal failure (this will prevent rendering of the composition to start).
*/
return YES;
}
- (void)enableExecution:(id<QCPlugInContext>)context {
/*
Called by Quartz Composer when the plug-in instance starts being used by Quartz Composer.
*/
}
- (BOOL)execute:(id<QCPlugInContext>)context atTime:(NSTimeInterval)time withArguments:(NSDictionary*)arguments {
/*
Called by Quartz Composer whenever the plug-in instance needs to execute.
Only read from the plug-in inputs and produce a result (by writing to the plug-in outputs or rendering to the destination OpenGL context) within that method and nowhere else.
Return NO in case of failure during the execution (this will prevent rendering of the current frame to complete).
The OpenGL context for rendering can be accessed and defined for CGL macros using:
CGLContextObj cgl_ctx = [context CGLContextObj];
*/
return YES;
}
- (void)disableExecution:(id<QCPlugInContext>)context {
/*
Called by Quartz Composer when the plug-in instance stops being used by Quartz Composer.
*/
}
- (void)stopExecution:(id<QCPlugInContext>)context {
/*
Called by Quartz Composer when rendering of the composition stops: perform any required cleanup for the plug-in.
*/
}
@end