PixelLightAPI
.
|
Abstract renderer program resource. More...
#include <Program.h>
Public Member Functions | |
virtual PLRENDERER_API | ~Program () |
Destructor. | |
virtual PLCore::String | GetShaderLanguage () const =0 |
Returns the name of the shader language the program is using. | |
virtual PLRenderer::VertexShader * | GetVertexShader () const =0 |
Returns the vertex shader the program is using. | |
virtual bool | SetVertexShader (PLRenderer::VertexShader *pVertexShader)=0 |
Sets the vertex shader the program is using. | |
virtual PLRenderer::GeometryShader * | GetGeometryShader () const =0 |
Returns the geometry shader the program is using. | |
virtual bool | SetGeometryShader (PLRenderer::GeometryShader *pGeometryShader)=0 |
Sets the geometry shader the program is using. | |
virtual PLRenderer::FragmentShader * | GetFragmentShader () const =0 |
Returns the fragment shader the program is using. | |
virtual bool | SetFragmentShader (PLRenderer::FragmentShader *pFragmentShader)=0 |
Sets the fragment shader the program is using. | |
virtual bool | IsValid ()=0 |
Returns whether or not the program is valid (successfully compiled, linked and ready to be used) | |
virtual PLCore::String | GetCompiledProgram ()=0 |
Returns the compiled program. | |
virtual const PLCore::Array < ProgramAttribute * > & | GetAttributes ()=0 |
Get attributes. | |
virtual ProgramAttribute * | GetAttribute (const PLCore::String &sName)=0 |
Get attribute. | |
virtual const PLCore::Array < ProgramUniform * > & | GetUniforms ()=0 |
Get uniforms. | |
virtual ProgramUniform * | GetUniform (const PLCore::String &sName)=0 |
Get uniform. | |
virtual const PLCore::Array < ProgramUniformBlock * > & | GetUniformBlocks ()=0 |
Get uniform blocks. | |
virtual ProgramUniformBlock * | GetUniformBlock (const PLCore::String &sName)=0 |
Get uniform block. | |
Public Attributes | |
PLCore::Event< Program * > | EventDirty |
Protected Member Functions | |
virtual bool | MakeCurrent ()=0 |
Makes this program to the renderers currently used program. | |
virtual bool | UnmakeCurrent ()=0 |
This program will no longer be the renderers currently used program. | |
PLRENDERER_API | Program (Renderer &cRenderer) |
Constructor. |
Abstract renderer program resource.
virtual PLRENDERER_API PLRenderer::Program::~Program | ( | ) | [virtual] |
Destructor.
PLRENDERER_API PLRenderer::Program::Program | ( | Renderer & | cRenderer | ) | [protected] |
Constructor.
[in] | cRenderer | Owner renderer |
virtual PLCore::String PLRenderer::Program::GetShaderLanguage | ( | ) | const [pure virtual] |
Returns the name of the shader language the program is using.
virtual PLRenderer::VertexShader* PLRenderer::Program::GetVertexShader | ( | ) | const [pure virtual] |
Returns the vertex shader the program is using.
virtual bool PLRenderer::Program::SetVertexShader | ( | PLRenderer::VertexShader * | pVertexShader | ) | [pure virtual] |
Sets the vertex shader the program is using.
[in] | pVertexShader | Vertex shader the program is using, can be a null pointer, vertex shader and program language must match! |
virtual PLRenderer::GeometryShader* PLRenderer::Program::GetGeometryShader | ( | ) | const [pure virtual] |
Returns the geometry shader the program is using.
virtual bool PLRenderer::Program::SetGeometryShader | ( | PLRenderer::GeometryShader * | pGeometryShader | ) | [pure virtual] |
Sets the geometry shader the program is using.
[in] | pGeometryShader | Geometry shader the program is using, can be a null pointer, geometry shader and program language must match! |
virtual PLRenderer::FragmentShader* PLRenderer::Program::GetFragmentShader | ( | ) | const [pure virtual] |
Returns the fragment shader the program is using.
virtual bool PLRenderer::Program::SetFragmentShader | ( | PLRenderer::FragmentShader * | pFragmentShader | ) | [pure virtual] |
Sets the fragment shader the program is using.
[in] | pFragmentShader | Fragment shader the program is using, can be a null pointer, fragment shader and program language must match! |
virtual bool PLRenderer::Program::IsValid | ( | ) | [pure virtual] |
Returns whether or not the program is valid (successfully compiled, linked and ready to be used)
virtual PLCore::String PLRenderer::Program::GetCompiledProgram | ( | ) | [pure virtual] |
Returns the compiled program.
* Usage example writing the compiled program into a text file: * * PLCore::File cFile("d:\\CompiledProgram.txt"); * if (cFile.Open(PLCore::File::FileCreate|PLCore::File::FileWrite)) { * const PLCore::String sProgram = pMyProgram->GetCompiledProgram(); * cFile.Write(sProgram.GetASCII(), sProgram.GetLength(), 1); * cFile.Close(); * } *
virtual const PLCore::Array<ProgramAttribute*>& PLRenderer::Program::GetAttributes | ( | ) | [pure virtual] |
Get attributes.
virtual ProgramAttribute* PLRenderer::Program::GetAttribute | ( | const PLCore::String & | sName | ) | [pure virtual] |
Get attribute.
[in] | sName | Attribute name |
virtual const PLCore::Array<ProgramUniform*>& PLRenderer::Program::GetUniforms | ( | ) | [pure virtual] |
Get uniforms.
virtual ProgramUniform* PLRenderer::Program::GetUniform | ( | const PLCore::String & | sName | ) | [pure virtual] |
Get uniform.
[in] | sName | Uniform name |
virtual const PLCore::Array<ProgramUniformBlock*>& PLRenderer::Program::GetUniformBlocks | ( | ) | [pure virtual] |
Get uniform blocks.
virtual ProgramUniformBlock* PLRenderer::Program::GetUniformBlock | ( | const PLCore::String & | sName | ) | [pure virtual] |
Get uniform block.
[in] | sName | Uniform block name |
virtual bool PLRenderer::Program::MakeCurrent | ( | ) | [protected, pure virtual] |
Makes this program to the renderers currently used program.
virtual bool PLRenderer::Program::UnmakeCurrent | ( | ) | [protected, pure virtual] |
This program will no longer be the renderers currently used program.
The program became dirty, previous pointers to attributes or uniforms may no longer be valid, pointer to this program as parameter (always valid, do not delete it)
|