SH::ShProgram Class Reference

Thin wrapper around ShProgramNode. More...

#include <ShProgram.hpp>

Inheritance diagram for SH::ShProgram:

Inheritance graph
[legend]
Collaboration diagram for SH::ShProgram:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 ShProgram ()
 ShProgram (const ShProgram &other)
 ShProgram (const std::string &target)
 ShProgram (const ShProgramNodePtr &node)
ShProgramoperator= (const ShProgram &other)
ShProgramNodeCPtr node () const
 Obtain the node which this ShProgram wraps.
ShProgramNodePtr node ()
 Obtain the node which this ShProgram wraps.
void compile (const ShPointer< ShBackend > &backend)
 Forcefully compile this program for a particular backend, even if it has been compiled previously.
void compile (const std::string &target, const ShPointer< ShBackend > &backend)
 Forcefully compile this program for a particular backend, even if it has been compiled previously.
bool is_compiled () const
 Check whether the program has been compiled for the default backend.
bool is_compiled (const std::string &target) const
 Check whether the program has been compiled for the default backend and the given target.
std::string describe_interface () const
 Obtain a listing of the inputs, outputs and uniforms used by this program.
std::string describe_bindings () const
 Obtain a listing stating which attributes will get bound to which program inputs under the current backend.
std::string describe_bindings (const std::string &target) const
 Obtain a listing stating which attributes will get bound to which program inputs for the given target.
ShPointer< ShBackendCodecode ()
 Obtain the code for currently active backend.
ShPointer< ShBackendCodecode (const ShPointer< ShBackend > &backend)
 Obtain the code for a particular backend.
ShPointer< ShBackendCodecode (const std::string &target, const ShPointer< ShBackend > &backend)
 Obtain the code for a particular backend. Generates it if necessary.
void updateUniform (const ShVariableNodePtr &uniform)
 Notify this program that a uniform variable has changed.
std::string backend_name () const
 Return the name of the backend for which the program is currently compiled.
std::string target () const
std::string & target ()
 It may be useful to change a program's target sometimes.
ShProgramNode::VarList::const_iterator begin_inputs () const
ShProgramNode::VarList::const_iterator end_inputs () const
ShProgramNode::VarList::const_iterator begin_outputs () const
ShProgramNode::VarList::const_iterator end_outputs () const
ShProgramNode::VarList::const_iterator begin_temps () const
ShProgramNode::VarList::const_iterator end_temps () const
ShProgramNode::VarList::const_iterator begin_constants () const
ShProgramNode::VarList::const_iterator end_constants () const
ShProgramNode::VarList::const_iterator begin_parameters () const
ShProgramNode::VarList::const_iterator end_parameters () const
ShProgramNode::VarList::const_iterator begin_all_parameters () const
ShProgramNode::VarList::const_iterator end_all_parameters () const
ShProgramNode::TexList::const_iterator begin_textures () const
ShProgramNode::TexList::const_iterator end_textures () const
ShProgramNode::ChannelList::const_iterator begin_channels () const
ShProgramNode::ChannelList::const_iterator end_channels () const
ShProgramNode::PaletteList::const_iterator begin_palettes () const
ShProgramNode::PaletteList::const_iterator end_palettes () const
template<typename T0>
ShProgram operator() (const ShChannel< T0 > &t0) const
ShProgram operator() (const ShStream &s0) const
template<typename T0, typename T1>
ShProgram operator() (const ShChannel< T0 > &t0, const ShChannel< T1 > &t1) const
ShProgram operator() (const ShStream &s0, const ShStream &s1) const
template<typename T0, typename T1, typename T2>
ShProgram operator() (const ShChannel< T0 > &t0, const ShChannel< T1 > &t1, const ShChannel< T2 > &t2) const
ShProgram operator() (const ShStream &s0, const ShStream &s1, const ShStream &s2) const
template<typename T0, typename T1, typename T2, typename T3>
ShProgram operator() (const ShChannel< T0 > &t0, const ShChannel< T1 > &t1, const ShChannel< T2 > &t2, const ShChannel< T3 > &t3) const
ShProgram operator() (const ShStream &s0, const ShStream &s1, const ShStream &s2, const ShStream &s3) const
template<typename T0, typename T1, typename T2, typename T3, typename T4>
ShProgram operator() (const ShChannel< T0 > &t0, const ShChannel< T1 > &t1, const ShChannel< T2 > &t2, const ShChannel< T3 > &t3, const ShChannel< T4 > &t4) const
ShProgram operator() (const ShStream &s0, const ShStream &s1, const ShStream &s2, const ShStream &s3, const ShStream &s4) const
ShProgram operator() (const ShRecord &rec) const
ShProgram operator() (const ShVariable &v0) const
ShProgram operator() (const ShVariable &v0, const ShVariable &v1) const
ShProgram operator() (const ShVariable &v0, const ShVariable &v1, const ShVariable &v2) const
ShProgram operator() (const ShVariable &v0, const ShVariable &v1, const ShVariable &v2, const ShVariable &v3) const

Detailed Description

Thin wrapper around ShProgramNode.

Definition at line 35 of file ShProgram.hpp.


Member Function Documentation

std::string SH::ShProgram::backend_name  )  const [inline]
 

Return the name of the backend for which the program is currently compiled.

Returns an empty string if the program is not yet compiled.

Definition at line 125 of file ShProgram.hpp.

ShPointer<ShBackendCode> SH::ShProgram::code const ShPointer< ShBackend > &  backend  )  [inline]
 

Obtain the code for a particular backend.

Generates it if necessary. This operation will fail if this program does not have a particular target.

Definition at line 106 of file ShProgram.hpp.

ShPointer<ShBackendCode> SH::ShProgram::code  )  [inline]
 

Obtain the code for currently active backend.

This operation will fail if this program does not have a particular target.

Definition at line 101 of file ShProgram.hpp.

Referenced by SH::shBind(), and SH::shUnbind().

void SH::ShProgram::compile const std::string &  target,
const ShPointer< ShBackend > &  backend
[inline]
 

Forcefully compile this program for a particular backend, even if it has been compiled previously.

Use code() to obtain the actual code.

Definition at line 60 of file ShProgram.hpp.

void SH::ShProgram::compile const ShPointer< ShBackend > &  backend  )  [inline]
 

Forcefully compile this program for a particular backend, even if it has been compiled previously.

Use code() to obtain the actual code. This operation will fail if this program does not have a particular target.

Definition at line 55 of file ShProgram.hpp.

bool SH::ShProgram::is_compiled  )  const [inline]
 

Check whether the program has been compiled for the default backend.

This operation will fail if this program does not have particular target.

Definition at line 68 of file ShProgram.hpp.


The documentation for this class was generated from the following files:
Generated on Wed Nov 9 15:35:56 2005 for Sh by  doxygen 1.4.5