5#ifndef QSSG_LAYER_RENDER_DATA_H
6#define QSSG_LAYER_RENDER_DATA_H
20#include <QtQuick3DRuntimeRender/private/qssgrenderitem2d_p.h>
21#include <QtQuick3DRuntimeRender/private/qssgrenderer_p.h>
22#include <QtQuick3DRuntimeRender/private/qssgrendershadercache_p.h>
23#include <QtQuick3DRuntimeRender/private/qssgrenderableobjects_p.h>
24#include <QtQuick3DRuntimeRender/private/qssgrenderclippingfrustum_p.h>
25#include <QtQuick3DRuntimeRender/private/qssgrendershadowmap_p.h>
26#include <QtQuick3DRuntimeRender/private/qssgrendereffect_p.h>
27#include <QtQuick3DRuntimeRender/private/qssgrenderresourceloader_p.h>
28#include <QtQuick3DRuntimeRender/private/qssgrenderreflectionmap_p.h>
29#include <QtQuick3DRuntimeRender/private/qssgrendercamera_p.h>
30#include <QtQuick3DRuntimeRender/private/qssgrhicontext_p.h>
31#include <QtQuick3DRuntimeRender/private/qssgrenderextensions_p.h>
33#include <QtQuick3DUtils/private/qssgrenderbasetypes_p.h>
39#define QSSG_RENDER_MINIMUM_RENDER_OPACITY .01f
176 MAX_TEMPORAL_AA_LEVELS = 2,
216 float lodThreshold = 0.0f);
221 void prepareResourceLoaders();
223 void prepareForRender();
225 void prepareReflectionProbesForRender();
241 void resetForFrame();
243 void maybeBakeLightmap();
253 static constexpr size_t USERPASSES = 2;
297 bool tooManyLightsWarningShown =
false;
298 bool tooManyShadowLightsWarningShown =
false;
305 bool interactiveLightmapBakingRequested =
false;
308 bool plainSkyBoxPrepared =
false;
342 void updateSortedDepthObjectsListImp();
354 float inOpacity,
bool alreadyDirty,
360 RenderableNodeEntries &renderableModels,
361 bool globalPickingEnabled);
366 bool particlesEnabled =
true;
constexpr QFlags operator&(int mask) const noexcept
constexpr QFlags & setFlag(QSSGLayerRenderPreparationResultFlag flag, bool on=true) noexcept
The QMatrix4x4 class represents a 4x4 transformation matrix in 3D space.
\inmodule QtCore\reentrant
\inmodule QtQuick3DRuntimeRender
QVector< QSSGBakedLightingModel > renderedBakedLightingModels
QSSGLightmapper::Callback lightmapBakingOutputCallback
QSSGRenderableObjectList renderedOpaqueObjects
QSSGRenderCamera * activeCamera() const
QSSGRenderableObjectList renderedTransparentObjects
QSSGShaderFeatures getShaderFeatures() const
QVector< QSSGBakedLightingModel > bakedLightingModels
std::optional< QSSGClippingFrustum > clippingFrustum
QSSGRenderableObjectList renderedDepthWriteObjects
const QSSGRenderReflectionMapPtr & getReflectionMapManager() const
QVarLengthArray< QSSGRenderPass *, 12 > activePasses
QSSGRenderableObjectList opaqueObjects
QSSGRhiGraphicsPipelineState getPipelineState() const
ReflectionMapPass reflectionMapPass
RenderableNodeEntries renderableModels
QVector< QSSGModelContext * > TModelContextPtrList
ZPrePassPass zPrePassPass
QSSGRenderableObjectList renderedOpaqueDepthPrepassObjects
QSSGRenderableObjectList transparentObjects
RenderableItem2DEntries renderedItem2Ds
ShadowMapPass shadowMapPass
std::optional< QSSGLayerRenderPreparationResult > layerPrepResult
ScreenMapPass screenMapPass
QSSGRenderableObjectList renderedScreenTextureObjects
static void prepareModelBoneTextures(const QSSGRenderContextInterface &contextInterface, const RenderableNodeEntries &renderableModels)
DepthMapPass depthMapPass
QVector< QSSGRenderLight * > lights
QSSGRenderableObjectList screenTextureObjects
QVector< QSSGRenderItem2D * > renderableItem2Ds
QVector< QSSGRenderReflectionProbe * > reflectionProbes
const QSSGRenderShadowMapPtr & getShadowMapManager() const
QVector< QSSGRenderCamera * > cameras
std::function< bool(QSSGModelContext *)> RenderableFilter
QSSGShaderLightList globalLights
TModelContextPtrList modelContexts
RenderableNodeEntries renderableParticles
std::optional< QSSGCameraRenderData > cameraData
std::function< void(BakingStatus, std::optional< QString >, BakingControl *)> Callback
The QVector3D class represents a vector or vertex in 3D space.
Combined button and popup list for selecting options.
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
QSSGLayerRenderPreparationResultFlag
@ RequiresMipmapsForScreenTexture
std::shared_ptr< QSSGRenderReflectionMap > QSSGRenderReflectionMapPtr
std::shared_ptr< QSSGRenderShadowMap > QSSGRenderShadowMapPtr
QSvgRenderer * renderer
[0]
QVector< QSSGRenderableObjectHandle > renderables
QSSGBakedLightingModel(const QSSGRenderModel *model, const QVector< QSSGRenderableObjectHandle > &renderables)
const QSSGRenderModel * model
std::optional< QSSGClippingFrustum > clippingFrustum
QMatrix4x4 viewProjection
QSSGRenderableImage * firstImage
QSSGRenderableObjectFlags renderableFlags
QSSGShaderDefaultMaterialKey materialKey
void setRequiresSsaoPass(bool inValue)
void setRequiresScreenTexture(bool inValue)
bool wasLayerDataDirty() const
bool requiresDepthTexture() const
void setLayerDataDirty(bool inValue)
void setWasDirty(bool inValue)
bool requiresMipmapsForScreenTexture() const
bool requiresScreenTexture() const
bool requiresShadowMapPass() const
void setRequiresMipmapsForScreenTexture(bool inValue)
void setRequiresDepthTexture(bool inValue)
bool requiresSsaoPass() const
void setRequiresShadowMapPass(bool inValue)
bool isLayerVisible() const
QSSGLayerRenderPreparationResultFlags flags
QSize textureDimensions() const
QSSGCameraGlobalCalculationResult setupCameraForRender(QSSGRenderCamera &inCamera)
QSSGLayerRenderPreparationResult()=default