Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QSSGReflectionMapEntry Struct Reference

#include <qssgrenderreflectionmap_p.h>

+ Collaboration diagram for QSSGReflectionMapEntry:

Public Member Functions

 QSSGReflectionMapEntry ()
 
void renderMips (QSSGRhiContext *context)
 
void destroyRhiResources ()
 

Static Public Member Functions

static QSSGReflectionMapEntry withRhiTexturedCubeMap (quint32 probeIdx, QRhiTexture *preFiltered)
 
static QSSGReflectionMapEntry withRhiCubeMap (quint32 probeIdx, QRhiTexture *cube, QRhiTexture *prefiltered, QRhiRenderBuffer *depthStencil)
 

Public Attributes

quint32 m_probeIndex
 
QRhiTexturem_rhiCube = nullptr
 
QRhiTexturem_rhiPrefilteredCube = nullptr
 
QRhiRenderBufferm_rhiDepthStencil = nullptr
 
QVarLengthArray< QRhiTextureRenderTarget *, 6 > m_rhiRenderTargets
 
QRhiRenderPassDescriptorm_rhiRenderPassDesc = nullptr
 
QRhiGraphicsPipelinem_prefilterPipeline = nullptr
 
QRhiGraphicsPipelinem_irradiancePipeline = nullptr
 
QRhiShaderResourceBindingsm_prefilterSrb = nullptr
 
QRhiShaderResourceBindingsm_irradianceSrb = nullptr
 
QRhiBufferm_prefilterVertBuffer = nullptr
 
QRhiBufferm_prefilterFragBuffer = nullptr
 
QRhiBufferm_irradianceFragBuffer = nullptr
 
QMap< int, QVarLengthArray< QRhiTextureRenderTarget *, 6 > > m_rhiPrefilterRenderTargetsMap
 
QRhiRenderPassDescriptorm_rhiPrefilterRenderPassDesc = nullptr
 
QMap< int, QSizem_prefilterMipLevelSizes
 
QVarLengthArray< QRhiShaderResourceBindings *, 6 > m_skyBoxSrbs
 
QMatrix4x4 m_viewProjection
 
bool m_needsRender = false
 
bool m_rendered = false
 
QSSGRenderReflectionProbe::ReflectionTimeSlicing m_timeSlicing = QSSGRenderReflectionProbe::ReflectionTimeSlicing::None
 
int m_timeSliceFrame = 1
 
QSSGRenderTextureCubeFace m_timeSliceFace = { QSSGRenderTextureCubeFaces[0] }
 

Detailed Description

Definition at line 36 of file qssgrenderreflectionmap_p.h.

Constructor & Destructor Documentation

◆ QSSGReflectionMapEntry()

QSSGReflectionMapEntry::QSSGReflectionMapEntry ( )

Definition at line 291 of file qssgrenderreflectionmap.cpp.

Member Function Documentation

◆ destroyRhiResources()

void QSSGReflectionMapEntry::destroyRhiResources ( )

Definition at line 610 of file qssgrenderreflectionmap.cpp.

References QMap< Key, T >::clear(), QVarLengthArray< T, Prealloc >::clear(), e, m_irradianceFragBuffer, m_irradiancePipeline, m_irradianceSrb, m_prefilterFragBuffer, m_prefilterMipLevelSizes, m_prefilterPipeline, m_prefilterSrb, m_prefilterVertBuffer, m_rhiCube, m_rhiDepthStencil, m_rhiPrefilteredCube, m_rhiPrefilterRenderPassDesc, m_rhiPrefilterRenderTargetsMap, m_rhiRenderPassDesc, m_rhiRenderTargets, and qDeleteAll().

Referenced by QSSGRenderReflectionMap::addReflectionMapEntry(), and QSSGRenderReflectionMap::addTexturedReflectionMapEntry().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ renderMips()

void QSSGReflectionMapEntry::renderMips ( QSSGRhiContext context)

Definition at line 448 of file qssgrenderreflectionmap.cpp.

References QSSGRenderReflectionProbe::AllFacesAtOnce, QVarLengthArray< T, Prealloc >::append(), cb, QVarLengthArray< T, Prealloc >::clear(), QRhi::clipSpaceCorrMatrix(), QSSGRhiContext::commonPassFlags(), QVarLengthArray< T, Prealloc >::constData(), QMatrix4x4::constData(), QList< T >::constData(), context, QRhiBuffer::create(), cube, QRhiResource::deleteLater(), draw(), fillPrefilterValues(), QRhiResourceUpdateBatch::generateMips(), QRhiBuffer::Immutable, QSSGRenderReflectionProbe::IndividualFaces, QRhi::isYUpInFramebuffer(), QMatrix4x4::lookAt(), m_irradianceFragBuffer, m_irradiancePipeline, m_irradianceSrb, m_prefilterFragBuffer, m_prefilterMipLevelSizes, m_prefilterPipeline, m_prefilterSrb, m_prefilterVertBuffer, m_rhiCube, m_rhiPrefilterRenderTargetsMap, m_timeSliceFace, m_timeSliceFrame, m_timeSlicing, QRhi::mipLevelsForSize(), QRhi::newBuffer(), QRhi::nextResourceUpdateBatch(), QMatrix4x4::perspective(), QRhiTexture::pixelSize(), prefilterSampleCount, Q_ASSERT, Q_QUICK3D_PROFILE_END_WITH_ID, Q_QUICK3D_PROFILE_END_WITH_STRING, Q_QUICK3D_PROFILE_START, qMin(), QSSG_RENDERPASS_NAME, QSSGRenderTextureCubeFaces, QSSGRHICTX_STAT, QRhi::ubufAligned(), QRhiResourceUpdateBatch::updateDynamicBuffer(), QRhiBuffer::VertexBuffer, and QSize::width().

Referenced by RenderHelpers::rhiRenderReflectionMap().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ withRhiCubeMap()

QSSGReflectionMapEntry QSSGReflectionMapEntry::withRhiCubeMap ( quint32  probeIdx,
QRhiTexture cube,
QRhiTexture prefiltered,
QRhiRenderBuffer depthStencil 
)
static

Definition at line 597 of file qssgrenderreflectionmap.cpp.

References cube, and e.

Referenced by QSSGRenderReflectionMap::addReflectionMapEntry().

+ Here is the caller graph for this function:

◆ withRhiTexturedCubeMap()

QSSGReflectionMapEntry QSSGReflectionMapEntry::withRhiTexturedCubeMap ( quint32  probeIdx,
QRhiTexture preFiltered 
)
static

Definition at line 589 of file qssgrenderreflectionmap.cpp.

References e.

Referenced by QSSGRenderReflectionMap::addTexturedReflectionMapEntry().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_irradianceFragBuffer

QRhiBuffer* QSSGReflectionMapEntry::m_irradianceFragBuffer = nullptr

◆ m_irradiancePipeline

QRhiGraphicsPipeline* QSSGReflectionMapEntry::m_irradiancePipeline = nullptr

◆ m_irradianceSrb

QRhiShaderResourceBindings* QSSGReflectionMapEntry::m_irradianceSrb = nullptr

◆ m_needsRender

bool QSSGReflectionMapEntry::m_needsRender = false

◆ m_prefilterFragBuffer

QRhiBuffer* QSSGReflectionMapEntry::m_prefilterFragBuffer = nullptr

◆ m_prefilterMipLevelSizes

QMap<int, QSize> QSSGReflectionMapEntry::m_prefilterMipLevelSizes

◆ m_prefilterPipeline

QRhiGraphicsPipeline* QSSGReflectionMapEntry::m_prefilterPipeline = nullptr

◆ m_prefilterSrb

QRhiShaderResourceBindings* QSSGReflectionMapEntry::m_prefilterSrb = nullptr

◆ m_prefilterVertBuffer

QRhiBuffer* QSSGReflectionMapEntry::m_prefilterVertBuffer = nullptr

◆ m_probeIndex

quint32 QSSGReflectionMapEntry::m_probeIndex

◆ m_rendered

bool QSSGReflectionMapEntry::m_rendered = false

◆ m_rhiCube

◆ m_rhiDepthStencil

◆ m_rhiPrefilteredCube

◆ m_rhiPrefilterRenderPassDesc

QRhiRenderPassDescriptor* QSSGReflectionMapEntry::m_rhiPrefilterRenderPassDesc = nullptr

◆ m_rhiPrefilterRenderTargetsMap

QMap<int, QVarLengthArray<QRhiTextureRenderTarget *, 6> > QSSGReflectionMapEntry::m_rhiPrefilterRenderTargetsMap

◆ m_rhiRenderPassDesc

◆ m_rhiRenderTargets

◆ m_skyBoxSrbs

◆ m_timeSliceFace

QSSGRenderTextureCubeFace QSSGReflectionMapEntry::m_timeSliceFace = { QSSGRenderTextureCubeFaces[0] }

◆ m_timeSliceFrame

int QSSGReflectionMapEntry::m_timeSliceFrame = 1

Definition at line 78 of file qssgrenderreflectionmap_p.h.

Referenced by renderMips().

◆ m_timeSlicing

◆ m_viewProjection

QMatrix4x4 QSSGReflectionMapEntry::m_viewProjection

The documentation for this struct was generated from the following files: