Classes | |
struct | SH::ShArrayTraits |
Default traits for ShArray. More... | |
class | SH::ShArray1D< T > |
One-dimensional array. More... | |
class | SH::ShArray2D< T > |
Two-dimensional square power-of-two array. More... | |
class | SH::ShArrayRect< T > |
Two-dimensional non-square array. More... | |
class | SH::ShArray3D< T > |
Three-dimensional array. More... | |
class | SH::ShArrayCube< T > |
Cube array. More... | |
class | SH::ShAttrib< N, Binding, T, Swizzled > |
A generic attribute (or parameter) holding N values. More... | |
class | SH::ShBaseTexture1D< T > |
Base type for 1D Textures. More... | |
class | SH::ShBaseTexture2D< T > |
Base type for 2D Textures. More... | |
class | SH::ShBaseTextureRect< T > |
Base type for Rectangular Textures. More... | |
class | SH::ShBaseTexture3D< T > |
Base type for 3D Textures. More... | |
class | SH::ShBaseTextureCube< T > |
Base type for Cube Textures. More... | |
class | SH::ShBasicBlock |
A basic block. More... | |
class | SH::ShBitSet |
A bitset. More... | |
class | SH::ShBlock |
A generic block or token. More... | |
class | SH::ShBlockList |
A list of generic blocks. More... | |
class | SH::ShChannel< T > |
The client interface to a single-channel typed data stream. More... | |
class | SH::ShClamped< T > |
Set Clamp trait in Texture type. More... | |
class | SH::ShUnclamped< T > |
Reset Clamp trait in Texture type. More... | |
class | SH::ShColor< N, Binding, T, Swizzled > |
An n-color. More... | |
class | SH::ShCtrlGraphNode |
A node in the control graph. More... | |
class | SH::ShCtrlGraph |
A control-flow graph. More... | |
class | SH::ShDomTree |
A dominator tree in a flowgraph. More... | |
class | SH::ShEnvironment |
Global settings for the current program. More... | |
class | SH::ShException |
A generic exception. More... | |
class | SH::ShParseException |
An exception representing a parse error. More... | |
class | SH::ShScopeException |
An exception representing a scoping violation. More... | |
class | SH::ShImageException |
An exception relating to an ShImage operation. More... | |
class | SH::ShAlgebraException |
An exception relating to an ShAlgebra operation. More... | |
class | SH::ShOptimizerException |
An exception relating to an ShOptimizer operation. More... | |
class | SH::ShTransformerException |
An exception relating to an ShTransformer operation. More... | |
class | SH::ShBackendException |
An exception relating to an ShBackend operation. More... | |
class | SH::ShFixedManipulatorNode |
A ShFixedManipulator is a ShProgram output manipulator. More... | |
class | SH::ShGeneric< N, T > |
A variable of length N. More... | |
class | SH::ShImage |
An image, consisting of a rectangle of floating-point elements. More... | |
class | SH::ShImage3D |
A 3D image. More... | |
class | SH::ShInterp< L, T > |
Set Interpolation level in Texture type. More... | |
class | SH::ShLinearAllocator |
A simple, basic-block based linear register allocator. More... | |
struct | SH::storage_trait< T > |
A type trait class that determines storage type used for T in a ShManipulator. There must be an automatic conversion from T to StorageType or an applicable copy constructor. The storage type also must be responsible for its own memory management as the code often uses shallow copies of ranges/range vectors. More... | |
class | SH::ShManipulator< T > |
A ShManipulator is a ShProgram output manipulator. This kind of manipulator permutes the outputs of a ShProgram based on given integer indices. More... | |
class | SH::ShMatrix< Rows, Cols, Binding, T > |
A matrix of Rows by Cols elements. More... | |
class | SH::ShMatrixRows< Rows, Cols, T > |
A few rows from a matrix. More... | |
class | SH::ShMemory |
A memory object. More... | |
class | SH::ShTransfer |
A Storage Transfer function. More... | |
class | SH::ShStorage |
A Storage object Storage represents actual, physical storage of some memory's contents. More... | |
class | SH::ShHostStorage |
An ShStorage representing data stored on the CPU host memory. More... | |
class | SH::ShHostMemory |
An ShMemory initially originating in CPU host memory. More... | |
class | SH::ShNormal< N, Binding, T, Swizzled > |
An n-normal. More... | |
class | SH::ShParser |
Recursive-descent parser for control structures. More... | |
class | SH::ShPoint< N, Binding, T, Swizzled > |
An n-point. More... | |
class | SH::ShPosition< N, Binding, T, Swizzled > |
A vertex or fragment position. More... | |
class | SH::ShProgram |
Thin wrapper around ShProgramNode. More... | |
class | SH::ShProgramNode |
A particular Sh program. More... | |
class | SH::ShQuaternion< B, T > |
A Quaternion. More... | |
class | SH::ShRefCountable |
A class which can be reference-counted. More... | |
class | SH::ShPointer< T > |
A reference-counting smart pointer. More... | |
struct | SH::ShOperationInfo |
Information related to a specific operation. More... | |
class | SH::ShStatementInfo |
Dummy class representing additional information that can be stored in statements. More... | |
class | SH::ShStatement |
A single statement. More... | |
class | SH::ShStream |
Dynamic list of channels. More... | |
class | SH::ShSwizzle |
Represents swizzling of a variable. More... | |
class | SH::ShSwizzleException |
Thrown when an invalid swizzle is specified (e.g. More... | |
class | SH::ShTexCoord< N, Binding, T, Swizzled > |
A texture coordinate. More... | |
struct | SH::ShFilteredTextureTraits |
Trait class to represent texture filtering modes. More... | |
class | SH::ShTexture1D< T > |
One-dimensional power-of-two texture type. More... | |
class | SH::ShTexture2D< T > |
Two-dimensional square power-of-two texture type. More... | |
class | SH::ShTextureRect< T > |
Two-dimensional rectangular texture type. More... | |
class | SH::ShTexture3D< T > |
Three-dimensional texture type. More... | |
class | SH::ShTextureCube< T > |
Cubic texture type. More... | |
class | SH::ShTextureTraits |
Texture traits. More... | |
class | SH::ShToken |
A token in the (unparsed) parse tree. More... | |
struct | SH::ShTokenArgument |
A token argument, e.g. to SH_IF or SH_FOR. More... | |
class | SH::ShTokenizerException |
An exception indicating a tokenizer error. More... | |
class | SH::ShTokenizer |
A tokenizer. More... | |
class | SH::ShTransformer |
Program transformer. More... | |
struct | SH::ShCompileTimeChecker< B > |
Check a boolean condition at compile time. More... | |
class | SH::ShVariable |
A reference and interface to a generic n-tuple variable. More... | |
class | SH::ShVariableNode |
A generic n-tuple variable. More... | |
class | SH::ShVector< N, Binding, T, Swizzled > |
A (geometric) n-vector. More... | |
class | SH::ShWrapClamp< T > |
Set WrapClamp trait in Texture type. More... | |
class | SH::ShWrapClampToEdge< T > |
Set WrapClampToEdge trait in Texture type. More... | |
class | SH::ShWrapRepeat< T > |
Set WrapRepeat trait in Texture type. More... | |
[NOHEADER] | |
template<typename T> ShProgram | abs (const std::string &name="result") |
Nibbles for unary operators Inputs: IN(0) T name Outputs: OUT(0) T name. | |
template<typename T> ShProgram | acos (const std::string &name="result") |
template<typename T> ShProgram | asin (const std::string &name="result") |
template<typename T> ShProgram | cos (const std::string &name="result") |
template<typename T> ShProgram | frac (const std::string &name="result") |
template<typename T> ShProgram | sin (const std::string &name="result") |
template<typename T> ShProgram | sqrt (const std::string &name="result") |
template<typename T> ShProgram | normalize (const std::string &name="result") |
template<typename T> ShProgram | pos (const std::string &name="result") |
[NOHEADER] | |
SHNIBBLE_BINARY_OP_DECL (add) | |
SHNIBBLE_BINARY_OP_DECL (sub) | |
SHNIBBLE_BINARY_OP_DECL (mul) | |
SHNIBBLE_BINARY_OP_DECL (div) | |
SHNIBBLE_BINARY_OP_DECL (pow) | |
SHNIBBLE_BINARY_OP_DECL (slt) | |
SHNIBBLE_BINARY_OP_DECL (sle) | |
SHNIBBLE_BINARY_OP_DECL (sgt) | |
SHNIBBLE_BINARY_OP_DECL (sge) | |
SHNIBBLE_BINARY_OP_DECL (seq) | |
SHNIBBLE_BINARY_OP_DECL (sne) | |
SHNIBBLE_BINARY_OP_DECL (max) | |
SHNIBBLE_BINARY_OP_DECL (min) | |
SHNIBBLE_BINARY_OP_DECL (mod) | |
[NOHEADER] | |
template<typename T> ShProgram | dot (const std::string &name="result") |
Nibble for dot product operator Inputs: IN(0) T a IN(1) T b Outputs: OUT(0) ShAttrib1f name. | |
[NOHEADER] | |
template<typename T1, typename T2> ShProgram | lerp (const std::string &name="result") |
Nibble for lerp operator Inputs: IN(0) T1 a IN(1) T1 b IN(2) T2 alpha (T2 = T1 by default) Outputs: OUT(0) T1 name = a * alpha + b * (1 - alpha). | |
Typedefs | |
typedef ShAttrib< 1, SH_INPUT, float > | ShInputAttrib1f |
typedef ShAttrib< 1, SH_OUTPUT, float > | ShOutputAttrib1f |
typedef ShAttrib< 1, SH_INOUT, float > | ShInOutAttrib1f |
typedef ShAttrib< 1, SH_TEMP, float > | ShAttrib1f |
typedef ShAttrib< 1, SH_CONST, float > | ShConstAttrib1f |
typedef ShAttrib< 2, SH_INPUT, float > | ShInputAttrib2f |
typedef ShAttrib< 2, SH_OUTPUT, float > | ShOutputAttrib2f |
typedef ShAttrib< 2, SH_INOUT, float > | ShInOutAttrib2f |
typedef ShAttrib< 2, SH_TEMP, float > | ShAttrib2f |
typedef ShAttrib< 2, SH_CONST, float > | ShConstAttrib2f |
typedef ShAttrib< 3, SH_INPUT, float > | ShInputAttrib3f |
typedef ShAttrib< 3, SH_OUTPUT, float > | ShOutputAttrib3f |
typedef ShAttrib< 3, SH_INOUT, float > | ShInOutAttrib3f |
typedef ShAttrib< 3, SH_TEMP, float > | ShAttrib3f |
typedef ShAttrib< 3, SH_CONST, float > | ShConstAttrib3f |
typedef ShAttrib< 4, SH_INPUT, float > | ShInputAttrib4f |
typedef ShAttrib< 4, SH_OUTPUT, float > | ShOutputAttrib4f |
typedef ShAttrib< 4, SH_INOUT, float > | ShInOutAttrib4f |
typedef ShAttrib< 4, SH_TEMP, float > | ShAttrib4f |
typedef ShAttrib< 4, SH_CONST, float > | ShConstAttrib4f |
typedef ShPointer< ShBackendCode > | ShBackendCodePtr |
typedef ShPointer< const ShBackendCode > | ShBackendCodeCPtr |
typedef ShPointer< ShBackend > | ShBackendPtr |
typedef ShPointer< const ShBackend > | ShBackendCPtr |
typedef ShPointer< ShBasicBlock > | ShBasicBlockPtr |
typedef ShPointer< const ShBasicBlock > | ShBasicBlockCPtr |
typedef ShPointer< ShBlock > | ShBlockPtr |
typedef ShPointer< const ShBlock > | ShBlockCPtr |
typedef ShPointer< ShBlockList > | ShBlockListPtr |
typedef ShPointer< const ShBlockList > | ShBlockListCPtr |
typedef ShPointer< ShChannelNode > | ShChannelNodePtr |
typedef ShPointer< const ShChannelNode > | ShChannelNodeCPtr |
typedef ShColor< 1, SH_INPUT, float > | ShInputColor1f |
typedef ShColor< 1, SH_OUTPUT, float > | ShOutputColor1f |
typedef ShColor< 1, SH_INOUT, float > | ShInOutColor1f |
typedef ShColor< 1, SH_TEMP, float > | ShColor1f |
typedef ShColor< 1, SH_CONST, float > | ShConstColor1f |
typedef ShColor< 2, SH_INPUT, float > | ShInputColor2f |
typedef ShColor< 2, SH_OUTPUT, float > | ShOutputColor2f |
typedef ShColor< 2, SH_INOUT, float > | ShInOutColor2f |
typedef ShColor< 2, SH_TEMP, float > | ShColor2f |
typedef ShColor< 2, SH_CONST, float > | ShConstColor2f |
typedef ShColor< 3, SH_INPUT, float > | ShInputColor3f |
typedef ShColor< 3, SH_OUTPUT, float > | ShOutputColor3f |
typedef ShColor< 3, SH_INOUT, float > | ShInOutColor3f |
typedef ShColor< 3, SH_TEMP, float > | ShColor3f |
typedef ShColor< 3, SH_CONST, float > | ShConstColor3f |
typedef ShColor< 4, SH_INPUT, float > | ShInputColor4f |
typedef ShColor< 4, SH_OUTPUT, float > | ShOutputColor4f |
typedef ShColor< 4, SH_INOUT, float > | ShInOutColor4f |
typedef ShColor< 4, SH_TEMP, float > | ShColor4f |
typedef ShColor< 4, SH_CONST, float > | ShConstColor4f |
typedef ShContext::BoundProgramMap::iterator | ShBoundIterator |
typedef std::map< ShCtrlGraphNodePtr, ShCtrlGraphNodePtr > | CtrlGraphCopyMap |
typedef ShPointer< ShCtrlGraphNode > | ShCtrlGraphNodePtr |
typedef ShPointer< const ShCtrlGraphNode > | ShCtrlGraphNodeCPtr |
typedef ShPointer< ShCtrlGraph > | ShCtrlGraphPtr |
typedef ShPointer< const ShCtrlGraph > | ShCtrlGraphCPtr |
typedef ShProgramNode::VarList::const_iterator | ShManipVarIterator |
typedef ShPointer< ShFixedManipulatorNode > | ShFixedManipulator |
typedef ShManipulator< int > | ShPositionManipulator |
typedef ShManipulator< char * > | ShNameManipulator |
typedef ShMatrix< 1, 1, SH_INPUT, float > | ShInputMatrix1x1f |
typedef ShMatrix< 1, 1, SH_OUTPUT, float > | ShOutputMatrix1x1f |
typedef ShMatrix< 1, 1, SH_INOUT, float > | ShInOutMatrix1x1f |
typedef ShMatrix< 1, 1, SH_TEMP, float > | ShMatrix1x1f |
typedef ShMatrix< 1, 2, SH_INPUT, float > | ShInputMatrix1x2f |
typedef ShMatrix< 1, 2, SH_OUTPUT, float > | ShOutputMatrix1x2f |
typedef ShMatrix< 1, 2, SH_INOUT, float > | ShInOutMatrix1x2f |
typedef ShMatrix< 1, 2, SH_TEMP, float > | ShMatrix1x2f |
typedef ShMatrix< 1, 3, SH_INPUT, float > | ShInputMatrix1x3f |
typedef ShMatrix< 1, 3, SH_OUTPUT, float > | ShOutputMatrix1x3f |
typedef ShMatrix< 1, 3, SH_INOUT, float > | ShInOutMatrix1x3f |
typedef ShMatrix< 1, 3, SH_TEMP, float > | ShMatrix1x3f |
typedef ShMatrix< 1, 4, SH_INPUT, float > | ShInputMatrix1x4f |
typedef ShMatrix< 1, 4, SH_OUTPUT, float > | ShOutputMatrix1x4f |
typedef ShMatrix< 1, 4, SH_INOUT, float > | ShInOutMatrix1x4f |
typedef ShMatrix< 1, 4, SH_TEMP, float > | ShMatrix1x4f |
typedef ShMatrix< 2, 1, SH_INPUT, float > | ShInputMatrix2x1f |
typedef ShMatrix< 2, 1, SH_OUTPUT, float > | ShOutputMatrix2x1f |
typedef ShMatrix< 2, 1, SH_INOUT, float > | ShInOutMatrix2x1f |
typedef ShMatrix< 2, 1, SH_TEMP, float > | ShMatrix2x1f |
typedef ShMatrix< 2, 2, SH_INPUT, float > | ShInputMatrix2x2f |
typedef ShMatrix< 2, 2, SH_OUTPUT, float > | ShOutputMatrix2x2f |
typedef ShMatrix< 2, 2, SH_INOUT, float > | ShInOutMatrix2x2f |
typedef ShMatrix< 2, 2, SH_TEMP, float > | ShMatrix2x2f |
typedef ShMatrix< 2, 3, SH_INPUT, float > | ShInputMatrix2x3f |
typedef ShMatrix< 2, 3, SH_OUTPUT, float > | ShOutputMatrix2x3f |
typedef ShMatrix< 2, 3, SH_INOUT, float > | ShInOutMatrix2x3f |
typedef ShMatrix< 2, 3, SH_TEMP, float > | ShMatrix2x3f |
typedef ShMatrix< 2, 4, SH_INPUT, float > | ShInputMatrix2x4f |
typedef ShMatrix< 2, 4, SH_OUTPUT, float > | ShOutputMatrix2x4f |
typedef ShMatrix< 2, 4, SH_INOUT, float > | ShInOutMatrix2x4f |
typedef ShMatrix< 2, 4, SH_TEMP, float > | ShMatrix2x4f |
typedef ShMatrix< 3, 1, SH_INPUT, float > | ShInputMatrix3x1f |
typedef ShMatrix< 3, 1, SH_OUTPUT, float > | ShOutputMatrix3x1f |
typedef ShMatrix< 3, 1, SH_INOUT, float > | ShInOutMatrix3x1f |
typedef ShMatrix< 3, 1, SH_TEMP, float > | ShMatrix3x1f |
typedef ShMatrix< 3, 2, SH_INPUT, float > | ShInputMatrix3x2f |
typedef ShMatrix< 3, 2, SH_OUTPUT, float > | ShOutputMatrix3x2f |
typedef ShMatrix< 3, 2, SH_INOUT, float > | ShInOutMatrix3x2f |
typedef ShMatrix< 3, 2, SH_TEMP, float > | ShMatrix3x2f |
typedef ShMatrix< 3, 3, SH_INPUT, float > | ShInputMatrix3x3f |
typedef ShMatrix< 3, 3, SH_OUTPUT, float > | ShOutputMatrix3x3f |
typedef ShMatrix< 3, 3, SH_INOUT, float > | ShInOutMatrix3x3f |
typedef ShMatrix< 3, 3, SH_TEMP, float > | ShMatrix3x3f |
typedef ShMatrix< 3, 4, SH_INPUT, float > | ShInputMatrix3x4f |
typedef ShMatrix< 3, 4, SH_OUTPUT, float > | ShOutputMatrix3x4f |
typedef ShMatrix< 3, 4, SH_INOUT, float > | ShInOutMatrix3x4f |
typedef ShMatrix< 3, 4, SH_TEMP, float > | ShMatrix3x4f |
typedef ShMatrix< 4, 1, SH_INPUT, float > | ShInputMatrix4x1f |
typedef ShMatrix< 4, 1, SH_OUTPUT, float > | ShOutputMatrix4x1f |
typedef ShMatrix< 4, 1, SH_INOUT, float > | ShInOutMatrix4x1f |
typedef ShMatrix< 4, 1, SH_TEMP, float > | ShMatrix4x1f |
typedef ShMatrix< 4, 2, SH_INPUT, float > | ShInputMatrix4x2f |
typedef ShMatrix< 4, 2, SH_OUTPUT, float > | ShOutputMatrix4x2f |
typedef ShMatrix< 4, 2, SH_INOUT, float > | ShInOutMatrix4x2f |
typedef ShMatrix< 4, 2, SH_TEMP, float > | ShMatrix4x2f |
typedef ShMatrix< 4, 3, SH_INPUT, float > | ShInputMatrix4x3f |
typedef ShMatrix< 4, 3, SH_OUTPUT, float > | ShOutputMatrix4x3f |
typedef ShMatrix< 4, 3, SH_INOUT, float > | ShInOutMatrix4x3f |
typedef ShMatrix< 4, 3, SH_TEMP, float > | ShMatrix4x3f |
typedef ShMatrix< 4, 4, SH_INPUT, float > | ShInputMatrix4x4f |
typedef ShMatrix< 4, 4, SH_OUTPUT, float > | ShOutputMatrix4x4f |
typedef ShMatrix< 4, 4, SH_INOUT, float > | ShInOutMatrix4x4f |
typedef ShMatrix< 4, 4, SH_TEMP, float > | ShMatrix4x4f |
typedef ShPointer< ShMemory > | ShMemoryPtr |
typedef ShPointer< const ShMemory > | ShMemoryCPtr |
typedef ShPointer< ShStorage > | ShStoragePtr |
typedef ShPointer< const ShStorage > | ShStorageCPtr |
typedef ShPointer< ShHostStorage > | ShHostStoragePtr |
typedef ShPointer< const ShHostStorage > | ShHostStorageCPtr |
typedef ShPointer< ShHostMemory > | ShHostMemoryPtr |
typedef ShPointer< const ShHostMemory > | ShHostMemoryCPtr |
typedef ShNormal< 1, SH_INPUT, float > | ShInputNormal1f |
typedef ShNormal< 1, SH_OUTPUT, float > | ShOutputNormal1f |
typedef ShNormal< 1, SH_INOUT, float > | ShInOutNormal1f |
typedef ShNormal< 1, SH_TEMP, float > | ShNormal1f |
typedef ShNormal< 1, SH_CONST, float > | ShConstNormal1f |
typedef ShNormal< 2, SH_INPUT, float > | ShInputNormal2f |
typedef ShNormal< 2, SH_OUTPUT, float > | ShOutputNormal2f |
typedef ShNormal< 2, SH_INOUT, float > | ShInOutNormal2f |
typedef ShNormal< 2, SH_TEMP, float > | ShNormal2f |
typedef ShNormal< 2, SH_CONST, float > | ShConstNormal2f |
typedef ShNormal< 3, SH_INPUT, float > | ShInputNormal3f |
typedef ShNormal< 3, SH_OUTPUT, float > | ShOutputNormal3f |
typedef ShNormal< 3, SH_INOUT, float > | ShInOutNormal3f |
typedef ShNormal< 3, SH_TEMP, float > | ShNormal3f |
typedef ShNormal< 3, SH_CONST, float > | ShConstNormal3f |
typedef ShNormal< 4, SH_INPUT, float > | ShInputNormal4f |
typedef ShNormal< 4, SH_OUTPUT, float > | ShOutputNormal4f |
typedef ShNormal< 4, SH_INOUT, float > | ShInOutNormal4f |
typedef ShNormal< 4, SH_TEMP, float > | ShNormal4f |
typedef ShNormal< 4, SH_CONST, float > | ShConstNormal4f |
typedef ShPoint< 1, SH_INPUT, float > | ShInputPoint1f |
typedef ShPoint< 1, SH_OUTPUT, float > | ShOutputPoint1f |
typedef ShPoint< 1, SH_INOUT, float > | ShInOutPoint1f |
typedef ShPoint< 1, SH_TEMP, float > | ShPoint1f |
typedef ShPoint< 1, SH_CONST, float > | ShConstPoint1f |
typedef ShPoint< 2, SH_INPUT, float > | ShInputPoint2f |
typedef ShPoint< 2, SH_OUTPUT, float > | ShOutputPoint2f |
typedef ShPoint< 2, SH_INOUT, float > | ShInOutPoint2f |
typedef ShPoint< 2, SH_TEMP, float > | ShPoint2f |
typedef ShPoint< 2, SH_CONST, float > | ShConstPoint2f |
typedef ShPoint< 3, SH_INPUT, float > | ShInputPoint3f |
typedef ShPoint< 3, SH_OUTPUT, float > | ShOutputPoint3f |
typedef ShPoint< 3, SH_INOUT, float > | ShInOutPoint3f |
typedef ShPoint< 3, SH_TEMP, float > | ShPoint3f |
typedef ShPoint< 3, SH_CONST, float > | ShConstPoint3f |
typedef ShPoint< 4, SH_INPUT, float > | ShInputPoint4f |
typedef ShPoint< 4, SH_OUTPUT, float > | ShOutputPoint4f |
typedef ShPoint< 4, SH_INOUT, float > | ShInOutPoint4f |
typedef ShPoint< 4, SH_TEMP, float > | ShPoint4f |
typedef ShPoint< 4, SH_CONST, float > | ShConstPoint4f |
typedef ShPosition< 1, SH_INPUT, float > | ShInputPosition1f |
typedef ShPosition< 1, SH_OUTPUT, float > | ShOutputPosition1f |
typedef ShPosition< 1, SH_INOUT, float > | ShInOutPosition1f |
typedef ShPosition< 1, SH_TEMP, float > | ShPosition1f |
typedef ShPosition< 1, SH_CONST, float > | ShConstPosition1f |
typedef ShPosition< 2, SH_INPUT, float > | ShInputPosition2f |
typedef ShPosition< 2, SH_OUTPUT, float > | ShOutputPosition2f |
typedef ShPosition< 2, SH_INOUT, float > | ShInOutPosition2f |
typedef ShPosition< 2, SH_TEMP, float > | ShPosition2f |
typedef ShPosition< 2, SH_CONST, float > | ShConstPosition2f |
typedef ShPosition< 3, SH_INPUT, float > | ShInputPosition3f |
typedef ShPosition< 3, SH_OUTPUT, float > | ShOutputPosition3f |
typedef ShPosition< 3, SH_INOUT, float > | ShInOutPosition3f |
typedef ShPosition< 3, SH_TEMP, float > | ShPosition3f |
typedef ShPosition< 3, SH_CONST, float > | ShConstPosition3f |
typedef ShPosition< 4, SH_INPUT, float > | ShInputPosition4f |
typedef ShPosition< 4, SH_OUTPUT, float > | ShOutputPosition4f |
typedef ShPosition< 4, SH_INOUT, float > | ShInOutPosition4f |
typedef ShPosition< 4, SH_TEMP, float > | ShPosition4f |
typedef ShPosition< 4, SH_CONST, float > | ShConstPosition4f |
typedef ShPointer< ShProgramNode > | ShProgramNodePtr |
typedef ShPointer< const ShProgramNode > | ShProgramNodeCPtr |
typedef ShQuaternion< SH_INPUT, float > | ShInputQuaternionf |
typedef ShQuaternion< SH_OUTPUT, float > | ShOutputQuaternionf |
typedef ShQuaternion< SH_TEMP, float > | ShQuaternionf |
typedef ShPointer< ShStructuralNode > | ShStructuralNodePtr |
typedef ShPointer< const ShStructuralNode > | ShStructuralNodeCPtr |
typedef ShTexCoord< 1, SH_INPUT, float > | ShInputTexCoord1f |
typedef ShTexCoord< 1, SH_OUTPUT, float > | ShOutputTexCoord1f |
typedef ShTexCoord< 1, SH_INOUT, float > | ShInOutTexCoord1f |
typedef ShTexCoord< 1, SH_TEMP, float > | ShTexCoord1f |
typedef ShTexCoord< 1, SH_CONST, float > | ShConstTexCoord1f |
typedef ShTexCoord< 2, SH_INPUT, float > | ShInputTexCoord2f |
typedef ShTexCoord< 2, SH_OUTPUT, float > | ShOutputTexCoord2f |
typedef ShTexCoord< 2, SH_INOUT, float > | ShInOutTexCoord2f |
typedef ShTexCoord< 2, SH_TEMP, float > | ShTexCoord2f |
typedef ShTexCoord< 2, SH_CONST, float > | ShConstTexCoord2f |
typedef ShTexCoord< 3, SH_INPUT, float > | ShInputTexCoord3f |
typedef ShTexCoord< 3, SH_OUTPUT, float > | ShOutputTexCoord3f |
typedef ShTexCoord< 3, SH_INOUT, float > | ShInOutTexCoord3f |
typedef ShTexCoord< 3, SH_TEMP, float > | ShTexCoord3f |
typedef ShTexCoord< 3, SH_CONST, float > | ShConstTexCoord3f |
typedef ShTexCoord< 4, SH_INPUT, float > | ShInputTexCoord4f |
typedef ShTexCoord< 4, SH_OUTPUT, float > | ShOutputTexCoord4f |
typedef ShTexCoord< 4, SH_INOUT, float > | ShInOutTexCoord4f |
typedef ShTexCoord< 4, SH_TEMP, float > | ShTexCoord4f |
typedef ShTexCoord< 4, SH_CONST, float > | ShConstTexCoord4f |
typedef ShPointer< ShTextureNode > | ShTextureNodePtr |
typedef ShPointer< const ShTextureNode > | ShTextureNodeCPtr |
typedef ShPointer< ShToken > | ShTokenPtr |
typedef ShPointer< const ShToken > | ShTokenCPtr |
typedef ShPointer< ShVariableNode > | ShVariableNodePtr |
typedef ShPointer< const ShVariableNode > | ShVariableNodeCPtr |
typedef ShVector< 1, SH_INPUT, float > | ShInputVector1f |
typedef ShVector< 1, SH_OUTPUT, float > | ShOutputVector1f |
typedef ShVector< 1, SH_INOUT, float > | ShInOutVector1f |
typedef ShVector< 1, SH_TEMP, float > | ShVector1f |
typedef ShVector< 1, SH_CONST, float > | ShConstVector1f |
typedef ShVector< 2, SH_INPUT, float > | ShInputVector2f |
typedef ShVector< 2, SH_OUTPUT, float > | ShOutputVector2f |
typedef ShVector< 2, SH_INOUT, float > | ShInOutVector2f |
typedef ShVector< 2, SH_TEMP, float > | ShVector2f |
typedef ShVector< 2, SH_CONST, float > | ShConstVector2f |
typedef ShVector< 3, SH_INPUT, float > | ShInputVector3f |
typedef ShVector< 3, SH_OUTPUT, float > | ShOutputVector3f |
typedef ShVector< 3, SH_INOUT, float > | ShInOutVector3f |
typedef ShVector< 3, SH_TEMP, float > | ShVector3f |
typedef ShVector< 3, SH_CONST, float > | ShConstVector3f |
typedef ShVector< 4, SH_INPUT, float > | ShInputVector4f |
typedef ShVector< 4, SH_OUTPUT, float > | ShOutputVector4f |
typedef ShVector< 4, SH_INOUT, float > | ShInOutVector4f |
typedef ShVector< 4, SH_TEMP, float > | ShVector4f |
typedef ShVector< 4, SH_CONST, float > | ShConstVector4f |
Enumerations | |
enum | OffsetRangeErrors { OFFSET_RANGE_BAD_OFFSET, OFFSET_RANGE_BAD_INDEX } |
enum | ShOperation { SH_OP_ASN, SH_OP_NEG, SH_OP_ADD, SH_OP_MUL, SH_OP_DIV, SH_OP_SLT, SH_OP_SLE, SH_OP_SGT, SH_OP_SGE, SH_OP_SEQ, SH_OP_SNE, SH_OP_ABS, SH_OP_ACOS, SH_OP_ASIN, SH_OP_ATAN, SH_OP_ATAN2, SH_OP_CBRT, SH_OP_CEIL, SH_OP_COS, SH_OP_CMUL, SH_OP_CSUM, SH_OP_DOT, SH_OP_DX, SH_OP_DY, SH_OP_EXP, SH_OP_EXP2, SH_OP_EXP10, SH_OP_FLR, SH_OP_FRAC, SH_OP_LRP, SH_OP_MAD, SH_OP_MAX, SH_OP_MIN, SH_OP_MOD, SH_OP_LOG, SH_OP_LOG2, SH_OP_LOG10, SH_OP_POW, SH_OP_RCP, SH_OP_RND, SH_OP_RSQ, SH_OP_SIN, SH_OP_SGN, SH_OP_SQRT, SH_OP_TAN, SH_OP_NORM, SH_OP_XPD, SH_OP_TEX, SH_OP_TEXI, SH_OP_TEXD, SH_OP_COND, SH_OP_KIL, SH_OP_OPTBRA, SH_OP_FETCH } |
Kinds of operations. More... | |
enum | ShTextureDims { SH_TEXTURE_1D, SH_TEXTURE_2D, SH_TEXTURE_RECT, SH_TEXTURE_3D, SH_TEXTURE_CUBE } |
Texture formats. More... | |
enum | ShCubeDirection { SH_CUBE_POS_X, SH_CUBE_NEG_X, SH_CUBE_POS_Y, SH_CUBE_NEG_Y, SH_CUBE_POS_Z, SH_CUBE_NEG_Z } |
Cube map faces. More... | |
enum | ShTokenType { SH_TOKEN_IF, SH_TOKEN_ELSE, SH_TOKEN_ENDIF, SH_TOKEN_WHILE, SH_TOKEN_ENDWHILE, SH_TOKEN_DO, SH_TOKEN_UNTIL, SH_TOKEN_FOR, SH_TOKEN_ENDFOR, SH_TOKEN_BREAK, SH_TOKEN_CONTINUE } |
Possible types a token can have. More... | |
enum | ShBindingType { SH_INPUT, SH_OUTPUT, SH_INOUT, SH_TEMP, SH_CONST, SH_TEXTURE, SH_STREAM } |
The various ways variables can be bound. | |
enum | ShSemanticType { SH_ATTRIB, SH_POINT, SH_VECTOR, SH_NORMAL, SH_COLOR, SH_TEXCOORD, SH_POSITION } |
The various ways semantic types for variables. | |
Functions | |
ShProgram | connect (ShProgram pa, ShProgram pb) |
Replace inputs of b with outputs of a. | |
ShProgram | combine (ShProgram pa, ShProgram pb) |
Combine a and b. | |
ShProgram | mergeNames (ShProgram p) |
ShProgram | namedCombine (ShProgram a, ShProgram b) |
Combine a and b. | |
ShProgram | namedConnect (ShProgram pa, ShProgram pb, bool keepExtra) |
Replace inputs of b with outputs of a. | |
ShProgram | renameInput (ShProgram a, const std::string &oldName, const std::string &newName) |
Renames all inputs named oldName to newName. | |
ShProgram | renameOutput (ShProgram a, const std::string &oldName, const std::string &newName) |
Renames all outputs named oldName to newName. | |
ShProgram | namedAlign (ShProgram a, ShProgram b) |
Swizzles named outputs of a to match named inputs of b. | |
ShProgram | operator<< (ShProgram a, ShProgram b) |
Equivalent to connect(b,a). | |
ShProgram | operator>> (ShProgram a, ShProgram b) |
ShProgram | operator & (ShProgram a, ShProgram b) |
Equivalent to combine(a,b). | |
ShProgram | operator>> (ShProgram p, const ShVariable &var) |
Equivalent to replaceUniform(p,var). | |
ShProgram | replaceUniform (ShProgram a, const ShVariable &v) |
Replaces parameter with attribute. | |
template<int N, typename T> ShProgram | operator<< (ShProgram a, const ShGeneric< N, T > &v) |
Application operator. | |
std::ostream & | operator<< (std::ostream &out, const ShBitSet &bitset) |
std::ostream & | operator<< (std::ostream &out, const ShBlockList &l) |
template<typename T> ShProgram | connect (const ShChannel< T > &channel, const ShProgram &program) |
Apply a programs to a single channel. | |
template<typename T> ShProgram | operator<< (const ShProgram &program, const ShChannel< T > &channel) |
Equivalent to connect(p,c). | |
void | propagate_constants (ShProgram &p) |
Propagate constants and lift uniform computations. | |
ShBoundIterator | shBeginBound () |
Get beginning of bound program map for current context. | |
ShBoundIterator | shEndBound () |
Get end of bound program map for current context. | |
void | shError (const ShException &exception) |
Throws the given exception when ShContext::current()->throw_errors() is on. | |
void | evaluate (ShStatement &stmt) |
void | evaluate (const ShProgramNodePtr &p) |
ShVariable | makeVariable (const ShVariableNodePtr &v, ShBindingType binding) |
ShFixedManipulator | shKeep (int numChannels) |
ShFixedManipulator | shLose (int numChannels) |
ShFixedManipulator | shDup (int numDups) |
ShProgram | operator<< (const ShProgram &p, const ShFixedManipulator &m) |
ShProgram | operator<< (const ShFixedManipulator &m, const ShProgram &p) |
ShFixedManipulator | operator & (const ShFixedManipulator &m, const ShFixedManipulator &n) |
ShFixedManipulator | operator & (const ShFixedManipulator &m, const ShProgram &p) |
ShFixedManipulator | operator & (const ShProgram &p, const ShFixedManipulator &m) |
void | shASN (ShVariable &dest, const ShVariable &src) |
void | shADD (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shMUL (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shDIV (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shSLT (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shSLE (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shSGT (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shSGE (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shSEQ (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shSNE (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shABS (ShVariable &dest, const ShVariable &a) |
void | shACOS (ShVariable &dest, const ShVariable &a) |
void | shASIN (ShVariable &dest, const ShVariable &a) |
void | shATAN (ShVariable &dest, const ShVariable &a) |
void | shATAN2 (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shCBRT (ShVariable &dest, const ShVariable &a) |
void | shCEIL (ShVariable &dest, const ShVariable &a) |
void | shCOS (ShVariable &dest, const ShVariable &a) |
void | shCMUL (ShVariable &dest, const ShVariable &a) |
void | shCSUM (ShVariable &dest, const ShVariable &a) |
void | shDOT (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shDX (ShVariable &dest, const ShVariable &a) |
void | shDY (ShVariable &dest, const ShVariable &a) |
void | shEXP (ShVariable &dest, const ShVariable &a) |
void | shEXP2 (ShVariable &dest, const ShVariable &a) |
void | shEXP10 (ShVariable &dest, const ShVariable &a) |
void | shFLR (ShVariable &dest, const ShVariable &a) |
void | shMOD (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shFRAC (ShVariable &dest, const ShVariable &a) |
void | shLRP (ShVariable &dest, const ShVariable &alpha, const ShVariable &a, const ShVariable &b) |
void | shLOG (ShVariable &dest, const ShVariable &a) |
void | shLOG2 (ShVariable &dest, const ShVariable &a) |
void | shLOG10 (ShVariable &dest, const ShVariable &a) |
void | shMAD (ShVariable &dest, const ShVariable &a, const ShVariable &b, const ShVariable &c) |
void | shMAX (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shMIN (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shPOW (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shRCP (ShVariable &dest, const ShVariable &a) |
void | shRND (ShVariable &dest, const ShVariable &a) |
void | shRSQ (ShVariable &dest, const ShVariable &a) |
void | shSGN (ShVariable &dest, const ShVariable &a) |
void | shSIN (ShVariable &dest, const ShVariable &a) |
void | shSQRT (ShVariable &dest, const ShVariable &a) |
void | shTAN (ShVariable &dest, const ShVariable &a) |
void | shNORM (ShVariable &dest, const ShVariable &a) |
void | shXPD (ShVariable &dest, const ShVariable &a, const ShVariable &b) |
void | shCOND (ShVariable &dest, const ShVariable &alpha, const ShVariable &a, const ShVariable &b) |
void | shKIL (const ShVariable &a) |
template<int N, typename T> ShGeneric< N, T > | operator+ (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Addition. | |
template<int N, typename T> ShGeneric< N, T > | operator+ (const ShGeneric< 1, T > &left, const ShGeneric< N, T > &right) |
template<int N, typename T> ShGeneric< N, T > | operator+ (const ShGeneric< N, T > &left, const ShGeneric< 1, T > &right) |
template<typename T> ShGeneric< 1, T > | operator+ (const ShGeneric< 1, T > &left, const ShGeneric< 1, T > &right) |
SH_SHLIB_CONST_SCALAR_OP (operator+) | |
SH_SHLIB_CONST_N_OP_BOTH (operator+) | |
template<int N, typename T> ShGeneric< N, T > | operator- (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Subtraction. | |
template<int N, typename T> ShGeneric< N, T > | operator- (const ShGeneric< 1, T > &left, const ShGeneric< N, T > &right) |
template<int N, typename T> ShGeneric< N, T > | operator- (const ShGeneric< N, T > &left, const ShGeneric< 1, T > &right) |
template<typename T> ShGeneric< 1, T > | operator- (const ShGeneric< 1, T > &left, const ShGeneric< 1, T > &right) |
SH_SHLIB_CONST_SCALAR_OP (operator-) | |
SH_SHLIB_CONST_N_OP_BOTH (operator-) | |
template<int N, typename T> ShGeneric< N, T > | operator * (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Multiplication. | |
template<int N, typename T> ShGeneric< N, T > | operator * (const ShGeneric< 1, T > &left, const ShGeneric< N, T > &right) |
template<int N, typename T> ShGeneric< N, T > | operator * (const ShGeneric< N, T > &left, const ShGeneric< 1, T > &right) |
template<typename T> ShGeneric< 1, T > | operator * (const ShGeneric< 1, T > &left, const ShGeneric< 1, T > &right) |
SH_SHLIB_CONST_SCALAR_OP (operator *) | |
SH_SHLIB_CONST_N_OP_BOTH (operator *) | |
template<int N, typename T> ShGeneric< N, T > | operator/ (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Division. | |
template<int N, typename T> ShGeneric< N, T > | operator/ (const ShGeneric< N, T > &left, const ShGeneric< 1, T > &right) |
template<int N, typename T> ShGeneric< N, T > | operator/ (const ShGeneric< 1, T > &left, const ShGeneric< N, T > &right) |
template<typename T> ShGeneric< 1, T > | operator/ (const ShGeneric< 1, T > &left, const ShGeneric< 1, T > &right) |
SH_SHLIB_CONST_SCALAR_OP (operator/) | |
SH_SHLIB_CONST_N_OP_LEFT (operator/) | |
template<int N, typename T> ShGeneric< N, T > | exp (const ShGeneric< N, T > &var) |
Exponent base 10. | |
template<int N, typename T> ShGeneric< N, T > | exp2 (const ShGeneric< N, T > &var) |
Exponent base 2. | |
template<int N, typename T> ShGeneric< N, T > | expm1 (const ShGeneric< N, T > &x) |
Minus-one Exponent base 10. | |
template<int N, typename T> ShGeneric< N, T > | log (const ShGeneric< N, T > &var) |
Logarithm base 10. | |
template<int N, typename T> ShGeneric< N, T > | log2 (const ShGeneric< N, T > &var) |
Logarithm base 2. | |
template<int N, typename T> ShGeneric< N, T > | logp1 (const ShGeneric< N, T > &x) |
Plus-One Logarithm base 10. | |
template<int N, typename T> ShGeneric< N, T > | pow (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Power. | |
template<int N, typename T> ShGeneric< N, T > | pow (const ShGeneric< N, T > &left, const ShGeneric< 1, T > &right) |
template<typename T> ShGeneric< 1, T > | pow (const ShGeneric< 1, T > &left, const ShGeneric< 1, T > &right) |
SH_SHLIB_CONST_SCALAR_OP (pow) | |
SH_SHLIB_CONST_N_OP_RIGHT (pow) | |
template<int N, typename T> ShGeneric< N, T > | mad (const ShGeneric< N, T > &m1, const ShGeneric< N, T > &m2, const ShGeneric< N, T > &a) |
Multiply and add. | |
template<int N, typename T> ShGeneric< N, T > | mad (const ShGeneric< N, T > &m1, const ShGeneric< 1, T > &m2, const ShGeneric< N, T > &a) |
template<int N, typename T> ShGeneric< N, T > | mad (const ShGeneric< 1, T > &m1, const ShGeneric< N, T > &m2, const ShGeneric< N, T > &a) |
template<typename T> ShGeneric< 1, T > | mad (const ShGeneric< 1, T > &m1, const ShGeneric< 1, T > &m2, const ShGeneric< 1, T > &a) |
template<int N, typename T> ShGeneric< N, T > | mad (T m1, const ShGeneric< N, T > &m2, const ShGeneric< N, T > &a) |
template<int N, typename T> ShGeneric< N, T > | mad (double m1, const ShGeneric< N, T > &m2, const ShGeneric< N, T > &a) |
template<int N, typename T> ShGeneric< N, T > | mad (const ShGeneric< N, T > &m1, T m2, const ShGeneric< N, T > &a) |
template<int N, typename T> ShGeneric< N, T > | mad (const ShGeneric< N, T > &m1, double m2, const ShGeneric< N, T > &a) |
template<int N, typename T> ShGeneric< N, T > | rcp (const ShGeneric< N, T > &var) |
template<int N, typename T> ShGeneric< N, T > | sqrt (const ShGeneric< N, T > &var) |
template<int N, typename T> ShGeneric< N, T > | rsqrt (const ShGeneric< N, T > &var) |
template<int N, typename T> ShGeneric< N, T > | cbrt (const ShGeneric< N, T > &var) |
template<int N, typename T> ShGeneric< N, T > | lerp (const ShGeneric< N, T > &f, const ShGeneric< N, T > &a, const ShGeneric< N, T > &b) |
Linear interpolation. | |
template<int N, typename T> ShGeneric< N, T > | lerp (const ShGeneric< 1, T > &f, const ShGeneric< N, T > &a, const ShGeneric< N, T > &b) |
template<typename T> ShGeneric< 1, T > | lerp (const ShGeneric< 1, T > &f, const ShGeneric< 1, T > &a, const ShGeneric< 1, T > &b) |
template<int N, typename T> ShGeneric< N, T > | lerp (T f, const ShGeneric< N, T > &a, const ShGeneric< N, T > &b) |
template<int N, typename T> ShGeneric< 1, T > | sum (const ShGeneric< N, T > &var) |
template<int N, typename T> ShGeneric< 1, T > | prod (const ShGeneric< N, T > &var) |
template<int N, typename T> ShGeneric< N, T > | exp10 (const ShGeneric< N, T > &var) |
template<int N, typename T> ShGeneric< N, T > | log10 (const ShGeneric< N, T > &var) |
SH_SHLIB_USUAL_OPERATIONS (ShAttrib) | |
SH_SHLIB_USUAL_SUBTRACT (ShAttrib) | |
SH_SHLIB_LEFT_MATRIX_OPERATION (ShAttrib, operator|, M) | |
template<int N, typename T> ShGeneric< N, T > | operator< (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Componentwise less-than. | |
template<int N, typename T> ShGeneric< N, T > | operator< (const ShGeneric< N, T > &left, const ShGeneric< 1, T > &right) |
template<int N, typename T> ShGeneric< N, T > | operator< (const ShGeneric< 1, T > &left, const ShGeneric< N, T > &right) |
template<typename T> ShGeneric< 1, T > | operator< (const ShGeneric< 1, T > &left, const ShGeneric< 1, T > &right) |
SH_SHLIB_CONST_SCALAR_OP (operator<) | |
SH_SHLIB_CONST_N_OP_BOTH (operator<) | |
template<int N, typename T> ShGeneric< N, T > | operator<= (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Componentwise less-than-or-equal. | |
template<int N, typename T> ShGeneric< N, T > | operator<= (const ShGeneric< N, T > &left, const ShGeneric< 1, T > &right) |
template<int N, typename T> ShGeneric< N, T > | operator<= (const ShGeneric< 1, T > &left, const ShGeneric< N, T > &right) |
template<typename T> ShGeneric< 1, T > | operator<= (const ShGeneric< 1, T > &left, const ShGeneric< 1, T > &right) |
SH_SHLIB_CONST_SCALAR_OP (operator<=) | |
SH_SHLIB_CONST_N_OP_BOTH (operator<=) | |
template<int N, typename T> ShGeneric< N, T > | operator> (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Componentwise greater-than. | |
template<int N, typename T> ShGeneric< N, T > | operator> (const ShGeneric< N, T > &left, const ShGeneric< 1, T > &right) |
template<int N, typename T> ShGeneric< N, T > | operator> (const ShGeneric< 1, T > &left, const ShGeneric< N, T > &right) |
template<typename T> ShGeneric< 1, T > | operator> (const ShGeneric< 1, T > &left, const ShGeneric< 1, T > &right) |
SH_SHLIB_CONST_SCALAR_OP (operator>) | |
SH_SHLIB_CONST_N_OP_BOTH (operator>) | |
template<int N, typename T> ShGeneric< N, T > | operator>= (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Componentwise greater-than-or-equal. | |
template<int N, typename T> ShGeneric< N, T > | operator>= (const ShGeneric< N, T > &left, const ShGeneric< 1, T > &right) |
template<int N, typename T> ShGeneric< N, T > | operator>= (const ShGeneric< 1, T > &left, const ShGeneric< N, T > &right) |
template<typename T> ShGeneric< 1, T > | operator>= (const ShGeneric< 1, T > &left, const ShGeneric< 1, T > &right) |
SH_SHLIB_CONST_SCALAR_OP (operator>=) | |
SH_SHLIB_CONST_N_OP_BOTH (operator>=) | |
template<int N, typename T> ShGeneric< N, T > | operator== (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Componentwise equal. | |
template<int N, typename T> ShGeneric< N, T > | operator== (const ShGeneric< N, T > &left, const ShGeneric< 1, T > &right) |
template<int N, typename T> ShGeneric< N, T > | operator== (const ShGeneric< 1, T > &left, const ShGeneric< N, T > &right) |
template<typename T> ShGeneric< 1, T > | operator== (const ShGeneric< 1, T > &left, const ShGeneric< 1, T > &right) |
template<int N, typename T> ShGeneric< N, T > | operator!= (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Componentwise not equal. | |
template<int N, typename T> ShGeneric< N, T > | operator!= (const ShGeneric< N, T > &left, const ShGeneric< 1, T > &right) |
template<int N, typename T> ShGeneric< N, T > | operator!= (const ShGeneric< 1, T > &left, const ShGeneric< N, T > &right) |
template<typename T> ShGeneric< 1, T > | operator!= (const ShGeneric< 1, T > &left, const ShGeneric< 1, T > &right) |
SH_SHLIB_CONST_SCALAR_OP (operator!=) | |
SH_SHLIB_CONST_N_OP_BOTH (operator!=) | |
template<int N, typename T> ShGeneric< N, T > | cond (const ShGeneric< N, T > &condition, const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Conditional assignment. | |
template<int N, typename T> ShGeneric< N, T > | cond (const ShGeneric< 1, T > &condition, const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
template<typename T> ShGeneric< 1, T > | cond (const ShGeneric< 1, T > &condition, const ShGeneric< 1, T > &left, const ShGeneric< 1, T > &right) |
template<int N, typename T> ShGeneric< N, T > | operator! (const ShGeneric< N, T > &a) |
Boolean negation. | |
template<int N, typename T> ShGeneric< N, T > | operator && (const ShGeneric< N, T > &a, const ShGeneric< N, T > &b) |
Componentwise minimum. | |
template<int N, typename T> ShGeneric< N, T > | operator|| (const ShGeneric< N, T > &a, const ShGeneric< N, T > &b) |
Componentwise maximum. | |
template<int N, typename T> ShGeneric< 1, T > | any (const ShGeneric< N, T > &a) |
Maximum of all components. | |
template<int N, typename T> ShGeneric< 1, T > | all (const ShGeneric< N, T > &a) |
Minimum of all components. | |
template<int N, typename T> ShGeneric< N, T > | abs (const ShGeneric< N, T > &var) |
Absolute value. | |
template<int N, typename T> ShGeneric< N, T > | ceil (const ShGeneric< N, T > &var) |
Ceiling. | |
template<int N, typename T> ShGeneric< N, T > | floor (const ShGeneric< N, T > &var) |
Floor. | |
template<int N, typename T> ShGeneric< N, T > | round (const ShGeneric< N, T > &var) |
Round. | |
template<int N, typename T> ShGeneric< N, T > | mod (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Float modulus. | |
template<int N, typename T> ShGeneric< N, T > | mod (const ShGeneric< N, T > &left, const ShGeneric< 1, T > &right) |
template<typename T> ShGeneric< 1, T > | mod (const ShGeneric< 1, T > &left, const ShGeneric< 1, T > &right) |
template<int N, typename T> ShGeneric< N, T > | operator% (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
template<int N, typename T> ShGeneric< N, T > | operator% (const ShGeneric< N, T > &left, const ShGeneric< 1, T > &right) |
template<typename T> ShGeneric< 1, T > | operator% (const ShGeneric< 1, T > &left, const ShGeneric< 1, T > &right) |
SH_SHLIB_CONST_SCALAR_OP (mod) | |
SH_SHLIB_CONST_N_OP_LEFT (mod) | |
SH_SHLIB_CONST_SCALAR_OP (operator%) | |
SH_SHLIB_CONST_N_OP_LEFT (operator%) | |
template<int N, typename T> ShGeneric< N, T > | frac (const ShGeneric< N, T > &var) |
Fractional part. | |
template<int N, typename T> ShGeneric< N, T > | pos (const ShGeneric< N, T > &x) |
Take positive part. | |
template<int N, typename T> ShGeneric< N, T > | max (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Maximum. | |
SH_SHLIB_CONST_SCALAR_OP (max) | |
template<int N, typename T> ShGeneric< N, T > | min (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Minimum. | |
SH_SHLIB_CONST_SCALAR_OP (min) | |
template<int N, typename T> ShGeneric< 1, T > | max (const ShGeneric< N, T > &a) |
Maximum of all components. | |
template<int N, typename T> ShGeneric< 1, T > | min (const ShGeneric< N, T > &a) |
Minimum of all components. | |
template<int N, typename T> ShGeneric< N, T > | clamp (const ShGeneric< N, T > &a, const ShGeneric< N, T > &b, const ShGeneric< N, T > &c) |
Componentwise clamping. | |
template<int N, typename T> ShGeneric< N, T > | clamp (const ShGeneric< N, T > &a, const ShGeneric< 1, T > &b, const ShGeneric< 1, T > &c) |
template<typename T> ShGeneric< 1, T > | clamp (const ShGeneric< 1, T > &a, const ShGeneric< 1, T > &b, const ShGeneric< 1, T > &c) |
SH_SHLIB_CONST_TRINARY_OP_011 (clamp) | |
template<int N, typename T> ShGeneric< N, T > | sat (const ShGeneric< N, T > &a) |
Componentwise saturation. | |
template<int N, typename T> ShGeneric< N, T > | sign (const ShGeneric< N, T > &var) |
Componentwise sign. | |
template<typename T> ShGeneric< 1, T > | max (const ShGeneric< 1, T > &a) |
template<typename T> ShGeneric< 1, T > | min (const ShGeneric< 1, T > &a) |
SH_SHLIB_USUAL_OPERATIONS (ShColor) | |
SH_SHLIB_USUAL_SUBTRACT (ShColor) | |
SH_SHLIB_LEFT_MATRIX_OPERATION (ShColor, operator|, M) | |
template<int N, typename T> ShGeneric< N, T > | dx (const ShGeneric< N, T > &var) |
Screen-space x derivatives. | |
template<int N, typename T> ShGeneric< N, T > | dy (const ShGeneric< N, T > &var) |
Screen-space y derivatives. | |
template<int N, typename T> ShGeneric< N, T > | fwidth (const ShGeneric< N, T > &var) |
Maximum value of absolute derivatives. | |
template<typename T> ShGeneric< 2, T > | gradient (const ShGeneric< 1, T > &var) |
Pair of screen-space derivatives. | |
template<int N, typename T> ShMatrix< 2, N, SH_TEMP, T > | jacobian (const ShGeneric< N, T > &var) |
Jacobian matrix. | |
template<typename T> ShGeneric< 3, T > | cross (const ShGeneric< 3, T > &left, const ShGeneric< 3, T > &right) |
Take the cross product of two 3-tuples. | |
template<int N, typename T> ShGeneric< 3, T > | operator^ (const ShGeneric< 3, T > &left, const ShGeneric< 3, T > &right) |
Equivalent to cross(left, right). | |
template<int N, typename T> ShGeneric< N, T > | normalize (const ShGeneric< N, T > &var) |
Normalize an n-tuple to unit length. | |
template<int N, typename T> ShGeneric< N, T > | reflect (const ShGeneric< N, T > &a, const ShGeneric< N, T > &b) |
Compute reflection vector. | |
template<int N, typename T> ShGeneric< N, T > | refract (const ShGeneric< N, T > &a, const ShGeneric< N, T > &b, const ShGeneric< 1, T > &c) |
Compute refraction vector. | |
template<int N, typename T> ShGeneric< N, T > | faceforward (const ShGeneric< N, T > &a, const ShGeneric< N, T > &b) |
Make a vector face the same way as another Negates b if it does not face the same way as a (i.e. | |
template<typename T> ShGeneric< 4, T > | lit (const ShGeneric< 1, T > &a, const ShGeneric< 1, T > &b, const ShGeneric< 1, T > &c) |
Compute lighting coefficents. | |
template<int N, typename T> ShGeneric< 1, T > | dot (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
Inner (dot) product. | |
template<int N, typename T> ShGeneric< 1, T > | operator| (const ShGeneric< N, T > &left, const ShGeneric< N, T > &right) |
SH_SHLIB_CONST_N_OP_RETSIZE_BOTH (dot, 1) | |
template<int N, typename T> ShGeneric< 1, T > | distance (const ShGeneric< N, T > &a, const ShGeneric< N, T > &b) |
Euclidean Distance Computes the Euclidean distance between the two points a and b. | |
template<int N, typename T> ShGeneric< 1, T > | distance_1 (const ShGeneric< N, T > &a, const ShGeneric< N, T > &b) |
Manhattan Distance Computes the Manhattan distance between the two points a and b. | |
template<int N, typename T> ShGeneric< 1, T > | distance_inf (const ShGeneric< N, T > &a, const ShGeneric< N, T > &b) |
Inf Distance Computes the Inf norm distance between the two points a and b. | |
template<int N, typename T> ShGeneric< 1, T > | length (const ShGeneric< N, T > &a) |
Euclidean Length Computes the euclidean distance between the zero vector and a. | |
template<int N, typename T> ShGeneric< 1, T > | length_1 (const ShGeneric< N, T > &a, const ShGeneric< N, T > &b) |
template<int N, typename T> ShGeneric< 1, T > | length_inf (const ShGeneric< N, T > &a, const ShGeneric< N, T > &b) |
template<int M, int N, int P, ShBindingType Binding, ShBindingType Binding2, typename T> ShMatrix< M, P, SH_TEMP, T > | operator| (const ShMatrix< M, N, Binding, T > &a, const ShMatrix< N, P, Binding2, T > &b) |
Matrix multiplication. | |
template<int M, int N, int P, ShBindingType Binding, ShBindingType Binding2, typename T> ShMatrix< M, P, SH_TEMP, T > | operator * (const ShMatrix< M, N, Binding, T > &a, const ShMatrix< N, P, Binding2, T > &b) |
template<int M, int N, ShBindingType Binding, typename T> ShGeneric< M, T > | operator| (const ShMatrix< M, N, Binding, T > &a, const ShGeneric< N, T > &b) |
Matrix-tuple multiplication. | |
template<int M, int N, ShBindingType Binding, typename T> ShGeneric< M, T > | operator * (const ShMatrix< M, N, Binding, T > &a, const ShGeneric< N, T > &b) |
template<int M, int N, ShBindingType Binding, typename T> ShGeneric< N, T > | operator| (const ShGeneric< M, T > &a, const ShMatrix< M, N, Binding, T > &b) |
Tuple-matrix multiplication. | |
template<int M, int N, ShBindingType Binding, typename T> ShGeneric< N, T > | operator * (const ShGeneric< M, T > &a, const ShMatrix< M, N, Binding, T > &b) |
template<int M, int N, ShBindingType Binding, typename T> ShMatrix< M, N, SH_TEMP, T > | operator * (const ShMatrix< M, N, Binding, T > &a, const ShGeneric< 1, T > &b) |
Matrix-scalar multiplication. | |
template<int M, ShBindingType Binding, typename T> ShMatrix< M, 1, SH_TEMP, T > | operator * (const ShMatrix< M, 1, Binding, T > &a, const ShGeneric< 1, T > &b) |
template<int M, int N, ShBindingType Binding, typename T> ShMatrix< M, N, SH_TEMP, T > | operator * (const ShGeneric< 1, T > &a, const ShMatrix< M, N, Binding, T > &b) |
Scalar-matrix multiplication. | |
template<int N, ShBindingType Binding, typename T> ShMatrix< 1, N, SH_TEMP, T > | operator * (const ShGeneric< 1, T > &a, const ShMatrix< 1, N, Binding, T > &b) |
template<int M, int N, ShBindingType Binding, typename T> ShMatrix< M, N, SH_TEMP, T > | operator/ (const ShMatrix< M, N, Binding, T > &a, const ShGeneric< 1, T > &b) |
Matrix-scalar division. | |
template<ShBindingType Binding2, typename T2> ShAttrib1f | det (const ShMatrix< 1, 1, Binding2, T2 > &matrix) |
Returns the determinant for the given matrix. | |
template<ShBindingType Binding2, typename T2> ShAttrib1f | det (const ShMatrix< 2, 2, Binding2, T2 > &matrix) |
template<int RowsCols, ShBindingType Binding2, typename T2> ShAttrib1f | det (const ShMatrix< RowsCols, RowsCols, Binding2, T2 > &matrix) |
template<int RowsCols, ShBindingType Binding2, typename T2> ShMatrix< RowsCols, RowsCols, SH_TEMP, T2 > | cofactors (const ShMatrix< RowsCols, RowsCols, Binding2, T2 > &matrix) |
Returns the matrix of cofactors for the given matrix. | |
template<int M, int N, ShBindingType Binding2, typename T2> ShMatrix< N, M, SH_TEMP, T2 > | transpose (const ShMatrix< M, N, Binding2, T2 > &matrix) |
Returns the transpose of the given matrix. | |
template<int RowsCols, ShBindingType Binding2, typename T2> ShMatrix< RowsCols, RowsCols, SH_TEMP, T2 > | adjoint (const ShMatrix< RowsCols, RowsCols, Binding2, T2 > &matrix) |
Returns the adjoint of the given matrix. | |
template<int RowsCols, ShBindingType Binding2, typename T2> ShMatrix< RowsCols, RowsCols, SH_TEMP, T2 > | inverse (const ShMatrix< RowsCols, RowsCols, Binding2, T2 > &matrix) |
Invert a matrix. | |
template<int N, typename T> ShMatrix< 1, N, SH_TEMP, T > | rowmat (const ShGeneric< N, T > &s0) |
template<int N, typename T> ShMatrix< 2, N, SH_TEMP, T > | rowmat (const ShGeneric< N, T > &s0, const ShGeneric< N, T > &s1) |
template<int N, typename T> ShMatrix< 3, N, SH_TEMP, T > | rowmat (const ShGeneric< N, T > &s0, const ShGeneric< N, T > &s1, const ShGeneric< N, T > &s2) |
template<int N, typename T> ShMatrix< 4, N, SH_TEMP, T > | rowmat (const ShGeneric< N, T > &s0, const ShGeneric< N, T > &s1, const ShGeneric< N, T > &s2, const ShGeneric< N, T > &s3) |
template<int N, typename T> ShMatrix< N, 1, SH_TEMP, T > | colmat (const ShGeneric< N, T > &s0) |
template<int N, typename T> ShMatrix< N, 2, SH_TEMP, T > | colmat (const ShGeneric< N, T > &s0, const ShGeneric< N, T > &s1) |
template<int N, typename T> ShMatrix< N, 3, SH_TEMP, T > | colmat (const ShGeneric< N, T > &s0, const ShGeneric< N, T > &s1, const ShGeneric< N, T > &s2) |
template<int N, typename T> ShMatrix< N, 4, SH_TEMP, T > | colmat (const ShGeneric< N, T > &s0, const ShGeneric< N, T > &s1, const ShGeneric< N, T > &s2, const ShGeneric< N, T > &s3) |
template<int N, typename T> ShMatrix< N, N, SH_TEMP, T > | diag (const ShGeneric< N, T > &a) |
template<typename T> ShMatrix< 4, 4, SH_TEMP, T > | rotate (const ShGeneric< 3, T > &axis, const ShGeneric< 1, T > &angle) |
3D Rotation about the given axis by the given angle | |
template<typename T> ShMatrix< 3, 3, SH_TEMP, T > | rotate (const ShGeneric< 1, T > &angle) |
2D Rotation about the given angle | |
template<typename T> ShMatrix< 4, 4, SH_TEMP, T > | translate (const ShGeneric< 3, T > &a) |
3D Translation | |
template<typename T> ShMatrix< 3, 3, SH_TEMP, T > | translate (const ShGeneric< 2, T > &a) |
2D Translation | |
template<typename T> ShMatrix< 4, 4, SH_TEMP, T > | scale (const ShGeneric< 3, T > &a) |
3D Scale | |
template<typename T> ShMatrix< 3, 3, SH_TEMP, T > | scale (const ShGeneric< 2, T > &a) |
2D Scale | |
template<int N, typename T> ShMatrix< N, N, SH_TEMP, T > | scale (const ShGeneric< 1, T > &a) |
Uniform scale in N-1 dimensions. | |
template<ShBindingType Binding, typename T> ShAttrib1f | det (const ShMatrix< 1, 1, Binding, T > &matrix) |
template<ShBindingType Binding, typename T> ShAttrib1f | det (const ShMatrix< 2, 2, Binding, T > &matrix) |
template<int RowsCols, ShBindingType Binding, typename T> ShAttrib1f | det (const ShMatrix< RowsCols, RowsCols, Binding, T > &matrix) |
template<ShBindingType Binding, typename T> ShMatrix< 1, 1, SH_TEMP, T > | cofactors (const ShMatrix< 1, 1, Binding, T > &matrix) |
template<ShBindingType Binding, typename T> ShMatrix< 2, 2, SH_TEMP, T > | cofactors (const ShMatrix< 2, 2, Binding, T > &matrix) |
template<int RowsCols, ShBindingType Binding, typename T> ShMatrix< RowsCols, RowsCols, SH_TEMP, T > | cofactors (const ShMatrix< RowsCols, RowsCols, Binding, T > &matrix) |
template<int M, int N, ShBindingType Binding, typename T> ShMatrix< N, M, SH_TEMP, T > | transpose (const ShMatrix< M, N, Binding, T > &matrix) |
template<int RowsCols, ShBindingType Binding, typename T> ShMatrix< RowsCols, RowsCols, SH_TEMP, T > | adjoint (const ShMatrix< RowsCols, RowsCols, Binding, T > &matrix) |
template<int RowsCols, ShBindingType Binding, typename T> ShMatrix< RowsCols, RowsCols, SH_TEMP, T > | inverse (const ShMatrix< RowsCols, RowsCols, Binding, T > &matrix) |
template<int M, int N, typename T> ShGeneric< M, T > | cast (const ShGeneric< N, T > &a) |
Casting. | |
template<int M> ShGeneric< M, float > | cast (float a) |
template<int M, int N, typename T> ShGeneric< M, T > | fillcast (const ShGeneric< N, T > &a) |
Fill Casting. | |
template<int M> ShGeneric< M, float > | fillcast (float a) |
template<int M, int N, typename T> ShGeneric< M+N, T > | join (const ShGeneric< M, T > &a, const ShGeneric< N, T > &b) |
Join two tuples Creates an M+N tuple with components of a first then b. | |
template<int N, typename T> void | discard (const ShGeneric< N, T > &c) |
Fragment discard. | |
template<int N, typename T> void | kill (const ShGeneric< N, T > &c) |
Fragment killing. | |
template<typename T> ShProgram | freeze (const ShProgram &p, const T &uniform) |
Uniform freezing. | |
SH_SHLIB_USUAL_NON_UNIT_OPS_RETTYPE (ShNormal, ShNormal) | |
template<int N, ShBindingType B1, typename T, bool S1> ShNormal< N, SH_TEMP, T, false > | abs (const ShNormal< N, B1, T, S1 > &var) |
template<int N, ShBindingType B1, typename T, bool S1> ShNormal< N, SH_TEMP, T, false > | normalize (const ShNormal< N, B1, T, S1 > &var) |
SH_SHLIB_USUAL_SUBTRACT (ShNormal) | |
SH_SHLIB_LEFT_MATRIX_OPERATION (ShNormal, operator|, M) | |
template<int N, ShBindingType B1, ShBindingType B2, typename T, bool S1, bool S2> ShGeneric< 1, T > | operator| (const ShNormal< N, B1, T, S1 > &a, const ShNormal< N, B2, T, S2 > &b) |
template<int N, ShBindingType B1, ShBindingType B2, typename T, bool S1, bool S2> ShGeneric< 1, T > | operator| (const ShVector< N, B1, T, S1 > &a, const ShNormal< N, B2, T, S2 > &b) |
template<int N, ShBindingType B1, ShBindingType B2, typename T, bool S1, bool S2> ShGeneric< 1, T > | operator| (const ShNormal< N, B1, T, S1 > &a, const ShVector< N, B2, T, S2 > &b) |
template<ShBindingType B1, ShBindingType B2, typename T, bool S1> ShNormal< 3, SH_TEMP, T, false > | operator| (const ShMatrix< 4, 4, B1, T > &m, const ShNormal< 3, B2, T, S1 > &v) |
template<ShBindingType B1, ShBindingType B2, typename T, bool S1> ShNormal< 2, SH_TEMP, T, false > | operator| (const ShMatrix< 3, 3, B1, T > &m, const ShNormal< 2, B2, T, S1 > &v) |
template<ShBindingType B1, ShBindingType B2, typename T, bool S1> ShNormal< 1, SH_TEMP, T, false > | operator| (const ShMatrix< 2, 2, B1, T > &m, const ShNormal< 1, B2, T, S1 > &v) |
template<ShBindingType B1, ShBindingType B2, typename T, bool S1> ShPoint< 3, SH_TEMP, T, false > | operator| (const ShMatrix< 4, 4, B1, T > &m, const ShPoint< 3, B2, T, S1 > &v) |
template<ShBindingType B1, ShBindingType B2, typename T, bool S1> ShPoint< 2, SH_TEMP, T, false > | operator| (const ShMatrix< 3, 3, B1, T > &m, const ShPoint< 2, B2, T, S1 > &v) |
template<ShBindingType B1, ShBindingType B2, typename T, bool S1> ShPoint< 1, SH_TEMP, T, false > | operator| (const ShMatrix< 2, 2, B1, T > &m, const ShPoint< 1, B2, T, S1 > &v) |
SH_SHLIB_USUAL_OPERATIONS_RETTYPE (ShPosition, ShPoint) | |
SH_SHLIB_BINARY_RETTYPE_OPERATION (ShPosition, operator-, ShVector, N) | |
SH_SHLIB_SPECIAL_RETTYPE_CONST_SCALAR_OP (ShPosition, operator-, ShVector, 1) | |
SH_SHLIB_LEFT_MATRIX_RETTYPE_OPERATION (ShPosition, operator|, ShPoint, M) | |
template<ShBindingType B1, ShBindingType B2, typename T, bool S1> ShPoint< 3, SH_TEMP, T, false > | operator| (const ShMatrix< 4, 4, B1, T > &m, const ShPosition< 3, B2, T, S1 > &v) |
template<ShBindingType B1, ShBindingType B2, typename T, bool S1> ShPoint< 2, SH_TEMP, T, false > | operator| (const ShMatrix< 3, 3, B1, T > &m, const ShPosition< 2, B2, T, S1 > &v) |
template<ShBindingType B1, ShBindingType B2, typename T, bool S1> ShPosition< 1, SH_TEMP, T, false > | operator| (const ShMatrix< 2, 2, B1, T > &m, const ShPosition< 1, B2, T, S1 > &v) |
SH_SHLIB_USUAL_OPERATIONS (ShTexCoord) | |
SH_SHLIB_USUAL_SUBTRACT (ShTexCoord) | |
template<int N, typename T> ShGeneric< N, T > | acos (const ShGeneric< N, T > &var) |
Arccosine. | |
template<int N, typename T> ShGeneric< N, T > | asin (const ShGeneric< N, T > &var) |
Arcsine. | |
template<int N, typename T> ShGeneric< N, T > | atan (const ShGeneric< N, T > &var) |
Arctangent. | |
template<int N, typename T> ShGeneric< N, T > | atan2 (const ShGeneric< N, T > &y, const ShGeneric< N, T > &x) |
Arctangent of two variables. | |
template<int N, typename T> ShGeneric< N, T > | cos (const ShGeneric< N, T > &var) |
Cosine. | |
template<int N, typename T> ShGeneric< N, T > | sin (const ShGeneric< N, T > &var) |
Sine. | |
template<int N, typename T> ShGeneric< N, T > | tan (const ShGeneric< N, T > &var) |
Tangent. | |
SH_SHLIB_USUAL_NON_UNIT_OPS_RETTYPE (ShVector, ShVector) | |
template<int N, ShBindingType B1, typename T, bool S1> ShVector< N, SH_TEMP, T, false > | abs (const ShVector< N, B1, T, S1 > &var) |
template<int N, ShBindingType B1, typename T, bool S1> ShVector< N, SH_TEMP, T, false > | normalize (const ShVector< N, B1, T, S1 > &var) |
SH_SHLIB_USUAL_SUBTRACT (ShVector) | |
SH_SHLIB_LEFT_MATRIX_OPERATION (ShVector, operator|, M) | |
template<int N, ShBindingType B1, ShBindingType B2, typename T, bool S1, bool S2> ShGeneric< 1, T > | operator| (const ShVector< N, B1, T, S1 > &a, const ShVector< N, B2, T, S2 > &b) |
template<ShBindingType B1, ShBindingType B2, typename T, bool S1> ShVector< 3, SH_TEMP, T, false > | operator| (const ShMatrix< 4, 4, B1, T > &m, const ShVector< 3, B2, T, S1 > &v) |
template<ShBindingType B1, ShBindingType B2, typename T, bool S1> ShVector< 2, SH_TEMP, T, false > | operator| (const ShMatrix< 3, 3, B1, T > &m, const ShVector< 2, B2, T, S1 > &v) |
template<ShBindingType B1, ShBindingType B2, typename T, bool S1> ShVector< 1, SH_TEMP, T, false > | operator| (const ShMatrix< 2, 2, B1, T > &m, const ShVector< 1, B2, T, S1 > &v) |
template<> SH_DLLEXPORT int | OffsetRange< std::string >::absIndex (std::string index, int offset, const ShProgramNode::VarList &v) const |
template<typename T> ShProgram | operator<< (const ShProgram &p, const ShManipulator< T > &m) |
Applies a manipulator to inputs of a ShProgram. | |
template<typename T> ShProgram | operator<< (const ShManipulator< T > &m, const ShProgram &p) |
Applies a manipulator to the outputs of a ShProgram. | |
template<typename T> ShManipulator< T > | shSwizzle (T i0) |
creates a permutation manipulator which gives outputSize outputs when applied to a ShProgram | |
template<typename T> ShManipulator< T > | shSwizzle (T i0, T i1) |
template<typename T> ShManipulator< T > | shSwizzle (T i0, T i1, T i2) |
template<typename T> ShManipulator< T > | shSwizzle (T i0, T i1, T i2, T i3) |
template<typename T> ShManipulator< T > | shSwizzle (T i0, T i1, T i2, T i3, T i4) |
template<typename T> ShManipulator< T > | shSwizzle (T i0, T i1, T i2, T i3, T i4, T i5) |
template<typename T> ShManipulator< T > | shSwizzle (T i0, T i1, T i2, T i3, T i4, T i5, T i6) |
template<typename T> ShManipulator< T > | shSwizzle (T i0, T i1, T i2, T i3, T i4, T i5, T i6, T i7) |
template<typename T> ShManipulator< T > | shSwizzle (T i0, T i1, T i2, T i3, T i4, T i5, T i6, T i7, T i8) |
template<typename T> ShManipulator< T > | shSwizzle (T i0, T i1, T i2, T i3, T i4, T i5, T i6, T i7, T i8, T i9) |
template<typename T> ShManipulator< T > | shSwizzle (std::vector< T > indices) |
template<typename T> ShManipulator< T > | shRange (T i) |
range manipulator that permutes ranges of shader | |
template<typename T> ShManipulator< T > | shRange (T start, T end) |
template<typename T> ShManipulator< T > | shExtract (T k) |
extract is a manipulator that removes the kth output and appends it before all other outputs. | |
template<typename T> ShManipulator< T > | shInsert (T k) |
insert is a manipulator that does the opposite of extract. | |
template<typename T> ShManipulator< T > | shDrop (T k) |
drop is a manipulator that discards the k outputs. | |
template<int R, int C, ShBindingType B, typename Ty> std::ostream & | operator<< (std::ostream &out, const ShMatrix< R, C, B, Ty > &m) |
Matrix output operator. | |
template<int Rows, int Cols, ShBindingType Binding, typename T> std::ostream & | operator<< (std::ostream &out, const ShMatrix< Rows, Cols, Binding, T > &m) |
template<typename T> ShProgram | keep (const std::string &name="") |
Creates a keep nibble. The keep nibble passes through one input of type T named with the given name. | |
template<typename T> ShProgram | dup (const std::string &name="var") |
Creates a dup nibble. The dup nibble makes an extra copy of on input of type T named with the given name. | |
template<typename T> ShProgram | lose (const std::string &name="") |
Creates a lose nibble. The lose nibble discards through one input of type T named with the given name. | |
template<typename T> ShProgram | access (const ShBaseTexture1D< T > &tex, const std::string &tcname="texcoord", const std::string &name="result") |
2D texture lookup nibble Inputs: IN(0) ShTexCoord1f texcoord Outputs: OUT(0) name = tex(tc) | |
template<typename T> ShProgram | access (const ShBaseTexture2D< T > &tex, const std::string &tcname="texcoord", const std::string &name="result") |
2D texture lookup nibble Inputs: IN(0) ShTexCoord2f texcoord Outputs: OUT(0) name = tex(tc) | |
template<typename T> ShProgram | access (const ShBaseTextureRect< T > &tex, const std::string &tcname="texcoord", const std::string &name="result") |
Rect texture lookup nibble Inputs: IN(0) ShTexCoord2f texcoord Outputs: OUT(0) name = tex(tc). | |
template<typename T> ShProgram | access (const ShBaseTexture3D< T > &tex, const std::string &tcname="texcoord", const std::string &name="result") |
3D texture lookup nibble Inputs: IN(0) ShTexCoord3f texcoord Outputs: OUT(0) name = tex(tc) | |
template<typename T> ShProgram | access (const ShBaseTextureCube< T > &tex, const std::string &tcname="texcoord", const std::string &name="result") |
Cube texture lookup nibble Inputs: IN(0) ShTexCoord3f texcoord Outputs: OUT(0) name = tex(tc). | |
template<typename T2, int Rows, int Cols, ShBindingType Binding, typename T> ShProgram | transform (const ShMatrix< Rows, Cols, Binding, T > &m, const std::string &name="result") |
transformation nibble Creates a nibble that transforms a variable of type T2 by a matrix of type ShMatrix<Rows, Cols, Binding, T> Inputs: IN(0) attrib Outputs: OUT(0) T2 name = m | attrib | |
template<typename T, typename T2> ShProgram | cast (const std::string &name="result") |
Casting nibble Casts from tuple type T to type T2 If T::typesize < T2::typesize, pads with 0 components at end. If T::typesize > T2::typesize, truncates components at end. Inputs: IN(0) T in Outputs: OUT(0) T2 name. | |
template<typename T, typename T2> ShProgram | fillcast (const std::string &name="result") |
Fill-Casting nibble Casts from tuple type T to type T2 If T::typesize < T2::typesize, pads with repeated last component at end. If T::typesize > T2::typesize, truncates components at end. Inputs: IN(0) T in Outputs: OUT(0) T2 name. | |
SHNIBBLE_UNARY_OP (abs, abs(x)) | |
SHNIBBLE_UNARY_OP (acos, acos(x)) | |
SHNIBBLE_UNARY_OP (asin, asin(x)) | |
SHNIBBLE_UNARY_OP (cos, cos(x)) | |
SHNIBBLE_UNARY_OP (frac, frac(x)) | |
SHNIBBLE_UNARY_OP (sin, sin(x)) | |
SHNIBBLE_UNARY_OP (sqrt, sqrt(x)) | |
SHNIBBLE_UNARY_OP (normalize, normalize(x)) | |
SHNIBBLE_UNARY_OP (pos, pos(x)) | |
SHNIBBLE_BINARY_OP (pow, pow(a, b)) SHNIBBLE_BINARY_OP(mod | |
mod (a, b)) SHNIBBLE_BINARY_OP(min | |
min (a, b)) SHNIBBLE_BINARY_OP(max | |
max (a, b)) template< typename T > ShProgram dot(const std | |
void | insert_branch_instructions (ShProgram &p) |
Insert instructions representing each conditional branch. | |
void | remove_branch_instructions (ShProgram &p) |
Remove instructions representing conditional branches. | |
void | straighten (ShProgram &p, bool &changed) |
Merge blocks with redundant edges. | |
void | remove_dead_code (ShProgram &p, bool &changed) |
Remove code that serves no purpose in the given program. | |
void | copy_propagate (ShProgram &p, bool &changed) |
void | forward_substitute (ShProgram &p, bool &changed) |
void | optimize (ShProgram &p, int level) |
Optimize the program with the given optimization level. | |
void | optimize (const ShProgramNodePtr &n, int level) |
void | optimize (ShProgram &p) |
Optimize the program with the current context's default optimization level. | |
void | optimize (const ShProgramNodePtr &n) |
SH_DLLEXPORT void | add_value_tracking (ShProgram &prg) |
void | checkCond (bool cond, const std::string &message="Internal Error") |
template<ShBindingType B, typename T, ShBindingType B2> ShQuaternion< SH_TEMP, T > | operator * (const ShAttrib< 1, B2, T > &c, const ShQuaternion< B, T > &q) |
template<ShBindingType B1, ShBindingType B2, typename T> ShQuaternion< SH_TEMP, T > | slerp (const ShQuaternion< B1, T > &q1, const ShQuaternion< B2, T > &q2, const ShAttrib1f &t) |
template<ShBindingType B, typename T> std::ostream & | operator<< (std::ostream &out, const ShQuaternion< B, T > &q) |
template<typename T, typename S> ShPointer< T > | shref_static_cast (const ShPointer< S > &other) |
template<typename T, typename S> ShPointer< T > | shref_dynamic_cast (const ShPointer< S > &other) |
template<typename T, typename S> ShPointer< T > | shref_const_cast (const ShPointer< S > &other) |
std::ostream & | operator<< (std::ostream &out, const ShStatement &stmt) |
ShProgram | connect (const ShChannelNodePtr &node, const ShProgram &program) |
ShStream | combine (const ShStream &left, const ShStream &right) |
ShStream | operator & (const ShStream &left, const ShStream &right) |
An operator alias for combine between two streams. | |
ShProgram | connect (const ShStream &stream, const ShProgram &program) |
Apply a program to a stream. | |
ShProgram | operator<< (const ShProgram &program, const ShStream &stream) |
An operator alias for connect(p,s). | |
template<typename T1, typename T2> ShStream | combine (const ShChannel< T1 > &left, const ShChannel< T2 > &right) |
Combine two streams. | |
template<typename T2> ShStream | combine (const ShStream &left, const ShChannel< T2 > &right) |
Combine a stream and a channel. | |
template<typename T1> ShStream | combine (const ShChannel< T1 > &left, const ShStream &right) |
Combine a channel and a stream. | |
template<typename T1, typename T2> ShStream | operator & (const ShChannel< T1 > &left, const ShChannel< T2 > &right) |
An operator alias for combine between channels. | |
template<typename T2> ShStream | operator & (const ShStream &left, const ShChannel< T2 > &right) |
An operator alias for combine between a stream and a channel. | |
template<typename T1> ShStream | operator & (const ShChannel< T1 > &left, const ShStream &right) |
An operator alias for combine between a channel and a stream. | |
std::ostream & | operator<< (std::ostream &out, const ShSwizzle &swizzle) |
ShProgram | shBeginShader (const std::string &target) |
void | shEndShader () |
void | shCompile (ShProgram &prg) |
Force (re)compilation of a program under its default target. | |
void | shCompile (ShProgram &prg, const std::string &target) |
Force (re)compilation of a program for a given target. | |
void | shCompileShader (ShProgram &prg) |
void | shCompileShader (const std::string &target, ShProgram &prg) |
void | shBind (ShProgram &prg) |
Bind a program using the program's default target. | |
void | shBind (ShProgram &prg, const std::string &target) |
void | shBindShader (ShProgram &shader) |
void | shBindShader (const std::string &target, ShProgram &shader) |
bool | shSetBackend (const std::string &name) |
Switch to a particular backend. | |
void | shInit () |
SH Initialization Function. | |
void | shIf (bool) |
void | shEndIf () |
void | shElse () |
void | shWhile (bool) |
void | shEndWhile () |
void | shDo () |
void | shUntil (bool) |
void | shFor (bool) |
void | shEndFor () |
void | ShBreak () |
void | ShContinue () |
SH_DLLEXPORT void | shCompileShader (ShProgram &prg, const std::string &target) |
SH_DLLEXPORT void | shBind (const std::string &target, ShProgram &shader) |
Bind a program with the given target. | |
SH_DLLEXPORT void | shBreak () |
SH_DLLEXPORT void | shContinue () |
std::ostream & | shPrintIndent (std::ostream &out, int indent) |
Print "indent" spaces to out. | |
std::ostream & | operator<< (std::ostream &out, const ShVariable &v) |
Variables | |
const ShOperationInfo | opInfo [] |
Update this if you add or change operations in ShOperation. | |
char * | tokenNames [] |
Names of token types. | |
const char * | ShBindingTypeName [] |
const char * | ShSemanticTypeName [] |
All Sh classes, functions and objects reside within this namespace.
|
Cube map faces. An enumeration of names for the various faces of a cube map. Definition at line 52 of file ShTextureNode.hpp. |
|
Kinds of operations. If you change this, be sure to change the opInfo array in ShStatement.cpp
Definition at line 43 of file ShStatement.hpp. |
|
Texture formats. An enumeration of the various ways textures can be laid out. Definition at line 41 of file ShTextureNode.hpp. |
|
Possible types a token can have. If you add to this list or change it, be sure to change tokenNames in ShToken.cpp. Definition at line 43 of file ShToken.hpp. Referenced by SH::ShToken::type(). |
|
Combine a channel and a stream. This concatenates the given channel to the start of the list of channels in the stream. Definition at line 71 of file ShStreamImpl.hpp. References SH::ShStream::prepend(). |
|
Combine a stream and a channel. This concatenates the given channel to the end of the list of channels in the stream. Definition at line 63 of file ShStreamImpl.hpp. References SH::ShStream::append(). |
|
Combine two streams. This concatenates the list of channels in the component streams. Definition at line 55 of file ShStreamImpl.hpp. References SH::ShStream::append(). |
|
Combine a and b. Use all inputs from a and b and all outputs from a and b, concatenated in order, and perform all operations from both programs. Definition at line 179 of file ShAlgebra.cpp. References SH::ShProgram::node(), and optimize(). Referenced by namedCombine(), namedConnect(), and operator &(). |
|
Apply a program to a stream. This function connects streams onto the output of programs TODO: is this right? why is the stream argument first? Definition at line 105 of file ShStream.cpp. References SH::ShStream::begin(), connect(), and SH::ShStream::end(). |
|
Apply a programs to a single channel. Bind a channel as an input to a program. The implementation supports currying, and returns a program with one less input. Definition at line 122 of file ShChannelImpl.hpp. References connect(), SH_BEGIN_PROGRAM, and SH_END_PROGRAM. |
|
Replace inputs of b with outputs of a. Functional composition. Let A = a.outputs.size(), B = b.inputs.size(). If A > B, extra outputs are kept at end If A < B, extra inputs are kept at end Definition at line 44 of file ShAlgebra.cpp. References SH::ShProgram::node(), optimize(), SH_OP_ASN, and shError(). Referenced by connect(), operator<<(), renameInput(), and renameOutput(). |
|
Linear interpolation. Blend between two tuples. The blend value can be a scalar or a tuple. Definition at line 359 of file ShLibArithImpl.hpp. Referenced by lerp(), and ShUtil::ShNoise< M, T, P >::perlin(). |
|
Swizzles named outputs of a to match named inputs of b. This only works on programs with inputs/outputs that all have unique names. Also, the inputs of b must be a subset of the outputs of a. Definition at line 363 of file ShAlgebra.cpp. References SH::ShProgram::node(). |
|
Combine a and b. Use all inputs from a and b and all outputs from a and b, combined by name, and perform all operations from both programs. This combine detects pairs of inputs with matching names and types. If this occurs, the later input is discarded and replaced with a copy of the earlier one. Unnamed inputs are all considered to be unique. For instance, if a has inputs x, y, k, x, z and b has inputs w, y, x, v then the result has inputs x, y, k, z, w, v Definition at line 258 of file ShAlgebra.cpp. References combine(). |
|
Replace inputs of b with outputs of a. Functional composition. The outputs of a and inputs of b must all be named. For each output of a in positional order, this connects the output with an input of b of the same name/type that is not already connected with another output of a. Extra inputs remain at the end. Extra outputs remain iff keepExtra = true Definition at line 262 of file ShAlgebra.cpp. References combine(), SH::ShProgram::node(), SH_BEGIN_PROGRAM, and shSwizzle(). |
|
Matrix output operator. Print a representation of the given (uniform or constant) matrix's values to the given stream. |
|
Applies a manipulator to the outputs of a ShProgram. This makes sense since >> is left associative, so p >> m >> q looks like manipulating p's output channels to use as q's inputs. Definition at line 175 of file ShManipulatorImpl.hpp. References connect(), SH::ShManipulator< T >::getRanges(), SH_BEGIN_PROGRAM, and shError(). |
|
Applies a manipulator to inputs of a ShProgram. The permutation ranges are more restrictive than output manipulation since inputs cannot be repeated, and should not be discarded. This means that ranges in the manipulator must not overlap, and any inputs not in a range are given a default value of 0. Definition at line 118 of file ShManipulatorImpl.hpp. References connect(), SH::ShManipulator< T >::getRanges(), SH_BEGIN_PROGRAM, and shError(). |
|
Equivalent to connect(p,c). Bind a channel as an input to a program. The implementation supports currying, and returns a program with one less input. Definition at line 132 of file ShChannelImpl.hpp. References connect(). |
|
Application operator. The operator used for combine can also be used to apply a program to a variable. The implementation supports currying with delayed read, which is equivalent to replacing an input with a parameter. Definition at line 128 of file ShAlgebra.hpp. References connect(), SH::ShVariable::node(), SH_BEGIN_PROGRAM, and SH_END_PROGRAM. |
|
Replaces parameter with attribute. Replaces a uniform parameter by appending a varying input attribute to the end of the list of inputs. Definition at line 393 of file ShAlgebra.cpp. References SH::ShVariable::node(), SH::ShProgram::node(), optimize(), shError(), SH::ShVariable::size(), and SH::ShVariable::uniform(). Referenced by operator>>(). |
|
Definition at line 110 of file ShSyntax.cpp. References shBind(). |
|
Definition at line 105 of file ShSyntax.cpp. References shBind(). |
|
|
|
Definition at line 83 of file ShSyntax.cpp. References shCompile(). |
|
drop is a manipulator that discards the k outputs. int version: discards k'th output string version: drops given name to beginning Definition at line 336 of file ShManipulatorImpl.hpp. |
|
Throws the given exception when ShContext::current()->throw_errors() is on. Otherwise prints error message. Definition at line 33 of file ShError.cpp. References SH::ShException::message(). Referenced by SH::ShTokenizer::blockList(), SH::ShProgramNode::code(), SH::ShProgramNode::compile(), connect(), SH::ShTokenizer::getArgument(), SH::ShImage::loadPng(), SH::ShSwizzle::operator *=(), SH::ShBaseTexture2D< T >::operator()(), operator<<(), SH::ShSwizzle::operator[](), SH::ShTokenizer::popArgQueue(), SH::ShTokenizer::processArg(), replaceUniform(), and SH::ShSwizzle::ShSwizzle(). |
|
extract is a manipulator that removes the kth output and appends it before all other outputs. int version: if k >= 0, then take element k (indices start at 0) if k < 0, take element outputs.size + k string version: extracts given name to beginning Definition at line 314 of file ShManipulatorImpl.hpp. |
|
SH Initialization Function. The function needs to be called prior to the use of any other SH functions. Additionally, in Windows, this function needs to be called after a OpenGL context/window has been created. Definition at line 123 of file ShSyntax.cpp. |
|
insert is a manipulator that does the opposite of extract. It moves the first output to the kth output and shifts the rest of the outputs accordingly. int version: if k >= 0, then move to element k (indices start at 0) if k < 0, move to element outputs.size + k string version: inserts first output to the position of the given name Definition at line 324 of file ShManipulatorImpl.hpp. References SH::ShManipulator< T >::toString(). |
|
creates a permutation manipulator which gives outputSize outputs when applied to a ShProgram Empty permutes are not allowed because the compiler would not be able to resolve ambiguity. if an index >= 0, then uses index'th output if index < 0, then uses program size + index'th output Definition at line 220 of file ShManipulatorImpl.hpp. Referenced by namedConnect(). |
|
Update this if you add or change operations in ShOperation.
Definition at line 35 of file ShStatement.cpp. Referenced by remove_dead_code(). |
|
Names of token types. Change this if you change the ShTokenType enumeration.
Definition at line 38 of file ShToken.cpp. Referenced by SH::ShToken::print(). |