NAP
Public Types | Public Member Functions | Public Attributes | List of all members
DepthRenderTexture2D Class Reference

#include <rendertexture2d.h>

Public Types

enum  EDepthFormat { D16, D32 }
 
- Public Types inherited from Texture
enum  EUsage { Static, DynamicRead, DynamicWrite }
 

Public Member Functions

 DepthRenderTexture2D (Core &core)
 
virtual bool init (utility::ErrorState &errorState) override
 
virtual const ImageDatagetHandle () const override
 
- Public Member Functions inherited from Texture2D
 Texture2D (Core &core)
 
virtual ~Texture2D () override
 
bool init (const SurfaceDescriptor &descriptor, bool generateMipMaps, const glm::vec4 &clearColor, VkImageUsageFlags requiredFlags, utility::ErrorState &errorState)
 
bool init (const SurfaceDescriptor &descriptor, bool generateMipMaps, VkImageUsageFlags requiredFlags, utility::ErrorState &errorState)
 
bool init (const SurfaceDescriptor &descriptor, bool generateMipMaps, void *initialData, VkImageUsageFlags requiredFlags, utility::ErrorState &errorState)
 
const glm::vec2 getSize () const
 
int getWidth () const
 
int getHeight () const
 
void update (const void *data, int width, int height, int pitch, ESurfaceChannels channels)
 
void update (const void *data, const SurfaceDescriptor &surfaceDescriptor)
 
virtual uint getLayerCount () const override
 
virtual uint getMipLevels () const override
 
void asyncGetData (Bitmap &bitmap)
 
void asyncGetData (std::function< void(const void *, size_t)> copyFunction)
 
- Public Member Functions inherited from Texture
 Texture (Core &core)
 
virtual ~Texture ()
 
virtual VkImageLayout getTargetLayout () const
 
VkFormat getFormat () const
 
const SurfaceDescriptorgetDescriptor () const
 
RenderServicegetRenderService ()
 
const RenderServicegetRenderService () const
 
virtual void onDestroy () override
 
- Public Member Functions inherited from Resource
 Resource ()
 
- Public Member Functions inherited from Object
 Object ()
 
virtual ~Object ()
 
 Object (Object &)=delete
 
Objectoperator= (const Object &)=delete
 
 Object (Object &&)=delete
 
Objectoperator= (Object &&)=delete
 

Public Attributes

int mWidth = 0
 Property: 'Width' width of the texture in texels. More...
 
int mHeight = 0
 Property: 'Height' of the texture in texels. More...
 
EColorSpace mColorSpace = EColorSpace::Linear
 Property: 'ColorSpace' texture color space. More...
 
EDepthFormat mDepthFormat = EDepthFormat::D16
 Property: 'DepthFormat' depth texture format. More...
 
float mClearValue = 1.0f
 Property: 'ClearValue' value selection used for clearing the texture. More...
 
bool mFill = false
 Property: 'Fill' if the texture is initialized to black when usage is static. More...
 
- Public Attributes inherited from Texture2D
EUsage mUsage = EUsage::Static
 Property: 'Usage' If this texture is updated frequently or considered static. More...
 
- Public Attributes inherited from Texture
nap::Signal textureDestroyed
 Signal that is triggered before texture is destroyed. More...
 
- Public Attributes inherited from Object
std::string mID
 Property: 'mID' unique name of the object. Used as an identifier by the system. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Object
static bool isIDProperty (rtti::Instance &object, const rtti::Property &property)
 
- Protected Types inherited from Texture2D
using TextureReadCallback = std::function< void(void *data, size_t sizeInBytes)>
 
- Protected Member Functions inherited from Texture2D
virtual ImageDatagetHandle () override
 
bool initInternal (const SurfaceDescriptor &descriptor, bool generateMipMaps, VkImageUsageFlags requiredFlags, utility::ErrorState &errorState)
 
void upload (VkCommandBuffer commandBuffer)
 
void download (VkCommandBuffer commandBuffer)
 
void notifyDownloadReady (int frameIndex)
 
void clearDownloads ()
 
- Protected Member Functions inherited from Texture
virtual void clear (VkCommandBuffer commandBuffer)
 
void requestClear ()
 
- Protected Attributes inherited from Texture2D
ImageData mImageData
 2D Texture vulkan image buffers More...
 
std::vector< BufferDatamStagingBuffers
 All vulkan staging buffers, 1 when static or using dynamic read, no. of frames in flight when dynamic write. More...
 
int mCurrentStagingBufferIndex = -1
 Currently used staging buffer. More...
 
size_t mImageSizeInBytes = -1
 Size in bytes of texture. More...
 
std::vector< TextureReadCallbackmReadCallbacks
 Number of callbacks based on number of frames in flight. More...
 
std::vector< int > mDownloadStagingBufferIndices
 Staging buffer indices associated with a frameindex. More...
 
uint32 mMipLevels = 1
 Total number of generated mip-maps. More...
 
- Protected Attributes inherited from Texture
RenderServicemRenderService
 Reference to the render service. More...
 
SurfaceDescriptor mDescriptor
 Texture description. More...
 
VkFormat mFormat = VK_FORMAT_UNDEFINED
 Vulkan texture format. More...
 
VkClearColorValue mClearColor = { 0.0f, 0.0f, 0.0f, 0.0f }
 Color used for clearing the texture. More...
 

Description

Empty 2D GPU depth texture that can be declared as a resource in JSON or created at runtime. You can use this texture to store the result of a render pass by a nap::RenderTarget or any other type of render operation. The texture is cleared to 'ClearColor the before first use.

Inheritance diagram for DepthRenderTexture2D:
[legend]
Collaboration diagram for DepthRenderTexture2D:
[legend]

Member Enumeration Documentation

◆ EDepthFormat

enum EDepthFormat
strong

All supported depth texture 2D formats.

Enumerator
D16 

16 bit unsigned, 1 component

D32 

32 bit float, 1 component

Constructor & Destructor Documentation

◆ DepthRenderTexture2D()

Member Function Documentation

◆ getHandle()

virtual const ImageData& getHandle ( ) const
overridevirtual
Returns
Vulkan GPU data handle, including image and view.

Reimplemented from Texture2D.

◆ init()

virtual bool init ( utility::ErrorState errorState)
overridevirtual

Creates the texture on the GPU.

Parameters
errorStateContains error state if the function fails.
Returns
if the texture was created successfully

Reimplemented from Object.

Member Data Documentation

◆ mClearValue

float mClearValue = 1.0f

Property: 'ClearValue' value selection used for clearing the texture.

◆ mColorSpace

Property: 'ColorSpace' texture color space.

◆ mDepthFormat

Property: 'DepthFormat' depth texture format.

◆ mFill

bool mFill = false

Property: 'Fill' if the texture is initialized to black when usage is static.

◆ mHeight

int mHeight = 0

Property: 'Height' of the texture in texels.

◆ mWidth

int mWidth = 0

Property: 'Width' width of the texture in texels.