11 #ifndef __VOP_Language__
12 #define __VOP_Language__
37 virtual const char *getName()
const = 0;
44 virtual const char *getFileExtension()
const = 0;
48 virtual const UT_StringSet &getReservedWords()
const = 0;
51 virtual const char *getExportKeyword()
const = 0;
55 virtual const char *getShaderParmSeparator()
const;
58 virtual const char *getSprintf()
const = 0;
61 virtual const char *getIsBoundFunction()
const = 0;
65 virtual void getEmptyConstantCode(
UT_String &code,
69 virtual void getCustomTypeEmptyConstantCode(
UT_String &code,
74 virtual void getConstantCode(
UT_String &code,
82 getConstantCode(tmp, type_info, unquoted, value);
89 virtual void getVaryingTypeCode(
UT_String &code,
97 virtual void getShaderTypeCode(
UT_String &code,
101 virtual void getCustomTypeCode(
UT_String &code,
105 virtual void getTypeDefinitionCode(
UT_String &type_definition,
109 virtual void getMemberVarAccessOpCode(
UT_String &access_op)
const;
113 virtual bool shouldSpecifyMemberDefaults()
const;
117 virtual void getStructDefinitionTerminator(
UT_String &term)
const;
122 virtual void getArrayBracketsCode(
UT_String &code,
130 virtual bool needsFunctionParmExportKeyword()
const;
137 virtual void getFunctionCall(
UT_String &str,
153 {
return *myParmManager; }
158 virtual const char *getVopnetMaskTarget(
VOP_ContextType context_type)
const;
161 virtual const char *getTypeUIColor(
VOP_Type type)
const;
164 virtual bool supportsUniformVarying()
const;
171 {
return conditionType(type) ==
type; }
175 virtual bool canDirectlyAssign(
const VOP_TypeInfo &dst_type,
182 bool unquoted )
const;
Reprsents a language for which VOPs can generate source code.
void adoptFromString(UT_String &str)
int isTypeSupported(VOP_Type type) const
Take an arbitrary type and return the type supported by the language.
void getConstantCode(UT_StringHolder &code, const VOP_TypeInfo &type_info, bool unquoted, const UT_StringArray &value) const
const VOP_NodeParmManager & getParmManager() const
Returns a manager that maps VOP types to PRM node parameters.
GLenum GLsizei GLsizei GLint * values
GLsizei const GLfloat * value
GLint GLint GLsizei GLint GLenum GLenum type