Search Results for

    Show / Hide Table of Contents

    Class GPUDevice

    Graphics device object for rendering on GPU.

    Inheritance
    Object
    ScriptingObject
    GPUDevice
    Inherited Members
    ScriptingObject::_gcHandle
    ScriptingObject::_id
    ScriptingObject::_type
    ScriptingObject::CanCast(const ScriptingTypeHandle& from, const ScriptingTypeHandle& to)
    ScriptingObject::CanCast(const MClass* from, const MClass* to)
    ScriptingObject::Cast(ScriptingObject* obj)
    ScriptingObject::ChangeID(const Guid& newId)
    ScriptingObject::CreateManaged()
    ScriptingObject::CreateManagedInternal()
    ScriptingObject::Deleted
    Object::DeleteObject(float timeToLive = 0.0f, bool useGameTime=false)
    Object::DeleteObjectNow()
    ScriptingObject::DestroyManaged()
    GPUDevice
    Object::Flags
    ScriptingObject::FromInterface(void* interfaceObj, const ScriptingTypeHandle& interfaceType)
    ScriptingObject::FromInterface(T* interfaceObj)
    ScriptingObject::GetClass()
    ScriptingObject::GetID()
    ScriptingObject::GetManagedInstance()
    ScriptingObject::GetOrCreateManagedInstance()
    ScriptingObject::GetType()
    ScriptingObject::GetTypeHandle()
    ScriptingObject::HasManagedInstance()
    ScriptingObject::Is(const ScriptingTypeHandle& type)
    ScriptingObject::Is(const MClass* type)
    ScriptingObject::Is()
    ScriptingObject::IsRegistered()
    ScriptingObject::NewObject(const ScriptingTypeHandle& typeHandle)
    ScriptingObject::NewObject()
    ScriptingObject::OnDeleteObject()
    ScriptingObject::OnManagedInstanceDeleted()
    ScriptingObject::OnScriptingDispose()
    ScriptingObject::RegisterObject()
    ScriptingObject::ScriptingObject(const SpawnParams& params)
    ScriptingObject::SetManagedInstance(MObject* instance)
    GPUDevice
    ScriptingObject::ToInterface(ScriptingObject* obj, const ScriptingTypeHandle& interfaceType)
    ScriptingObject::ToInterface(ScriptingObject* obj)
    ScriptingObject::ToManaged(const ScriptingObject* obj)
    ScriptingObject::ToNative(MObject* obj)
    ScriptingObject::ToString()
    ScriptingObject::UnregisterObject()
    GPUDevice
    Object::~Object()
    ScriptingObject::~ScriptingObject()
    Assembly: FlaxEngine.dll
    File: Engine/Graphics/GPUDevice.h
    Syntax
    public class GPUDevice : public ScriptingObject

    Constructors

    ~GPUDevice()

    Finalizes an instance of the GPUDevice class.

    Declaration
    public virtual ~GPUDevice()

    GPUDevice(RendererType type, ShaderProfile profile)

    Initializes a new instance of the GPUDevice class.

    Declaration
    protected GPUDevice(RendererType type, ShaderProfile profile)
    Parameters
    RendererType type

    The renderer type.

    ShaderProfile profile

    The shader profile.

    Fields

    _drawGpuEventIndex

    Declaration
    protected int32 _drawGpuEventIndex
    Field Value
    int32

    _featureLevel

    Declaration
    protected FeatureLevel _featureLevel
    Field Value
    FeatureLevel

    _isRendering

    Declaration
    protected bool _isRendering
    Field Value
    bool

    _rendererType

    Declaration
    protected RendererType _rendererType
    Field Value
    RendererType

    _res

    Declaration
    protected PrivateData* _res
    Field Value
    PrivateData

    _resources

    Declaration
    protected Array<GPUResource* > _resources
    Field Value
    Array<GPUResource >

    _resourcesLock

    Declaration
    protected CriticalSection _resourcesLock
    Field Value
    CriticalSection

    _shaderProfile

    Declaration
    protected ShaderProfile _shaderProfile
    Field Value
    ShaderProfile

    _state

    Declaration
    protected DeviceState _state
    Field Value
    DeviceState

    _wasVSyncUsed

    Declaration
    protected bool _wasVSyncUsed
    Field Value
    bool

    CurrentTask

    The current task being executed.

    Declaration
    public RenderTask* CurrentTask
    Field Value
    RenderTask

    FeaturesPerFormat[static_cast<int32>(PixelFormat::MAX)

    The supported features for the specified format (index is the pixel format value).

    Declaration
    public FormatFeatures FeaturesPerFormat[static_cast<int32>(PixelFormat::MAX)]
    Field Value
    FormatFeatures

    Instance

    The singleton instance of the graphics device.

    Declaration
    public static GPUDevice* Instance
    Field Value
    GPUDevice

    IsDebugToolAttached

    Indicates that debug tool is profiling device (eg. RenderDoc).

    Declaration
    public bool IsDebugToolAttached
    Field Value
    bool

    Limits

    The GPU limits.

    Declaration
    public GPULimits Limits
    Field Value
    GPULimits

    Locker

    The graphics device locking mutex.

    Declaration
    public CriticalSection Locker
    Field Value
    CriticalSection

    QuadShader

    Quad rendering shader

    Declaration
    public GPUShader* QuadShader
    Field Value
    GPUShader

    TotalGraphicsMemory

    The total amount of graphics memory in bytes.

    Declaration
    public uint64 TotalGraphicsMemory
    Field Value
    uint64

    VideoOutputModes

    The available video output modes.

    Declaration
    public Array<VideoOutputMode> VideoOutputModes
    Field Value
    Array<VideoOutputMode>

    Methods

    AddResource(GPUResource* resource)

    Declaration
    public void AddResource(GPUResource* resource)
    Parameters
    GPUResource resource

    CanDraw()

    Checks if GPU can render frame now (all data is ready), otherwise will skip frame rendering.

    Declaration
    public virtual bool CanDraw()
    Returns
    bool

    True if skip rendering, otherwise false.

    CreateBuffer(const StringView& name=StringView::Empty)

    Creates the buffer.

    Declaration
    public virtual GPUBuffer* CreateBuffer(const StringView& name=StringView::Empty) = 0
    Parameters
    StringView name

    The resource name.

    Returns
    GPUBuffer

    The buffer.

    CreateConstantBuffer(uint32 size, const StringView& name=StringView::Empty)

    Creates the constant buffer.

    Declaration
    public virtual GPUConstantBuffer* CreateConstantBuffer(uint32 size, const StringView& name=StringView::Empty) = 0
    Parameters
    uint32 size

    The buffer size (in bytes).

    StringView name

    The resource name.

    Returns
    GPUConstantBuffer

    The constant buffer.

    CreatePipelineState()

    Creates the GPU pipeline state object.

    Declaration
    public virtual GPUPipelineState* CreatePipelineState() = 0
    Returns
    GPUPipelineState

    The pipeline state.

    CreateSampler()

    Creates the texture sampler.

    Declaration
    public virtual GPUSampler* CreateSampler() = 0
    Returns
    GPUSampler

    The sampler.

    CreateShader(const StringView& name=StringView::Empty)

    Creates the shader.

    Declaration
    public virtual GPUShader* CreateShader(const StringView& name=StringView::Empty) = 0
    Parameters
    StringView name

    The resource name.

    Returns
    GPUShader

    The shader.

    CreateSwapChain(Window* window)

    Creates the native window swap chain.

    Declaration
    public virtual GPUSwapChain* CreateSwapChain(Window* window) = 0
    Parameters
    Window window

    The output window.

    Returns
    GPUSwapChain

    The native window swap chain.

    CreateTasksContext()

    Creates the GPU tasks context.

    Declaration
    public virtual GPUTasksContext* CreateTasksContext()
    Returns
    GPUTasksContext

    The GPU tasks context.

    CreateTasksExecutor()

    Creates the GPU tasks executor.

    Declaration
    public virtual GPUTasksExecutor* CreateTasksExecutor()
    Returns
    GPUTasksExecutor

    The GPU tasks executor.

    CreateTexture(const StringView& name=StringView::Empty)

    Creates the texture.

    Declaration
    public virtual GPUTexture* CreateTexture(const StringView& name=StringView::Empty) = 0
    Parameters
    StringView name

    The resource name.

    Returns
    GPUTexture

    The texture.

    CreateTimerQuery()

    Creates the timer query object.

    Declaration
    public virtual GPUTimerQuery* CreateTimerQuery() = 0
    Returns
    GPUTimerQuery

    The timer query.

    CreateVertexLayout(const Array<struct VertexElement, FixedAllocation<GPU_MAX_VS_ELEMENTS>>& elements, bool explicitOffsets=false)

    Creates the vertex buffer layout.

    Declaration
    public virtual GPUVertexLayout* CreateVertexLayout(const Array<struct VertexElement, FixedAllocation<GPU_MAX_VS_ELEMENTS>>& elements, bool explicitOffsets=false) = 0
    Parameters
    Array<struct VertexElement, FixedAllocation<GPU_MAX_VS_ELEMENTS>> elements

    bool explicitOffsets

    Returns
    GPUVertexLayout

    The vertex buffer layout.

    Dispose()

    Clean all allocated data by device

    Declaration
    public virtual void Dispose()

    Draw()

    Call frame rendering and process data using GPU

    Declaration
    public virtual void Draw()

    DrawBegin()

    Called during Draw method before any frame rendering initialization. Cannot be used to submit commands to GPU.

    Declaration
    protected virtual void DrawBegin()

    DrawEnd()

    Called during Draw method after rendering. Cannot be used to submit commands to GPU.

    Declaration
    protected virtual void DrawEnd()

    DumpResourcesToLog()

    Dumps all GPU resources information to the log.

    Declaration
    public void DumpResourcesToLog() const

    GetAdapter()

    Gets the adapter device.

    Declaration
    public virtual GPUAdapter* GetAdapter() const = 0
    Returns
    GPUAdapter

    GetClearPS()

    Gets the shader pipeline state object for solid-color texture clear.

    Declaration
    public GPUPipelineState* GetClearPS() const
    Returns
    GPUPipelineState

    GetCopyLinearPS()

    Gets the shader pipeline state object for linear, fullscreen texture copy.

    Declaration
    public GPUPipelineState* GetCopyLinearPS() const
    Returns
    GPUPipelineState

    GetDecodeNV12PS()

    Gets the shader pipeline state object for NV12 frame decoding to RGBA.

    Declaration
    public GPUPipelineState* GetDecodeNV12PS() const
    Returns
    GPUPipelineState

    GetDecodeYUY2PS()

    Gets the shader pipeline state object for YUY2 frame decoding to RGBA.

    Declaration
    public GPUPipelineState* GetDecodeYUY2PS() const
    Returns
    GPUPipelineState

    GetDefaultBlackTexture()

    Gets the default solid black texture.

    Declaration
    public GPUTexture* GetDefaultBlackTexture() const
    Returns
    GPUTexture

    GetDefaultDeformableMaterial()

    Gets the default material (Deformable domain).

    Declaration
    public MaterialBase* GetDefaultDeformableMaterial() const
    Returns
    MaterialBase

    GetDefaultMaterial()

    Gets the default material.

    Declaration
    public MaterialBase* GetDefaultMaterial() const
    Returns
    MaterialBase

    GetDefaultNormalMap()

    Gets the default normal map texture.

    Declaration
    public GPUTexture* GetDefaultNormalMap() const
    Returns
    GPUTexture

    GetDefaultWhiteTexture()

    Gets the default solid white texture.

    Declaration
    public GPUTexture* GetDefaultWhiteTexture() const
    Returns
    GPUTexture

    GetFeatureLevel()

    Gets device feature level type.

    Declaration
    public FeatureLevel GetFeatureLevel() const
    Returns
    FeatureLevel

    GetFormatFeatures(const PixelFormat format)

    Gets the supported features for the specified format (index is the pixel format value).

    Declaration
    public FormatFeatures GetFormatFeatures(const PixelFormat format) const
    Parameters
    PixelFormat format

    The format.

    Returns
    FormatFeatures

    The format features flags.

    GetFullscreenTriangleVB()

    Gets the fullscreen-triangle vertex buffer.

    Declaration
    public GPUBuffer* GetFullscreenTriangleVB() const
    Returns
    GPUBuffer

    GetMainContext()

    Gets the main GPU context.

    Declaration
    public virtual GPUContext* GetMainContext() = 0
    Returns
    GPUContext

    GetMemoryUsage()

    Gets the amount of memory usage by all the GPU resources (in bytes).

    Declaration
    public uint64 GetMemoryUsage() const
    Returns
    uint64

    GetNativePtr()

    Gets the native pointer to the underlying graphics device. It's a low-level platform-specific handle.

    Declaration
    public virtual void* GetNativePtr() const = 0
    Returns
    void

    GetRendererType()

    Gets the device renderer type.

    Declaration
    public RendererType GetRendererType() const
    Returns
    RendererType

    GetResources()

    Gets the list with all active GPU resources.

    Declaration
    public Array<GPUResource* > GetResources() const
    Returns
    Array<GPUResource >

    GetShaderProfile()

    Gets device shader profile type.

    Declaration
    public ShaderProfile GetShaderProfile() const
    Returns
    ShaderProfile

    GetState()

    Gets current device state.

    Declaration
    public DeviceState GetState() const
    Returns
    DeviceState

    GetTasksManager()

    Gets the GPU asynchronous work manager.

    Declaration
    public GPUTasksManager* GetTasksManager() const
    Returns
    GPUTasksManager

    Init()

    Init device resources

    Declaration
    public virtual bool Init()
    Returns
    bool

    True if cannot init, otherwise false.

    IsRendering()

    Returns true if device is during rendering state, otherwise false.

    Declaration
    public bool IsRendering() const
    Returns
    bool

    LoadContent()

    Load private device content (called when Content Pool is created)

    Declaration
    public virtual bool LoadContent()
    Returns
    bool

    True if cannot load data in a proper way, otherwise false.

    OnRequestingExit()

    Declaration
    protected void OnRequestingExit()

    preDispose()

    Declaration
    protected virtual void preDispose()

    RemoveResource(GPUResource* resource)

    Declaration
    public void RemoveResource(GPUResource* resource)
    Parameters
    GPUResource resource

    RenderBegin()

    Called during Draw method after rendering begin. Can be used to submit commands to the GPU after opening GPU command list.

    Declaration
    protected virtual void RenderBegin()

    RenderEnd()

    Called during Draw method before rendering end. Can be used to submit commands to the GPU before closing GPU command list.

    Declaration
    protected virtual void RenderEnd()

    WaitForGPU()

    Wait for GPU end doing submitted work

    Declaration
    public virtual void WaitForGPU() = 0

    WasVSyncUsed()

    Returns true if VSync was used during the last frame present.

    Declaration
    public bool WasVSyncUsed() const
    Returns
    bool

    • Improve this Doc
    • View Source
    In This Article
    Back to top Copyright © 2012-2024 Wojciech Figat