C# Class Axiom.RenderSystems.OpenGL.GLFBORTTManager

Concrete Factory for GL Frame Buffer Objects, and related things.
Inheritance: GLRTTManager
显示文件 Open project: WolfgangSt/axiom Class Usage Examples

Public Methods

Method Description
Bind ( RenderTarget target ) : void

Bind a certain render target if it is a FBO. If it is not a FBO, bind the main frame buffer.

CheckFormat ( PixelFormat format ) : bool

Check if a certain format is usable as FBO rendertarget format

CreateFrameBufferObject ( ) : GLFrameBufferObject

Create a framebuffer object

CreateMultiRenderTarget ( string name ) : Axiom.Graphics.MultiRenderTarget
CreateRenderTexture ( string name, Axiom.RenderSystems.OpenGL.GLSurfaceDesc target, bool writeGamma, int fsaa ) : RenderTexture
DestroyFrameBufferObject ( GLFrameBufferObject fbo ) : void

Destroy a framebuffer object

GetBestDepthStencil ( PixelFormat format, int &depthFormat, int &stencilFormat ) : void

Get best depth and stencil supported for given internalFormat

ReleaseRenderBuffer ( Axiom.RenderSystems.OpenGL.GLSurfaceDesc surface ) : void

Release a render buffer. Ignore silently if surface.buffer is null.

RequestRenderBuffer ( int format, int width, int height ) : Axiom.RenderSystems.OpenGL.GLSurfaceDesc

Request a render buffer. If format is Gl.GL_NONE, return a zero buffer.

RequestRenderBuffer ( Axiom.RenderSystems.OpenGL.GLSurfaceDesc surface ) : void

Request the specific render buffer in case shared somewhere. Ignore silently if surface.buffer is 0.

Unbind ( RenderTarget target ) : void

Unbind a certain render target. No-op for FBOs.

Protected Methods

Method Description
dispose ( bool disposeManagedResources ) : void

Private Methods

Method Description
GLFBORTTManager ( Axiom.RenderSystems.OpenGL.BaseGLSupport glSupport, bool atiMode ) : System
_detectFBOFormats ( ) : void

Detect allowed FBO formats

_tryFormat ( int depthFormat, int stencilFormat ) : bool
_tryPackedFormat ( int packedFormat ) : bool

Method Details

Bind() public method

Bind a certain render target if it is a FBO. If it is not a FBO, bind the main frame buffer.
public Bind ( RenderTarget target ) : void
target Axiom.Graphics.RenderTarget
return void

CheckFormat() public method

Check if a certain format is usable as FBO rendertarget format
public CheckFormat ( PixelFormat format ) : bool
format PixelFormat
return bool

CreateFrameBufferObject() public method

Create a framebuffer object
public CreateFrameBufferObject ( ) : GLFrameBufferObject
return GLFrameBufferObject

CreateMultiRenderTarget() public method

public CreateMultiRenderTarget ( string name ) : Axiom.Graphics.MultiRenderTarget
name string
return Axiom.Graphics.MultiRenderTarget

CreateRenderTexture() public method

public CreateRenderTexture ( string name, Axiom.RenderSystems.OpenGL.GLSurfaceDesc target, bool writeGamma, int fsaa ) : RenderTexture
name string
target Axiom.RenderSystems.OpenGL.GLSurfaceDesc
writeGamma bool
fsaa int
return Axiom.Graphics.RenderTexture

DestroyFrameBufferObject() public method

Destroy a framebuffer object
public DestroyFrameBufferObject ( GLFrameBufferObject fbo ) : void
fbo GLFrameBufferObject
return void

GetBestDepthStencil() public method

Get best depth and stencil supported for given internalFormat
public GetBestDepthStencil ( PixelFormat format, int &depthFormat, int &stencilFormat ) : void
format PixelFormat
depthFormat int
stencilFormat int
return void

ReleaseRenderBuffer() public method

Release a render buffer. Ignore silently if surface.buffer is null.
public ReleaseRenderBuffer ( Axiom.RenderSystems.OpenGL.GLSurfaceDesc surface ) : void
surface Axiom.RenderSystems.OpenGL.GLSurfaceDesc
return void

RequestRenderBuffer() public method

Request a render buffer. If format is Gl.GL_NONE, return a zero buffer.
public RequestRenderBuffer ( int format, int width, int height ) : Axiom.RenderSystems.OpenGL.GLSurfaceDesc
format int
width int
height int
return Axiom.RenderSystems.OpenGL.GLSurfaceDesc

RequestRenderBuffer() public method

Request the specific render buffer in case shared somewhere. Ignore silently if surface.buffer is 0.
public RequestRenderBuffer ( Axiom.RenderSystems.OpenGL.GLSurfaceDesc surface ) : void
surface Axiom.RenderSystems.OpenGL.GLSurfaceDesc
return void

Unbind() public method

Unbind a certain render target. No-op for FBOs.
public Unbind ( RenderTarget target ) : void
target Axiom.Graphics.RenderTarget
return void

dispose() protected method

protected dispose ( bool disposeManagedResources ) : void
disposeManagedResources bool
return void