HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VEX_VexTypes.h File Reference
#include "VEX_API.h"
#include <UT/UT_Array.h>
+ Include dependency graph for VEX_VexTypes.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define ENUM_TO_MASK(TOKEN)   TOKEN = (1 << TOKEN##_ENUM)
 
#define VEX_SHADING_CONTEXT
 
#define VEX_OP_CONTEXT
 
#define VEX_ALL_CONTEXT
 

Typedefs

using VEX_ContextTypeList = UT_Array< VEX_ContextType >
 

Enumerations

enum  VEX_Type {
  VEX_TYPE_UNDEF, VEX_TYPE_VECTOR4, VEX_TYPE_VECTOR, VEX_TYPE_FLOAT,
  VEX_TYPE_INTEGER, VEX_TYPE_STRING, VEX_TYPE_MATRIX3, VEX_TYPE_MATRIX4,
  VEX_TYPE_BSDF, VEX_TYPE_VECTOR2, VEX_TYPE_MATRIX2, VEX_TYPE_DICT,
  VEX_MAX_TYPES
}
 VEX variable types. More...
 
enum  VEX_ContextTypeEnum {
  VEX_SURFACE_CONTEXT_ENUM, VEX_DISPLACE_CONTEXT_ENUM, VEX_LIGHT_CONTEXT_ENUM, VEX_SHADOW_CONTEXT_ENUM,
  VEX_FOG_CONTEXT_ENUM, VEX_CHOP_CONTEXT_ENUM, VEX_SOP_CONTEXT_ENUM, VEX_COP2_CONTEXT_ENUM,
  VEX_I3D_CONTEXT_ENUM, VEX_CVEX_CONTEXT_ENUM, VEX_MAX_CONTEXT_ENUM
}
 
enum  VEX_ContextType {
  VEX_INVALID_CONTEXT = 0, ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT),
  ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT),
  ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT)
}
 
enum  VEX_CodeGenFlagsEnum {
  VEX_CG_OMIT_PRAGMAS_ENUM, VEX_CG_ADD_NODE_LINE_HINTS_ENUM, VEX_CG_OMIT_COMMENTS_ENUM, VEX_CG_CALL_ENCAPSULATED_SHADERS_ENUM,
  VEX_CG_NO_EMPTY_CODE_ENUM, VEX_CG_OMIT_HEADER_COMMENT_ENUM, VEX_CG_OMIT_SHADER_DEFINES_ENUM, VEX_CG_IGNORE_ERRORS_ENUM,
  VEX_CG_NO_SHADER_IMPORT_CHECK_ENUM, VEX_CG_AUTO_PROMOTE_FILE_VARS_ENUM, VEX_CG_MAX_ENUMS
}
 
enum  VEX_CodeGenFlags {
  VEX_CG_DEFAULT = 0, ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT),
  ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT),
  ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT)
}
 VEX code generation flags when calling VEX_VexResolver::getVflCode. More...
 
enum  VEX_SpecializeFlagsEnum {
  VEX_SPECIALIZE_SPECIALIZING_ENUM, VEX_SPECIALIZE_SHADOW_ENUM, VEX_SPECIALIZE_DISABLE_JIT_ENUM, VEX_SPECIALIZE_DISABLE_JUMP_THREADING_ENUM,
  VEX_SPECIALIZE_ENABLE_LOOP_UNSWITCH_ENUM, VEX_SPECIALIZE_LPE_ENUM, VEX_SPECIALIZE_KARMA_ENUM, VEX_SPECIALIZE_MAX_ENUMS
}
 
enum  VEX_SpecializeFlags {
  VEX_SPECIALIZE_NONE = 0, ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT),
  ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT), ENUM_TO_MASK =(VEX_SURFACE_CONTEXT)
}
 

Functions

 SYS_STATIC_ASSERT (VEX_MAX_CONTEXT_ENUM<=32)
 
 SYS_STATIC_ASSERT (VEX_CG_MAX_ENUMS<=32)
 
 SYS_STATIC_ASSERT (VEX_SPECIALIZE_MAX_ENUMS<=32)
 

Macro Definition Documentation

#define ENUM_TO_MASK (   TOKEN)    TOKEN = (1 << TOKEN##_ENUM)

VEX is used in various contexts. Each context has its own set of functions and variables available. The enum::VEX_ContextType can be used to limit the VEX operator to a specific set of contexts. Contexts can be or'ed together.

Definition at line 59 of file VEX_VexTypes.h.

#define VEX_ALL_CONTEXT
Value:
VEX_I3D_CONTEXT | \
VEX_CVEX_CONTEXT)
#define VEX_OP_CONTEXT
Definition: VEX_VexTypes.h:86
#define VEX_SHADING_CONTEXT
Definition: VEX_VexTypes.h:79
Examples:
alligator/alligator.C, and VEX/VEX_Example.C.

Definition at line 91 of file VEX_VexTypes.h.

#define VEX_OP_CONTEXT
Value:
(VEX_CHOP_CONTEXT | \
VEX_SOP_CONTEXT | \
VEX_COP2_CONTEXT)
Examples:
VEX/VEX_Ops.C.

Definition at line 86 of file VEX_VexTypes.h.

#define VEX_SHADING_CONTEXT
Value:
(VEX_SURFACE_CONTEXT | \
VEX_DISPLACE_CONTEXT | \
VEX_LIGHT_CONTEXT | \
VEX_SHADOW_CONTEXT | \
VEX_FOG_CONTEXT)
Examples:
VEX/VEX_Ops.C.

Definition at line 79 of file VEX_VexTypes.h.

Typedef Documentation

Definition at line 76 of file VEX_VexTypes.h.

Enumeration Type Documentation

VEX code generation flags when calling VEX_VexResolver::getVflCode.

Enumerator
VEX_CG_DEFAULT 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 

Definition at line 138 of file VEX_VexTypes.h.

Enumerator
VEX_CG_OMIT_PRAGMAS_ENUM 

Don't write out #pragmas.

VEX_CG_ADD_NODE_LINE_HINTS_ENUM 

Add line hints for determining the generator node of each code section.

VEX_CG_OMIT_COMMENTS_ENUM 

Don't add extra comments to the code (header, origin markers, etc.)

VEX_CG_CALL_ENCAPSULATED_SHADERS_ENUM 

Generate shader calls for encapsulated shaders. The encapsulated shaders are not a part of the resulting code from VEX_VexResolver::getVflCode. Instead, call VEX_VexResolver::getDependencies to get the list of shaders that will be called. If this flag is not used, the encapsulated code will be embedded in the resulting code and a direct function call used instead.

VEX_CG_NO_EMPTY_CODE_ENUM 

Don't output empty boilerplate code if the real code generation failed.

VEX_CG_OMIT_HEADER_COMMENT_ENUM 

Don't add any header comment to the code.

VEX_CG_OMIT_SHADER_DEFINES_ENUM 

Don't add any shader #defines to the code.

VEX_CG_IGNORE_ERRORS_ENUM 

Ignore any errors in the VOP network when generating the code.

VEX_CG_NO_SHADER_IMPORT_CHECK_ENUM 

Don't check if the imported shader actually exists.

VEX_CG_AUTO_PROMOTE_FILE_VARS_ENUM 

Promote any file path literals to a shader function parameter.

VEX_CG_MAX_ENUMS 

Definition at line 96 of file VEX_VexTypes.h.

Enumerator
VEX_INVALID_CONTEXT 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 

Definition at line 60 of file VEX_VexTypes.h.

Enumerator
VEX_SURFACE_CONTEXT_ENUM 
VEX_DISPLACE_CONTEXT_ENUM 
VEX_LIGHT_CONTEXT_ENUM 
VEX_SHADOW_CONTEXT_ENUM 
VEX_FOG_CONTEXT_ENUM 
VEX_CHOP_CONTEXT_ENUM 
VEX_SOP_CONTEXT_ENUM 
VEX_COP2_CONTEXT_ENUM 
VEX_I3D_CONTEXT_ENUM 
VEX_CVEX_CONTEXT_ENUM 
VEX_MAX_CONTEXT_ENUM 

Definition at line 38 of file VEX_VexTypes.h.

Enumerator
VEX_SPECIALIZE_NONE 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 
ENUM_TO_MASK 

Definition at line 175 of file VEX_VexTypes.h.

Enumerator
VEX_SPECIALIZE_SPECIALIZING_ENUM 
VEX_SPECIALIZE_SHADOW_ENUM 
VEX_SPECIALIZE_DISABLE_JIT_ENUM 
VEX_SPECIALIZE_DISABLE_JUMP_THREADING_ENUM 
VEX_SPECIALIZE_ENABLE_LOOP_UNSWITCH_ENUM 
VEX_SPECIALIZE_LPE_ENUM 
VEX_SPECIALIZE_KARMA_ENUM 
VEX_SPECIALIZE_MAX_ENUMS 

Definition at line 161 of file VEX_VexTypes.h.

enum VEX_Type

VEX variable types.

Enumerator
VEX_TYPE_UNDEF 
VEX_TYPE_VECTOR4 
VEX_TYPE_VECTOR 
VEX_TYPE_FLOAT 
VEX_TYPE_INTEGER 
VEX_TYPE_STRING 
VEX_TYPE_MATRIX3 
VEX_TYPE_MATRIX4 
VEX_TYPE_BSDF 
VEX_TYPE_VECTOR2 
VEX_TYPE_MATRIX2 
VEX_TYPE_DICT 
VEX_MAX_TYPES 

Definition at line 18 of file VEX_VexTypes.h.

Function Documentation

SYS_STATIC_ASSERT ( VEX_MAX_CONTEXT_ENUM<=  32)
SYS_STATIC_ASSERT ( VEX_CG_MAX_ENUMS<=  32)
SYS_STATIC_ASSERT ( VEX_SPECIALIZE_MAX_ENUMS<=  32)