PixelLightAPI  .
Classes | Public Member Functions
PLRenderer::ProgramGenerator Class Reference

Program generator for "Über-Shader". More...

#include <ProgramGenerator.h>

List of all members.

Classes

class  Flags
 Class holding program flags describing the requested program features. More...
struct  GeneratedProgram

Public Member Functions

PLRENDERER_API ProgramGenerator (Renderer &cRenderer, const PLCore::String &sShaderLanguage, const PLCore::String &sVertexShader, const PLCore::String &sVertexShaderProfile, const PLCore::String &sFragmentShader, const PLCore::String &sFragmentShaderProfile)
 Constructor.
PLRENDERER_API ~ProgramGenerator ()
 Destructor.
RendererGetRenderer () const
 Returns the used renderer.
PLCore::String GetShaderLanguage () const
 Returns the name of the used shader language.
PLCore::String GetVertexShaderSourceCode () const
 Returns the used vertex shader source code.
PLCore::String GetFragmentShaderSourceCode () const
 Returns the used fragment shader source code.
PLRENDERER_API GeneratedProgramGetProgram (const Flags &cFlags)
 Returns a program.
PLRENDERER_API void ClearCache ()
 Clears the cache of the program generator.

Detailed Description

Program generator for "Über-Shader".

Remarks:
The program generator takes as input vertex shader and fragment shader source codes within a defined shader language and returns dynamically composed program instances using given program flags. The generated programs are internally cached so during runtime, they need to be dynamically compiled only once.

Constructor & Destructor Documentation

PLRENDERER_API PLRenderer::ProgramGenerator::ProgramGenerator ( Renderer cRenderer,
const PLCore::String sShaderLanguage,
const PLCore::String sVertexShader,
const PLCore::String sVertexShaderProfile,
const PLCore::String sFragmentShader,
const PLCore::String sFragmentShaderProfile 
)

Constructor.

Parameters:
[in]cRendererRenderer to use
[in]sShaderLanguageThe name of the shader language the shaders are using (for example "GLSL" or "Cg")
[in]sVertexShaderVertex shader ("Über-Shader") source code to use, usually blank ASCII
[in]sVertexShaderProfileVertex shader profile to use (for example "arbvp1" or "glslv" when using Cg, e.g. "130" when using GLSL), if empty string, a default profile will be used which usually tries to use the best available profile that runs on most hardware
[in]sFragmentShaderFragment shader ("Über-Shader") source code to use, usually blank ASCII
[in]sFragmentShaderProfileFragment shader profile to use (for example "arbfp1" or "glslf" when using Cg, e.g. "130" when using GLSL), if empty string, a default profile will be used which usually tries to use the best available profile that runs on most hardware
Note:
  • When using GLSL, the profile is the GLSL version to use

Destructor.


Member Function Documentation

Returns the used renderer.

Returns:
The used renderer

Returns the name of the used shader language.

Returns:
The name of the used shader language

Returns the used vertex shader source code.

Returns:
The used vertex shader source code

Returns the used fragment shader source code.

Returns:
The used fragment shader source code

Returns a program.

Parameters:
[in]cFlagsProgram flags describing the requested program features
Returns:
Generated program, can be a null pointer

Clears the cache of the program generator.

Remarks:
All already generated and cached vertex shaders, fragment shaders and linked programs will be destroyed. Don't call this method frequently, else the shader programs must be regenerated to often which will have an impact on the performance.

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


PixelLight PixelLight 0.9.10-R1
Copyright (C) 2002-2011 by The PixelLight Team
Last modified Fri Dec 23 2011 15:51:23
The content of this PixelLight document is published under the
Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported