13 #ifndef __VEX_VexResolver__
14 #define __VEX_VexResolver__
50 static bool needsVexResolver(
const char *
shader);
51 static bool needsVexResolverForMantraOutput(
const char *shader);
52 static bool getVflCode(
const char *shader, std::ostream &os,
68 static bool getVexCode(
const char *shader, std::ostream &os,
71 bool *is_pure_compiled_out =
nullptr,
77 static bool getDependencies(
const char *shader,
79 int context_type = 0);
83 static bool addDependency(
const char *shader,
90 static time_t getCodeTimeStamp(
const char *shader,
91 int context_type = 0);
93 static void getEmptyVexCode(
const char *shader, std::ostream &os);
94 static bool getVexContext(
const char *shader,
UT_String &ctx,
95 int requested_context_type = 0,
104 static bool convertToCanonicalPath(
const char *shader,
110 static bool convertAlias(
const char *alias,
UT_String &shader);
114 static bool cacheVexCode(
const char *shader,
int context_type = 0,
123 virtual bool canResolveCode(
const char *shader)
const = 0;
127 virtual bool supportedByMantra(
const char *shader)
const = 0;
129 virtual bool resolveVflCode(
const char *shader,
132 int context_type)
const = 0;
135 virtual bool resolveVexCode(
const char *shader,
139 bool& is_pure_compiled_out,
141 virtual bool resolveCacheVexCode(
const char *shader,
144 virtual bool resolveDependencies(
const char *shader,
146 int context_type)
const = 0;
149 virtual bool resolveAddDependency(
const char *shader,
153 virtual time_t resolveCodeTimeStamp(
const char *shader,
154 int context_type)
const = 0;
155 virtual bool resolveVexContext(
const char *shader,
157 int requested_context_type)
const = 0;
158 virtual bool resolveCanonicalPath(
const char *shader,
160 virtual bool resolveAlias(
const char *alias,
bool VEX_API VEXisVexCodeBeginMarker(const UT_String &str)
bool VEX_API VEXstartsWithVexCodeBeginMarker(const UT_String &str)
A utility class to do read-only operations on a subset of an existing string.
#define UT_NON_COPYABLE(CLASS)
Define deleted copy constructor and assignment operator inside a class.
UT_ValArray< VEX_VexResolver * > VEX_VexResolverArray
bool VEX_API VEXisVexCodeEndMarker(const UT_String &str)
Check whether this line marks the end of a compiled VEX shader.
VEX_CodeGenFlags
VEX code generation flags when calling VEX_VexResolver::getVflCode.