11 #ifndef __VOP_Language__
12 #define __VOP_Language__
50 {
return getLanguageInfo().getType(); }
54 virtual const char *getFileExtension()
const = 0;
58 virtual const UT_StringSet &getReservedWords()
const = 0;
61 virtual const char *getExportKeyword()
const = 0;
65 virtual const char *getShaderParmSeparator()
const;
68 virtual const char *getSprintf()
const = 0;
71 virtual const char *getIsBoundFunction()
const = 0;
75 virtual void getEmptyConstantCode(
UT_String &code,
79 virtual void getCustomTypeEmptyConstantCode(
UT_String &code,
84 virtual void getConstantCode(
UT_String &code,
92 getConstantCode(tmp, type_info, unquoted, value);
99 virtual void getVaryingTypeCode(
UT_String &code,
107 virtual void getShaderTypeCode(
UT_String &code,
111 virtual void getCustomTypeCode(
UT_String &code,
115 virtual void getTypeDefinitionCode(
UT_String &type_definition,
119 virtual void getMemberVarAccessOpCode(
UT_String &access_op)
const;
123 virtual bool shouldSpecifyMemberDefaults()
const;
127 virtual void getStructDefinitionTerminator(
UT_String &term)
const;
132 virtual void getArrayBracketsCode(
UT_String &code,
140 virtual bool needsFunctionParmExportKeyword()
const;
147 virtual void getFunctionCall(
UT_String &str,
163 {
return *myParmManager; }
168 virtual const char *getVopnetMaskTarget(
VOP_ContextType context_type)
const;
171 virtual const char *getTypeUIColor(
VOP_Type type)
const;
174 virtual bool supportsUniformVarying()
const;
181 {
return conditionType(type) ==
type; }
185 virtual bool canDirectlyAssign(
const VOP_TypeInfo &dst_type,
190 virtual bool hasTypeAutoconvert()
const;
196 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.
virtual VOP_LanguageType getLanguageType() const
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.
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
PXL_API const char * getName(const ColorSpace *space)
Return the name of the color space.
GLenum GLsizei GLsizei GLint * values
UT_SharedPtr< const VOP_Language > VOP_LanguageHandle
VOP_Type
Enumeration of the built-in (basic) VOP data types.
**If you just want to fire and args