10 #ifndef __VOP_VariableInput_h__
11 #define __VOP_VariableInput_h__
16 #define VOP_UNIFORM_VARYING_COMBO(vtype, utype) \
21 #define VOP_UNIFORM_VARYING_COMBO2(vtype1, utype1, vtype2, utype2) \
36 const char *
inputLabel(
unsigned idx)
const override;
37 const char *
outputLabel(
unsigned idx)
const override;
43 virtual const char *getVariableOperator()
const = 0;
44 virtual const char *getVariableOutputName()
const = 0;
51 virtual VOP_Type *getAllowedTypeCombinations()
const = 0;
55 {
return operand_type; }
74 virtual void getPreCode(
UT_String &codestr)
const;
75 virtual void getPostCode(
UT_String &codestr)
const;
78 virtual int getVariableOffset()
const;
81 virtual int getVexArgOffset()
const;
95 int nConnectedVariableInputs()
const;
103 virtual void computeAllowedTypes(
int send_event=1);
104 void updateAllowedTypes()
const;
virtual int getInputFromNameSubclass(const UT_String &in) const
GLuint GLsizei const GLchar * label
virtual void getAllowedInputTypesSubclass(unsigned idx, VOP_VopTypeArray &voptypes)
OP_ERROR setNamedInputReference(const OP_ConnectorId &input_name, const char *label, int, const OP_ConnectorId *output_name=nullptr) override
virtual unsigned getNumVisibleInputs() const
virtual const char * inputLabel(unsigned idx) const
virtual void getInputTypeInfoSubclass(VOP_TypeInfo &type_info, int idx)
virtual unsigned orderedInputs() const
GLuint const GLchar * name
virtual void getCode(UT_String &codestr, const VOP_CodeGenContext &context)
Get the code fragment to be included in the shader code.
virtual const char * outputLabel(unsigned idx) const
virtual void getOutputTypeInfoSubclass(VOP_TypeInfo &type_info, int idx)
virtual void getOutputNameSubclass(UT_String &out, int idx) const
VOP_Type
Enumeration of the built-in (basic) VOP data types.
virtual void getInputNameSubclass(UT_String &in, int idx) const
virtual void ensureParametersAreValid()
OP_ERROR setNamedInput(const OP_ConnectorId &input_name, OP_Node *op, const OP_ConnectorId *output_name=nullptr) override
New input functions that use names instead of indices.