VRUT::ShaderProgram Struct Reference

Shader program data. More...

#include <shaderprogram.h>

List of all members.

Public Types

enum  SHADER_LANGUAGE { LANG_GLSL, LANG_OPENRT, LANG_NONE }
 Shader language type. More...

Public Member Functions

 ShaderProgram ()
 Constructor.
 ShaderProgram (const ShaderProgram &sp)
 Copy constructor.
ShaderProgramClone () const
 Get copy of instance.
bool IsSameAs (const ShaderProgram &sp, int fieldsMask)
 Compare shaders.

Public Attributes

enum
VRUT::ShaderProgram::SHADER_LANGUAGE 
type
wxString vsSource
 Vertex shader source.
wxString fsSource
 Fragment shader source.
wxString vsFileName
 Vertex shader file.
wxString fsFileName
 Fragment shader file.
std::vector< ShaderParamparamList
 Shader parameter list.


Detailed Description

Shader program data.

Definition at line 97 of file shaderprogram.h.


Member Enumeration Documentation

Shader language type.

Enumerator:
LANG_GLSL  GLSL language.
LANG_OPENRT  OPENRT shader.
LANG_NONE  Invalid shader language.

Definition at line 100 of file shaderprogram.h.

00101               {
00102                      LANG_GLSL,    
00103                      LANG_OPENRT,  
00104                      LANG_NONE     
00105               } type;


Constructor & Destructor Documentation

VRUT::ShaderProgram::ShaderProgram (  )  [inline]

Constructor.

Definition at line 118 of file shaderprogram.h.

00118 : type(LANG_NONE)   {}

VRUT::ShaderProgram::ShaderProgram ( const ShaderProgram sp  )  [inline]

Copy constructor.

Definition at line 120 of file shaderprogram.h.

00121                      : type(sp.type), vsSource(CloneWxString(sp.vsSource)), fsSource(CloneWxString(sp.fsSource))
00122               {
00123                      paramList.assign(sp.paramList.begin(), sp.paramList.end());
00124               }


Member Function Documentation

ShaderProgram* VRUT::ShaderProgram::Clone (  )  const [inline]

Get copy of instance.

Definition at line 126 of file shaderprogram.h.

00127               {
00128                      return new ShaderProgram(*this);
00129               }

bool VRUT::ShaderProgram::IsSameAs ( const ShaderProgram sp,
int  fieldsMask 
) [inline]

Compare shaders.

Definition at line 131 of file shaderprogram.h.

00132               {
00133                      //type and source
00134                      if (fieldsMask & 1)
00135                             if ((type != sp.type) || (vsSource != sp.vsSource) || (fsSource != sp.fsSource))
00136                                    return false;
00137                      //parameters and values
00138                      if (fieldsMask & 2)
00139                      {
00140                             if (paramList.size() != sp.paramList.size())
00141                                    return false;
00142                             //TODO: parameters can be in different order...
00143                             for (size_t i=0; i<paramList.size(); i++)
00144                             {
00145                                    if (paramList[i].IsSameAs(sp.paramList[i], 3))
00146                                           return false;
00147                             }
00148                      }
00149                      return true;
00150               }


Member Data Documentation

Vertex shader source.

Definition at line 107 of file shaderprogram.h.

Fragment shader source.

Definition at line 109 of file shaderprogram.h.

Vertex shader file.

Definition at line 111 of file shaderprogram.h.

Fragment shader file.

Definition at line 113 of file shaderprogram.h.

Shader parameter list.

Definition at line 115 of file shaderprogram.h.


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

Generated on Tue Mar 10 14:41:45 2009 for VRUT by  doxygen 1.5.5