Castor3D 0.16.0
Multiplatform 3D engine
Classes | Namespaces | Functions
RenderModule.hpp File Reference

Classes

struct  castor3d::NonTexturedQuad
 A quad without UV. More...
 
struct  castor3d::NonTexturedQuad::Vertex
 
struct  castor3d::TexturedQuad
 A quad with UV. More...
 
struct  castor3d::TexturedQuad::Vertex
 
struct  castor3d::NonTexturedCube
 A cube without UV. More...
 
struct  castor3d::NonTexturedCube::Quad
 
struct  castor3d::NonTexturedCube::Quad::Vertex
 
struct  castor3d::TexturedCube
 A cube with UV. More...
 
struct  castor3d::TexturedCube::Quad
 
struct  castor3d::TexturedCube::Quad::Vertex
 
struct  castor3d::DrawConstants
 Draw constants for one render node. More...
 
struct  castor3d::RenderCounts
 The 3D objects counts. More...
 
struct  castor3d::CulledNodeT< NodeT >
 
struct  castor3d::PipelineAndID
 
struct  castor3d::ShadowMapLightIds
 
struct  castor3d::TechniqueQueues
 
struct  castor3d::RenderWindowDesc
 
struct  castor3d::RenderPassRegisterInfo
 
struct  castor3d::CpuUpdater
 
struct  castor3d::CpuUpdater::DirtyObjects
 
struct  castor3d::GpuUpdater
 
struct  castor3d::TargetDebugConfig
 

Namespaces

namespace  castor3d
 

Functions

 CU_DeclareExportedOwnedBy (C3D_API, castor3d::RenderSystem, RenderSystem) CU_DeclareExportedOwnedBy(C3D_API
 

Render

enum class  castor3d::GlobalBuffersIdx : uint32_t {
  castor3d::eCamera = 0 , castor3d::eScene = 1 , castor3d::eObjectsNodeID = 2 , castor3d::eModelsData = 3 ,
  castor3d::eMaterials = 4 , castor3d::eSssProfiles = 5 , castor3d::eTexConfigs = 6 , castor3d::eTexAnims = 7 ,
  castor3d::eBillboardsData = 8 , castor3d::eCount , castor3d::eMin = eCamera
}
 The render pass UBOs binding index. More...
 
enum class  castor3d::MeshBuffersIdx : uint32_t {
  castor3d::eCullData = 0 , castor3d::eMeshlets = 1 , castor3d::ePosition = 2 , castor3d::eNormal = 3 ,
  castor3d::eTangent = 4 , castor3d::eBitangent = 5 , castor3d::eTexcoord0 = 6 , castor3d::eTexcoord1 = 7 ,
  castor3d::eTexcoord2 = 8 , castor3d::eTexcoord3 = 9 , castor3d::eColour = 10 , castor3d::ePassMasks = 11 ,
  castor3d::eVelocity = 12 , castor3d::eInstances = 13 , castor3d::eCount , castor3d::eMin = eMeshlets
}
 The render pass mesh buffers binding index. More...
 
enum class  castor3d::FrustumCorner {
  castor3d::eFarLeftBottom = 0 , castor3d::eFarLeftTop = 1 , castor3d::eFarRightTop = 2 , castor3d::eFarRightBottom = 3 ,
  castor3d::eNearLeftBottom = 4 , castor3d::eNearLeftTop = 5 , castor3d::eNearRightTop = 6 , castor3d::eNearRightBottom = 7 ,
  castor3d::eCount , castor3d::eMin = eFarLeftBottom
}
 Frustum corners enumeration. More...
 
enum class  castor3d::FrustumPlane {
  castor3d::eNear = 0 , castor3d::eFar = 1 , castor3d::eLeft = 2 , castor3d::eRight = 3 ,
  castor3d::eTop = 4 , castor3d::eBottom = 5 , castor3d::eCount , castor3d::eMin = eNear
}
 Frustum planes enumeration. More...
 
enum class  castor3d::PickNodeType : uint8_t {
  castor3d::eNone = 0 , castor3d::eSubmesh = 1 , castor3d::eBillboard = 2 , castor3d::eCount ,
  castor3d::eMin = eNone
}
 The picking node types. More...
 
enum class  castor3d::TargetType : uint8_t { castor3d::eWindow = 0 , castor3d::eTexture = 1 , castor3d::eCount , castor3d::eMin = eWindow }
 RenderTarget supported types. More...
 
enum class  castor3d::ViewportType : uint8_t {
  castor3d::eUndefined = 0 , castor3d::eOrtho = 1 , castor3d::ePerspective = 2 , castor3d::eInfinitePerspective = 3 ,
  castor3d::eFrustum = 4 , castor3d::eCount , castor3d::eMin = eUndefined
}
 The viewport projection types enumeration. More...
 
enum class  castor3d::ShaderFlag : uint32_t {
  castor3d::eNone = 0x00000000 , castor3d::eNormal = 0x00000001 , castor3d::eTangent = 0x00000002 , castor3d::eTangentSpace = eTangent | eNormal ,
  castor3d::eVelocity = 0x00000004 , castor3d::eWorldSpace = 0x00000008 , castor3d::eViewSpace = 0x00000010 , castor3d::eDepth = 0x00000020 ,
  castor3d::eVisibility = 0x00000040 , castor3d::ePicking = 0x00000080 , castor3d::eLighting = 0x00000100 , castor3d::eShadowMapDirectional = 0x00000200 ,
  castor3d::eShadowMapSpot = 0x00000400 , castor3d::eShadowMapPoint = 0x00000800 , castor3d::eVsmShadowMap = 0x00001000 , castor3d::eRsmShadowMap = 0x00002000 ,
  castor3d::eEnvironmentMapping = 0x00004000 , castor3d::eOpacity = 0x00008000 , castor3d::eGeometry = 0x00010000 , castor3d::eTessellation = 0x00020000 ,
  castor3d::eForceTexCoords = 0x00040000 , castor3d::eColour = 0x00080000 , castor3d::eAll = 0x000FFFFF
}
 The render pass shader flags. More...
 
enum class  castor3d::DeferredLightingFilter : uint8_t {
  castor3d::eIgnore = 0 , castor3d::eDeferLighting = 1 , castor3d::eDeferredOnly = 2 , castor3d::eCount ,
  castor3d::eMin = eIgnore
}
 Determines what kind of lighting the pass handles. More...
 
enum class  castor3d::ParallaxOcclusionFilter : uint8_t {
  castor3d::eIgnore = 0 , castor3d::eDisabled = 1 , castor3d::eEnabled = 2 , castor3d::eCount ,
  castor3d::eMin = eIgnore
}
 Determines what kind of lighting the pass handles. More...
 
enum class  castor3d::RenderFilter : uint8_t {
  castor3d::eNone = 0x00 , castor3d::eAlphaBlend = 0x01 << 0u , castor3d::eAlphaTest = 0x01 << 1u , castor3d::eTransmission = 0x01 << 2u ,
  castor3d::eOpaque = 0x01 << 3u
}
 Filters out the opacity channels a render pass doesn't use. More...
 
enum class  castor3d::TechniquePassEvent {
  castor3d::eBeforeDepth = 0 , castor3d::eBeforeBackground = 1 , castor3d::eBeforeOpaque = 2 , castor3d::eBeforeTransparent = 3 ,
  castor3d::eBeforePostEffects = 4 , castor3d::eCount , castor3d::eMin = eBeforeDepth
}
 
using castor3d::RenderPassTypeID = uint16_t
 
using castor3d::ShaderFlags = castor::FlagCombination< ShaderFlag >
 
using castor3d::RenderFilters = castor::FlagCombination< RenderFilter >
 
using castor3d::RenderQueueArray = castor::Vector< castor::ReferenceWrapper< RenderQueue > >
 
using castor3d::TextureArray = castor::Vector< Texture >
 
using castor3d::ShadowMapRefIds = castor::Pair< castor::ReferenceWrapper< ShadowMap >, UInt32Array >
 
using castor3d::ShadowMapRefArray = castor::Vector< ShadowMapRefIds >
 
using castor3d::ShadowMapLightTypeArray = castor::Array< ShadowMapRefArray, size_t( LightType::eCount ) >
 
using castor3d::LightIdArray = castor::Vector< castor::Pair< Light *, uint32_t > >
 
template<typename NodeT >
using castor3d::CulledNodePtrT = castor::RawUniquePtr< CulledNodeT< NodeT > >
 
template<typename NodeT , template< typename NodeU > typename NodeWrapperT = CulledNodeT>
using castor3d::NodeArrayT = castor::Vector< NodeWrapperT< NodeT > >
 
using castor3d::ShadowMapLightIdArray = castor::Vector< ShadowMapLightIds >
 
using castor3d::ShadowMapLightArray = castor::Array< ShadowMapLightIdArray, size_t( LightType::eCount ) >
 
using castor3d::RenderNodesPassChangeSignalFunction = castor::Function< void( RenderNodesPass const & ) >
 
using castor3d::RenderNodesPassChangeSignal = castor::SignalT< RenderNodesPassChangeSignalFunction >
 
using castor3d::RenderNodesPassChangeSignalConnection = castor::ConnectionT< RenderNodesPassChangeSignal >
 
using castor3d::TechniquePassVector = castor::Vector< RenderTechniqueNodesPass * >
 
using castor3d::TechniquePasses = castor::Array< TechniquePassVector, size_t( TechniquePassEvent::eCount ) >
 
castor::String const castor3d::RenderTypeUndefined = cuT( "Undefined" )
 
C3D_API castor::String castor3d::getName (FrustumCorner value)
 
C3D_API castor::String castor3d::getName (FrustumPlane value)
 
C3D_API castor::String castor3d::getName (PickNodeType value)
 
C3D_API castor::String castor3d::getName (TargetType value)
 
C3D_API castor::String castor3d::getName (ViewportType value)
 
C3D_API castor::String castor3d::getName (RenderFilter value)
 
 castor3d::CU_DeclareSmartPtr (castor3d, Frustum, C3D_API)
 
 castor3d::CU_DeclareSmartPtr (castor3d, Picking, C3D_API)
 
 castor3d::CU_DeclareSmartPtr (castor3d, RenderDevice, C3D_API)
 
 castor3d::CU_DeclareSmartPtr (castor3d, RenderLoop, C3D_API)
 
 castor3d::CU_DeclareSmartPtr (castor3d, RenderNodesPass, C3D_API)
 
 castor3d::CU_DeclareSmartPtr (castor3d, RenderPipeline, C3D_API)
 
 castor3d::CU_DeclareSmartPtr (castor3d, RenderQueue, C3D_API)
 
 castor3d::CU_DeclareSmartPtr (castor3d, RenderSystem, C3D_API)
 
 castor3d::CU_DeclareSmartPtr (castor3d, RenderTarget, C3D_API)
 
 castor3d::CU_DeclareSmartPtr (castor3d, RenderTechnique, C3D_API)
 
 castor3d::CU_DeclareSmartPtr (castor3d, RenderTechniquePass, C3D_API)
 
 castor3d::CU_DeclareSmartPtr (castor3d, RenderWindow, C3D_API)
 
 castor3d::CU_DeclareSmartPtr (castor3d, Viewport, C3D_API)
 
 castor3d::CU_DeclareSmartPtr (castor3d, Texture, C3D_API)
 
 castor3d::CU_DeclareVector (IntermediateView, IntermediateView)
 
C3D_API uint32_t castor3d::getSafeBandsSize (castor::Size const &size)
 
C3D_API uint32_t castor3d::getSafeBandSize (castor::Size const &size)
 
C3D_API castor::Size castor3d::getSafeBandedSize (castor::Size const &size)
 
C3D_API VkExtent3D castor3d::getSafeBandedExtent3D (castor::Size const &size)
 
C3D_API castor::Angle castor3d::getSafeBandedFovY (castor::Angle const &fovY, castor::Size const &size)
 
C3D_API float castor3d::getSafeBandedAspect (float aspect, castor::Size const &size)
 
C3D_API VkImageMemoryBarrier castor3d::makeLayoutTransition (VkImage image, VkImageSubresourceRange const &range, VkImageLayout sourceLayout, VkImageLayout destinationLayout, uint32_t srcQueueFamily, uint32_t dstQueueFamily)
 
C3D_API VkImageMemoryBarrier castor3d::makeLayoutTransition (VkImage image, VkImageSubresourceRange const &range, VkImageLayout srcLayout, VkImageLayout dstLayout, VkAccessFlags srcAccessFlags, uint32_t srcQueueFamily, uint32_t dstQueueFamily)
 
C3D_API VkImageMemoryBarrier castor3d::makeLayoutTransition (VkImage image, VkImageSubresourceRange const &range, VkImageLayout srcLayout, VkImageLayout dstLayout, VkAccessFlags srcAccessFlags, VkAccessFlags dstAccessMask, uint32_t srcQueueFamily, uint32_t dstQueueFamily)
 
C3D_API void castor3d::memoryBarrier (crg::RecordContext &context, VkCommandBuffer commandBuffer, ashes::BufferBase const &buffer, crg::BufferSubresourceRange const &range, crg::AccessState after, crg::AccessState before)
 
C3D_API ashes::Image castor3d::makeImage (ashes::Device const &device, VkImage image, crg::ImageId data)
 
C3D_API ashes::ImageView castor3d::makeImageView (ashes::Image const &image, VkImageView view, crg::ImageViewId data)
 
C3D_API ashes::ImageView castor3d::makeTargetImageView (Texture const &texture)
 
C3D_API ashes::ImageView castor3d::makeSampledImageView (Texture const &texture)
 
C3D_API ashes::ImageView castor3d::makeWholeImageView (Texture const &texture)
 
C3D_API void castor3d::printGraph (crg::RunnableGraph const &graph)
 
C3D_API void castor3d::bindImage (VkImageView view, ashes::WriteDescriptorSetArray &writes, uint32_t &index)
 Writes the storage image view descriptor to the given writes.
 
C3D_API void castor3d::bindImage (ashes::ImageView const &view, ashes::WriteDescriptorSetArray &writes, uint32_t &index)
 
C3D_API void castor3d::bindImage (crg::RunnableGraph &graph, crg::ImageViewId const &view, ashes::WriteDescriptorSetArray &writes, uint32_t &index)
 
C3D_API void castor3d::bindTexture (VkImageView view, VkSampler sampler, ashes::WriteDescriptorSetArray &writes, uint32_t &index)
 Writes the image view and sampler descriptor to the given writes.
 
C3D_API void castor3d::bindTexture (ashes::ImageView const &view, ashes::Sampler const &sampler, ashes::WriteDescriptorSetArray &writes, uint32_t &index)
 
C3D_API void castor3d::bindTexture (crg::RunnableGraph &graph, crg::ImageViewId const &view, VkSampler const &sampler, ashes::WriteDescriptorSetArray &writes, uint32_t &index)
 
C3D_API void castor3d::bindBuffer (VkBuffer buffer, VkDeviceSize offset, VkDeviceSize range, ashes::WriteDescriptorSetArray &writes, uint32_t &index)
 Writes the buffer descriptor to the given writes.
 
C3D_API void castor3d::bindBuffer (ashes::BufferBase const &buffer, ashes::WriteDescriptorSetArray &writes, uint32_t &index)
 
C3D_API ashes::WriteDescriptorSet castor3d::makeImageViewDescriptorWrite (VkImageView const &view, uint32_t dstBinding, uint32_t dstArrayElement=0u)
 Creates a descriptor write for storage image.
 
C3D_API ashes::WriteDescriptorSet castor3d::makeImageViewDescriptorWrite (VkImageView const &view, VkSampler const &sampler, uint32_t dstBinding, uint32_t dstArrayElement=0u)
 Creates a descriptor write for combined image sampler.
 
C3D_API ashes::WriteDescriptorSet castor3d::makeDescriptorWrite (ashes::ImageView const &view, uint32_t dstBinding, uint32_t dstArrayElement=0u)
 Creates a descriptor write for storage image.
 
C3D_API ashes::WriteDescriptorSet castor3d::makeDescriptorWrite (ashes::ImageView const &view, ashes::Sampler const &sampler, uint32_t dstBinding, uint32_t dstArrayElement=0u)
 Creates a descriptor write for combined image sampler.
 
C3D_API ashes::WriteDescriptorSet castor3d::makeDescriptorWrite (ashes::UniformBuffer const &buffer, uint32_t dstBinding, VkDeviceSize elemOffset, VkDeviceSize elemRange, uint32_t dstArrayElement=0u)
 Creates a descriptor write for uniform buffer.
 
C3D_API ashes::WriteDescriptorSet castor3d::makeDescriptorWrite (ashes::BufferBase const &storageBuffer, uint32_t dstBinding, VkDeviceSize byteOffset, VkDeviceSize byteRange, uint32_t dstArrayElement=0u)
 Creates a descriptor write for storage buffer.
 
template<typename DataT >
ashes::WriteDescriptorSet castor3d::makeDescriptorWrite (ashes::Buffer< DataT > const &storageBuffer, uint32_t dstBinding, VkDeviceSize elemOffset, VkDeviceSize elemRange, uint32_t dstArrayElement=0u)
 Creates a descriptor write for storage buffer.
 
C3D_API ashes::WriteDescriptorSet castor3d::makeDescriptorWrite (ashes::BufferBase const &buffer, ashes::BufferView const &view, uint32_t dstBinding, uint32_t dstArrayElement=0u)
 Creates a descriptor write for buffer texel view.
 
template<typename DataT >
ashes::WriteDescriptorSet castor3d::makeDescriptorWrite (ashes::Buffer< DataT > const &buffer, ashes::BufferView const &view, uint32_t dstBinding, uint32_t dstArrayElement=0u)
 Creates a descriptor write for buffer texel view.
 

Function Documentation

◆ CU_DeclareExportedOwnedBy()

CU_DeclareExportedOwnedBy ( C3D_API ,
castor3d::RenderSystem ,
RenderSystem  )