arbeit
Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

glift::Shader Class Reference

#include <shader.h>

Inheritance diagram for glift::Shader:

glift::StateGLI glift::MultiTexCoordGen glift::GliftObject glift::Compilable gutz::Counted List of all members.

Detailed Description

Shader.h: interface for the Shader class.

Definition at line 50 of file shader.h.

Public Member Functions

 Shader (GenState *genState)
 Construction/Destruction.

 Shader (const VecStateP &genAttribs)
 Shader (Texture *tex, GenState *genState=NULL)
 Shader (Texture *tex, const VecStateP &genAttribs)
 Shader (Texture *tex, ProgShader *progShader, GenState *genState=NULL)
 Shader (Texture *tex, ProgShader *progShader, const VecStateP &genAttribs)
 Shader (const Shader &rhs)
Shaderoperator= (const Shader &rhs)
virtual ~Shader ()
virtual MultiTexCoordgenTexCoords (const gutz::arrayw2f &rawTexCoord, const gutz::vec3f &primScale) const
 The 'MultiTexCrdGenerator' interface Generate appropriate texture coordinates, taking into account multiTexturing, texCoordTransforms, and texture contants.

int numTexUnits () const
 Accessors.

void bind ()
void release ()
bool isBound ()
virtual void compile ()
virtual bool hasNonCompilable ()
virtual void setErrStream (std::ostream *os)
 Where do you want gl errors to go? they must go somewhere, so don't set it to zero please.

virtual std::ostream * getErrStream () const
 Where are gl errors going?


Protected Member Functions

virtual void bindDef ()
 Redefine these for specific attributes.

virtual void releaseDef ()
virtual bool isCompiled () const
void err (const char *where, const char *when=0) const
 error

std::ostream & err () const
 a simpler way, just use the stream! only for always print, this one automatically adds the objects name

void derr (const char *where, const char *when=0) const
 debug error

bool glerr (const char *where, const char *when=0) const
 gl error report only in debug mode, only if there is an error, if so return true

std::ostream & estr () const
 this one just gives you the stream

virtual void _incCount ()
 gutz::Counted interface, increment reference count by one.

virtual void _decCount ()
 gutz::Counted interface, decrement reference count by one.

virtual int _getCount () const
 gutz::Counted interface, get the current reference count.


Friends

class SmartPtr
class SmartPtrRef


Constructor & Destructor Documentation

Shader::Shader GenState genState  ) 
 

Construction/Destruction.

Definition at line 38 of file shader.cpp.

References glift::VecStateP.

Shader::Shader const VecStateP genAttribs  ) 
 

Definition at line 43 of file shader.cpp.

Shader::Shader Texture tex,
GenState genState = NULL
 

Definition at line 48 of file shader.cpp.

References glift::VecStateP.

Shader::Shader Texture tex,
const VecStateP genAttribs
 

Definition at line 53 of file shader.cpp.

Shader::Shader Texture tex,
ProgShader progShader,
GenState genState = NULL
 

Definition at line 58 of file shader.cpp.

References glift::VecStateP.

Shader::Shader Texture tex,
ProgShader progShader,
const VecStateP genAttribs
 

Definition at line 63 of file shader.cpp.

Shader::Shader const Shader rhs  ) 
 

Definition at line 68 of file shader.cpp.

Shader::~Shader  )  [virtual]
 

Definition at line 126 of file shader.cpp.


Member Function Documentation

virtual void gutz::Counted::_decCount  )  [inline, protected, virtual, inherited]
 

gutz::Counted interface, decrement reference count by one.

Not generaly used by subclasses, mostly for collaboration with gutz::SmartPtr. Sometimes you need to call this though, see the documentation for gutz::SmartPtr

Definition at line 54 of file smartptr.h.

Referenced by TFImage::clear(), NrroImage::fBlendOverRGBA(), and Nrro::updateMinMax().

virtual int gutz::Counted::_getCount  )  const [inline, protected, virtual, inherited]
 

gutz::Counted interface, get the current reference count.

Not generaly used by subclasses, mostly for collaboration with gutz::SmartPtr.

Definition at line 58 of file smartptr.h.

virtual void gutz::Counted::_incCount  )  [inline, protected, virtual, inherited]
 

gutz::Counted interface, increment reference count by one.

Not generaly used by subclasses, mostly for collaboration with gutz::SmartPtr. Sometimes you need to call this though, see the documentation for gutz::SmartPtr

Definition at line 48 of file smartptr.h.

Referenced by TFImage::clear(), NrroImage::fBlendOverRGBA(), and Nrro::updateMinMax().

void StateGLI::bind  )  [inherited]
 

Definition at line 34 of file stateGLI.cpp.

References glift::StateGLI::bindDef(), glift::DispList::isCompiled(), and glift::DispList::issue().

Referenced by glift::SubTex::bindDef(), glift::CoreTex::bindDef(), bindDef(), glift::ProgShader::bindDef(), glift::ShadedPrim::drawDef(), and VolRenAlgBase::drawTris().

void Shader::bindDef  )  [protected, virtual]
 

Redefine these for specific attributes.

  • All calls def'd inside will be compiled into display list.

Implements glift::StateGLI.

Definition at line 171 of file shader.cpp.

References glift::StateGLI::bind(), glift::GliftObject::estr(), and glErr().

void StateGLI::compile  )  [virtual, inherited]
 

Compile new disply lists

Force deletion/construction of new objects in case a display list already exists for this object.

Implements glift::Compilable.

Definition at line 81 of file stateGLI.cpp.

References glift::DispList::compile(), and glift::g_compiling.

Referenced by glift::VertexProgARB::reset(), glift::PixelShaderATI8K::reset(), and glift::FragProgARB::reset().

void glift::GliftObject::derr const char *  where,
const char *  when = 0
const [inline, protected, inherited]
 

debug error

Definition at line 122 of file gliftObject.h.

References glift::GliftObject::m_err.

std::ostream & glift::GliftObject::err  )  const [inline, protected, inherited]
 

a simpler way, just use the stream! only for always print, this one automatically adds the objects name

Definition at line 111 of file gliftObject.h.

References glift::GliftObject::m_err.

Referenced by glift::CoordTrans::apply(), glift::SubTex::bindDef(), glift::PrimGL::bindIndices(), glift::SubdivPlanarQuadS::bindQuads(), glift::PrimGL::bindTexCoords(), glift::CoreTex::checkTexType(), glift::EmptyTex::copyToTex(), glift::CoreTex::CoreTex(), glift::FuncTex::FuncTex(), genTexCoords(), glift::CoreTex::getDataf(), glift::CoreTex::getDataub(), glift::VertexProgARB::init(), glift::FragProgARB::init(), glift::PriorityTex::PriorityTex(), glift::VertexProgARB::reload(), glift::FragProgARB::reload(), glift::RenderableGLI::render(), glift::RenderPass::renderDef(), glift::EmptyTex::resetTexState(), glift::PixelShaderATI8K::setLocalConstf(), glift::TexCube::setTexData(), glift::EmptyTex::setTexData(), glift::ShadedPrim::ShadedPrim(), glift::TexConst::TexConst(), glift::TexCube::TexCube(), and glift::EmptyTex::tryToBindPbuff().

void glift::GliftObject::err const char *  where,
const char *  when = 0
const [inline, protected, inherited]
 

error

Definition at line 101 of file gliftObject.h.

References glift::GliftObject::m_err.

Referenced by glift::SubPBuff::enable().

std::ostream& glift::GliftObject::estr  )  const [inline, protected, inherited]
 

this one just gives you the stream

Definition at line 84 of file gliftObject.h.

References glift::GliftObject::m_err.

Referenced by glift::CoreTex::bindDef(), bindDef(), glift::MultiTex::bindDef(), glift::EmptyTex::bindDef(), glift::DispList::compile(), glift::CoreTex::CoreTex(), glift::VertexProgARB::init(), glift::FragProgARB::init(), glift::MultiTex::releaseDef(), and glift::EmptyTex::releaseDef().

MultiTexCoord * Shader::genTexCoords const gutz::arrayw2f rawTexCoord,
const gutz::vec3f primScale
const [virtual]
 

The 'MultiTexCrdGenerator' interface Generate appropriate texture coordinates, taking into account multiTexturing, texCoordTransforms, and texture contants.

Perturb the texture coords if subTextures are being used

Single Texture

Note: m_progShader and m_tex are guaranteed (by the Shader Constructor) to have the same number of texture units.

Implements glift::MultiTexCoordGen.

Definition at line 131 of file shader.cpp.

References glift::SubTex::adjustTexCoord(), glift::GliftObject::err(), glift::ProgShader::genTexCoords(), glift::MultiTexCoord, numTexUnits(), and t.

Referenced by glift::SinglePrim::genTexCoords(), and glift::MultiPrim::genTexCoords().

virtual std::ostream* glift::GliftObject::getErrStream  )  const [inline, virtual, inherited]
 

Where are gl errors going?

Definition at line 49 of file gliftObject.h.

References glift::GliftObject::m_err.

Referenced by glift::getProgShaderFromFile(), and glift::getProgShaderFromText().

bool GliftObject::glerr const char *  where,
const char *  when = 0
const [protected, inherited]
 

gl error report only in debug mode, only if there is an error, if so return true

Definition at line 31 of file gliftObject.cpp.

References glGetError(), and GLuint.

Referenced by RenderState2D::bindDef(), glift::NormalAttrib< VAT >::disableDef(), glift::IndexAttrib< VAT >::disableDef(), glift::TexCoordAttrib< VAT >::disableDef(), glift::VertAttrib< VAT >::disableDef(), glift::GenDrawAttrib< VAT >::disableDef(), glift::DrawAlgImm::draw(), glift::DrawAlgArr::draw(), glift::ShadedPrim::drawDef(), glift::NormalAttrib< VAT >::enableDef(), glift::IndexAttrib< VAT >::enableDef(), glift::TexCoordAttrib< VAT >::enableDef(), glift::VertAttrib< VAT >::enableDef(), glift::GenDrawAttrib< VAT >::enableDef(), and RenderState2D::releaseDef().

virtual bool glift::StateGLI::hasNonCompilable  )  [inline, virtual, inherited]
 

Definition at line 72 of file stateGLI.h.

bool glift::StateGLI::isBound  )  [inline, inherited]
 

Definition at line 70 of file stateGLI.h.

Referenced by glift::GenPrimGL< VERTA, TEXCA, IDXA, RANGEA >::drawDef(), VolShader::setBlend(), VolRenAlgBase::setGeom(), VolShader::setPixelShader(), VolRenAlgBase::setShader(), VolShader::setVertexShader(), and VolRenAlgBase::setVolytope().

virtual bool glift::StateGLI::isCompiled  )  const [inline, protected, virtual, inherited]
 

Implements glift::Compilable.

Definition at line 81 of file stateGLI.h.

Referenced by glift::VertexProgARB::reset(), glift::PixelShaderATI8K::reset(), and glift::FragProgARB::reset().

int glift::Shader::numTexUnits  )  const [inline]
 

Accessors.

Definition at line 72 of file shader.h.

Referenced by genTexCoords().

Shader & Shader::operator= const Shader rhs  ) 
 

Definition at line 73 of file shader.cpp.

void StateGLI::release  )  [inherited]
 

Definition at line 57 of file stateGLI.cpp.

References glift::DispList::isCompiled(), glift::DispList::issue(), and glift::StateGLI::releaseDef().

Referenced by glift::ShadedPrim::drawDef(), VolRenAlgBase::drawTris(), glift::CoreTex::getDataub(), glift::SubTex::releaseDef(), glift::CoreTex::releaseDef(), releaseDef(), and glift::ProgShader::releaseDef().

void Shader::releaseDef  )  [protected, virtual]
 

Implements glift::StateGLI.

Definition at line 182 of file shader.cpp.

References glift::StateGLI::release().

virtual void glift::GliftObject::setErrStream std::ostream *  os  )  [inline, virtual, inherited]
 

Where do you want gl errors to go? they must go somewhere, so don't set it to zero please.

Definition at line 44 of file gliftObject.h.

References glift::GliftObject::m_err.

Referenced by glift::getProgShaderFromFile(), and glift::getProgShaderFromText().


Friends And Related Function Documentation

friend class SmartPtr [friend, inherited]
 

Definition at line 40 of file smartptr.h.

Referenced by Nrro::NrroIter< T >::NrroIter().

friend class SmartPtrRef [friend, inherited]
 

Definition at line 41 of file smartptr.h.


The documentation for this class was generated from the following files:
Send questions, comments, and bug reports to:
jmk