Vuo  2.4.1
VuoIsfModuleCompiler.hh
Go to the documentation of this file.
1
10#pragma once
11
12#include <Vuo/Vuo.h>
13
18{
19public:
20 Module * compile(std::function<VuoCompilerType *(const string &)> getVuoType, dispatch_queue_t llvmQueue, VuoCompilerIssues *issues);
21 void overrideSourceCode(const string &sourceCode, VuoFileUtilities::File *sourceFile);
22
23private:
24 static void __attribute__((constructor)) init();
25 static VuoModuleCompiler *newModuleCompiler(const string &moduleKey, VuoFileUtilities::File *sourceFile);
26 VuoIsfModuleCompiler(const string &moduleKey, VuoFileUtilities::File *sourceFile);
27 void generateMetadata(Module *module);
28 void generateNodeInstanceInitFunction(Module *module, VuoCompilerConstantsCache *constantsCache, map<string, VuoCompilerType *> vuoTypes, VuoCompilerIssues *issues);
29 void generateNodeInstanceEventFunction(Module *module, VuoCompilerConstantsCache *constantsCache, map<string, VuoCompilerType *> vuoTypes, VuoCompilerIssues *issues);
30 bool isTypeFound(VuoCompilerType *type, VuoCompilerIssues *issues);
31 Type * getFunctionParameterType(VuoCompilerType *type, VuoCompilerIssues *issues);
32
33 string moduleKey;
34 VuoShaderFile *shaderFile;
35};