XII Release 0.1.0
Loading...
Searching...
No Matches
xiiGALTexture Class Referenceabstract

Interface that defines methods to manipulate a texture object. More...

#include <Texture.h>

Inheritance diagram for xiiGALTexture:
[legend]

Public Member Functions

XII_ALWAYS_INLINE const xiiGALTextureCreationDescription & GetDescription () const
 This returns the creation description for this object.
XII_ALWAYS_INLINE xiiBitflags< xiiGALExternalMemoryKind > GetExternalMemoryKind () const
 Returns the external memory kind flags for this texture.
XII_ALWAYS_INLINE const xiiGALExternalMemoryDescription & GetExternalMemoryDescription () const
 Returns the external memory description for this texture.
virtual xiiUInt64 GetMemoryConsumption () const
 Returns the calculated memory consumption for texture.
xiiSharedPtr< xiiGALTextureView > GetDefaultView (xiiEnum< xiiGALTextureViewType > viewType)
virtual const xiiGALSparseTextureProperties & GetSparseProperties () const =0
 This returns the sparse texture properties.
xiiSharedPtr< xiiGALTextureView > CreateView (xiiGALTextureViewCreationDescription &description)
Public Member Functions inherited from xiiGALResource
virtual void SetResourceState (xiiBitflags< xiiGALResourceStateFlags > stateFlags)
virtual XII_ALWAYS_INLINE xiiBitflags< xiiGALResourceStateFlags > GetResourceState () const
 This returns the buffer state.
XII_ALWAYS_INLINE bool IsInKnownState () const
 This returns true if the resource is in known state by the engine.
XII_ALWAYS_INLINE bool CheckState (xiiBitflags< xiiGALResourceStateFlags > resourceState) const
 This returns true if the given resource state is set.
XII_ALWAYS_INLINE bool CheckAnyState (xiiBitflags< xiiGALResourceStateFlags > resourceState) const
 This returns true if any of the given resource state are set.
Public Member Functions inherited from xiiGALDeviceObject
XII_ALWAYS_INLINE xiiSharedPtr< xiiGALDevice > GetDevice () const
Public Member Functions inherited from xiiGALObject
XII_ALWAYS_INLINE xiiStringView GetDebugName () const
 Returns the debug name of this resource.
void SetDebugName (xiiStringView sDebugName) const
 Sets the debug name for this resource.
Public Member Functions inherited from xiiReflectedClass
virtual const xiiRTTI * GetDynamicRTTI () const
bool IsInstanceOf (const xiiRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
template<typename T>
XII_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
Public Member Functions inherited from xiiRefCounted
virtual ~xiiRefCounted ()=default
 Adds a virtual destructor.
Public Member Functions inherited from xiiRefCountingImpl
 xiiRefCountingImpl ()=default
 Constructor.
 xiiRefCountingImpl (const xiiRefCountingImpl &rhs)
void operator= (const xiiRefCountingImpl &rhs)
xiiUInt32 AddRef () const
 Increments the reference counter. Returns the new reference count.
bool TryAddRef () const
xiiUInt32 ReleaseRef () const
 Decrements the reference counter. Returns the new reference count.ywat.
bool IsReferenced () const
 Returns true if the reference count is greater than 0, false otherwise.
xiiUInt32 GetRefCount () const
 Returns the current reference count.

Protected Member Functions

 xiiGALTexture (xiiSharedPtr< xiiGALDevice > pDevice, const xiiGALTextureCreationDescription &creationDescription)
virtual xiiResult InitPlatform (const xiiGALTextureData *pInitialData, xiiBitflags< xiiGALExternalMemoryKind > externalMemoryKind)=0
virtual xiiInternal::NewInstance< xiiGALTextureView > CreateViewPlatform (const xiiGALTextureViewCreationDescription &description)=0
Protected Member Functions inherited from xiiGALResource
 xiiGALResource (xiiSharedPtr< xiiGALDevice > pDevice)
Protected Member Functions inherited from xiiGALDeviceObject
 xiiGALDeviceObject (xiiSharedPtr< xiiGALDevice > pDevice)
 Copyright (c) Theophilus Eriata. All Rights Reserved.
Protected Member Functions inherited from xiiGALObject
 xiiGALObject ()
 Copyright (c) Theophilus Eriata. All Rights Reserved.
virtual XII_ALWAYS_INLINE void SetDebugNamePlatform (xiiStringView sName) const

Protected Attributes

xiiGALTextureCreationDescription m_Description
xiiGALExternalMemoryDescription m_ExternalMemoryDescription
xiiGALTextureView * m_DefaultTextureViews [xiiGALTextureViewType::ENUM_COUNT] = {}
Protected Attributes inherited from xiiGALResource
xiiBitflags< xiiGALResourceStateFlags > m_ResourceState
Protected Attributes inherited from xiiGALDeviceObject
xiiSharedPtr< xiiGALDevice > m_pDevice

Friends

class xiiGALDevice
class xiiGALTextureView
class xiiMemoryUtils

Additional Inherited Members

Static Public Member Functions inherited from xiiNoBase
static const xiiRTTI * GetStaticRTTI ()

Detailed Description

Interface that defines methods to manipulate a texture object.

Member Function Documentation

◆ CreateView()

xiiSharedPtr< xiiGALTextureView > xiiGALTexture::CreateView ( xiiGALTextureViewCreationDescription & description)
nodiscard

This creates a new texture view.

Parameters
description- The texture view description. See xiiGALTextureViewCreationDescription.
Returns
The reference-counted pointer to the texture view.
Remarks
To create a shader resource view addressing the entire texture, set only xiiGALTextureViewCreationDescription::m_ViewType member of the description parameter to xiiGALTextureViewType::ShaderResource and leave all other members in their default values. Using the same method, you can create render target or depth stencil view addressing the largest mip level.
If texture view format is xiiGALResourceFormat::Unknown, the view format will match the texture format.
If texture view type is xiiGALTextureViewType::Undefined, the type will match the texture type.
If the number of mip levels is 0, and the view type is shader resource, the view will address all mip levels. For other view types it will address one mip level.
If the number of slices is 0, all slices from m_uiFirstArraySlice or m_uiFirstDepthSlice will be referenced by the view. For non-array textures, the only allowed values for the number of slices are 0 and 1.
Texture view will contain strong reference to the texture, so the texture will not be destroyed until all views are released.

◆ GetDefaultView()

xiiSharedPtr< xiiGALTextureView > xiiGALTexture::GetDefaultView ( xiiEnum< xiiGALTextureViewType > viewType)
nodiscard

This returns the reference-counted pointer of the default view.

Parameters
viewType- The type of the requested view. See xiiGALTextureViewType.
Returns
The reference-counted pointer to the texture view.
Note
The function increases the reference counter for the returned interface. Views are created lazily and reused while retained. Keep the returned shared pointer for as long as the view is used, including across command recording.

◆ GetSparseProperties()

virtual const xiiGALSparseTextureProperties & xiiGALTexture::GetSparseProperties ( ) const
nodiscardpure virtual

This returns the sparse texture properties.

Implemented in xiiGALTextureD3D12, and xiiGALTextureVulkan.


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Engine/GraphicsFoundation/Resources/Texture.h
  • /home/runner/work/XII/XII/Source/Engine/GraphicsFoundation/Resources/Implementation/Texture.cpp