Stride

OPEN / CLOSE
  • Features
  • Blog
  • Documentation
  • Community
(icon) Download

  • Discord
  • Facebook
  • Twitter
  • YouTube

LANGUAGE

OPEN / CLOSE
  • English
  • 日本語
    Show / Hide Table of Contents

    ImageReadback<T> Class

    Namespace: Stride.Rendering.Images
    Assembly: Stride.Rendering.dll

    Allow readback a Texture from GPU to CPU with a frame delay count to avoid blocking read.

    System.Object → DisposeBase → ComponentBase → RendererCoreBase → RendererBase → DrawEffect → ImageEffect → ImageReadback<T>
    Derived from ImageReadback<T>:

    public class ImageReadback<T> : ImageEffect, IComponent, IReferencable, ICollectorHolder, IImageEffect, IGraphicsRenderer, IGraphicsRendererBase, IGraphicsRendererCore, IDisposable where T : struct
    Type Parameters
    Name Description
    T

    Pixel struct that should match the input texture format

    Remarks

    The input texture should be small enough to avoid CPU/GPU readback stalling

    Name Description
    Constructors
    ImageReadback()

    Initializes a new instance of the ImageReadback<T> class.

    Properties
    ElapsedTime

    Gets the elapsed time to query the result.

    ForceGetLatestBlocking

    Gets or sets a value indicating whether [force get latest blocking].

    FrameDelayCount

    Gets or sets the number of frame to store before reading back. Default is 16.

    IsResultAvailable

    Gets a boolean indicating whether a result is available from Result.

    IsSlow

    Gets a boolean indicating whether the readback is slow and may be stalling, indicating a FrameDelayCount to low or an input texture too large for an efficient non-blocking readback.

    Result

    Gets the result pixels, only valid if IsResultAvailable

    Methods
    Destroy()
    DrawCore(RenderDrawContext)
    Reset()
    | Improve this Doc View Source

    Constructors


    ImageReadback()

    Initializes a new instance of the ImageReadback<T> class.

    public ImageReadback()
    | Improve this Doc View Source

    Properties


    ElapsedTime

    Gets the elapsed time to query the result.

    public TimeSpan ElapsedTime { get; }
    Property Value
    Type Description
    System.TimeSpan

    The elapsed time.


    ForceGetLatestBlocking

    Gets or sets a value indicating whether [force get latest blocking].

    public bool ForceGetLatestBlocking { get; set; }
    Property Value
    Type Description
    System.Boolean

    true if [force get latest blocking]; otherwise, false.


    FrameDelayCount

    Gets or sets the number of frame to store before reading back. Default is 16.

    public int FrameDelayCount { get; set; }
    Property Value
    Type Description
    System.Int32

    The frame delay count.


    IsResultAvailable

    Gets a boolean indicating whether a result is available from Result.

    public bool IsResultAvailable { get; }
    Property Value
    Type Description
    System.Boolean

    A result available.


    IsSlow

    Gets a boolean indicating whether the readback is slow and may be stalling, indicating a FrameDelayCount to low or an input texture too large for an efficient non-blocking readback.

    public bool IsSlow { get; }
    Property Value
    Type Description
    System.Boolean

    The readback is slow and stalling.


    Result

    Gets the result pixels, only valid if IsResultAvailable

    public T[] Result { get; }
    Property Value
    Type Description
    T[]

    The result.

    | Improve this Doc View Source

    Methods


    Destroy()

    protected override void Destroy()
    Overrides
    RendererCoreBase.Destroy()

    DrawCore(RenderDrawContext)

    protected override void DrawCore(RenderDrawContext context)
    Parameters
    Type Name Description
    RenderDrawContext context
    Overrides
    RendererBase.DrawCore(RenderDrawContext)

    Reset()

    public override void Reset()
    Overrides
    ImageEffect.Reset()

    Inherited Members

    ImageEffect.EnableSetRenderTargets
    ImageEffect.SetInput(Int32, Texture)
    ImageEffect.SetOutput(Texture)
    ImageEffect.SetOutput(Texture[])
    ImageEffect.SetDepthOutput(Texture, Texture)
    ImageEffect.SetDepthOutput(Texture, Texture[])
    ImageEffect.SetViewport(Nullable<Viewport>)
    ImageEffect.PreDrawCore(RenderDrawContext)
    ImageEffect.SetRenderTargets(RenderDrawContext)
    ImageEffect.PostDrawCore(RenderDrawContext)
    ImageEffect.DisposeCreatedRenderTargetViews(RenderDrawContext)
    ImageEffect.InputCount
    ImageEffect.GetInput(Int32)
    ImageEffect.GetSafeInput(Int32)
    ImageEffect.DepthStencil
    ImageEffect.HasDepthStencilOutput
    ImageEffect.OutputCount
    ImageEffect.GetOutput(Int32)
    ImageEffect.GetSafeOutput(Int32)
    ImageEffect.NewScopedRenderTarget2D(TextureDescription)
    ImageEffect.NewScopedRenderTarget2D(Int32, Int32, PixelFormat, TextureFlags, Int32)
    ImageEffect.NewScopedRenderTarget2D(Int32, Int32, PixelFormat, MipMapCount, TextureFlags, Int32)
    DrawEffect.SamplingPattern
    DrawEffect.Parameters
    DrawEffect.Scaler
    DrawEffect.SetDefaultParameters()
    DrawEffect.Draw(RenderDrawContext, String)
    DrawEffect.Draw(RenderDrawContext, String, Object[])
    DrawEffect.ToString()
    RendererBase.Draw(RenderDrawContext)
    RendererCoreBase.Enabled
    RendererCoreBase.Profiling
    RendererCoreBase.ProfilingKey
    RendererCoreBase.Context
    RendererCoreBase.Services
    RendererCoreBase.Content
    RendererCoreBase.GraphicsDevice
    RendererCoreBase.EffectSystem
    RendererCoreBase.Initialized
    RendererCoreBase.Initialize(RenderContext)
    RendererCoreBase.InitializeCore()
    RendererCoreBase.Unload()
    RendererCoreBase.NewScopedBuffer(BufferDescription, PixelFormat)
    RendererCoreBase.NewScopedTypedBuffer(Int32, PixelFormat, Boolean, GraphicsResourceUsage)
    RendererCoreBase.PushScopedResource<T>(T)
    RendererCoreBase.CheckIsInDrawCore()
    RendererCoreBase.ToLoadAndUnload<T>(T)
    RendererCoreBase.PreDrawCoreInternal(RenderDrawContext)
    RendererCoreBase.EnsureContext(RenderContext)
    RendererCoreBase.PostDrawCoreInternal(RenderDrawContext)
    ComponentBase.Tags
    ComponentBase.Name
    ComponentBase.ICollectorHolder.Collector
    ComponentBase.OnNameChanged()
    DisposeBase.Dispose()
    DisposeBase.IsDisposed
    DisposeBase.IReferencable.ReferenceCount
    DisposeBase.IReferencable.AddReference()
    DisposeBase.IReferencable.Release()
    DisposeBase.OnAddReference()
    DisposeBase.OnReleaseReference()

    Extension Methods

    ComponentBaseExtensions.DisposeBy<T>(T, ICollectorHolder)
    ComponentBaseExtensions.RemoveDisposeBy<T>(T, ICollectorHolder)
    ImageEffectExtensions.SetInput(IImageEffect, Texture)
    ImageEffectExtensions.SetInput(IImageEffect, Texture, Texture)
    ImageEffectExtensions.SetInput(IImageEffect, Texture, Texture, Texture)
    • Improve this Doc
    • View Source
    In This Article

    Back to top

    Copyright © 2019-2021 .NET Foundation and Contributors
    Supported by the .NET Foundation