1 #import <Cocoa/Cocoa.h>
4 #import <VVBufferPool/VVBufferPool.h>
6 #import <VVBasics/VVBasics.h>
7 #import "ISFTargetBuffer.h"
8 #import "ISFRenderPass.h"
15 extern NSString *_ISFVertPassthru;
16 extern NSString *_ISFVertVarDec;
17 extern NSString *_ISFVertInitFunc;
18 extern NSString *_ISFMacro2DString;
19 extern NSString *_ISFMacro2DBiasString;
20 extern NSString *_ISFMacro2DRectString;
21 extern NSString *_ISFMacro2DRectBiasString;
44 BOOL bufferRequiresEval;
52 NSString *vertShaderSource;
53 NSString *fragShaderSource;
54 NSString *compiledInputTypeString;
55 long renderSizeUniformLoc;
56 long passIndexUniformLoc;
60 - (id) initWithSharedContext:(NSOpenGLContext *)c;
61 - (id) initWithSharedContext:(NSOpenGLContext *)c pixelFormat:(NSOpenGLPixelFormat *)p sized:(NSSize)s;
64 - (void) useFile:(NSString *)p;
65 - (void) useFile:(NSString *)p resetTimer:(BOOL)r;
72 - (void) setBuffer:(
VVBuffer *)b forInputImageKey:(NSString *)k;
74 - (void) setFilterInputImageBuffer:(
VVBuffer *)b;
76 - (
VVBuffer *) bufferForInputImageKey:(NSString *)k;
77 - (void) purgeInputGLTextures;
83 - (void) setValue:(
ISFAttribVal)n forInputKey:(NSString *)k;
89 - (void) setNSObjectVal:(
id)n forInputKey:(NSString *)k;
96 - (
ISFAttrib *) attribForInputWithKey:(NSString *)k;
98 - (ISFTargetBuffer *) findPersistentBufferNamed:(NSString *)n;
99 - (ISFTargetBuffer *) findTempBufferNamed:(NSString *)n;
102 - (
VVBuffer *) allocAndRenderToBufferSized:(NSSize)s;
103 - (
VVBuffer *) allocAndRenderToBufferSized:(NSSize)s prefer2DTex:(BOOL)wants2D;
104 - (
VVBuffer *) allocAndRenderToBufferSized:(NSSize)s prefer2DTex:(BOOL)wants2D passDict:(NSMutableDictionary *)d;
105 - (
VVBuffer *) allocAndRenderToBufferSized:(NSSize)s prefer2DTex:(BOOL)wants2D renderTime:(
double)t;
106 - (
VVBuffer *) allocAndRenderToBufferSized:(NSSize)s prefer2DTex:(BOOL)wants2D renderTime:(
double)t passDict:(NSMutableDictionary *)d;
107 - (void) renderToBuffer:(
VVBuffer *)b sized:(NSSize)s;
115 - (void) renderToBuffer:(
VVBuffer *)b sized:(NSSize)s renderTime:(
double)t passDict:(NSMutableDictionary *)d;
117 - (void) _assembleShaderSource;
118 - (NSMutableString *) _assembleShaderSource_VarDeclarations;
119 - (NSMutableDictionary *) _assembleSubstitutionDict;
120 - (void) _clearImageImports;
122 @property (assign,readwrite) BOOL throwExceptions;
124 @property (readonly) NSString *filePath;
126 @property (readonly) NSString *fileName;
128 @property (readonly) NSString *fileDescription;
130 @property (readonly) NSString *fileCredits;
132 @property (readonly) NSMutableArray *categoryNames;
137 @property (readonly) NSSize renderSize;
138 @property (readonly)
int passCount;
139 @property (readonly)
int imageInputsCount;
140 @property (readonly) NSString *jsonString;
142 - (void) _renderLock;
143 - (void) _renderUnlock;
NSString * fileName
returns the name of the currently-loaded ISF file
Definition: ISFGLScene.h:33
internally, an ISFGLScene creates an ISFAttrib for each of the declared inputs in an ISF file...
Definition: ISFAttrib.h:43
VVBuffer represents a buffer- almost always in VRAM as a GL texture or renderbuffer- created and mana...
Definition: VVBuffer.h:134
MutLockArray * inputs
returns a MutLockArray (from VVBasics) of ISFAttrib instances, one for each of the inputs ...
Definition: ISFGLScene.h:37
This class is used to measure how long it takes to do things; much easier to work with than NSDate...
Definition: VVStopwatch.h:16
NSString * fileCredits
returns a string with the credits (pulled from the JSON blob) of the ISF file
Definition: ISFGLScene.h:35
NSString * fileDescription
returns a string with the description (pulled from the JSON blob) of the ISF file ...
Definition: ISFGLScene.h:34
Subclass of GLScene for working with vertex & frag shaders- just give it some shader strings and watc...
Definition: GLShaderScene.h:14
NSString * filePath
returns the path of the currently-loaded ISF file
Definition: ISFGLScene.h:32
Subclass of GLShaderScene- loads and renders ISF files.
Definition: ISFGLScene.h:30
union describing a value for one of the listed attribute types
Definition: ISFAttrib.h:26
ISFAttribValType
enum describing the different types of attributes listed in the ISF spec
Definition: ISFAttrib.h:13
MutLockDict is a thread-safe version of NSMutableDictionary.
Definition: MutLockDict.h:17
NSMutableArray * categoryNames
returns an array with the category names (as NSStrings) of this ISF file. pulled from the JSON blob...
Definition: ISFGLScene.h:36
Similar to NSMutableArray, but thread-safe. Internally, uses an NSMutableArray and a rwlock...
Definition: MutLockArray.h:20
MutLockArray * imageInputs
returns a MutLockArray (from VVBasics) of all the image-type (ISFAT_Image) ISFAttrib instances...
Definition: ISFGLScene.h:38