summaryrefslogtreecommitdiffstats
path: root/src/Runtime/Source/Qt3DSRuntimeRender/RendererImpl/Qt3DSRendererImpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Runtime/Source/Qt3DSRuntimeRender/RendererImpl/Qt3DSRendererImpl.h')
-rw-r--r--src/Runtime/Source/Qt3DSRuntimeRender/RendererImpl/Qt3DSRendererImpl.h20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/Runtime/Source/Qt3DSRuntimeRender/RendererImpl/Qt3DSRendererImpl.h b/src/Runtime/Source/Qt3DSRuntimeRender/RendererImpl/Qt3DSRendererImpl.h
index 2d31c66f..5218d268 100644
--- a/src/Runtime/Source/Qt3DSRuntimeRender/RendererImpl/Qt3DSRendererImpl.h
+++ b/src/Runtime/Source/Qt3DSRuntimeRender/RendererImpl/Qt3DSRendererImpl.h
@@ -155,7 +155,8 @@ namespace render {
typedef nvhash_map<SShaderDefaultMaterialKey, SShaderGeneratorGeneratedShader *> TShaderMap;
typedef nvhash_map<CRegisteredString, NVScopedRefCounted<NVRenderConstantBuffer>>
TStrConstanBufMap;
- typedef nvhash_map<const SLayer *, NVScopedRefCounted<SLayerRenderData>> TLayerRenderMap;
+ typedef nvhash_map<SRenderInstanceId, NVScopedRefCounted<SLayerRenderData>,
+ eastl::hash<SRenderInstanceId>> TInstanceRenderMap;
typedef nvvector<SLayerRenderData *> TLayerRenderList;
typedef nvvector<Qt3DSRenderPickResult> TPickResultArray;
@@ -267,7 +268,7 @@ namespace render {
NVScopedRefCounted<NVRenderFrameBuffer> m_BlendFB;
#endif
// Allocator for temporary data that is cleared after every layer.
- TLayerRenderMap m_LayerToRenderMap;
+ TInstanceRenderMap m_InstanceRenderMap;
TLayerRenderList m_LastFrameLayers;
volatile QT3DSI32 mRefCount;
@@ -315,24 +316,27 @@ namespace render {
// Calls prepare layer for render
// and then do render layer.
bool PrepareLayerForRender(SLayer &inLayer, const QT3DSVec2 &inViewportDimensions,
- bool inRenderSiblings) override;
+ bool inRenderSiblings, const SRenderInstanceId id) override;
void RenderLayer(SLayer &inLayer, const QT3DSVec2 &inViewportDimensions,
- bool clear, QT3DSVec3 clearColor, bool inRenderSiblings) override;
+ bool clear, QT3DSVec3 clearColor, bool inRenderSiblings,
+ const SRenderInstanceId id) override;
void ChildrenUpdated(SNode &inParent) override;
QT3DSF32 GetTextScale(const SText &inText) override;
SCamera *GetCameraForNode(const SNode &inNode) const override;
Option<SCuboidRect> GetCameraBounds(const SGraphObject &inObject) override;
virtual SLayer *GetLayerForNode(const SNode &inNode) const;
- SLayerRenderData *GetOrCreateLayerRenderDataForNode(const SNode &inNode);
+ SLayerRenderData *GetOrCreateLayerRenderDataForNode(const SNode &inNode,
+ const SRenderInstanceId id = nullptr);
void BeginFrame() override;
void EndFrame() override;
void PickRenderPlugins(bool inPick) override { m_PickRenderPlugins = inPick; }
Qt3DSRenderPickResult Pick(SLayer &inLayer, const QT3DSVec2 &inViewportDimensions,
- const QT3DSVec2 &inMouseCoords, bool inPickSiblings,
- bool inPickEverything) override;
+ const QT3DSVec2 &inMouseCoords, bool inPickSiblings,
+ bool inPickEverything,
+ const SRenderInstanceId id) override;
virtual Option<QT3DSVec2>
FacePosition(SNode &inNode, NVBounds3 inBounds, const QT3DSMat44 &inGlobalTransform,
@@ -372,7 +376,7 @@ namespace render {
const QT3DSVec3 &inWorldPoint,
SLayerRenderData &inRenderData);
- void ReleaseLayerRenderResources(SLayer &inLayer) override;
+ void ReleaseLayerRenderResources(SLayer &inLayer, const SRenderInstanceId id) override;
void RenderQuad(const QT3DSVec2 inDimensions, const QT3DSMat44 &inMVP,
NVRenderTexture2D &inQuadTexture) override;