Visual3D Game EngineAPI Documentation for XNA, C#, VB, and .NET
Manages rendering of every single frame on associated graphics device.
Implementation of rendering, from top-level RenderFrame to lowest-level RenderGeometry methods.
Contains methods and properties for interaction and event handling from the Windows Form associated with graphics device.
Implementation of rendering, from top-level RenderFrame to lowest-level RenderGeometry methods.
Contains methods and properties for general pipeline management, such as current state, device creation and event handling.

Namespace: Visual3D.Graphics3D
Assembly: Visual3D.Engine (in Visual3D.Engine.dll) Version: 1.0.0.0 (1.0.0.0)

Syntax

      
 C#  Visual Basic 
[SerializableAttribute]
public class RenderPipeline : IDisposable
<SerializableAttribute> _
Public Class RenderPipeline _
	Implements IDisposable

Members

                  
 All Members  Constructors   Fields   Properties   Methods   Events  
 Public

 Protected
 Instance

 Static 
 Declared

 Inherited
 XNA Framework Only 

 .NET Compact Framework Only 

 MemberDescription
RenderPipeline(String, Control)
Create RenderPipeline object to render on provided WinForms control. If you want to specify more parameters, use other constructor (with DeviceSettingsNew argument).
RenderPipeline(String, DeviceSettings)
Create a new render pipeline from given device settings.
ActivePipeline
AddComponent(RenderPipelineComponent)
Adds a component to Components collection. Doesn't add it if already in collection.
BindInputToRenderControl()()()()
Binds input, mouse cursor etc to the current renderable Control. This method is called after Form/Control and GraphicsDevice have been created and are ready for use, and after each change/reset of current device or Control.
Capabilities
Capabilities of current graphics hardware. More capabilities are available via GraphicsDevice.GraphicsDeviceCapabilities, but Capabilities property has caching behavior, reducing number of low-level calls to device for often used capabilities.
CheckIfGpuStillProcessingLastFlowQuery()()()()
Queries your graphics card GPU to see if it's currently busy, and should not be bothered with more requests.
ClearFrameBuffer(RenderPipelineComponent)
Clears frame buffer according to the settings of given pipeline component.
Components
The list of render pipeline components which describe way the RenderPipeline renders each frame.
ContinueCustomBackBuffer(PixelSize)
Already started; setting new BackBuffer size for next frame.
CpuUtilization
Percentage of CPU that is being used right now (estimated).
CreateOrResetDevice()()()()
Create new graphics device using current settings, or just resets current device if it already has been created.
CreateOrResetDevice(DeviceSettings)
CurrentFPS
Current Frames-per-Second that are being executed (aka FPS).
CurrentFrameCount
Gets the number of frames drawn since startup.
CurrentFrameRealTimeDelta
Current Non-scaled Real Time that has passed since the last render frame - Not Scaled.
CurrentFrameTimeDelta
Current Scaled Time that has passed since the last render frame - Scaled by Scene Time Scalar.
CustomizeGraphicsSettings
Optional method will be called upon creation of the graphics device.
DepthBuffer
Reference to depth buffer assigned to device.
DeviceSettings
Gets/sets settings used for creation of render window and graphics device. Setting this property to new value will recreate existing graphics device.
Dispose()()()()
Disposes the render pipeline - destroys graphics device, closes the form if it's still open.
Disposed
Fires after RenderPipeline instance has been disposed (form was closed or user has called Dispose method of RenderPipeline).
DrawCallDumpBegin(Action<(Of <<'(String>)>>))
DumpAllocatedResourcesInfo()()()()
Outputs complete info about allocated resources into the log, including their size in bytes.
DumpAllocatedResourcesInfo(StringBuilder, Int32)
Outputs complete info about allocated resources into given StringBuilder, including their size in bytes.
DumpLockedTextureNames()()()()
EndCustomBackBuffer()()()()
Restore window-size rendering.
EnsureDeviceReady()()()()
Ensure that graphics device has been created. If not, attempts to create new one. Returns false in case of failure during last attempt to create device.
ExecuteAfterNextRenderFrame(SimpleMethod)
Execute Standard Method at the start of the next Scheduler Frame.
ExecuteBeforeNextRenderFrame(SimpleMethod)
Execute Standard Method at the start of the next Scheduler Frame.
FPS
FrameEnded
Fired after a frame has completed rendering.
FrameStarted
Fired as a frame is about to be rendered.
GetComponent<(Of <<'(T>)>>)()()()()
Looks up a component of render pipeline by it's type.
GetFormClientSize(Size%)
GetPipeline(String)
GetRenderClientSize(Size%)
GetViewport(ScreenPoint)
Returns the viewport which covers the specified screen point.
GetViewport(ScreenPoint, Viewport%, Camera%, RenderTarget%)
Performs lookup for the component of pipeline whose viewport bounds contains given point in screen space, relative to physical bounds of render window. Will return true if one is found, or false if not. Fills output refs to found viewport, camera and render target
GraphicsDevice
Returns graphics device associated with this rendering pipeline.
Indices
Gets/Sets current IndexBuffer on graphics device, with caching behavior.
Initialize()()()()
InputManager
Gets/sets a primary InputManager. Used as default InputManager for this pipeline.
Instances
IsForcedLowQualityMode
Gets/sets low-quality render mode: no textures, simple Phong materials with 1 light applied to all scene objects.
IsFullScreen
Gets/sets full-screen render mode.
IsRenderingPaused
Gets/sets paused mode flag. Synonim for State.IsRenderingPaused property.
IsWindowed
Gets/sets windowed render mode.
IsWindowedChanged
Fires when RenderPipeline has switched between windowed and full-screen mode. Check IsWindowed or IsFullScreen properties for current mode.
IsWindowedChanging
Fires when RenderPipeline is about to switch between windowed and full-screen mode. Set Cancel property of event args to true to prevent such a change. Check IsWindowed or IsFullScreen properties for current mode.
LastFrameEndedEvent
LastFrameStartedEvent
MainCamera
Gets/sets a primary camera. Used as default camera for this pipeline.
MainPipelineName
MainRenderTarget
Gets a primary render target of pipeline. This can be only a back buffer since the final target of rendering pipeline is back buffer associated with render window. Therefore this property is read only.
MainScenePipeline
MainViewport
Gets/sets a primary viewport. Used as default viewport for this pipeline.
MaximizeWindow()()()()
Maximize render window to full area of desktop. Apply to windowed mode only.
MaximumNumberOfWarningsPerType
MaxMsecPerFrame
MinimizeWindow()()()()
Minimize render window system tray. Apply to windowed mode only.
Name
Gets/sets optional name of Render Pipeline.
NotifyBeginTextureLock(Object, String)
NotifyEndTextureLock(Object)
OnFrameEnded()()()()
OutputRenderWindow
Gets WinForms Control which receive render output. In the windowed mode this is a child of WinForm. In full-screen mode this property returns reference to WinForm as rendering performs there.
OutputRenderWindowForm
OutputRenderWindowFormChangedLocation
OutputRenderWindowScreenRectangle
Pause()()()()
Pauses rendering (equal to setting State.IsRenderingPaused to true). In paused mode RenderFrame method calls will be ignored.
PixelShader
Gets/Sets current PixelShader on graphics device, with caching behavior.
RegisterGraphicsResource(IGraphicsResource)
Registers given graphics resource to handle such events as resetting graphics device. When device reset will occur, IGraphicsResource.DisposeGraphicsResources method will be called. After device reset is done, IGraphicsResource.CreateGraphicsResources will be invoked.
RemoveComponent(RenderPipelineComponent)
Remove component from Components collection.
RenderComponent(RenderPipelineComponent, RenderTarget)
RenderContext
Returns RenderContext used during RenderFrame. Normally, current RenderContext is passed to each method related to rendering, but it also is available as property of pipeline for cases like PrepareForUse etc, when RenderContext parameter is not available.
RenderFrame()()()()
Renders a complete single frame on associated device, as defined by pipeline components. Creates or resets device if it's not ready. Returns false in case of any failure.
RenderFrame(Boolean)
Renders a complete single frame on associated device, as defined by pipeline components. Creates or resets device if it's not ready. Returns false in case of any failure.
RenderFrameCount
Tracks the number of graphical frames rendered since last reset.
RenderFrameInterval
Minimum time (in milliseconds) between successive graphics rendering frames.
RenderGeometry<(Of <<'(TVertex>)>>)(PrimitiveType, array<TVertex>[]()[][])
Renders specified geometry on graphics device. Particularly slower than RenderGeometry method if used with large number of vertices; therefore, it's better to use RenderGeometry for mid/small numbers of often changing vertex data.
RenderGeometry(PrimitiveType, VertexData)
Renders specified geometry on graphics device.
RenderGeometry<(Of <<'(TVertex>)>>)(PrimitiveType, array<TVertex>[]()[][], array<Int32>[]()[][])
Renders specified geometry on graphics device. Particularly slower than RenderGeometry method if used with large number of vertices; therefore, it's better to use RenderGeometry for mid/small numbers of often changing vertex data.
RenderGeometry(PrimitiveType, VertexData, IndexData)
Renders specified geometry on graphics device.
RenderGeometry<(Of <<'(TVertex>)>>)(PrimitiveType, array<TVertex>[]()[][], Int32, Int32)
Renders specified geometry on graphics device. Particularly slower than RenderGeometry method if used with large number of vertices; therefore, it's better to use RenderGeometry for mid/small numbers of often changing vertex data.
RenderGeometry<(Of <<'(TVertex, TIndex>)>>)(PrimitiveType, array<TVertex>[]()[][], Int32, Int32, array<Int32>[]()[][])
Renders specified geometry on graphics device. Particularly slower than RenderGeometry method if used with large number of vertices; therefore, it's better to use RenderGeometry for mid/small numbers of often changing vertex data.
RenderGeometry<(Of <<'(TVertex>)>>)(PrimitiveType, array<TVertex>[]()[][], array<Int32>[]()[][], Int32, Int32)
Renders specified geometry on graphics device. Particularly slower than RenderGeometry method if used with large number of vertices; therefore, it's better to use RenderGeometry for mid/small numbers of often changing vertex data.
RenderGeometry<(Of <<'(TVertex>)>>)(PrimitiveType, array<TVertex>[]()[][], Int32, Int32, array<Int32>[]()[][], Int32, Int32)
Renders specified geometry on graphics device. Particularly slower than non-generic RenderGeometry method for big number of vertices; therefore, it's better to use generic RenderGeometry for mid/small number of vertices if they change often.
RenderingLock
Lock this before trying to render to the GPU, to avoid conflicts and hiccups amongst competing threads
RenderNextFrame()()()()
Render the next graphics frame (FPS-limiting logic is built-in).
RenderState
Render state with cacheable behavior. Used to set up scene blending, fill mode, fog mode, depth test/write and other flags during rendering a frame.
ResizeWindow(Rectangle)
Resize render window to given rectangle, in pixel units. Apply to windowed mode only.
RestoreWindow()()()()
Restore render window from minimized or maximized modes. Apply to windowed mode only.
Resume()()()()
Resume paused rendering (equal to setting State.IsRenderingPaused to false).
ResyncCachedStateWithDevice()()()()
Re-synchronizes cached state of the RenderPipeline with graphics device. This applies to caching vertex streams, caching render state, index buffer and shader references.
SamplerStates
Sampler states with cacheable behavior. Used to set up texture filtering method, degree of anisotropy, UVW address mode, etc.
ScheduleResetDeviceOnNextFrame()()()()
Graphics device will be reset at the beginning of the next frame.
SetFormClientSize(Size)
Resize window, such that ClientRectangle becomes given rectangle, in pixel units. Apply to windowed mode only.
SetNoTexture(Int32, Boolean)
Remove texture binding from given sampler on graphics device.
SetRenderControlParent(Control)
Move currently active WinFormTargetControl to new parent Control. Does nothing if currently in full-screen mode.
SetTexture(Int32, Texture)
Assign XNA texture to the given sampler unit on graphics device.
SetTexture(Int32, Texture)
Assign a texture to the given sampler unit on graphics device.
SetTexture(Int32, Texture, Boolean)
Assign XNA texture to the given sampler unit on graphics device.
SetTexture(Int32, Texture, Boolean)
Assign a texture to the given sampler unit on graphics device.
StartCustomBackBuffer(PixelSize)
Larger-than-window rendering.
State
Monitors and controls current state of RenderPipeline. Not same as RenderState, as it controls only low-level flags during render a block of geomtry.
TerrainEditorName
TerrainEditorPipeline
TimeOfNextRenderFrame
Application Timer Time when next RenderFrame should be rendered.
TimeoutToWaitForGpuFlush
ToggleFullScreen()()()()
Switches between windowed and full-screen mode. Equal to using IsWindowed and IsFullScreen properties of RenderPipeline.State
ToggleFullScreen(Boolean)
ToString()()()() (Overrides Object..::..ToString()()()().)
UnregisterGraphicsResource(IGraphicsResource)
Unregisters graphics resource previously registered with RegisterGraphicsResource method.
UnregisterGraphicsResource(IGraphicsResource, Boolean)
Unregisters graphics resource previously registered with RegisterGraphicsResource method and optionally calls it's IGraphicsResource.DisposeGraphicsResource method implementation.
UpdateDebugStats()()()()
Update performance statistics on the debug overlay.
UpdatedFPS
Event fires whenever the FPS statistics are updated.
VertexDeclaration
Gets/Sets current VertexDeclaration on device, with caching behavior. Vertex declaration defines format of data in vertex buffer.
VertexSamplerStates
Vertex texture sampler states with cacheable behavior. Used to set up texture filtering method, degree of anisotropy, UVW address mode, etc to use a texture in vertex shader. Consider use SamplerStates property for usual textures.
VertexShader
Gets/Sets current VertexShader on graphics device, with caching behavior.
Vertices
Vertex streams with cacheable behavior. Used to bind VertexBuffers to graphics device.
WaitUntilGpuIsReady(String)
Waits/blocks until "IsGpuBusy()" returns false, or 'maxTimeout(msec)' expires. Returns 'false' if timeout expired.

Inheritance Hierarchy

System..::..Object
  Visual3D.Graphics3D..::..RenderPipeline
    Visual3D.Graphics3D.StandardPipeline..::..StandardRenderPipeline

See Also