UniShader  1.0.0a
Interface for GPGPU and working with shader programs
 All Classes Functions Typedefs Enumerations Enumerator
Classes | Public Types | Public Member Functions
Attribute Class Reference

Attribute class. More...

#include <Attribute.h>

Inheritance diagram for Attribute:
SignalSender SignalReceiver ObjectBase

List of all members.

Classes

class  ReadingMode
 Reading mode. More...
class  SignalID
 Signal identifier enum. More...

Public Types

typedef SafePtr< AttributePtr
 Safe pointer.
typedef SafePtr< const AttributePtrConst
 Safe pointer.

Public Member Functions

 Attribute (ShaderProgram &program, std::string name)
virtual const std::string & getClassName () const
 Get name of this class.
void connectBuffer (BufferBase::Ptr buffer, unsigned int offset=0, unsigned int stride=0)
 Connect buffer to attribute and set it as data source.
void disconnectBuffer ()
 Disconnect buffer from attribute.
void normalize (bool norm)
 Normalize integers to range <0; 1> .
unsigned int getBufferOffset () const
 Get buffer offset.
unsigned int getBufferStride () const
 Get buffer stride.
const GLSLTypegetGLSLType () const
 Get GLSL type.
ReadingMode getReadingMode () const
 Get reading mode.
std::string getName () const
 Get shader variable name.
void setBufferOffset (unsigned int offset)
 Set buffer offset.
void setBufferStride (unsigned int stride)
 Set buffer stride.
void setReadingMode (ReadingMode readingMode)
 Set reading mode.
bool prepare ()
 Prepare attribute.
void apply ()
 Apply attribute settings.
virtual bool handleSignal (unsigned int signalID, const ObjectBase *callerPtr)
 Handle incoming signal.

Detailed Description

Attribute class.

Attributes are input variables for GLSL shader programs. In newer GLSL versions attribute keyword was replaced by input keyword, but functionality is the same. Attributes are used for passing data that are different in each shader run.

Data can be stored either in system memory or in buffers in graphics card memory. Using buffers is generally much faster than accessing system memory.


Member Function Documentation

void Attribute::apply ( )

Apply attribute settings.

Modify OpenGL context with settings stored in this class.

void Attribute::connectBuffer ( BufferBase::Ptr  buffer,
unsigned int  offset = 0,
unsigned int  stride = 0 
)

Connect buffer to attribute and set it as data source.

Parameters:
bufferBuffer.
offsetOffset of first index.
strideStride between used indices.
See also:
disconnectBuffer().

Disconnect buffer from attribute.

See also:
connectBuffer()
unsigned int Attribute::getBufferOffset ( ) const

Get buffer offset.

Returns:
Buffer offset.
unsigned int Attribute::getBufferStride ( ) const

Get buffer stride.

Returns:
Buffer stride.
const GLSLType& Attribute::getGLSLType ( ) const

Get GLSL type.

Returns:
GLSL type.
std::string Attribute::getName ( ) const

Get shader variable name.

Returns:
Shader variable name.

Get reading mode.

Returns:
reading mode.
virtual bool Attribute::handleSignal ( unsigned int  signalID,
const ObjectBase callerPtr 
) [virtual]

Handle incoming signal.

Parameters:
signalIDSignal identifier.
callerPtrPointer to object sending signal.
Returns:
True if handled.

Implements SignalReceiver.

void Attribute::normalize ( bool  norm)

Normalize integers to range <0; 1> .

Ignored if reading mode isn't integer mode.

Parameters:
normNormalize integers.

Prepare attribute.

Retrieve info about attribute from shader program and prepare attribute for use.

Returns:
True if prepared successfully.
void Attribute::setBufferOffset ( unsigned int  offset)

Set buffer offset.

Parameters:
offsetOffset of first index.
void Attribute::setBufferStride ( unsigned int  stride)

Set buffer stride.

Parameters:
strideStride between used indices.
void Attribute::setReadingMode ( ReadingMode  readingMode)

Set reading mode.

Parameters:
readingModeReading mode.

The documentation for this class was generated from the following file: