C# 클래스 Axiom.RenderSystems.OpenGL.GLSL.GLSLProgram

Specialisation of HighLevelGpuProgram to provide support for OpenGL Shader Language (GLSL).
GLSL has no target assembler or entry point specification like DirectX 9 HLSL. Vertex and Fragment shaders only have one entry point called "main". When a shader is compiled, microcode is generated but can not be accessed by the application. GLSL also does not provide assembler low level output after compiling. The GL Render system assumes that the Gpu program is a GL Gpu program so GLSLProgram will create a GLSLGpuProgram that is subclassed from GLGpuProgram for the low level implementation. The GLSLProgram class will create a shader object and compile the source but will not create a program object. It's up to GLSLGpuProgram class to request a program object to link the shader object to.

GLSL supports multiple modular shader objects that can be attached to one program object to form a single shader. This is supported through the "attach" material script command. All the modules to be attached are listed on the same line as the attach command seperated by white space.

상속: Axiom.Graphics.HighLevelGpuProgram
파일 보기 프로젝트 열기: mono-soc-2011/axiom 1 사용 예제들

공개 메소드들

메소드 설명
AttachChildShader ( string name ) : void

Attach another GLSL Shader to this one.

AttachToProgramObject ( int programObject ) : void

DetachFromProgramObject ( int programObject ) : void

GLSLProgram ( ResourceManager parent, string name, System.UInt64 handle, string group, bool isManual, IManualResourceLoader loader ) : System

Constructor.

SetParam ( string name, string val ) : bool

Set a custom param for this high level gpu program.

보호된 메소드들

메소드 설명
UnloadImpl ( ) : void
dispose ( bool disposeManagedResources ) : void

비공개 메소드들

메소드 설명
BuildConstantDefinitions ( ) : void
Compile ( bool checkErrors = true ) : bool
CreateLowLevelImpl ( ) : void
GLSLProgram ( ) : System
LoadFromSource ( ) : void
OperationTypeToString ( OperationType val ) : String
ParseOperationType ( String val ) : OperationType
PopulateParameterNames ( GpuProgramParameters parms ) : void
RegisterCommands ( ) : void

Axiom internal: registers all commands for IConfigurable dispatch

메소드 상세

AttachChildShader() 공개 메소드

Attach another GLSL Shader to this one.
public AttachChildShader ( string name ) : void
name string
리턴 void

AttachToProgramObject() 공개 메소드

public AttachToProgramObject ( int programObject ) : void
programObject int
리턴 void

DetachFromProgramObject() 공개 메소드

public DetachFromProgramObject ( int programObject ) : void
programObject int
리턴 void

GLSLProgram() 공개 메소드

Constructor.
public GLSLProgram ( ResourceManager parent, string name, System.UInt64 handle, string group, bool isManual, IManualResourceLoader loader ) : System
parent Axiom.Core.ResourceManager
name string
handle System.UInt64
group string
isManual bool
loader IManualResourceLoader
리턴 System

SetParam() 공개 메소드

Set a custom param for this high level gpu program.
public SetParam ( string name, string val ) : bool
name string
val string
리턴 bool

UnloadImpl() 보호된 메소드

protected UnloadImpl ( ) : void
리턴 void

dispose() 보호된 메소드

protected dispose ( bool disposeManagedResources ) : void
disposeManagedResources bool
리턴 void