Privacy
An open-source, flexible 3D physical simulation framework
osg_material_manager::ShaderFunc Class Reference

#include <shader-function.h>

Public Member Functions

 ShaderFunc (std::string name, std::vector< std::string > args, unsigned int priority=0)
 
 ShaderFunc ()
 
void setMinVersion (int minVersion)
 
int getMinVersion ()
 
void addDependencyCode (std::string codeId, std::string code)
 
std::vector< std::pair< std::string, std::string > > getDeps () const
 
void addVarying (GLSLVarying varying)
 
const std::set< GLSLVarying > & getVaryings () const
 
void addUniform (GLSLUniform uniform)
 
const std::set< GLSLUniform > & getUniforms () const
 
void addConstant (GLSLConstant constant)
 
const std::set< GLSLConstant > & getConstants () const
 
void addAttribute (GLSLAttribute att)
 
const std::set< GLSLAttribute > & getAttributes () const
 
void enableExtension (std::string extensionName)
 
const std::set< std::string > & getEnabledExtensions () const
 
void disableExtension (std::string extensionName)
 
const std::set< std::string > & getDisabledExtensions () const
 
void addMainVar (GLSLVariable var, int priority=0)
 
const std::list< MainVar > & getMainVars () const
 
void addMainVarDec (GLSLAttribute att)
 
const std::set< GLSLAttribute > & getMainVarDecs () const
 
void addSuffix (GLSLSuffix suffix)
 
const std::set< GLSLSuffix > & getSuffixes () const
 
void addExport (GLSLExport e)
 
const std::vector< GLSLExport > & getExports () const
 
void addSnippet (std::string line, int priority=0)
 
const std::vector< PrioritizedLine > & getSnippets () const
 
const std::vector< FunctionCall > & getFunctionCalls () const
 
std::string generateFunctionCode ()
 
virtual std::string code () const
 
void merge (ShaderFunc *u)
 
std::vector< std::string > generateFunctionCall ()
 

Protected Attributes

std::vector< FunctionCallfuncs
 
std::string shaderCode
 
std::string name
 
std::set< GLSLUniformuniforms
 
std::set< GLSLConstantconstants
 
std::set< GLSLVaryingvaryings
 
std::set< GLSLAttributeattributes
 
std::map< std::string, std::string > deps
 
std::list< MainVarmainVars
 
std::set< GLSLAttributemainVarDecs
 
std::vector< GLSLExportexports
 
std::set< GLSLSuffixsuffixes
 
std::set< std::string > enabledExtensions
 
std::set< std::string > disabledExtensions
 
std::vector< PrioritizedLinesnippets
 
int minVersion
 

Static Private Member Functions

static bool mainVarDecs_unique_pred (GLSLAttribute &first, GLSLAttribute &second)
 

Detailed Description

Definition at line 35 of file shader-function.h.

Constructor & Destructor Documentation

◆ ShaderFunc() [1/2]

osg_material_manager::ShaderFunc::ShaderFunc ( std::string  name,
std::vector< std::string >  args,
unsigned int  priority = 0 
)
inline

Definition at line 37 of file shader-function.h.

◆ ShaderFunc() [2/2]

osg_material_manager::ShaderFunc::ShaderFunc ( )
inline

Definition at line 45 of file shader-function.h.

Member Function Documentation

◆ addAttribute()

void osg_material_manager::ShaderFunc::addAttribute ( GLSLAttribute  att)
inline

Definition at line 93 of file shader-function.h.

◆ addConstant()

void osg_material_manager::ShaderFunc::addConstant ( GLSLConstant  constant)
inline

Definition at line 86 of file shader-function.h.

◆ addDependencyCode()

void osg_material_manager::ShaderFunc::addDependencyCode ( std::string  codeId,
std::string  code 
)
inline

Definition at line 61 of file shader-function.h.

◆ addExport()

void osg_material_manager::ShaderFunc::addExport ( GLSLExport  e)
inline

Definition at line 138 of file shader-function.h.

◆ addMainVar()

void osg_material_manager::ShaderFunc::addMainVar ( GLSLVariable  var,
int  priority = 0 
)
inline

Definition at line 114 of file shader-function.h.

◆ addMainVarDec()

void osg_material_manager::ShaderFunc::addMainVarDec ( GLSLAttribute  att)
inline

Definition at line 122 of file shader-function.h.

◆ addSnippet()

void osg_material_manager::ShaderFunc::addSnippet ( std::string  line,
int  priority = 0 
)
inline

Definition at line 145 of file shader-function.h.

◆ addSuffix()

void osg_material_manager::ShaderFunc::addSuffix ( GLSLSuffix  suffix)
inline

Definition at line 131 of file shader-function.h.

◆ addUniform()

void osg_material_manager::ShaderFunc::addUniform ( GLSLUniform  uniform)
inline

Definition at line 79 of file shader-function.h.

◆ addVarying()

void osg_material_manager::ShaderFunc::addVarying ( GLSLVarying  varying)
inline

Definition at line 72 of file shader-function.h.

◆ code()

virtual std::string osg_material_manager::ShaderFunc::code ( ) const
inlinevirtual

◆ disableExtension()

void osg_material_manager::ShaderFunc::disableExtension ( std::string  extensionName)
inline

Definition at line 107 of file shader-function.h.

◆ enableExtension()

void osg_material_manager::ShaderFunc::enableExtension ( std::string  extensionName)
inline

Definition at line 100 of file shader-function.h.

◆ generateFunctionCall()

vector< string > osg_material_manager::ShaderFunc::generateFunctionCall ( )

Definition at line 76 of file shader-function.cpp.

◆ generateFunctionCode()

std::string osg_material_manager::ShaderFunc::generateFunctionCode ( )
inline

Definition at line 157 of file shader-function.h.

◆ getAttributes()

const std::set<GLSLAttribute>& osg_material_manager::ShaderFunc::getAttributes ( ) const
inline

Definition at line 96 of file shader-function.h.

◆ getConstants()

const std::set<GLSLConstant>& osg_material_manager::ShaderFunc::getConstants ( ) const
inline

Definition at line 89 of file shader-function.h.

◆ getDeps()

std::vector< std::pair<std::string,std::string> > osg_material_manager::ShaderFunc::getDeps ( ) const
inline

Definition at line 65 of file shader-function.h.

◆ getDisabledExtensions()

const std::set<std::string>& osg_material_manager::ShaderFunc::getDisabledExtensions ( ) const
inline

Definition at line 110 of file shader-function.h.

◆ getEnabledExtensions()

const std::set<std::string>& osg_material_manager::ShaderFunc::getEnabledExtensions ( ) const
inline

Definition at line 103 of file shader-function.h.

◆ getExports()

const std::vector<GLSLExport>& osg_material_manager::ShaderFunc::getExports ( ) const
inline

Definition at line 141 of file shader-function.h.

◆ getFunctionCalls()

const std::vector<FunctionCall>& osg_material_manager::ShaderFunc::getFunctionCalls ( ) const
inline

Definition at line 153 of file shader-function.h.

◆ getMainVarDecs()

const std::set<GLSLAttribute>& osg_material_manager::ShaderFunc::getMainVarDecs ( ) const
inline

Definition at line 127 of file shader-function.h.

◆ getMainVars()

const std::list<MainVar>& osg_material_manager::ShaderFunc::getMainVars ( ) const
inline

Definition at line 118 of file shader-function.h.

◆ getMinVersion()

int osg_material_manager::ShaderFunc::getMinVersion ( )
inline

Definition at line 57 of file shader-function.h.

◆ getSnippets()

const std::vector<PrioritizedLine>& osg_material_manager::ShaderFunc::getSnippets ( ) const
inline

Definition at line 149 of file shader-function.h.

◆ getSuffixes()

const std::set<GLSLSuffix>& osg_material_manager::ShaderFunc::getSuffixes ( ) const
inline

Definition at line 134 of file shader-function.h.

◆ getUniforms()

const std::set<GLSLUniform>& osg_material_manager::ShaderFunc::getUniforms ( ) const
inline

Definition at line 82 of file shader-function.h.

◆ getVaryings()

const std::set<GLSLVarying>& osg_material_manager::ShaderFunc::getVaryings ( ) const
inline

Definition at line 75 of file shader-function.h.

◆ mainVarDecs_unique_pred()

static bool osg_material_manager::ShaderFunc::mainVarDecs_unique_pred ( GLSLAttribute first,
GLSLAttribute second 
)
inlinestaticprivate

Definition at line 194 of file shader-function.h.

◆ merge()

void osg_material_manager::ShaderFunc::merge ( ShaderFunc u)

Definition at line 30 of file shader-function.cpp.

◆ setMinVersion()

void osg_material_manager::ShaderFunc::setMinVersion ( int  minVersion)
inline

Definition at line 52 of file shader-function.h.

Member Data Documentation

◆ attributes

std::set<GLSLAttribute> osg_material_manager::ShaderFunc::attributes
protected

Definition at line 180 of file shader-function.h.

◆ constants

std::set<GLSLConstant> osg_material_manager::ShaderFunc::constants
protected

Definition at line 176 of file shader-function.h.

◆ deps

std::map<std::string,std::string> osg_material_manager::ShaderFunc::deps
protected

Definition at line 182 of file shader-function.h.

◆ disabledExtensions

std::set<std::string> osg_material_manager::ShaderFunc::disabledExtensions
protected

Definition at line 188 of file shader-function.h.

◆ enabledExtensions

std::set<std::string> osg_material_manager::ShaderFunc::enabledExtensions
protected

Definition at line 187 of file shader-function.h.

◆ exports

std::vector<GLSLExport> osg_material_manager::ShaderFunc::exports
protected

Definition at line 185 of file shader-function.h.

◆ funcs

std::vector<FunctionCall> osg_material_manager::ShaderFunc::funcs
protected

Definition at line 170 of file shader-function.h.

◆ mainVarDecs

std::set<GLSLAttribute> osg_material_manager::ShaderFunc::mainVarDecs
protected

Definition at line 184 of file shader-function.h.

◆ mainVars

std::list<MainVar> osg_material_manager::ShaderFunc::mainVars
protected

Definition at line 183 of file shader-function.h.

◆ minVersion

int osg_material_manager::ShaderFunc::minVersion
protected

Definition at line 191 of file shader-function.h.

◆ name

std::string osg_material_manager::ShaderFunc::name
protected

Definition at line 172 of file shader-function.h.

◆ shaderCode

std::string osg_material_manager::ShaderFunc::shaderCode
protected

Definition at line 171 of file shader-function.h.

◆ snippets

std::vector<PrioritizedLine> osg_material_manager::ShaderFunc::snippets
protected

Definition at line 189 of file shader-function.h.

◆ suffixes

std::set<GLSLSuffix> osg_material_manager::ShaderFunc::suffixes
protected

Definition at line 186 of file shader-function.h.

◆ uniforms

std::set<GLSLUniform> osg_material_manager::ShaderFunc::uniforms
protected

Definition at line 174 of file shader-function.h.

◆ varyings

std::set<GLSLVarying> osg_material_manager::ShaderFunc::varyings
protected

Definition at line 178 of file shader-function.h.


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