Sh Library: Annotated Class Index

Sh Class Reference: Classes, Structs, Unions and Interfaces

Every class, struct, union and interface in the Sh library appears in this index, each with a brief description. Treat it as a fast overview of the API before opening the detailed reference pages for individual types.

Doxygen logo marking the generated Sh API documentation
Documentation generated with Doxygen

Graphics and Instruction Types

  • shgl::ArbInst — represents an ARB instruction.
  • shgl::ArbOpInfo — details about the operations available from ArbOp.
  • shgl::ArbReg — represents an ARB register.

Array Types and Array Traits

  • SH::ShArray1D<T> — a one-dimensional array.
  • SH::ShArray2D<T> — a two-dimensional square array sized to a power of two.
  • SH::ShArray3D<T> — a three-dimensional array.
  • SH::ShArrayCube<T> — a cube-shaped array.
  • SH::ShArrayRect<T> — a two-dimensional array that is not square.
  • SH::ShArrayTraits — default traits for ShArray.

Attributes, Colors, Normals, Points and Positions

  • SH::ShAttrib<N, Binding, T, Swizzled> — a generic attribute or parameter that holds N values.
  • SH::ShColor<N, Binding, T, Swizzled> — an n-component color.
  • SH::ShNormal<N, Binding, T, Swizzled> — an n-component normal.
  • SH::ShPoint<N, Binding, T, Swizzled> — an n-component point.
  • SH::ShPosition<N, Binding, T, Swizzled> — a vertex or fragment position.
  • SH::ShTexCoord<N, Binding, T, Swizzled> — a texture coordinate.
  • SH::ShVector<N, Binding, T, Swizzled> — a geometric n-vector.

Texture Types and Texture Traits

  • SH::ShBaseTexture1D<T> — base type for one-dimensional textures.
  • SH::ShBaseTexture2D<T> — base type for two-dimensional textures.
  • SH::ShBaseTexture3D<T> — base type for three-dimensional textures.
  • SH::ShBaseTextureCube<T> — base type for cube textures.
  • SH::ShBaseTextureRect<T> — base type for rectangular textures.
  • SH::ShTexture1D<T> — one-dimensional power-of-two texture type.
  • SH::ShTexture2D<T> — two-dimensional square power-of-two texture type.
  • SH::ShTexture3D<T> — three-dimensional texture type.
  • SH::ShTextureCube<T> — cubic texture type.
  • SH::ShTextureRect<T> — two-dimensional rectangular texture type.
  • SH::ShTextureTraits — texture traits.
  • SH::ShFilteredTextureTraits — trait class describing texture filtering modes.
  • SH::ShClamped<T> — sets the Clamp trait in a texture type.
  • SH::ShUnclamped<T> — resets the Clamp trait in a texture type.
  • SH::ShInterp<L, T> — sets the interpolation level in a texture type.
  • SH::ShWrapClamp<T> — sets the WrapClamp trait in a texture type.
  • SH::ShWrapClampToEdge<T> — sets the WrapClampToEdge trait in a texture type.
  • SH::ShWrapRepeat<T> — sets the WrapRepeat trait in a texture type.

Exceptions

  • SH::ShAlgebraException — raised for errors in an ShAlgebra operation.
  • SH::ShBackendException — raised for errors in an ShBackend operation.
  • SH::ShException — a general-purpose exception.
  • SH::ShImageException — raised for errors in an ShImage operation.
  • SH::ShOptimizerException — raised for errors in an ShOptimizer operation.
  • SH::ShParseException — represents a parse error.
  • SH::ShScopeException — represents a scoping violation.
  • SH::ShSwizzleException — thrown when an invalid swizzle is specified.
  • SH::ShTokenizerException — indicates a tokenizer error.
  • SH::ShTransformerException — raised for errors in an ShTransformer operation.

Program Structure, Blocks and Control Flow

  • SH::ShBasicBlock — a basic block.
  • SH::ShBlock — a generic block or token.
  • SH::ShBlockList — a list of generic blocks.
  • SH::ShCtrlGraph — a control-flow graph.
  • SH::ShCtrlGraphNode — a node within the control graph.
  • SH::ShDomTree — a dominator tree for a flowgraph.
  • SH::ShEnvironment — global settings for the current program.
  • SH::ShProgram — a thin wrapper around ShProgramNode.
  • SH::ShProgramNode — a particular Sh program.
  • SH::ShStatement — a single statement.
  • SH::ShStatementInfo — placeholder class for extra information that statements can carry.
  • SH::ShTransformer — a program transformer.

Parsing and Token Handling

  • SH::ShParser — a recursive-descent parser for control structures.
  • SH::ShToken — a token in the unparsed parse tree.
  • SH::ShTokenArgument — a token argument, for example to SH_IF or SH_FOR.
  • SH::ShTokenizer — a tokenizer.

Memory, Storage and Streams

  • SH::ShChannel<T> — the client interface to a single-channel typed data stream.
  • SH::ShHostMemory — an ShMemory that originates in CPU host memory.
  • SH::ShHostStorage — an ShStorage representing data kept in CPU host memory.
  • SH::ShMemory — a memory object.
  • SH::ShStorage — a storage object representing the physical storage of a memory's contents.
  • SH::ShStream — a dynamic list of channels.
  • SH::ShTransfer — a storage transfer function.

Math, Variables and Utility Types

  • SH::ShBitSet — a bitset.
  • SH::ShCompileTimeChecker<B> — checks a boolean condition at compile time.
  • SH::ShGeneric<N, T> — a variable of length N.
  • SH::ShImage — an image made of a rectangle of floating-point elements.
  • SH::ShImage3D — a three-dimensional image.
  • SH::ShLinearAllocator — a simple linear register allocator based on basic blocks.
  • SH::ShManipulator<T> — an ShProgram output manipulator that permutes outputs according to given integer indices.
  • SH::ShFixedManipulatorNode — an ShProgram output manipulator with fixed behavior.
  • SH::ShMatrix<Rows, Cols, Binding, T> — a matrix with Rows by Cols elements.
  • SH::ShMatrixRows<Rows, Cols, T> — a selection of rows from a matrix.
  • SH::ShOperationInfo — information about a specific operation.
  • SH::ShPointer<T> — a reference-counting smart pointer.
  • SH::ShQuaternion<B, T> — a quaternion.
  • SH::ShRefCountable — a class that can be reference-counted.
  • SH::ShSwizzle — represents swizzling of a variable.
  • SH::ShVariable — a reference and interface to a generic n-tuple variable.
  • SH::ShVariableNode — a generic n-tuple variable.
  • SH::storage_trait<T> — a type trait that determines the storage type used for T in an ShManipulator; T must convert automatically to the storage type or have a suitable copy constructor, and the storage type must manage its own memory because ranges and range vectors are often shallow-copied.

Mesh and Noise Utilities

  • ShUtil::ShMesh<M> — stores a mesh using a half-edge data structure.
  • ShUtil::ShNoise<M, T, P> — a Perlin noise and turbulence generator, where M is the number of result dimensions (currently 1 to 4) and P is the period of the noise texture.

Documentation Links

Head back to the documentation home page, or visit the Doxygen project site to learn about the tool that generated this reference.

Documentation Home Doxygen Website

The entries above are grouped by area, from graphics and instruction types through arrays, textures, program structure, parsing, memory and math utilities. Each name links into the full reference for that type, so you can move from this overview to detailed documentation as needed.