VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectGeometryRenderer.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2023 VT-MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
16 
17 #include <osg/Drawable>
18 #include <osg/RenderInfo>
19 #include <osg/Matrixd>
20 #include <osg/ref_ptr>
21 #include <osg/observer_ptr>
22 
23 #include <tbb/concurrent_hash_map.h>
24 #include <tbb/concurrent_unordered_set.h>
25 
26 namespace osg
27 {
28  class StateSet;
29  class Camera;
30  class RenderInfo;
31  class NodeVisitor;
32 }
33 
34 namespace makVrv
35 {
36  class DtDe;
37 
38  class DtIndirectGeometry;
39 
40  class DtThreadCameraStreamDataManager;
41  class DtIndirectGeometryRendererUserData;
42  class DtKeyedData;
43 
44  class DtIndirectRunTimeSettings;
45 
48 
51 
53  template <>
54  inline const char* creatorTypeName<DtIndirectGeometryRenderer>(void) { return "DtIndirectGeometryRendererCreator"; }
55 
63  class DT_DLL_VRVOSG DtIndirectGeometryRenderer : public osg::Drawable
64  {
65  public:
67  protected:
69  DtIndirectGeometryRenderer(DtDe& de, const std::string& name);
70 
72  virtual ~DtIndirectGeometryRenderer();
73  private:
75  DtIndirectGeometryRenderer() = delete;
77  DtIndirectGeometryRenderer& operator=(const DtIndirectGeometryRenderer& rhs) = delete;
78  public:
80  virtual void accept(osg::NodeVisitor& nv) override;
81 
83  virtual void drawImplementation(osg::RenderInfo& renderInfo) const override;
84 
87  virtual void add(DtIndirectGeometry* indirectGeometry, const osg::Matrixd& modelViewMatrix
88  , const osg::Camera* camera);
89 
91  static const std::string& theClassName(void);
92  protected:
94 
95  // state set (bin) for the default components
97 
98  // state set (bin) for the light point components
100 
101  // state set (bin) for depth only components
103 
104  DtIndirectRunTimeSettings* myIndirectRunTimeSettings = nullptr;
105 
107 
108  const std::string myName;
109 
111  };
112 }
Manager for DtThreadCameraStreamData Holds them as cameras come in. Deletes them as cameras go out (v...
Definition: DtThreadCameraStreamDataManager.h:86
friend DtIndirectGeometryRendererCreator
Definition: DtIndirectGeometryRenderer.h:66
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
const char * creatorTypeName< DtIndirectGeometryRenderer >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectGeometryRenderer.h:54
Represents setting that are runtime tweakable/toggleable.
Definition: DtIndirectRunTimeSettings.h:24
osg::ref_ptr< osg::StateSet > myLightPointDrawStateSet
Definition: DtIndirectGeometryRenderer.h:99
DtThreadCameraStreamDataManager & myTcsDataManager
Definition: DtIndirectGeometryRenderer.h:106
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:23
DtIndirectGeometryRendererUserDataCreator & myUserDataCreator
Definition: DtIndirectGeometryRenderer.h:110
This class allows us to draw all indirect geometries one after the other with minimal state changes...
Definition: DtIndirectGeometryRenderer.h:63
\ ::, which allows us to hook into our indirect engine to render using indirect rendering...
Definition: DtIndirectGeometry.h:120
const std::string myName
Definition: DtIndirectGeometryRenderer.h:108
DtVirtualBaseClassCreator< DtIndirectGeometryRenderer, const std::string & > DtIndirectGeometryRendererCreator
creator
Definition: DtIndirectGeometryRenderer.h:47
Base class to provide boost signal/slot management.
Contains the DtIndirectGeometryRendererUserData class declaration.
DtDe & myDe
Definition: DtIndirectGeometryRenderer.h:93
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
osg::ref_ptr< osg::StateSet > myDepthOnlyDrawStateSet
Definition: DtIndirectGeometryRenderer.h:102
osg::ref_ptr< osg::StateSet > myDefaultDrawStateSet
Definition: DtIndirectGeometryRenderer.h:96

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)