13 #ifndef __VEX_VexResolver__
14 #define __VEX_VexResolver__
47 static bool needsVexResolver(
const char *
shader);
48 static bool needsVexResolverForMantraOutput(
const char *shader);
49 static bool getVflCode(
const char *shader, std::ostream &os,
65 static bool getVexCode(
const char *shader, std::ostream &os,
68 bool *is_pure_compiled_out =
nullptr,
74 static bool getDependencies(
const char *shader,
76 int context_type = 0);
80 static bool addDependency(
const char *shader,
87 static int getCodeTimeStamp(
const char *shader,
88 int context_type = 0);
90 static void getEmptyVexCode(
const char *shader, std::ostream &os);
91 static bool getVexContext(
const char *shader,
UT_String &ctx,
92 int requested_context_type = 0,
101 static bool convertToCanonicalPath(
const char *shader,
107 static bool convertAlias(
const char *alias,
UT_String &shader);
111 static bool cacheVexCode(
const char *shader,
int context_type = 0,
118 virtual bool canResolveCode(
const char *shader)
const = 0;
122 virtual bool supportedByMantra(
const char *shader)
const = 0;
124 virtual bool resolveVflCode(
const char *shader,
127 int context_type)
const = 0;
130 virtual bool resolveVexCode(
const char *shader,
134 bool& is_pure_compiled_out,
136 virtual bool resolveCacheVexCode(
const char *shader,
139 virtual bool resolveDependencies(
const char *shader,
141 int context_type)
const = 0;
144 virtual bool resolveAddDependency(
const char *shader,
148 virtual int resolveCodeTimeStamp(
const char *shader,
149 int context_type)
const = 0;
150 virtual bool resolveVexContext(
const char *shader,
152 int requested_context_type)
const = 0;
153 virtual bool resolveCanonicalPath(
const char *shader,
155 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.
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.